def
AP.AStrat.mkFold
{α : Type u_1}
(s₀ : State)
(z : α)
(fa : State → α → PointZ × α)
(fd : State → PointZ → α → α)
:
Equations
- AP.AStrat.mkFold s₀ z fa fd = AP.AStrat.mk fun (s : AP.State) => AP.AStrat.mkFold' s₀ z fa fd (List.drop s₀.hist.length s.hist.reverse)
Instances For
def
AP.DStrat.mkFold
{α : Type u_1}
(s₀ : State)
(z : α)
(fa : State → PointZ → α → α)
(fd : State → α → PointZ × α)
:
Equations
- AP.DStrat.mkFold s₀ z fa fd = AP.DStrat.mk fun (s : AP.State) => AP.DStrat.mkFold' s₀ z fa fd (List.drop s₀.hist.length s.hist.reverse)
Instances For
theorem
AP.AStrat.mkFold_ind
{α : Type u_1}
{s : State}
{z : α}
{fa : State → α → PointZ × α}
{fd : State → PointZ → α → α}
{n : ℕ}
{d : DStrat}
{p : State → α → Prop}
[hs : sys.WF s]
[hd : d.WF]
(h₀ : p s z)
(h₁ :
∀ (sa : State) [AState sa] (acc : α),
sys.Reachable s sa → p sa acc → ∃ (sd : State), sys.tr sa (fa sa acc).1 = some sd ∧ p sd (fa sa acc).2)
(h₂ :
∀ (sd : State) [DState sd] (sa : State) [AState sa] (p₁ : PointZ) (acc : α),
sys.Reachable s sd → sys.tr sd p₁ = some sa → p sd acc → p sa (fd sd p₁ acc))
: