SlideShare a Scribd company logo
1 of 28
Download to read offline
Verification of a brick Wang tiling algorithm
Verification of a brick Wang tiling algorithm
Toshiaki Matsushima1
Yoshihiro Mizoguchi2
Alexandre Derouet-Jourdan3
1
Graduate School of Mathematics, Kyushu University
2
Institute of Mathematics for Industry, Kyushu University
3
OLM Digital Inc.
March 31, 2016
SCSS2016 at Ochanomizu University, Tokyo
Verification of a brick Wang tiling algorithm
Wang Tiling (Hao Wang 1961)
A tile set is a finite set of Wang tiles, unit square tiles with
colored edges.
In general, Wang tiling problem is a problem to tile the
(infinite) Euclidean plane using arbitrarily many copies of the
tiles in the given tile set.
Tiles are arranged side by side with matching colors.
Example of Wang tessellation with 13 tiles (cf. Wikipedia)
Verification of a brick Wang tiling algorithm
Wang Tiling for Theoreticians
Decidability
The existence of an algorithm to decide whether a given finite set of
Wang tiles can tile the plane.
Answer: NO! (Robert Berger 1966)
It is equivalent to the halting problem of the Turing machine.
Periodic tiling
If a finite set of Wang tiles can tile the plane, then there exists also a
periodic tiling.
Answer: NO!
(Counter examples,
20426 tiles (Berger 1966),
14 tiles (Kari 1996) ,
13 tiles (Culik 1996),
11 tiles (Jeandel & Rao 2015)∗).
Verification of a brick Wang tiling algorithm
Wang Tiling for Computer Graphics
Aperiodic texture mapping (by J. Stam), European Research
Consortium for Informatics and Mathematics (ERCIM), 1997.
[The first use of Wang Tiles for texture synthesis.]
Tilings and Patterns (by B. Grunbaum, et.al.), H.Freeman and
Company, 1987. [Deterministic algorithm using 16 tiles.]
Wang Tiles for Image and Texture Generation (by M.F.Cohen,
et.al.), ACM. Trans. Graph. 22(3),287-294, 2003.
[Deterministic (sequential) algorithm using 8 tiles for 4 colors.]
Recursive Wang Tiles for Real-Time Blue Noise (by J. Kopf,
et.al.) SIGGRAPH 2006. [Stochastic algorithm using 2K2
tiles
for K colors.]
Verification of a brick Wang tiling algorithm
Wang Tiling Method
Pros
A very efficient simple method to produce complex structures such as
aperiodic tiling.
A control parameter is a choice of a tile set, this gives intuitional operations
to control result tilings.
Cons
It is undecidable to check a given tile set can tile the plane.
It is decidable to check a given tile set can tile a bounded region with a
given boundary condition. But it is hard to check it for any boundary
condition.
Our Approach
We introduce a class of tile sets and we show that any tile sets in our class
can always tile a rectangular region for any boundary condition.
Verification of a brick Wang tiling algorithm
Abstract
A brick Wang tiles set is a tile set introduced to model wall patterns
in computer graphics [A.D-Jourdan 2015].
We implemented a tiling algorithm with a proof of its correctness.
We also show a formal proof of an existence of a tiling of any given
brick Wang tile set for any rectangular region larger than 2 × 2.
We reduce the problem into a tiling problem of a 2 × 2 region.
We divide the boundary colorings into finite classes and give a
solution for each class.
We proved formally that the enumeration of classes are sufficient
and the solution is correct for each class.
Verification of a brick Wang tiling algorithm
Brick Wang tiling
Let C = {i | 0 ≤ i ≤ k} (k > 0) be a finite set of colors.
Definition (Wang Tile)
A Wang tile is a function w : {t, l, b, r} → C.
Definition (Brick Wang Tile)
A Wang tile w is said to be a brick Wang tile if
w(t) w(b) ∧ w(l) = w(r) or w(t) = w(b) ∧ w(l) w(r).
We define the set WC of all brick Wang tiles for a given color set C.
Values w(t), w(l), w(b), and w(r) denote the colors of the top,
left, bottom, and right edges, respectively, of a tile w.
brick: not brick:
where C = { , , , , , }.
Verification of a brick Wang tiling algorithm
Example
Let the color set C = {0.2, 0.4, 0.6, 0.8}. Consider a brick Wang tile in the
left Figure, where w(l) = w(r) = 0.6, w(t) = 0.8, and w(b) = 0.4.
We draw three lines on a square tile, the vertices of which are
{(0, 0), (0, 1), (1, 1), (1, 0)} according to the values of w(l), w(r), w(t),
and w(b). Since w(l) = w(r), we draw a line from left to right. For this
case, we draw a line from (0, 0.6) to (1, 0.6). Since w(t) w(b), we
draw two perpendicular lines from (0.8, 1) and (0.4, 0) to the horizontal
line. By tiling these brick Wang tiles, a brick wall pattern texture having
different size of bricks can be created.
Verification of a brick Wang tiling algorithm
Tiling algorithm (1)
Let C = {i | 0 ≤ i ≤ k} and |C| ≥ 3.
We use a notation ¬c to indicate a color different from c ∈ C.
¬c = min{c | c c}
¬c1 ∧ ¬c2 = min{c | c c1 ∧ c c2}
Since we use an extracted function as a function over the type
integers, we consider the domain of an every function as nat in
Coq. To describe properties over a finite set C and a finite region
Pnm, we use some bounding conditions for a variable in nat. We
do not care about a values of functions b, e and e outside of the
region Pnm.
Verification of a brick Wang tiling algorithm
Brick Wang tiling
Definition
A rectangular region {(i, j) ∈ N × N | 1 ≤ i ≤ n, 1 ≤ j ≤ m} is
denoted by Pnm. A tiling is a function T : Pnm → WC , and we
denote T (i, j) by Ti,j. A boundary (coloring) over Pnm is a
function
bnm : {0, n +1}×{j | 1 ≤ j ≤ m}∪{i | 1 ≤ i ≤ n}×{0, m +1} → C.
Verification of a brick Wang tiling algorithm
Valid tiling
Definition
Let Pnm be a rectangular region, and let bnm be a boundary coloring over
Pnm. A tiling T is valid for bnm if
Ti,j(t) =



bnm(0, j) (i = 1, 1 ≤ j ≤ m)
Ti−1,j(b) (2 ≤ i ≤ n, 1 ≤ j ≤ m),
Tn,j(b) = bnm(n + 1, j) (1 ≤ j ≤ m),
Ti,j(l) =



bnm(i, 0) (1 ≤ i ≤ n, j = 1)
Ti,j−1(r) (1 ≤ i ≤ n, 2 ≤ j ≤ m), and
Ti,m(r) = bnm(i, m + 1) (1 ≤ i ≤ n).
Ti−1,j
Ti,j−1 Ti,j Ti,j+1
Ti+1,j
Verification of a brick Wang tiling algorithm
Edge functions
Definition
For a valid tiling T for bnm over Pnm, we define horizontal edge
function eT : N → N → C and vertical edge function
e
T
: N → N → C as follows:
eT (i, j) =



Ti+1,j(t) (0 ≤ i ≤ n − 1, 1 ≤ j ≤ m)
Tn,j(b) (i = n, 1 ≤ j ≤ m)
0 (otherwise)
eT
(i, j) =



Ti,j+1(l) (1 ≤ i ≤ n, 0 ≤ j ≤ m − 1)
Ti,m(r) (1 ≤ i ≤ n, j = m)
0 (otherwise)
Verification of a brick Wang tiling algorithm
Valid edge functions
Lemma
Let T be a valid tiling for a boundary coloring bnm over a rectangular
region Pnm.
1 eT (0, j) = b(0, j) (1 ≤ j ≤ m),
eT (n, j) = b(n + 1, j) (1 ≤ j ≤ m).
2 e
T
(i, 0) = b(i, 0) (1 ≤ i ≤ n),
e
T
(i, m) = b(i, m + 1) (1 ≤ i ≤ n).
Verification of a brick Wang tiling algorithm
Brick Pair
Definition
Let Pnm be a rectangular region, e : N → N → C and e : N → N → C.
A pair (e, e ) is a brick pair over Pnm, if
(e(i − 1, j) = e(i, j) ∧ e (i, j − 1) e (i, j)), or
(e(i − 1, j) e(i, j) ∧ e (i, j − 1) = e (i, j)) for 1 ≤ i ≤ n, 1 ≤ j ≤ m.
brick: not brick:
Proposition
Let Pnm be a rectangular region, and let (e, e ) be a brick pair over Pnm.
Then, there exists a boundary coloring bnm over Pnm and a valid tiling T
over Pnm for bnm such that (eT , e
T
) = (e, e ).
We denote a boundary coloring bnm and a tiling T in Proposition by
bnm(e, e ) and T (e, e ), respectively.
Verification of a brick Wang tiling algorithm
Tileable(1)
Definition (Tileable)
Let n and m be natural numbers. Then, Pnm is tileable if there
exists a valid tiling for any boundary coloring bnm over Pnm.
Lemma (Three boundary condition)
Let WC be the set of all brick Wang tiles for a given color set C.
Then we have {(w(l), w(t), w(r)) | w ∈ WC }
= {(w(t), w(r), w(b)) | w ∈ WC }
= {(w(r), w(b), w(l)) | w ∈ WC }
= {(w(b), w(l), w(t)) | w ∈ WC } = C3
.
Verification of a brick Wang tiling algorithm
Tileable(2)
Proposition (A.D-Jourdan 2015)
1 P12 is not tileable (i.e., there exists a boundary coloring such
that there is no valid tiling).
2 P22 is not tileable if |C| = 2.
Theorem (A.D-Jourdan 2015)
If |C| ≥ 3, then a rectangular region Pnm is tileable for any n ≥ 2
and m ≥ 2.
Verification of a brick Wang tiling algorithm
Tiling algorithm (2)
Our algorithm solve a problem over a region Pnm for a given
boundary condition bnm. That is it finds a brick pair (e, e ) from a
given boundary coloring bnm over a region Pnm such that T (e, e )
is valid. Our algorithm consists of three parts:
(Step1) To reduce a tiling problem over Pnm to P2m,
(Step2) To reduce a tiling problem over P2m to P22, and
(Step3) To solve a tiling problem over P22.
!"# !$# !$$
%&'()*+ , , , , , , %&'()$+  , , , , ,%&'()-+
Verification of a brick Wang tiling algorithm
Tiling algorithm (Step1)
Cosider Pnm and bnm (n, m > 2). We divide it into two tiling problems
over P1m for b1m and P(n−1)m for b(n−1)m, where
b1m(i, j) =



bnm(i, j) (i = 0, 1),
bnm(0, j) (i = 2, j = 1, 2),
¬ bnm(0, j) (i = 2, 3 ≤ j ≤ m),
b(n−1)m(i, j) =



b1m(2, j) (i = 0),
bnm(i + 1, j) (i > 0).
For a tiling over P1m, we solve it by
e(i, j) =



b1m(0, j) (i = 0),
b1m(2, j) (i = 1),
e (1, j) =



bnm(1, 0) (j = 0),
¬ bnm(1, 0) ∧ ¬ bnm(1, m + 1) (j = 1),
bnm(1, m + 1) (2 ≤ j ≤ m + 1).
Verification of a brick Wang tiling algorithm
Step1: Pnm → P(n−1)m → · · · → P2m
We abbreviate bij = bnm(i, j).
P(n−1)m
b0,1 b0,2 b0,3 b0,m
b0,1 b0,2 ¬b0,3 ¬b0,m
b1,0
b2,0
...
bn,0
b1,m+1
b2,m+1
...
bn,m+1
⇔ ⇔♥ ♦ ♦ ♦
♥= ¬b1,0 ∧ ¬b1,m+1
♦= b1,m+1
!"# !$# !$$
%&'()*+ , , , , , , %&'()$+  , , , , ,%&'()-+
Verification of a brick Wang tiling algorithm
Tiling algorithm (Step2)
Consider P2m and b2m (m > 2). We divide it into two tiling problem
over P21 for b21 and P2(m−1) for b2(m−1), where
b21(i, j) =



b2m(i, j) (j = 0, 1),
b2m(i, 0) (j = 2),
b2(m−1)(i, j) =



b21(i, 2) (j = 0),
b2m(i, j + 1) (j > 0),
For a tiling over P21, we solve it by
e(i, 1) =



b2m(0, 1) (i = 0),
¬ b2m(0, 1) ∧ ¬ b2m(3, 1) (i = 1),
b2m(3, 1) (i = 2),
e (i, j) =



b21(i, 0) (j = 0),
b21(i, 2) (j = 1).
Verification of a brick Wang tiling algorithm
Step2: P2m → P2(m−1) → · · · → P22
We abbreviate bij = b2m(i, j).
P2(m−1)
b1,0
b2,0
b1,0
b2,0
b1,m+1
b2,m+1
b0,1 b0,2 · · · b0,m
b3,1 b3,2
· · · b3,m
⇔
⇔
♥ ♥= ¬b0,1 ∧ ¬b3,1
!"# !$# !$$
%&'()*+ , , , , , , %&'()$+  , , , , ,%&'()-+
Verification of a brick Wang tiling algorithm
Tiling algorithm (Step3)
Consider P22 and b. We abbreviate bij = b(i, j), eij = e(i, j) and
e
ij
= e(i, j). Since it satisfies boundary conditions, we have
e0j = b0j, e2j = b3j, e
i0
= bi0 and e
i2
= bi3 (i = 0, 1, j = 0, 1).
So all we need is defining colors e11, e12, e
11
and e
21
. According
to the equality conditions of b10 = b13, b20 = b23, b01 = b31 and
b02 = b32, we define those values for e and e . We summarize
them in the Table.
Verification of a brick Wang tiling algorithm
Tiling algorithm (implementation)
A Coq implementation of (e, e ) is a pair of functions e_nm and
e’_nm, as shown in the followings:
Fixpoint e_nm (n m : nat) : boundary -> edge :=
fun b : boundary =>
match n with
| 0 | 1 => e_1m b
| 2 => enm_to_emn (fun b’ => e’_n2 m b’) b
| S n’ => fun (i j : nat) =>
match i with
| 0 => (bSnm_to_b1m m b) 0 j
| S i’ => e_nm n’ m (bSnm_to_bnm m b) i’ j
end
end.
Fixpoint e’_nm (n m : nat) : boundary -> edge
.... Similar to e_nm ....
end.
Verification of a brick Wang tiling algorithm
Verification using Coq (1)
We verify conditions, Boundary_i, Boundary_j, and Brick.
Definition Boundary_i (n m : nat)(b : boundary)(e’ : edge) :=
forall i : nat,
e’ i 0 == b i 0 / e’ i m == b i (S m) / i = 0 / n < i.
Definition Boundary_j (n m : nat)(b : boundary)(e : edge) :=
forall j : nat,
e 0 j == b 0 j / e n j == b (S n) j / j = 0 / m < j.
Definition Brick (n m : nat)(e e’ : edge) :=
forall i j : nat,
(e i (S j) == e (S i) (S j) / e’ (S i) j != e’ (S i) (S j)) 
(e i (S j) != e (S i) (S j) / e’ (S i) j == e’ (S i) (S j)) 
n <= i / m <= j.
Verification of a brick Wang tiling algorithm
Verification using Coq (2)
The validities of our algorithm (Step 3), (Step 2) and (Step 1) are
showed in P22_Valid_nm, P2m_Valid_nm and e_nm_Valid,
respectively.
Definition Valid_nm (n m : nat)(b : boundary) :=
Boundary_i n m b (e’_nm n m b)
/ Boundary_j n m b (e_nm n m b)
/ Brick n m (e_nm n m b) (e’_nm n m b).
Lemma P22_Valid_nm : forall b : boundary , Valid_nm 2 2 b.
Lemma Valid_nm_ind_2m : forall (b : boundary)(m : nat),
2 <= m -> (forall b’ : boundary , Valid_nm 2 m b’)
-> Valid_nm 2 (S m) b.
Lemma P2m_Valid_nm : forall (b : boundary)(m : nat), 2 <= m
-> Valid_nm 2 m b.
Lemma Valid_nm_ind_nm : forall (b : boundary)(n m : nat),
2 <= n -> 2 <= m -> (forall b’ : boundary , Valid_nm n m b’)
-> Valid_nm (S n) m b.
Theorem e_nm_Valid : forall (b : boundary)(n m : nat),
2 <= n -> 2 <= m -> Valid_nm n m b.
Verification of a brick Wang tiling algorithm
Verification using Coq (3)
Main theorem about the tileablity is translated into a theorem
Pnm_Tileable in Coq.
Theorem (A.D-Jourdan 2015)
If |C| ≥ 3, then a rectangular region Pnm is tileable for any n ≥ 2
and m ≥ 2.
Theorem Pnm_Tileable : forall (b : boundary)(n m : nat),
2 <= n -> 2 <= m
-> exists (e e’ : edge), Valid n m b e e’.
Proof.
move => b n m H0 H1.
exists (e_nm n m b).
exists (e’_nm n m b).
apply (e_nm_Valid b n m H0 H1).
Qed.
Verification of a brick Wang tiling algorithm
Conclusion
A brick Wang tiles set is a tile set introduced to model the texture of
wall patterns in computer graphics [A.D-Jourdan 2015].
We implemented a tiling algorithm with a proof of its correctness.
We also show a formal proof of an existence of a tiling of any given
brick Wang tile set for any rectangular region larger than 2 × 2.
We reduce the problem into a tiling problem of a 2 × 2 region.
We divide the boundary colorings into finite classes and give a
solution for each class.
We proved formally that the enumeration of classes are sufficient
and the solution is correct for each class.
Verification of a brick Wang tiling algorithm
Appendix
All source codes and proofs are in the github repository
https://github.com/KyushuUniversityMathematics/BrickCornerWangTiling.
To check examples following instructions.
1 To extract functions e_nm and e’_nm.
coqc TilingProgram.v
There exists an OCaml file TilingProgam.ml that contains examples of
boundary colorings, such as boundary44a and boundary44c.
2 To execute rendering example file.
ocamlc TilingProgram.ml Tilingrender.ml -o TilingRender
There exist rendered images such as b44a.svg and b44c.svg.
3 Some external program such as rsvg-convert may be used to convert the
image format from svg to png.
eg. svg-convert b44a.svg > b44a.png

More Related Content

What's hot

B. Sazdovic - Noncommutativity and T-duality
B. Sazdovic - Noncommutativity and T-dualityB. Sazdovic - Noncommutativity and T-duality
B. Sazdovic - Noncommutativity and T-dualitySEENET-MTP
 
short course on Subsurface stochastic modelling and geostatistics
short course on Subsurface stochastic modelling and geostatisticsshort course on Subsurface stochastic modelling and geostatistics
short course on Subsurface stochastic modelling and geostatisticsAmro Elfeki
 
Generalized Nonlinear Models in R
Generalized Nonlinear Models in RGeneralized Nonlinear Models in R
Generalized Nonlinear Models in Rhtstatistics
 
Lesson18 Double Integrals Over Rectangles Slides
Lesson18   Double Integrals Over Rectangles SlidesLesson18   Double Integrals Over Rectangles Slides
Lesson18 Double Integrals Over Rectangles SlidesMatthew Leingang
 
Lesson 19: Double Integrals over General Regions
Lesson 19: Double Integrals over General RegionsLesson 19: Double Integrals over General Regions
Lesson 19: Double Integrals over General RegionsMatthew Leingang
 
Mesh Processing Course : Geodesic Sampling
Mesh Processing Course : Geodesic SamplingMesh Processing Course : Geodesic Sampling
Mesh Processing Course : Geodesic SamplingGabriel Peyré
 
Mesh Processing Course : Multiresolution
Mesh Processing Course : MultiresolutionMesh Processing Course : Multiresolution
Mesh Processing Course : MultiresolutionGabriel Peyré
 
Calculus of variations & solution manual russak
Calculus of variations & solution manual   russakCalculus of variations & solution manual   russak
Calculus of variations & solution manual russakJosé Pallo
 
Random Matrix Theory and Machine Learning - Part 2
Random Matrix Theory and Machine Learning - Part 2Random Matrix Theory and Machine Learning - Part 2
Random Matrix Theory and Machine Learning - Part 2Fabian Pedregosa
 
Image Processing 3
Image Processing 3Image Processing 3
Image Processing 3jainatin
 
optimal control principle slided
optimal control principle slidedoptimal control principle slided
optimal control principle slidedKarthi Ramachandran
 
Rao-Blackwellisation schemes for accelerating Metropolis-Hastings algorithms
Rao-Blackwellisation schemes for accelerating Metropolis-Hastings algorithmsRao-Blackwellisation schemes for accelerating Metropolis-Hastings algorithms
Rao-Blackwellisation schemes for accelerating Metropolis-Hastings algorithmsChristian Robert
 
Bounded variables new
Bounded variables newBounded variables new
Bounded variables newSamo Alwatan
 
Open GL 04 linealgos
Open GL 04 linealgosOpen GL 04 linealgos
Open GL 04 linealgosRoziq Bahtiar
 
Lines and curves algorithms
Lines and curves algorithmsLines and curves algorithms
Lines and curves algorithmsMohammad Sadiq
 
Geodesic Method in Computer Vision and Graphics
Geodesic Method in Computer Vision and GraphicsGeodesic Method in Computer Vision and Graphics
Geodesic Method in Computer Vision and GraphicsGabriel Peyré
 

What's hot (20)

CMU_13
CMU_13CMU_13
CMU_13
 
B. Sazdovic - Noncommutativity and T-duality
B. Sazdovic - Noncommutativity and T-dualityB. Sazdovic - Noncommutativity and T-duality
B. Sazdovic - Noncommutativity and T-duality
 
short course on Subsurface stochastic modelling and geostatistics
short course on Subsurface stochastic modelling and geostatisticsshort course on Subsurface stochastic modelling and geostatistics
short course on Subsurface stochastic modelling and geostatistics
 
Generalized Nonlinear Models in R
Generalized Nonlinear Models in RGeneralized Nonlinear Models in R
Generalized Nonlinear Models in R
 
Lesson18 Double Integrals Over Rectangles Slides
Lesson18   Double Integrals Over Rectangles SlidesLesson18   Double Integrals Over Rectangles Slides
Lesson18 Double Integrals Over Rectangles Slides
 
Lesson 19: Double Integrals over General Regions
Lesson 19: Double Integrals over General RegionsLesson 19: Double Integrals over General Regions
Lesson 19: Double Integrals over General Regions
 
Mesh Processing Course : Geodesic Sampling
Mesh Processing Course : Geodesic SamplingMesh Processing Course : Geodesic Sampling
Mesh Processing Course : Geodesic Sampling
 
Mesh Processing Course : Multiresolution
Mesh Processing Course : MultiresolutionMesh Processing Course : Multiresolution
Mesh Processing Course : Multiresolution
 
Chapter 5 (maths 3)
Chapter 5 (maths 3)Chapter 5 (maths 3)
Chapter 5 (maths 3)
 
Computer graphics 2
Computer graphics 2Computer graphics 2
Computer graphics 2
 
Calculus of variations & solution manual russak
Calculus of variations & solution manual   russakCalculus of variations & solution manual   russak
Calculus of variations & solution manual russak
 
Random Matrix Theory and Machine Learning - Part 2
Random Matrix Theory and Machine Learning - Part 2Random Matrix Theory and Machine Learning - Part 2
Random Matrix Theory and Machine Learning - Part 2
 
Chapter 4 (maths 3)
Chapter 4 (maths 3)Chapter 4 (maths 3)
Chapter 4 (maths 3)
 
Image Processing 3
Image Processing 3Image Processing 3
Image Processing 3
 
optimal control principle slided
optimal control principle slidedoptimal control principle slided
optimal control principle slided
 
Rao-Blackwellisation schemes for accelerating Metropolis-Hastings algorithms
Rao-Blackwellisation schemes for accelerating Metropolis-Hastings algorithmsRao-Blackwellisation schemes for accelerating Metropolis-Hastings algorithms
Rao-Blackwellisation schemes for accelerating Metropolis-Hastings algorithms
 
Bounded variables new
Bounded variables newBounded variables new
Bounded variables new
 
Open GL 04 linealgos
Open GL 04 linealgosOpen GL 04 linealgos
Open GL 04 linealgos
 
Lines and curves algorithms
Lines and curves algorithmsLines and curves algorithms
Lines and curves algorithms
 
Geodesic Method in Computer Vision and Graphics
Geodesic Method in Computer Vision and GraphicsGeodesic Method in Computer Vision and Graphics
Geodesic Method in Computer Vision and Graphics
 

Viewers also liked (13)

Bim edv9909
Bim edv9909Bim edv9909
Bim edv9909
 
Ludis
LudisLudis
Ludis
 
UPDATED RESUME 05022016
UPDATED RESUME 05022016UPDATED RESUME 05022016
UPDATED RESUME 05022016
 
приложение 3
приложение 3приложение 3
приложение 3
 
CP-inspired
CP-inspiredCP-inspired
CP-inspired
 
Commtech
CommtechCommtech
Commtech
 
Dffhj
DffhjDffhj
Dffhj
 
Húsvét
HúsvétHúsvét
Húsvét
 
DMA Analytic Challenge 2015 final
DMA Analytic Challenge 2015 finalDMA Analytic Challenge 2015 final
DMA Analytic Challenge 2015 final
 
Commtech katherineclark
Commtech katherineclarkCommtech katherineclark
Commtech katherineclark
 
Rahul Pati
Rahul PatiRahul Pati
Rahul Pati
 
LOR (Irina Vassiyeva)
LOR (Irina Vassiyeva)LOR (Irina Vassiyeva)
LOR (Irina Vassiyeva)
 
Arq232399
Arq232399Arq232399
Arq232399
 

Similar to Verification of a brick wang tiling algorithm

Introduction to CAGD for Inverse Problems
Introduction to CAGD for Inverse ProblemsIntroduction to CAGD for Inverse Problems
Introduction to CAGD for Inverse ProblemsDelta Pi Systems
 
Using blurred images to assess damage in bridge structures?
Using blurred images to assess damage in bridge structures?Using blurred images to assess damage in bridge structures?
Using blurred images to assess damage in bridge structures? Alessandro Palmeri
 
Tenser Product of Representation for the Group Cn
Tenser Product of Representation for the Group CnTenser Product of Representation for the Group Cn
Tenser Product of Representation for the Group CnIJERA Editor
 
International journal of engineering and mathematical modelling vol2 no1_2015_1
International journal of engineering and mathematical modelling vol2 no1_2015_1International journal of engineering and mathematical modelling vol2 no1_2015_1
International journal of engineering and mathematical modelling vol2 no1_2015_1IJEMM
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph MotifAMR koura
 
Stochastic Control and Information Theoretic Dualities (Complete Version)
Stochastic Control and Information Theoretic Dualities (Complete Version)Stochastic Control and Information Theoretic Dualities (Complete Version)
Stochastic Control and Information Theoretic Dualities (Complete Version)Haruki Nishimura
 
The proof complexity of matrix algebra - Newton Institute, Cambridge 2006
The proof complexity of matrix algebra - Newton Institute, Cambridge 2006The proof complexity of matrix algebra - Newton Institute, Cambridge 2006
The proof complexity of matrix algebra - Newton Institute, Cambridge 2006Michael Soltys
 
Lesson 7: Vector-valued functions
Lesson 7: Vector-valued functionsLesson 7: Vector-valued functions
Lesson 7: Vector-valued functionsMatthew Leingang
 
Hull White model presentation
Hull White model presentationHull White model presentation
Hull White model presentationStephan Chang
 
3D Curve Project
3D Curve Project3D Curve Project
3D Curve Projectgraphitech
 
2015 - Nonlinear Eigenvalue Problems And Contour Integrals
2015 - Nonlinear Eigenvalue Problems And Contour Integrals2015 - Nonlinear Eigenvalue Problems And Contour Integrals
2015 - Nonlinear Eigenvalue Problems And Contour IntegralsWendy Berg
 
Proyecto diseño tablestaca muro milan
Proyecto diseño tablestaca  muro milanProyecto diseño tablestaca  muro milan
Proyecto diseño tablestaca muro milanTATIANAOLIVA1
 

Similar to Verification of a brick wang tiling algorithm (20)

Introduction to CAGD for Inverse Problems
Introduction to CAGD for Inverse ProblemsIntroduction to CAGD for Inverse Problems
Introduction to CAGD for Inverse Problems
 
Using blurred images to assess damage in bridge structures?
Using blurred images to assess damage in bridge structures?Using blurred images to assess damage in bridge structures?
Using blurred images to assess damage in bridge structures?
 
Tenser Product of Representation for the Group Cn
Tenser Product of Representation for the Group CnTenser Product of Representation for the Group Cn
Tenser Product of Representation for the Group Cn
 
International journal of engineering and mathematical modelling vol2 no1_2015_1
International journal of engineering and mathematical modelling vol2 no1_2015_1International journal of engineering and mathematical modelling vol2 no1_2015_1
International journal of engineering and mathematical modelling vol2 no1_2015_1
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph Motif
 
Ps02 cmth03 unit 1
Ps02 cmth03 unit 1Ps02 cmth03 unit 1
Ps02 cmth03 unit 1
 
Online Signals and Systems Assignment Help
Online Signals and Systems Assignment HelpOnline Signals and Systems Assignment Help
Online Signals and Systems Assignment Help
 
5. Recursive.ppt
5. Recursive.ppt5. Recursive.ppt
5. Recursive.ppt
 
Stochastic Control and Information Theoretic Dualities (Complete Version)
Stochastic Control and Information Theoretic Dualities (Complete Version)Stochastic Control and Information Theoretic Dualities (Complete Version)
Stochastic Control and Information Theoretic Dualities (Complete Version)
 
The proof complexity of matrix algebra - Newton Institute, Cambridge 2006
The proof complexity of matrix algebra - Newton Institute, Cambridge 2006The proof complexity of matrix algebra - Newton Institute, Cambridge 2006
The proof complexity of matrix algebra - Newton Institute, Cambridge 2006
 
Vectors and Kinematics
Vectors and KinematicsVectors and Kinematics
Vectors and Kinematics
 
Lesson 7: Vector-valued functions
Lesson 7: Vector-valued functionsLesson 7: Vector-valued functions
Lesson 7: Vector-valued functions
 
Asymptotic Analysis.ppt
Asymptotic Analysis.pptAsymptotic Analysis.ppt
Asymptotic Analysis.ppt
 
cheb_conf_aksenov.pdf
cheb_conf_aksenov.pdfcheb_conf_aksenov.pdf
cheb_conf_aksenov.pdf
 
Hull White model presentation
Hull White model presentationHull White model presentation
Hull White model presentation
 
3D Curve Project
3D Curve Project3D Curve Project
3D Curve Project
 
2015 - Nonlinear Eigenvalue Problems And Contour Integrals
2015 - Nonlinear Eigenvalue Problems And Contour Integrals2015 - Nonlinear Eigenvalue Problems And Contour Integrals
2015 - Nonlinear Eigenvalue Problems And Contour Integrals
 
talk_NASPDE.pdf
talk_NASPDE.pdftalk_NASPDE.pdf
talk_NASPDE.pdf
 
Proyecto diseño tablestaca muro milan
Proyecto diseño tablestaca  muro milanProyecto diseño tablestaca  muro milan
Proyecto diseño tablestaca muro milan
 
kactl.pdf
kactl.pdfkactl.pdf
kactl.pdf
 

More from Yoshihiro Mizoguchi

DockerでAlmaLinux(web, php, pukiwiki)環境構築
DockerでAlmaLinux(web, php, pukiwiki)環境構築DockerでAlmaLinux(web, php, pukiwiki)環境構築
DockerでAlmaLinux(web, php, pukiwiki)環境構築Yoshihiro Mizoguchi
 
DockerでCoq インストール
DockerでCoq インストールDockerでCoq インストール
DockerでCoq インストールYoshihiro Mizoguchi
 
Homebrewによるソフトウェアの実装 (3)
Homebrewによるソフトウェアの実装 (3)Homebrewによるソフトウェアの実装 (3)
Homebrewによるソフトウェアの実装 (3)Yoshihiro Mizoguchi
 
Homebrewによるソフトウェアの実装 (2)
Homebrewによるソフトウェアの実装 (2)Homebrewによるソフトウェアの実装 (2)
Homebrewによるソフトウェアの実装 (2)Yoshihiro Mizoguchi
 
Homebrewによるソフトウェアの実装(1)
Homebrewによるソフトウェアの実装(1)Homebrewによるソフトウェアの実装(1)
Homebrewによるソフトウェアの実装(1)Yoshihiro Mizoguchi
 
Overleafを使った文書作成
Overleafを使った文書作成Overleafを使った文書作成
Overleafを使った文書作成Yoshihiro Mizoguchi
 
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional O...
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional  O...Symbolic Computations in Conformal Geometric Algebra for Three Dimensional  O...
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional O...Yoshihiro Mizoguchi
 
Theory of Relational Calculus and its Formalization
Theory of Relational Calculus and its FormalizationTheory of Relational Calculus and its Formalization
Theory of Relational Calculus and its FormalizationYoshihiro Mizoguchi
 
数式処理ソフトMathematicaで数学の問題を解く
数式処理ソフトMathematicaで数学の問題を解く数式処理ソフトMathematicaで数学の問題を解く
数式処理ソフトMathematicaで数学の問題を解くYoshihiro Mizoguchi
 
計算機を用いて数学の問題を解くということ
計算機を用いて数学の問題を解くということ計算機を用いて数学の問題を解くということ
計算機を用いて数学の問題を解くということYoshihiro Mizoguchi
 
A Coq Library for the Theory of Relational Calculus
A Coq Library for the Theory of Relational CalculusA Coq Library for the Theory of Relational Calculus
A Coq Library for the Theory of Relational CalculusYoshihiro Mizoguchi
 
Algebras for programming languages
Algebras for programming languagesAlgebras for programming languages
Algebras for programming languagesYoshihiro Mizoguchi
 
定理証明支援系Coqについて
定理証明支援系Coqについて定理証明支援系Coqについて
定理証明支援系CoqについてYoshihiro Mizoguchi
 
Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明Yoshihiro Mizoguchi
 
Mac bookでwebサーバーを起動する方法
Mac bookでwebサーバーを起動する方法Mac bookでwebサーバーを起動する方法
Mac bookでwebサーバーを起動する方法Yoshihiro Mizoguchi
 
有限オートマトンとスティッカー系に関するCoqによる形式証明について
有限オートマトンとスティッカー系に関するCoqによる形式証明について有限オートマトンとスティッカー系に関するCoqによる形式証明について
有限オートマトンとスティッカー系に関するCoqによる形式証明についてYoshihiro Mizoguchi
 

More from Yoshihiro Mizoguchi (20)

DockerでAlmaLinux(web, php, pukiwiki)環境構築
DockerでAlmaLinux(web, php, pukiwiki)環境構築DockerでAlmaLinux(web, php, pukiwiki)環境構築
DockerでAlmaLinux(web, php, pukiwiki)環境構築
 
DockerでCoq インストール
DockerでCoq インストールDockerでCoq インストール
DockerでCoq インストール
 
Homebrewによるソフトウェアの実装 (3)
Homebrewによるソフトウェアの実装 (3)Homebrewによるソフトウェアの実装 (3)
Homebrewによるソフトウェアの実装 (3)
 
Homebrewによるソフトウェアの実装 (2)
Homebrewによるソフトウェアの実装 (2)Homebrewによるソフトウェアの実装 (2)
Homebrewによるソフトウェアの実装 (2)
 
Homebrewによるソフトウェアの実装(1)
Homebrewによるソフトウェアの実装(1)Homebrewによるソフトウェアの実装(1)
Homebrewによるソフトウェアの実装(1)
 
Overleafを使った文書作成
Overleafを使った文書作成Overleafを使った文書作成
Overleafを使った文書作成
 
Amazon AWSの使い方
Amazon AWSの使い方Amazon AWSの使い方
Amazon AWSの使い方
 
ShareLaTeXの使い方
ShareLaTeXの使い方ShareLaTeXの使い方
ShareLaTeXの使い方
 
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional O...
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional  O...Symbolic Computations in Conformal Geometric Algebra for Three Dimensional  O...
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional O...
 
Theory of Relational Calculus and its Formalization
Theory of Relational Calculus and its FormalizationTheory of Relational Calculus and its Formalization
Theory of Relational Calculus and its Formalization
 
数式処理ソフトMathematicaで数学の問題を解く
数式処理ソフトMathematicaで数学の問題を解く数式処理ソフトMathematicaで数学の問題を解く
数式処理ソフトMathematicaで数学の問題を解く
 
計算機を用いて数学の問題を解くということ
計算機を用いて数学の問題を解くということ計算機を用いて数学の問題を解くということ
計算機を用いて数学の問題を解くということ
 
A Coq Library for the Theory of Relational Calculus
A Coq Library for the Theory of Relational CalculusA Coq Library for the Theory of Relational Calculus
A Coq Library for the Theory of Relational Calculus
 
Algebras for programming languages
Algebras for programming languagesAlgebras for programming languages
Algebras for programming languages
 
定理証明支援系Coqについて
定理証明支援系Coqについて定理証明支援系Coqについて
定理証明支援系Coqについて
 
Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明
 
Coqチュートリアル
CoqチュートリアルCoqチュートリアル
Coqチュートリアル
 
Mac bookでwebサーバーを起動する方法
Mac bookでwebサーバーを起動する方法Mac bookでwebサーバーを起動する方法
Mac bookでwebサーバーを起動する方法
 
有限オートマトンとスティッカー系に関するCoqによる形式証明について
有限オートマトンとスティッカー系に関するCoqによる形式証明について有限オートマトンとスティッカー系に関するCoqによる形式証明について
有限オートマトンとスティッカー系に関するCoqによる形式証明について
 
計算可能実数とは
計算可能実数とは計算可能実数とは
計算可能実数とは
 

Recently uploaded

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 

Verification of a brick wang tiling algorithm

  • 1. Verification of a brick Wang tiling algorithm Verification of a brick Wang tiling algorithm Toshiaki Matsushima1 Yoshihiro Mizoguchi2 Alexandre Derouet-Jourdan3 1 Graduate School of Mathematics, Kyushu University 2 Institute of Mathematics for Industry, Kyushu University 3 OLM Digital Inc. March 31, 2016 SCSS2016 at Ochanomizu University, Tokyo
  • 2. Verification of a brick Wang tiling algorithm Wang Tiling (Hao Wang 1961) A tile set is a finite set of Wang tiles, unit square tiles with colored edges. In general, Wang tiling problem is a problem to tile the (infinite) Euclidean plane using arbitrarily many copies of the tiles in the given tile set. Tiles are arranged side by side with matching colors. Example of Wang tessellation with 13 tiles (cf. Wikipedia)
  • 3. Verification of a brick Wang tiling algorithm Wang Tiling for Theoreticians Decidability The existence of an algorithm to decide whether a given finite set of Wang tiles can tile the plane. Answer: NO! (Robert Berger 1966) It is equivalent to the halting problem of the Turing machine. Periodic tiling If a finite set of Wang tiles can tile the plane, then there exists also a periodic tiling. Answer: NO! (Counter examples, 20426 tiles (Berger 1966), 14 tiles (Kari 1996) , 13 tiles (Culik 1996), 11 tiles (Jeandel & Rao 2015)∗).
  • 4. Verification of a brick Wang tiling algorithm Wang Tiling for Computer Graphics Aperiodic texture mapping (by J. Stam), European Research Consortium for Informatics and Mathematics (ERCIM), 1997. [The first use of Wang Tiles for texture synthesis.] Tilings and Patterns (by B. Grunbaum, et.al.), H.Freeman and Company, 1987. [Deterministic algorithm using 16 tiles.] Wang Tiles for Image and Texture Generation (by M.F.Cohen, et.al.), ACM. Trans. Graph. 22(3),287-294, 2003. [Deterministic (sequential) algorithm using 8 tiles for 4 colors.] Recursive Wang Tiles for Real-Time Blue Noise (by J. Kopf, et.al.) SIGGRAPH 2006. [Stochastic algorithm using 2K2 tiles for K colors.]
  • 5. Verification of a brick Wang tiling algorithm Wang Tiling Method Pros A very efficient simple method to produce complex structures such as aperiodic tiling. A control parameter is a choice of a tile set, this gives intuitional operations to control result tilings. Cons It is undecidable to check a given tile set can tile the plane. It is decidable to check a given tile set can tile a bounded region with a given boundary condition. But it is hard to check it for any boundary condition. Our Approach We introduce a class of tile sets and we show that any tile sets in our class can always tile a rectangular region for any boundary condition.
  • 6. Verification of a brick Wang tiling algorithm Abstract A brick Wang tiles set is a tile set introduced to model wall patterns in computer graphics [A.D-Jourdan 2015]. We implemented a tiling algorithm with a proof of its correctness. We also show a formal proof of an existence of a tiling of any given brick Wang tile set for any rectangular region larger than 2 × 2. We reduce the problem into a tiling problem of a 2 × 2 region. We divide the boundary colorings into finite classes and give a solution for each class. We proved formally that the enumeration of classes are sufficient and the solution is correct for each class.
  • 7. Verification of a brick Wang tiling algorithm Brick Wang tiling Let C = {i | 0 ≤ i ≤ k} (k > 0) be a finite set of colors. Definition (Wang Tile) A Wang tile is a function w : {t, l, b, r} → C. Definition (Brick Wang Tile) A Wang tile w is said to be a brick Wang tile if w(t) w(b) ∧ w(l) = w(r) or w(t) = w(b) ∧ w(l) w(r). We define the set WC of all brick Wang tiles for a given color set C. Values w(t), w(l), w(b), and w(r) denote the colors of the top, left, bottom, and right edges, respectively, of a tile w. brick: not brick: where C = { , , , , , }.
  • 8. Verification of a brick Wang tiling algorithm Example Let the color set C = {0.2, 0.4, 0.6, 0.8}. Consider a brick Wang tile in the left Figure, where w(l) = w(r) = 0.6, w(t) = 0.8, and w(b) = 0.4. We draw three lines on a square tile, the vertices of which are {(0, 0), (0, 1), (1, 1), (1, 0)} according to the values of w(l), w(r), w(t), and w(b). Since w(l) = w(r), we draw a line from left to right. For this case, we draw a line from (0, 0.6) to (1, 0.6). Since w(t) w(b), we draw two perpendicular lines from (0.8, 1) and (0.4, 0) to the horizontal line. By tiling these brick Wang tiles, a brick wall pattern texture having different size of bricks can be created.
  • 9. Verification of a brick Wang tiling algorithm Tiling algorithm (1) Let C = {i | 0 ≤ i ≤ k} and |C| ≥ 3. We use a notation ¬c to indicate a color different from c ∈ C. ¬c = min{c | c c} ¬c1 ∧ ¬c2 = min{c | c c1 ∧ c c2} Since we use an extracted function as a function over the type integers, we consider the domain of an every function as nat in Coq. To describe properties over a finite set C and a finite region Pnm, we use some bounding conditions for a variable in nat. We do not care about a values of functions b, e and e outside of the region Pnm.
  • 10. Verification of a brick Wang tiling algorithm Brick Wang tiling Definition A rectangular region {(i, j) ∈ N × N | 1 ≤ i ≤ n, 1 ≤ j ≤ m} is denoted by Pnm. A tiling is a function T : Pnm → WC , and we denote T (i, j) by Ti,j. A boundary (coloring) over Pnm is a function bnm : {0, n +1}×{j | 1 ≤ j ≤ m}∪{i | 1 ≤ i ≤ n}×{0, m +1} → C.
  • 11. Verification of a brick Wang tiling algorithm Valid tiling Definition Let Pnm be a rectangular region, and let bnm be a boundary coloring over Pnm. A tiling T is valid for bnm if Ti,j(t) =    bnm(0, j) (i = 1, 1 ≤ j ≤ m) Ti−1,j(b) (2 ≤ i ≤ n, 1 ≤ j ≤ m), Tn,j(b) = bnm(n + 1, j) (1 ≤ j ≤ m), Ti,j(l) =    bnm(i, 0) (1 ≤ i ≤ n, j = 1) Ti,j−1(r) (1 ≤ i ≤ n, 2 ≤ j ≤ m), and Ti,m(r) = bnm(i, m + 1) (1 ≤ i ≤ n). Ti−1,j Ti,j−1 Ti,j Ti,j+1 Ti+1,j
  • 12. Verification of a brick Wang tiling algorithm Edge functions Definition For a valid tiling T for bnm over Pnm, we define horizontal edge function eT : N → N → C and vertical edge function e T : N → N → C as follows: eT (i, j) =    Ti+1,j(t) (0 ≤ i ≤ n − 1, 1 ≤ j ≤ m) Tn,j(b) (i = n, 1 ≤ j ≤ m) 0 (otherwise) eT (i, j) =    Ti,j+1(l) (1 ≤ i ≤ n, 0 ≤ j ≤ m − 1) Ti,m(r) (1 ≤ i ≤ n, j = m) 0 (otherwise)
  • 13. Verification of a brick Wang tiling algorithm Valid edge functions Lemma Let T be a valid tiling for a boundary coloring bnm over a rectangular region Pnm. 1 eT (0, j) = b(0, j) (1 ≤ j ≤ m), eT (n, j) = b(n + 1, j) (1 ≤ j ≤ m). 2 e T (i, 0) = b(i, 0) (1 ≤ i ≤ n), e T (i, m) = b(i, m + 1) (1 ≤ i ≤ n).
  • 14. Verification of a brick Wang tiling algorithm Brick Pair Definition Let Pnm be a rectangular region, e : N → N → C and e : N → N → C. A pair (e, e ) is a brick pair over Pnm, if (e(i − 1, j) = e(i, j) ∧ e (i, j − 1) e (i, j)), or (e(i − 1, j) e(i, j) ∧ e (i, j − 1) = e (i, j)) for 1 ≤ i ≤ n, 1 ≤ j ≤ m. brick: not brick: Proposition Let Pnm be a rectangular region, and let (e, e ) be a brick pair over Pnm. Then, there exists a boundary coloring bnm over Pnm and a valid tiling T over Pnm for bnm such that (eT , e T ) = (e, e ). We denote a boundary coloring bnm and a tiling T in Proposition by bnm(e, e ) and T (e, e ), respectively.
  • 15. Verification of a brick Wang tiling algorithm Tileable(1) Definition (Tileable) Let n and m be natural numbers. Then, Pnm is tileable if there exists a valid tiling for any boundary coloring bnm over Pnm. Lemma (Three boundary condition) Let WC be the set of all brick Wang tiles for a given color set C. Then we have {(w(l), w(t), w(r)) | w ∈ WC } = {(w(t), w(r), w(b)) | w ∈ WC } = {(w(r), w(b), w(l)) | w ∈ WC } = {(w(b), w(l), w(t)) | w ∈ WC } = C3 .
  • 16. Verification of a brick Wang tiling algorithm Tileable(2) Proposition (A.D-Jourdan 2015) 1 P12 is not tileable (i.e., there exists a boundary coloring such that there is no valid tiling). 2 P22 is not tileable if |C| = 2. Theorem (A.D-Jourdan 2015) If |C| ≥ 3, then a rectangular region Pnm is tileable for any n ≥ 2 and m ≥ 2.
  • 17. Verification of a brick Wang tiling algorithm Tiling algorithm (2) Our algorithm solve a problem over a region Pnm for a given boundary condition bnm. That is it finds a brick pair (e, e ) from a given boundary coloring bnm over a region Pnm such that T (e, e ) is valid. Our algorithm consists of three parts: (Step1) To reduce a tiling problem over Pnm to P2m, (Step2) To reduce a tiling problem over P2m to P22, and (Step3) To solve a tiling problem over P22. !"# !$# !$$ %&'()*+ , , , , , , %&'()$+  , , , , ,%&'()-+
  • 18. Verification of a brick Wang tiling algorithm Tiling algorithm (Step1) Cosider Pnm and bnm (n, m > 2). We divide it into two tiling problems over P1m for b1m and P(n−1)m for b(n−1)m, where b1m(i, j) =    bnm(i, j) (i = 0, 1), bnm(0, j) (i = 2, j = 1, 2), ¬ bnm(0, j) (i = 2, 3 ≤ j ≤ m), b(n−1)m(i, j) =    b1m(2, j) (i = 0), bnm(i + 1, j) (i > 0). For a tiling over P1m, we solve it by e(i, j) =    b1m(0, j) (i = 0), b1m(2, j) (i = 1), e (1, j) =    bnm(1, 0) (j = 0), ¬ bnm(1, 0) ∧ ¬ bnm(1, m + 1) (j = 1), bnm(1, m + 1) (2 ≤ j ≤ m + 1).
  • 19. Verification of a brick Wang tiling algorithm Step1: Pnm → P(n−1)m → · · · → P2m We abbreviate bij = bnm(i, j). P(n−1)m b0,1 b0,2 b0,3 b0,m b0,1 b0,2 ¬b0,3 ¬b0,m b1,0 b2,0 ... bn,0 b1,m+1 b2,m+1 ... bn,m+1 ⇔ ⇔♥ ♦ ♦ ♦ ♥= ¬b1,0 ∧ ¬b1,m+1 ♦= b1,m+1 !"# !$# !$$ %&'()*+ , , , , , , %&'()$+  , , , , ,%&'()-+
  • 20. Verification of a brick Wang tiling algorithm Tiling algorithm (Step2) Consider P2m and b2m (m > 2). We divide it into two tiling problem over P21 for b21 and P2(m−1) for b2(m−1), where b21(i, j) =    b2m(i, j) (j = 0, 1), b2m(i, 0) (j = 2), b2(m−1)(i, j) =    b21(i, 2) (j = 0), b2m(i, j + 1) (j > 0), For a tiling over P21, we solve it by e(i, 1) =    b2m(0, 1) (i = 0), ¬ b2m(0, 1) ∧ ¬ b2m(3, 1) (i = 1), b2m(3, 1) (i = 2), e (i, j) =    b21(i, 0) (j = 0), b21(i, 2) (j = 1).
  • 21. Verification of a brick Wang tiling algorithm Step2: P2m → P2(m−1) → · · · → P22 We abbreviate bij = b2m(i, j). P2(m−1) b1,0 b2,0 b1,0 b2,0 b1,m+1 b2,m+1 b0,1 b0,2 · · · b0,m b3,1 b3,2 · · · b3,m ⇔ ⇔ ♥ ♥= ¬b0,1 ∧ ¬b3,1 !"# !$# !$$ %&'()*+ , , , , , , %&'()$+  , , , , ,%&'()-+
  • 22. Verification of a brick Wang tiling algorithm Tiling algorithm (Step3) Consider P22 and b. We abbreviate bij = b(i, j), eij = e(i, j) and e ij = e(i, j). Since it satisfies boundary conditions, we have e0j = b0j, e2j = b3j, e i0 = bi0 and e i2 = bi3 (i = 0, 1, j = 0, 1). So all we need is defining colors e11, e12, e 11 and e 21 . According to the equality conditions of b10 = b13, b20 = b23, b01 = b31 and b02 = b32, we define those values for e and e . We summarize them in the Table.
  • 23. Verification of a brick Wang tiling algorithm Tiling algorithm (implementation) A Coq implementation of (e, e ) is a pair of functions e_nm and e’_nm, as shown in the followings: Fixpoint e_nm (n m : nat) : boundary -> edge := fun b : boundary => match n with | 0 | 1 => e_1m b | 2 => enm_to_emn (fun b’ => e’_n2 m b’) b | S n’ => fun (i j : nat) => match i with | 0 => (bSnm_to_b1m m b) 0 j | S i’ => e_nm n’ m (bSnm_to_bnm m b) i’ j end end. Fixpoint e’_nm (n m : nat) : boundary -> edge .... Similar to e_nm .... end.
  • 24. Verification of a brick Wang tiling algorithm Verification using Coq (1) We verify conditions, Boundary_i, Boundary_j, and Brick. Definition Boundary_i (n m : nat)(b : boundary)(e’ : edge) := forall i : nat, e’ i 0 == b i 0 / e’ i m == b i (S m) / i = 0 / n < i. Definition Boundary_j (n m : nat)(b : boundary)(e : edge) := forall j : nat, e 0 j == b 0 j / e n j == b (S n) j / j = 0 / m < j. Definition Brick (n m : nat)(e e’ : edge) := forall i j : nat, (e i (S j) == e (S i) (S j) / e’ (S i) j != e’ (S i) (S j)) (e i (S j) != e (S i) (S j) / e’ (S i) j == e’ (S i) (S j)) n <= i / m <= j.
  • 25. Verification of a brick Wang tiling algorithm Verification using Coq (2) The validities of our algorithm (Step 3), (Step 2) and (Step 1) are showed in P22_Valid_nm, P2m_Valid_nm and e_nm_Valid, respectively. Definition Valid_nm (n m : nat)(b : boundary) := Boundary_i n m b (e’_nm n m b) / Boundary_j n m b (e_nm n m b) / Brick n m (e_nm n m b) (e’_nm n m b). Lemma P22_Valid_nm : forall b : boundary , Valid_nm 2 2 b. Lemma Valid_nm_ind_2m : forall (b : boundary)(m : nat), 2 <= m -> (forall b’ : boundary , Valid_nm 2 m b’) -> Valid_nm 2 (S m) b. Lemma P2m_Valid_nm : forall (b : boundary)(m : nat), 2 <= m -> Valid_nm 2 m b. Lemma Valid_nm_ind_nm : forall (b : boundary)(n m : nat), 2 <= n -> 2 <= m -> (forall b’ : boundary , Valid_nm n m b’) -> Valid_nm (S n) m b. Theorem e_nm_Valid : forall (b : boundary)(n m : nat), 2 <= n -> 2 <= m -> Valid_nm n m b.
  • 26. Verification of a brick Wang tiling algorithm Verification using Coq (3) Main theorem about the tileablity is translated into a theorem Pnm_Tileable in Coq. Theorem (A.D-Jourdan 2015) If |C| ≥ 3, then a rectangular region Pnm is tileable for any n ≥ 2 and m ≥ 2. Theorem Pnm_Tileable : forall (b : boundary)(n m : nat), 2 <= n -> 2 <= m -> exists (e e’ : edge), Valid n m b e e’. Proof. move => b n m H0 H1. exists (e_nm n m b). exists (e’_nm n m b). apply (e_nm_Valid b n m H0 H1). Qed.
  • 27. Verification of a brick Wang tiling algorithm Conclusion A brick Wang tiles set is a tile set introduced to model the texture of wall patterns in computer graphics [A.D-Jourdan 2015]. We implemented a tiling algorithm with a proof of its correctness. We also show a formal proof of an existence of a tiling of any given brick Wang tile set for any rectangular region larger than 2 × 2. We reduce the problem into a tiling problem of a 2 × 2 region. We divide the boundary colorings into finite classes and give a solution for each class. We proved formally that the enumeration of classes are sufficient and the solution is correct for each class.
  • 28. Verification of a brick Wang tiling algorithm Appendix All source codes and proofs are in the github repository https://github.com/KyushuUniversityMathematics/BrickCornerWangTiling. To check examples following instructions. 1 To extract functions e_nm and e’_nm. coqc TilingProgram.v There exists an OCaml file TilingProgam.ml that contains examples of boundary colorings, such as boundary44a and boundary44c. 2 To execute rendering example file. ocamlc TilingProgram.ml Tilingrender.ml -o TilingRender There exist rendered images such as b44a.svg and b44c.svg. 3 Some external program such as rsvg-convert may be used to convert the image format from svg to png. eg. svg-convert b44a.svg > b44a.png