theorem
AP.Defense.Compatible.symm
{dse₁ dse₂ : Defense}
(h : dse₁.Compatible dse₂)
:
dse₂.Compatible dse₁
theorem
AP.Defense.compatible_merge_left_of
{a b c : Defense}
(h₁ : a.Compatible c)
(h₂ : b.Compatible c)
:
(a.merge b).Compatible c
theorem
AP.Defense.compatible_merge_right_of
{a b c : Defense}
(h₁ : a.Compatible b)
(h₂ : a.Compatible c)
:
a.Compatible (b.merge c)
theorem
AP.Defense.compatible_ofList_of_forall_compatible
{e : Defense}
{ds : List Defense}
(h : ∀ e₁ ∈ ds, e.Compatible e₁)
:
e.Compatible (ofList ds)
theorem
AP.Defense.compatibleList'_of_perm
{p : State → Prop}
{ds₁ ds₂ : List Defense}
(h₁ : CompatibleList' p ds₁)
(h₂ : ds₁.Perm ds₂)
:
CompatibleList' p ds₂
theorem
AP.Defense.compatibleList_of_perm
{ds₁ ds₂ : List Defense}
(h₁ : CompatibleList ds₁)
(h₂ : ds₁.Perm ds₂)
:
CompatibleList ds₂
theorem
AP.Defense.of_compatibleList'_cons
{p : State → Prop}
{d : Defense}
{ds : List Defense}
(h : CompatibleList' p (d :: ds))
:
CompatibleList' (fun (s : State) => d.cnd s ∧ p s) ds
theorem
AP.Defense.of_compatibleList_cons
{d : Defense}
{ds : List Defense}
(h : CompatibleList (d :: ds))
:
CompatibleList' d.cnd ds
theorem
AP.Defense.right_of_compatibleList'_append
{p : State → Prop}
{ds₁ ds₂ : List Defense}
(h : CompatibleList' p (ds₁ ++ ds₂))
:
CompatibleList' (fun (s : State) => (∀ d ∈ ds₁, d.cnd s) ∧ p s) ds₂
theorem
AP.Defense.left_of_compatibleList'_append
{p : State → Prop}
{ds₁ ds₂ : List Defense}
(h : CompatibleList' p (ds₁ ++ ds₂))
:
CompatibleList' (fun (s : State) => (∀ d ∈ ds₂, d.cnd s) ∧ p s) ds₁
theorem
AP.Defense.simulate_st_comm'
{dse₁ dse₂ : Defense}
{s₀ : State}
{n : ℕ}
{a : AStrat}
{d : DStrat}
[hs₀ : sys.WF s₀]
[Ha : a.WF]
[Hd : d.WF]
(hv₁ : dse₁.ValidTr)
(hv₂ : dse₂.ValidTr)
(h : ∀ (s : State), sys.Reachable s₀ s → ∀ {p₁ p₂ : PointZ}, dse₁.f s = some p₁ → dse₂.f s = some p₂ → p₁ = p₂)
:
theorem
AP.Defense.compatible'_of_compatible
{d₁ d₂ : Defense}
{p : State → Prop}
(h : d₁.Compatible d₂)
:
Compatible' p d₁ d₂
theorem
AP.Defense.compatible'_of_compatibleList'
{p : State → Prop}
{ds : List Defense}
{d₁ d₂ : Defense}
(h : CompatibleList' p ds)
(h₁ : d₁ ∈ ds)
(h₂ : d₂ ∈ ds)
:
Compatible' (fun (s : State) => (∀ d ∈ ds, d.cnd s) ∧ p s) d₁ d₂
theorem
AP.Defense.compatible'_of_compatibleList
{ds : List Defense}
{d₁ d₂ : Defense}
(h : CompatibleList ds)
(h₁ : d₁ ∈ ds)
(h₂ : d₂ ∈ ds)
:
Compatible' (fun (s : State) => ∀ d ∈ ds, d.cnd s) d₁ d₂