Documentation
Projects
.
AP
.
Defense
.
Edge
.
Symmetry
.
Translation
Search
return to top
source
Imports
Init
Projects.AP.Defense.Edge.Symmetry.Basic
Imported by
AP
.
Edge
.
translate
AP
.
Edge
.
points_translate
AP
.
Edge
.
dir_translate
AP
.
Edge
.
offset_translate
AP
.
Edge
.
dist_translate
AP
.
Edge
.
getBorderPoint_translate_of_down
AP
.
Edge
.
getBorderPoint₀_translate_of_down
AP
.
Edge
.
getBorderPoints_translate_of_down
AP
.
Edge
.
ptsArr_translate_of_down
AP
.
Edge
.
defense_translate_of_down
source
def
AP
.
Edge
.
translate
(
e
:
Edge
)
(
offset
:
PointZ
)
:
Edge
Equations
e
.
translate
offset
=
{
dir
:=
e
.
dir
,
offset
:=
e
.
offset
+
if
e
.
hor
then
offset
.
y
else
offset
.
x
}
Instances For
source
@[simp]
theorem
AP
.
Edge
.
points_translate
{
e
:
Edge
}
{
offset
:
PointZ
}
:
(
e
.
translate
offset
)
.
points
=
⇑
(
translate
offset
)
.
ft
''
e
.
points
source
@[simp]
theorem
AP
.
Edge
.
dir_translate
{
e
:
Edge
}
{
offset
:
PointZ
}
:
(
e
.
translate
offset
)
.
dir
=
e
.
dir
source
@[simp]
theorem
AP
.
Edge
.
offset_translate
{
e
:
Edge
}
{
offset
:
PointZ
}
:
(
e
.
translate
offset
)
.
offset
=
e
.
offset
+
if
e
.
hor
then
offset
.
y
else
offset
.
x
source
@[simp]
theorem
AP
.
Edge
.
dist_translate
{
e
:
Edge
}
{
offset
p
:
PointZ
}
:
(
e
.
translate
offset
)
.
dist
p
=
e
.
dist
(
(
translate
offset
)
.
ft'
p
)
source
@[simp]
theorem
AP
.
Edge
.
getBorderPoint_translate_of_down
{
e
:
Edge
}
{
dy
:
ℤ
}
{
p
:
PointZ
}
{
d
:
ℤ
}
[
H
:
Fact
(
e
.
dir
=
Dir.down
)
]
:
(
e
.
translate
{
x
:=
0
,
y
:=
dy
}
)
.
getBorderPoint
p
d
=
(
translate
{
x
:=
0
,
y
:=
dy
}
)
.
ft
(
e
.
getBorderPoint
(
(
translate
{
x
:=
0
,
y
:=
dy
}
)
.
ft'
p
)
d
)
source
@[simp]
theorem
AP
.
Edge
.
getBorderPoint₀_translate_of_down
{
e
:
Edge
}
{
dy
:
ℤ
}
{
p
:
PointZ
}
[
H
:
Fact
(
e
.
dir
=
Dir.down
)
]
:
(
e
.
translate
{
x
:=
0
,
y
:=
dy
}
)
.
getBorderPoint₀
p
=
(
translate
{
x
:=
0
,
y
:=
dy
}
)
.
ft
(
e
.
getBorderPoint₀
(
(
translate
{
x
:=
0
,
y
:=
dy
}
)
.
ft'
p
)
)
source
@[simp]
theorem
AP
.
Edge
.
getBorderPoints_translate_of_down
{
e
:
Edge
}
{
dy
:
ℤ
}
{
p
:
PointZ
}
{
d
:
ℕ
}
[
H
:
Fact
(
e
.
dir
=
Dir.down
)
]
:
(
e
.
translate
{
x
:=
0
,
y
:=
dy
}
)
.
getBorderPoints
p
d
=
List.map
(⇑
(
translate
{
x
:=
0
,
y
:=
dy
}
)
.
ft
)
(
e
.
getBorderPoints
(
(
translate
{
x
:=
0
,
y
:=
dy
}
)
.
ft'
p
)
d
)
source
@[simp]
theorem
AP
.
Edge
.
ptsArr_translate_of_down
{
e
:
Edge
}
{
dy
:
ℤ
}
{
s
:
State
}
[
H
:
Fact
(
e
.
dir
=
Dir.down
)
]
:
(
e
.
translate
{
x
:=
0
,
y
:=
dy
}
)
.
ptsArr
s
=
e
.
ptsArr
(
(
translate
{
x
:=
0
,
y
:=
dy
}
)
.
fs'
s
)
source
theorem
AP
.
Edge
.
defense_translate_of_down
{
e
:
Edge
}
{
dy
:
ℤ
}
[
H
:
Fact
(
e
.
dir
=
Dir.down
)
]
:
(
e
.
translate
{
x
:=
0
,
y
:=
dy
}
)
.
defense
=
e
.
defense
.
sym
(
translate
{
x
:=
0
,
y
:=
dy
}
)