Documentation
Projects
.
AP
.
Symmetry
.
Reflection
Search
return to top
source
Imports
Init
Projects.AP.Symmetry.Rotation
Imported by
AP
.
flipH
AP
.
flipV
AP
.
flipH
.
cnd_initial_fs_iff
AP
.
flipV
.
cnd_initial_fs_iff
AP
.
flipH
.
cnd_tr_eq
AP
.
flipV
.
cnd_tr_eq
AP
.
instWFStatePointZFlipH
AP
.
instWFStatePointZFlipV
AP
.
flipH_ft_x
AP
.
flipH_ft_y
AP
.
flipH_ft'_x
AP
.
flipH_ft'_y
AP
.
flipV_ft_x
AP
.
flipV_ft_y
AP
.
flipV_ft'_x
AP
.
flipV_ft'_y
AP
.
flipH_dist_flipH
AP
.
flipH_dist_flipH'
AP
.
flipV_dist_flipV
AP
.
flipV_dist_flipV'
AP
.
instBasicSymFlipH
AP
.
instBasicSymFlipV
AP
.
inv_flipH
AP
.
inv_flipV
AP
.
instSelfInverseStatePointZFlipH
AP
.
instSelfInverseStatePointZFlipV
AP
.
flipH_ft_mk
AP
.
flipV_ft_mk
AP
.
flipH_mul_flipV
AP
.
flipV_mul_flipH
AP
.
flipH_mul_rot180
AP
.
rot180_mul_flipH
AP
.
flipV_mul_rot180
AP
.
rot180_mul_flipV
AP
.
flipH_ft_flipV_ft
AP
.
flipV_ft_flipH_ft
AP
.
flipH_ft_rot180_ft
AP
.
rot180_ft_flipH_ft
AP
.
flipV_ft_rot180_ft
AP
.
rot180_ft_flipV_ft
source
def
AP
.
flipH
:
sys
.
Symmetry
Equations
AP.flipH
=
AP.mkSym
{
toFun
:=
fun (
p
:
PointZ
) =>
{
x
:=
-
p
.
x
,
y
:=
p
.
y
}
,
invFun
:=
fun (
p
:
PointZ
) =>
{
x
:=
-
p
.
x
,
y
:=
p
.
y
}
,
left_inv
:=
AP.flipH._proof_1
,
right_inv
:=
AP.flipH._proof_1
}
Instances For
source
def
AP
.
flipV
:
sys
.
Symmetry
Equations
AP.flipV
=
AP.mkSym
{
toFun
:=
fun (
p
:
PointZ
) =>
{
x
:=
p
.
x
,
y
:=
-
p
.
y
}
,
invFun
:=
fun (
p
:
PointZ
) =>
{
x
:=
p
.
x
,
y
:=
-
p
.
y
}
,
left_inv
:=
AP.flipV._proof_1
,
right_inv
:=
AP.flipV._proof_1
}
Instances For
source
theorem
AP
.
flipH
.
cnd_initial_fs_iff
{
s
:
State
}
:
sys
.
Initial
(
flipH
.
fs
s
)
↔
sys
.
Initial
s
source
theorem
AP
.
flipV
.
cnd_initial_fs_iff
{
s
:
State
}
:
sys
.
Initial
(
flipV
.
fs
s
)
↔
sys
.
Initial
s
source
theorem
AP
.
flipH
.
cnd_tr_eq
{
s
:
State
}
{
p
:
PointZ
}
:
sys
.
tr
s
p
=
Option.map
(⇑
flipH
.
fs'
)
(
sys
.
tr
(
flipH
.
fs
s
)
(
flipH
.
ft
p
)
)
source
theorem
AP
.
flipV
.
cnd_tr_eq
{
s
:
State
}
{
p
:
PointZ
}
:
sys
.
tr
s
p
=
Option.map
(⇑
flipV
.
fs'
)
(
sys
.
tr
(
flipV
.
fs
s
)
(
flipV
.
ft
p
)
)
source
@[simp]
instance
AP
.
instWFStatePointZFlipH
:
flipH
.
WF
source
@[simp]
instance
AP
.
instWFStatePointZFlipV
:
flipV
.
WF
source
@[simp]
theorem
AP
.
flipH_ft_x
{
p
:
PointZ
}
:
(
flipH
.
ft
p
)
.
x
=
-
p
.
x
source
@[simp]
theorem
AP
.
flipH_ft_y
{
p
:
PointZ
}
:
(
flipH
.
ft
p
)
.
y
=
p
.
y
source
@[simp]
theorem
AP
.
flipH_ft'_x
{
p
:
PointZ
}
:
(
flipH
.
ft'
p
)
.
x
=
-
p
.
x
source
@[simp]
theorem
AP
.
flipH_ft'_y
{
p
:
PointZ
}
:
(
flipH
.
ft'
p
)
.
y
=
p
.
y
source
@[simp]
theorem
AP
.
flipV_ft_x
{
p
:
PointZ
}
:
(
flipV
.
ft
p
)
.
x
=
p
.
x
source
@[simp]
theorem
AP
.
flipV_ft_y
{
p
:
PointZ
}
:
(
flipV
.
ft
p
)
.
y
=
-
p
.
y
source
@[simp]
theorem
AP
.
flipV_ft'_x
{
p
:
PointZ
}
:
(
flipV
.
ft'
p
)
.
x
=
p
.
x
source
@[simp]
theorem
AP
.
flipV_ft'_y
{
p
:
PointZ
}
:
(
flipV
.
ft'
p
)
.
y
=
-
p
.
y
source
@[simp]
theorem
AP
.
flipH_dist_flipH
{
p₁
p₂
:
PointZ
}
:
Point.dist
(
flipH
.
ft
p₁
)
(
flipH
.
ft
p₂
)
=
Point.dist
p₁
p₂
source
@[simp]
theorem
AP
.
flipH_dist_flipH'
{
p₁
p₂
:
PointZ
}
:
Point.dist
(
flipH
.
ft'
p₁
)
(
flipH
.
ft'
p₂
)
=
Point.dist
p₁
p₂
source
@[simp]
theorem
AP
.
flipV_dist_flipV
{
p₁
p₂
:
PointZ
}
:
Point.dist
(
flipV
.
ft
p₁
)
(
flipV
.
ft
p₂
)
=
Point.dist
p₁
p₂
source
@[simp]
theorem
AP
.
flipV_dist_flipV'
{
p₁
p₂
:
PointZ
}
:
Point.dist
(
flipV
.
ft'
p₁
)
(
flipV
.
ft'
p₂
)
=
Point.dist
p₁
p₂
source
@[simp]
instance
AP
.
instBasicSymFlipH
:
BasicSym
flipH
source
@[simp]
instance
AP
.
instBasicSymFlipV
:
BasicSym
flipV
source
theorem
AP
.
inv_flipH
:
flipH
⁻¹
=
flipH
source
theorem
AP
.
inv_flipV
:
flipV
⁻¹
=
flipV
source
instance
AP
.
instSelfInverseStatePointZFlipH
:
flipH
.
SelfInverse
source
instance
AP
.
instSelfInverseStatePointZFlipV
:
flipV
.
SelfInverse
source
@[simp]
theorem
AP
.
flipH_ft_mk
{
x
y
:
ℤ
}
:
flipH
.
ft
{
x
:=
x
,
y
:=
y
}
=
{
x
:=
-
x
,
y
:=
y
}
source
@[simp]
theorem
AP
.
flipV_ft_mk
{
x
y
:
ℤ
}
:
flipV
.
ft
{
x
:=
x
,
y
:=
y
}
=
{
x
:=
x
,
y
:=
-
y
}
source
@[simp]
theorem
AP
.
flipH_mul_flipV
:
flipH
*
flipV
=
rot180
source
@[simp]
theorem
AP
.
flipV_mul_flipH
:
flipV
*
flipH
=
rot180
source
@[simp]
theorem
AP
.
flipH_mul_rot180
:
flipH
*
rot180
=
flipV
source
@[simp]
theorem
AP
.
rot180_mul_flipH
:
rot180
*
flipH
=
flipV
source
@[simp]
theorem
AP
.
flipV_mul_rot180
:
flipV
*
rot180
=
flipH
source
@[simp]
theorem
AP
.
rot180_mul_flipV
:
rot180
*
flipV
=
flipH
source
@[simp]
theorem
AP
.
flipH_ft_flipV_ft
{
p
:
PointZ
}
:
flipH
.
ft
(
flipV
.
ft
p
)
=
rot180
.
ft
p
source
@[simp]
theorem
AP
.
flipV_ft_flipH_ft
{
p
:
PointZ
}
:
flipV
.
ft
(
flipH
.
ft
p
)
=
rot180
.
ft
p
source
@[simp]
theorem
AP
.
flipH_ft_rot180_ft
{
p
:
PointZ
}
:
flipH
.
ft
(
rot180
.
ft
p
)
=
flipV
.
ft
p
source
@[simp]
theorem
AP
.
rot180_ft_flipH_ft
{
p
:
PointZ
}
:
rot180
.
ft
(
flipH
.
ft
p
)
=
flipV
.
ft
p
source
@[simp]
theorem
AP
.
flipV_ft_rot180_ft
{
p
:
PointZ
}
:
flipV
.
ft
(
rot180
.
ft
p
)
=
flipH
.
ft
p
source
@[simp]
theorem
AP
.
rot180_ft_flipV_ft
{
p
:
PointZ
}
:
rot180
.
ft
(
flipV
.
ft
p
)
=
flipH
.
ft
p