Documentation
Projects
.
AP
.
HistBlind
.
D
Search
return to top
source
Imports
Init
Projects.AP.HistBlind.A
Imported by
AP
.
State
.
dwn
AP
.
State
.
dwn_eq_zero_of_aHws
AP
.
State
.
dwn_setHist
AP
.
State
.
aHws_of_dwn_eq_zero
AP
.
State
.
dwn_eq_zero_iff_aHws
AP
.
State
.
dHws_iff_dwn_ne_zero
AP
.
State
.
dwn_pos_of_dHws
AP
.
AState
.
dwn_lt_of_tr
AP
.
DState
.
exi_tr_dHws_and_dwn_lt
AP
.
DState
.
exi_tr_dwn_lt
AP
.
dHistBlind
AP
.
instWFDHistBlind
AP
.
histBlind_dHistBlind
AP
.
instHistBlindDHistBlind
AP
.
dHws_and_dwn_lt_of_dHistBlind_tr
AP
.
State
.
dHws_histBlind_of_dHws
AP
.
State
.
dHws_iff_dHws_histBlind
source
noncomputable def
AP
.
State
.
dwn
(
s
:
State
)
:
ℕ
Equations
s
.
dwn
=
Nat.find!
fun (
n
:
ℕ
) =>
∃ (
d
:
AP.DStrat
),
d
.
WF
∧
∀ (
a
:
AP.AStrat
),
a
.
WF
→
(
AP.sys
.
simulate
{
a
:=
a
,
d
:=
d
}
.
f
s
n
)
.2
≠
0
Instances For
source
theorem
AP
.
State
.
dwn_eq_zero_of_aHws
{
s
:
State
}
[
hs
:
sys
.
WF
s
]
(
h
:
s
.
aHws
)
:
s
.
dwn
=
0
source
@[simp]
theorem
AP
.
State
.
dwn_setHist
{
s
:
State
}
{
hist
:
List
PointZ
}
[
hs
:
sys
.
WF
s
]
[
hs'
:
sys
.
WF
(
s
.
setHist
hist
)
]
:
(
s
.
setHist
hist
)
.
dwn
=
s
.
dwn
source
theorem
AP
.
State
.
aHws_of_dwn_eq_zero
{
s
:
State
}
[
hs
:
sys
.
WF
s
]
(
h
:
s
.
dwn
=
0
)
:
s
.
aHws
source
theorem
AP
.
State
.
dwn_eq_zero_iff_aHws
{
s
:
State
}
[
hs
:
sys
.
WF
s
]
:
s
.
dwn
=
0
↔
s
.
aHws
source
theorem
AP
.
State
.
dHws_iff_dwn_ne_zero
{
s
:
State
}
[
hs
:
sys
.
WF
s
]
:
s
.
dHws
↔
s
.
dwn
≠
0
source
theorem
AP
.
State
.
dwn_pos_of_dHws
{
s
:
State
}
[
hs
:
sys
.
WF
s
]
(
h
:
s
.
dHws
)
:
0
<
s
.
dwn
source
theorem
AP
.
AState
.
dwn_lt_of_tr
{
sa
sd
:
State
}
{
p
:
PointZ
}
[
hsa
:
AState
sa
]
(
h₁
:
sa
.
dHws
)
(
h₂
:
sys
.
tr
sa
p
=
some
sd
)
:
sd
.
dwn
<
sa
.
dwn
source
theorem
AP
.
DState
.
exi_tr_dHws_and_dwn_lt
{
sd
:
State
}
[
hsd
:
DState
sd
]
(
h₁
:
sd
.
dHws
)
:
∃ (
p
:
PointZ
) (
sa
:
State
),
sys
.
tr
sd
p
=
some
sa
∧
sa
.
dHws
∧
sa
.
dwn
<
sd
.
dwn
source
theorem
AP
.
DState
.
exi_tr_dwn_lt
{
sd
:
State
}
[
hsd
:
DState
sd
]
(
h₁
:
sd
.
dHws
)
:
∃ (
p
:
PointZ
) (
sa
:
State
),
sys
.
tr
sd
p
=
some
sa
∧
sa
.
dwn
<
sd
.
dwn
source
noncomputable def
AP
.
dHistBlind
:
DStrat
Equations
AP.dHistBlind
=
AP.DStrat.mk
fun (
s
:
AP.State
) =>
do let
sd
←
choose?
fun (
sd
:
AP.State
) =>
AP.sys
.
WF
sd
∧
sd
.
setHist
s
.
hist
=
s
choose?
fun (
p
:
PointZ
) =>
∃ (
sa
:
AP.State
),
AP.sys
.
tr
sd
p
=
some
sa
∧
sa
.
dHws
∧
sa
.
dwn
<
sd
.
dwn
Instances For
source
instance
AP
.
instWFDHistBlind
:
dHistBlind
.
WF
source
theorem
AP
.
histBlind_dHistBlind
:
dHistBlind
.
HistBlind
source
@[simp]
instance
AP
.
instHistBlindDHistBlind
:
dHistBlind
.
HistBlind
source
theorem
AP
.
dHws_and_dwn_lt_of_dHistBlind_tr
{
sd
sa
:
State
}
[
hsd
:
DState
sd
]
(
h₁
:
sys
.
tr
sd
(
dHistBlind
.
f
sd
)
=
some
sa
)
(
h₂
:
sd
.
dHws
)
:
sa
.
dHws
∧
sa
.
dwn
<
sd
.
dwn
source
theorem
AP
.
State
.
dHws_histBlind_of_dHws
{
s
:
State
}
[
hs
:
sys
.
WF
s
]
(
h
:
s
.
dHws
)
:
∃ (
d
:
DStrat
),
d
.
HistBlind
∧
∀ (
a
:
AStrat
),
a
.
WF
→
s
.
dWins
{
a
:=
a
,
d
:=
d
}
source
theorem
AP
.
State
.
dHws_iff_dHws_histBlind
{
s
:
State
}
[
hs
:
sys
.
WF
s
]
:
s
.
dHws
↔
∃ (
d
:
DStrat
),
d
.
HistBlind
∧
∀ (
a
:
AStrat
),
a
.
WF
→
s
.
dWins
{
a
:=
a
,
d
:=
d
}