Documentation
Projects
.
AP
.
Symmetry
.
Basic
Search
return to top
source
Imports
Init
Projects.AP.Symmetry.Defs
Imported by
AP
.
mkSymFs_symm
AP
.
ft_mkSym
AP
.
ft'_mkSym
AP
.
fs_mkSym
AP
.
fs'_mkSym
AP
.
mkSymFs_apply
AP
.
pw_mkSymFsAux
AP
.
taken_mkSymFsAux
AP
.
aPos_mkSymFsAux
AP
.
aTurn_mkSymFsAux
AP
.
hist_mkSymFsAux
AP
.
aPos₀_mkSymFsAux
AP
.
aPos₀_mkSymFsAux_eq_ite
AP
.
aTurn_sym_fs
AP
.
aTurn_sym_fs'
AP
.
AStrat
.
sym
AP
.
DStrat
.
sym
AP
.
Strat
.
sym
AP
.
AState
.
sym_fs
AP
.
AState
.
sym_fs'
AP
.
DState
.
sym_fs
AP
.
DState
.
sym_fs'
AP
.
instWFSymOfWFStatePointZ
AP
.
instWFSymOfWFStatePointZ_1
AP
.
instSimFnStatePointZSysFSymOfWFOfWF
AP
.
Strat
.
f_sym_eq
AP
.
Strat
.
simulate_sym_eq
AP
.
instWFSymOfWFStatePointZ_2
AP
.
State
.
aHws_sym_of
AP
.
State
.
aHws_iff_sym
AP
.
State
.
dHws_iff_sym
AP
.
mkSymFsAux_initState
AP
.
mkSymFsAux_id
AP
.
mkSym_one
AP
.
instBasicSymOfNatSymmetryStatePointZSys
AP
.
instBasicSymInvSymmetryStatePointZSys
AP
.
instBasicSymHPowSymmetryStatePointZSysNat
AP
.
instBasicSymHPowSymmetryStatePointZSysInt
AP
.
aPos₀_sym_of_basicSym
AP
.
aPos₀_sym_of_basicSym'
AP
.
aPos_sym_of_basicSym
AP
.
aPos_sym_of_basicSym'
AP
.
taken_sym_of_basicSym
AP
.
taken_sym_of_basicSym'
AP
.
ft_eq_iff
AP
.
ft'_eq_iff
AP
.
fs_eq_iff
AP
.
fs'_eq_iff
AP
.
ext_iff_of_basicSym
AP
.
instBasicSymHMulSymmetryStatePointZSys
AP
.
pw_fs_of_basicSym
AP
.
pw_fs'_of_basicSym
source
@[simp]
theorem
AP
.
mkSymFs_symm
{
ft
:
PointZ
≃
PointZ
}
:
(
mkSymFs
ft
)
.
symm
=
mkSymFs
ft
.
symm
source
@[simp]
theorem
AP
.
ft_mkSym
{
ft
:
PointZ
≃
PointZ
}
:
(
mkSym
ft
)
.
ft
=
ft
source
@[simp]
theorem
AP
.
ft'_mkSym
{
ft
:
PointZ
≃
PointZ
}
:
(
mkSym
ft
)
.
ft'
=
ft
.
symm
source
@[simp]
theorem
AP
.
fs_mkSym
{
ft
:
PointZ
≃
PointZ
}
:
(
mkSym
ft
)
.
fs
=
mkSymFs
ft
source
@[simp]
theorem
AP
.
fs'_mkSym
{
ft
:
PointZ
≃
PointZ
}
:
(
mkSym
ft
)
.
fs'
=
mkSymFs
ft
.
symm
source
@[simp]
theorem
AP
.
mkSymFs_apply
{
ft
:
PointZ
≃
PointZ
}
{
s
:
State
}
:
(
mkSymFs
ft
)
s
=
mkSymFsAux
(⇑
ft
)
s
source
@[simp]
theorem
AP
.
pw_mkSymFsAux
{
ft
:
PointZ
→
PointZ
}
{
s
:
State
}
:
(
mkSymFsAux
ft
s
)
.
pw
=
s
.
pw
source
@[simp]
theorem
AP
.
taken_mkSymFsAux
{
ft
:
PointZ
→
PointZ
}
{
s
:
State
}
:
(
mkSymFsAux
ft
s
)
.
taken
=
s
.
taken
.
map
ft
source
@[simp]
theorem
AP
.
aPos_mkSymFsAux
{
ft
:
PointZ
→
PointZ
}
{
s
:
State
}
:
(
mkSymFsAux
ft
s
)
.
aPos
=
ft
s
.
aPos
source
@[simp]
theorem
AP
.
aTurn_mkSymFsAux
{
ft
:
PointZ
→
PointZ
}
{
s
:
State
}
:
(
mkSymFsAux
ft
s
)
.
aTurn
=
s
.
aTurn
source
@[simp]
theorem
AP
.
hist_mkSymFsAux
{
ft
:
PointZ
→
PointZ
}
{
s
:
State
}
:
(
mkSymFsAux
ft
s
)
.
hist
=
List.map
ft
s
.
hist
source
@[simp]
theorem
AP
.
aPos₀_mkSymFsAux
{
ft
:
PointZ
→
PointZ
}
{
s
:
State
}
[
hs
:
sys
.
WF
s
]
:
(
mkSymFsAux
ft
s
)
.
aPos₀
=
ft
s
.
aPos₀
source
theorem
AP
.
aPos₀_mkSymFsAux_eq_ite
{
ft
:
PointZ
→
PointZ
}
{
s
:
State
}
:
(
mkSymFsAux
ft
s
)
.
aPos₀
=
if
s
.
hist
=
[
]
then
s
.
aPos₀
else
ft
s
.
aPos₀
source
@[simp]
theorem
AP
.
aTurn_sym_fs
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
sys
.
WF
s
]
[
H
:
sym
.
WF
]
:
(
sym
.
fs
s
)
.
aTurn
=
s
.
aTurn
source
@[simp]
theorem
AP
.
aTurn_sym_fs'
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
sys
.
WF
s
]
[
H
:
sym
.
WF
]
:
(
sym
.
fs'
s
)
.
aTurn
=
s
.
aTurn
source
def
AP
.
AStrat
.
sym
(
a
:
AStrat
)
(
sym
:
sys
.
Symmetry
)
:
AStrat
Equations
a
.
sym
sym
=
{
f
:=
sym
.
simFn
a
.
f
}
Instances For
source
def
AP
.
DStrat
.
sym
(
d
:
DStrat
)
(
sym
:
sys
.
Symmetry
)
:
DStrat
Equations
d
.
sym
sym
=
{
f
:=
sym
.
simFn
d
.
f
}
Instances For
source
def
AP
.
Strat
.
sym
(
st
:
Strat
)
(
sym
:
sys
.
Symmetry
)
:
Strat
Equations
st
.
sym
sym
=
{
a
:=
st
.
a
.
sym
sym
,
d
:=
st
.
d
.
sym
sym
}
Instances For
source
@[simp]
instance
AP
.
AState
.
sym_fs
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
AState
s
]
[
H
:
sym
.
WF
]
:
AState
(
sym
.
fs
s
)
source
@[simp]
instance
AP
.
AState
.
sym_fs'
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
AState
s
]
[
H
:
sym
.
WF
]
:
AState
(
sym
.
fs'
s
)
source
@[simp]
instance
AP
.
DState
.
sym_fs
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
DState
s
]
[
H
:
sym
.
WF
]
:
DState
(
sym
.
fs
s
)
source
@[simp]
instance
AP
.
DState
.
sym_fs'
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
DState
s
]
[
H
:
sym
.
WF
]
:
DState
(
sym
.
fs'
s
)
source
@[simp]
instance
AP
.
instWFSymOfWFStatePointZ
{
a
:
AStrat
}
{
sym
:
sys
.
Symmetry
}
[
ha
:
a
.
WF
]
[
H
:
sym
.
WF
]
:
(
a
.
sym
sym
)
.
WF
source
@[simp]
instance
AP
.
instWFSymOfWFStatePointZ_1
{
d
:
DStrat
}
{
sym
:
sys
.
Symmetry
}
[
hd
:
d
.
WF
]
[
H
:
sym
.
WF
]
:
(
d
.
sym
sym
)
.
WF
source
@[simp]
instance
AP
.
instSimFnStatePointZSysFSymOfWFOfWF
{
st
:
Strat
}
{
sym
:
sys
.
Symmetry
}
[
hst
:
st
.
WF
]
[
H
:
sym
.
WF
]
:
sys
.
SimFn
(
st
.
sym
sym
)
.
f
source
theorem
AP
.
Strat
.
f_sym_eq
{
st
:
Strat
}
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
sys
.
WF
s
]
[
H
:
sym
.
WF
]
:
(
st
.
sym
sym
)
.
f
s
=
sym
.
simFn
st
.
f
s
source
theorem
AP
.
Strat
.
simulate_sym_eq
{
st
:
Strat
}
{
s
:
State
}
{
n
:
ℕ
}
{
sym
:
sys
.
Symmetry
}
[
hst
:
st
.
WF
]
[
hs
:
sys
.
WF
s
]
[
H
:
sym
.
WF
]
:
sys
.
simulate
(
st
.
sym
sym
)
.
f
s
n
=
sys
.
simulate
(
sym
.
simFn
st
.
f
)
s
n
source
@[simp]
instance
AP
.
instWFSymOfWFStatePointZ_2
{
st
:
Strat
}
{
sym
:
sys
.
Symmetry
}
[
hst
:
st
.
WF
]
[
H
:
sym
.
WF
]
:
(
st
.
sym
sym
)
.
WF
source
theorem
AP
.
State
.
aHws_sym_of
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
sys
.
WF
s
]
[
H
:
sym
.
WF
]
(
h
:
s
.
aHws
)
:
(
sym
.
fs
s
)
.
aHws
source
theorem
AP
.
State
.
aHws_iff_sym
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
hs
:
sys
.
WF
s
]
[
H
:
sym
.
WF
]
:
s
.
aHws
↔
(
sym
.
fs
s
)
.
aHws
source
theorem
AP
.
State
.
dHws_iff_sym
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
{
hs
:
sys
.
WF
s
}
[
H
:
sym
.
WF
]
:
s
.
dHws
↔
(
sym
.
fs
s
)
.
dHws
source
@[simp]
theorem
AP
.
mkSymFsAux_initState
{
ft
:
PointZ
→
PointZ
}
{
pw
:
ℕ
}
{
p
:
PointZ
}
:
mkSymFsAux
ft
(
initState
pw
p
)
=
initState
pw
(
ft
p
)
source
@[simp]
theorem
AP
.
mkSymFsAux_id
:
mkSymFsAux
id
=
id
source
@[simp]
theorem
AP
.
mkSym_one
:
mkSym
1
=
1
source
@[simp]
instance
AP
.
instBasicSymOfNatSymmetryStatePointZSys
:
BasicSym
1
source
@[simp]
instance
AP
.
instBasicSymInvSymmetryStatePointZSys
{
sym
:
sys
.
Symmetry
}
[
H
:
BasicSym
sym
]
:
BasicSym
sym
⁻¹
source
@[simp]
instance
AP
.
instBasicSymHPowSymmetryStatePointZSysNat
{
sym
:
sys
.
Symmetry
}
{
n
:
ℕ
}
[
H
:
BasicSym
sym
]
:
BasicSym
(
sym
^
n
)
source
@[simp]
instance
AP
.
instBasicSymHPowSymmetryStatePointZSysInt
{
sym
:
sys
.
Symmetry
}
{
z
:
ℤ
}
[
H
:
BasicSym
sym
]
:
BasicSym
(
sym
^
z
)
source
@[simp]
theorem
AP
.
aPos₀_sym_of_basicSym
{
sym
:
sys
.
Symmetry
}
{
s
:
State
}
[
H
:
BasicSym
sym
]
[
hs
:
sys
.
WF
s
]
:
(
sym
.
fs
s
)
.
aPos₀
=
sym
.
ft
s
.
aPos₀
source
@[simp]
theorem
AP
.
aPos₀_sym_of_basicSym'
{
sym
:
sys
.
Symmetry
}
{
s
:
State
}
[
H
:
BasicSym
sym
]
[
hs
:
sys
.
WF
s
]
:
(
sym
.
fs'
s
)
.
aPos₀
=
sym
.
ft'
s
.
aPos₀
source
@[simp]
theorem
AP
.
aPos_sym_of_basicSym
{
sym
:
sys
.
Symmetry
}
{
s
:
State
}
[
H
:
BasicSym
sym
]
:
(
sym
.
fs
s
)
.
aPos
=
sym
.
ft
s
.
aPos
source
@[simp]
theorem
AP
.
aPos_sym_of_basicSym'
{
sym
:
sys
.
Symmetry
}
{
s
:
State
}
[
H
:
BasicSym
sym
]
:
(
sym
.
fs'
s
)
.
aPos
=
sym
.
ft'
s
.
aPos
source
@[simp]
theorem
AP
.
taken_sym_of_basicSym
{
sym
:
sys
.
Symmetry
}
{
s
:
State
}
[
H
:
BasicSym
sym
]
:
(
sym
.
fs
s
)
.
taken
=
s
.
taken
.
map
⇑
sym
.
ft
source
@[simp]
theorem
AP
.
taken_sym_of_basicSym'
{
sym
:
sys
.
Symmetry
}
{
s
:
State
}
[
H
:
BasicSym
sym
]
:
(
sym
.
fs'
s
)
.
taken
=
s
.
taken
.
map
⇑
sym
.
ft'
source
theorem
AP
.
ft_eq_iff
{
sym
:
sys
.
Symmetry
}
{
p₁
p₂
:
PointZ
}
:
sym
.
ft
p₁
=
p₂
↔
p₁
=
sym
.
ft'
p₂
source
theorem
AP
.
ft'_eq_iff
{
sym
:
sys
.
Symmetry
}
{
p₁
p₂
:
PointZ
}
:
sym
.
ft'
p₁
=
p₂
↔
p₁
=
sym
.
ft
p₂
source
theorem
AP
.
fs_eq_iff
{
sym
:
sys
.
Symmetry
}
{
s₁
s₂
:
State
}
:
sym
.
fs
s₁
=
s₂
↔
s₁
=
sym
.
fs'
s₂
source
theorem
AP
.
fs'_eq_iff
{
sym
:
sys
.
Symmetry
}
{
s₁
s₂
:
State
}
:
sym
.
fs'
s₁
=
s₂
↔
s₁
=
sym
.
fs
s₂
source
theorem
AP
.
ext_iff_of_basicSym
{
sym₁
sym₂
:
sys
.
Symmetry
}
[
H₁
:
BasicSym
sym₁
]
[
H₂
:
BasicSym
sym₂
]
:
sym₁
=
sym₂
↔
∀ (
p
:
PointZ
),
sym₁
.
ft
p
=
sym₂
.
ft
p
source
@[simp]
instance
AP
.
instBasicSymHMulSymmetryStatePointZSys
{
sym₁
sym₂
:
sys
.
Symmetry
}
[
H₁
:
BasicSym
sym₁
]
[
H₂
:
BasicSym
sym₂
]
:
BasicSym
(
sym₁
*
sym₂
)
source
@[simp]
theorem
AP
.
pw_fs_of_basicSym
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
H
:
BasicSym
sym
]
:
(
sym
.
fs
s
)
.
pw
=
s
.
pw
source
@[simp]
theorem
AP
.
pw_fs'_of_basicSym
{
s
:
State
}
{
sym
:
sys
.
Symmetry
}
[
H
:
BasicSym
sym
]
:
(
sym
.
fs'
s
)
.
pw
=
s
.
pw