SlideShare a Scribd company logo
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-duality
SEENET-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 geostatistics
Amro Elfeki
 
Generalized Nonlinear Models in R
Generalized Nonlinear Models in RGeneralized Nonlinear Models in R
Generalized Nonlinear Models in R
htstatistics
 
Lesson18 Double Integrals Over Rectangles Slides
Lesson18   Double Integrals Over Rectangles SlidesLesson18   Double Integrals Over Rectangles Slides
Lesson18 Double Integrals Over Rectangles Slides
Matthew 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 Sampling
Gabriel Peyré
 
Mesh Processing Course : Multiresolution
Mesh Processing Course : MultiresolutionMesh Processing Course : Multiresolution
Mesh Processing Course : Multiresolution
Gabriel Peyré
 
Computer graphics 2
Computer graphics 2Computer graphics 2
Computer graphics 2
Prabin Gautam
 
Calculus of variations & solution manual russak
Calculus of variations & solution manual   russakCalculus of variations & solution manual   russak
Calculus of variations & solution manual russak
José 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 2
Fabian 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 slided
Karthi 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 algorithms
Christian 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 Graphics
Gabriel 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

Bim edv9909
Bim edv9909Bim edv9909
Bim edv9909
Marianne Dingemanse
 
UPDATED RESUME 05022016
UPDATED RESUME 05022016UPDATED RESUME 05022016
UPDATED RESUME 05022016patty dayton
 
приложение 3
приложение 3приложение 3
приложение 3Evangelaina
 
Commtech
CommtechCommtech
Commtech
kpclark11
 
DMA Analytic Challenge 2015 final
DMA Analytic Challenge 2015 finalDMA Analytic Challenge 2015 final
DMA Analytic Challenge 2015 final
Karan Sarao
 
Commtech katherineclark
Commtech katherineclarkCommtech katherineclark
Commtech katherineclark
kpclark11
 
Arq232399
Arq232399Arq232399
Arq232399
Meio & Mensagem
 

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 Problems
Delta 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 Cn
IJERA 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_1
IJEMM
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph Motif
AMR koura
 
Online Signals and Systems Assignment Help
Online Signals and Systems Assignment HelpOnline Signals and Systems Assignment Help
Online Signals and Systems Assignment Help
Matlab Assignment Experts
 
5. Recursive.ppt
5. Recursive.ppt5. Recursive.ppt
5. Recursive.ppt
ssuser3aa461
 
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
 
Vectors and Kinematics
Vectors and KinematicsVectors and Kinematics
Vectors and Kinematics
Dr. Virendra Kumar Verma
 
Lesson 7: Vector-valued functions
Lesson 7: Vector-valued functionsLesson 7: Vector-valued functions
Lesson 7: Vector-valued functions
Matthew Leingang
 
Asymptotic Analysis.ppt
Asymptotic Analysis.pptAsymptotic Analysis.ppt
Asymptotic Analysis.ppt
abhishekchakraborty261420
 
cheb_conf_aksenov.pdf
cheb_conf_aksenov.pdfcheb_conf_aksenov.pdf
cheb_conf_aksenov.pdf
Alexey Vasyukov
 
Hull White model presentation
Hull White model presentationHull White model presentation
Hull White model presentation
Stephan Chang
 
3D Curve Project
3D Curve Project3D Curve Project
3D Curve Project
graphitech
 
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
Wendy Berg
 
talk_NASPDE.pdf
talk_NASPDE.pdftalk_NASPDE.pdf
talk_NASPDE.pdf
Chiheb Ben Hammouda
 
Proyecto diseño tablestaca muro milan
Proyecto diseño tablestaca  muro milanProyecto diseño tablestaca  muro milan
Proyecto diseño tablestaca muro milan
TATIANAOLIVA1
 
kactl.pdf
kactl.pdfkactl.pdf
kactl.pdf
Rayhan331
 

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
 
Amazon AWSの使い方
Amazon AWSの使い方Amazon AWSの使い方
Amazon AWSの使い方
Yoshihiro Mizoguchi
 
ShareLaTeXの使い方
ShareLaTeXの使い方ShareLaTeXの使い方
ShareLaTeXの使い方
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 Formalization
Yoshihiro 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 Calculus
Yoshihiro Mizoguchi
 
Algebras for programming languages
Algebras for programming languagesAlgebras for programming languages
Algebras for programming languages
Yoshihiro Mizoguchi
 
定理証明支援系Coqについて
定理証明支援系Coqについて定理証明支援系Coqについて
定理証明支援系Coqについて
Yoshihiro 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
 
計算可能実数とは
計算可能実数とは計算可能実数とは
計算可能実数とは
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

Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 

Recently uploaded (20)

Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 

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