Documentation

Projects.AP.DisjA

def AP.State.aWinsDisj (s : State) (fsp : FSP) (st : Strat) :
Equations
Instances For
    def AP.State.aForallWinsDisj (s : State) (fsp : FSP) (a : AStrat) :
    Equations
    Instances For
      def AP.State.aHwsDisj (s : State) (fsp : FSP) :
      Equations
      Instances For
        theorem AP.AState.tr_of_aForallWinsDisj {s : State} {fsp : FSP} {a : AStrat} [hs : AState s] (h₁ : s.aForallWinsDisj fsp a) :
        ∃ (p : PointZ) (s' : State), sys.tr s p = some s' s'.aForallWinsDisj fsp.next a
        theorem AP.AState.tr_of_aHwsDisj {s : State} {fsp : FSP} [hs : AState s] (h : s.aHwsDisj fsp) :
        ∃ (p : PointZ) (s' : State), sys.tr s p = some s' s'.aHwsDisj fsp.next
        theorem AP.DState.tr_of_aForallWinsDisj {s s' : State} {p : PointZ} {fsp : FSP} {a : AStrat} [hs : DState s] [ha : a.WF] (h₁ : s.aForallWinsDisj fsp a) (h₂ : sys.tr s p = some s') :
        theorem AP.DState.tr_of_aHwsDisj {s s' : State} {p : PointZ} {fsp : FSP} [hs : DState s] (h₁ : s.aHwsDisj fsp) (h₂ : sys.tr s p = some s') :
        s'.aHwsDisj fsp.next
        theorem AP.State.aWinsDisj_iff {s : State} {fsp : FSP} {st : Strat} :
        s.aWinsDisj fsp st s.aWins st ∀ (n : ), ¬fsp.hasLe n (sys.simulate st.f s n).1.aPos
        theorem AP.State.aWinsDisj_of_congr {s : State} {fsp₁ fsp₂ : FSP} {st : Strat} (h₁ : s.aWinsDisj fsp₁ st) (h₂ : ∀ (n : ), fsp₂.hasLe n (sys.simulate st.f s n).1.aPos∃ (k : ), fsp₁.hasLe k (sys.simulate st.f s k).1.aPos) :
        s.aWinsDisj fsp₂ st
        theorem AP.State.aWinsDisj_insertSet_of_le {s : State} {fsp : FSP} {st : Strat} {ps : Set PointZ} {m n : } (h₁ : s.aWinsDisj (fsp.insertSet m ps) st) (h₂ : m n) :
        s.aWinsDisj (fsp.insertSet n ps) st
        theorem AP.State.aWinsDisj_insert_of_le {s : State} {fsp : FSP} {st : Strat} {p : PointZ} {m n : } (h₁ : s.aWinsDisj (fsp.insert m p) st) (h₂ : m n) :
        s.aWinsDisj (fsp.insert n p) st
        theorem AP.State.aForallWinsDisj_insertSet_of_le {s : State} {fsp : FSP} {a : AStrat} {ps : Set PointZ} {m n : } (h₁ : s.aForallWinsDisj (fsp.insertSet m ps) a) (h₂ : m n) :
        s.aForallWinsDisj (fsp.insertSet n ps) a
        theorem AP.State.aForallWinsDisj_insert_of_le {s : State} {fsp : FSP} {a : AStrat} {p : PointZ} {m n : } (h₁ : s.aForallWinsDisj (fsp.insert m p) a) (h₂ : m n) :
        s.aForallWinsDisj (fsp.insert n p) a
        theorem AP.State.aHwsDisj_insertSet_of_le {s : State} {fsp : FSP} {ps : Set PointZ} {m n : } (h₁ : s.aHwsDisj (fsp.insertSet m ps)) (h₂ : m n) :
        s.aHwsDisj (fsp.insertSet n ps)
        theorem AP.State.aHwsDisj_insert_of_le {s : State} {fsp : FSP} {p : PointZ} {m n : } (h₁ : s.aHwsDisj (fsp.insert m p)) (h₂ : m n) :
        s.aHwsDisj (fsp.insert n p)
        theorem AP.State.aForallWinsDisj_insert_of_mem_taken {s : State} {fsp : FSP} {p : PointZ} {a : AStrat} [hs : sys.WF s] (h₁ : s.aForallWinsDisj fsp a) (h₂ : p s.taken) :
        s.aForallWinsDisj (fsp.insert 0 p) a
        theorem AP.State.aHwsDisj_insert_of_mem_taken {s : State} {fsp : FSP} {p : PointZ} [hs : sys.WF s] (h₁ : s.aHwsDisj fsp) (h₂ : p s.taken) :
        s.aHwsDisj (fsp.insert 0 p)
        theorem AP.State.aWinsDisj_of_aWinsDisj_offset {s : State} {st : Strat} {fsp : FSP} {n : } (h : s.aWinsDisj (fsp.offset n) st) :
        s.aWinsDisj fsp st
        theorem AP.State.aHwsDisj_of_aHwsDisj_offset {s : State} {fsp : FSP} {n : } (h : s.aHwsDisj (fsp.offset n)) :
        s.aHwsDisj fsp
        theorem AP.State.aWinsDisj_of_aWinsDisj_next {s : State} {st : Strat} {fsp : FSP} (h : s.aWinsDisj fsp.next st) :
        s.aWinsDisj fsp st
        theorem AP.State.aHwsDisj_of_aHwsDisj_next {s : State} {fsp : FSP} (h : s.aHwsDisj fsp.next) :
        s.aHwsDisj fsp
        theorem AP.State.aHwsDisj_setHist_of_aHwsDisj {s : State} {fsp : FSP} {hist : List PointZ} [hs : sys.WF s] [hs' : sys.WF (s.setHist hist)] (h : s.aHwsDisj fsp) :
        (s.setHist hist).aHwsDisj fsp
        @[simp]
        theorem AP.State.aHwsDisj_setHist_iff {s : State} {fsp : FSP} {hist : List PointZ} [hs : sys.WF s] [hs' : sys.WF (s.setHist hist)] :
        (s.setHist hist).aHwsDisj fsp s.aHwsDisj fsp
        theorem AP.State.aPos_not_mem_fsp_get_zero_of_aWinsDisj {s : State} {fsp : FSP} {st : Strat} (h : s.aWinsDisj fsp st) :
        s.aPosfsp.get 0
        theorem AP.State.aPos_not_mem_fsp_get_zero_of_aHwsDisj {s : State} {fsp : FSP} (h : s.aHwsDisj fsp) :
        s.aPosfsp.get 0
        theorem AP.State.aWins_of_aWinsDisj {fsp : FSP} {s : State} {a : AStrat} {d : DStrat} (h : s.aWinsDisj fsp { a := a, d := d }) :
        s.aWins { a := a, d := d }
        theorem AP.State.aWins_of_aForallWinsDisj {fsp : FSP} {s : State} {a : AStrat} {d : DStrat} [hd : d.WF] (h : s.aForallWinsDisj fsp a) :
        s.aWins { a := a, d := d }
        theorem AP.State.forall_aWins_of_aForallWinsDisj {fsp : FSP} {s : State} {a : AStrat} (h : s.aForallWinsDisj fsp a) (d : DStrat) [d.WF] :
        s.aWins { a := a, d := d }
        theorem AP.State.aHws_of_aForallWinsDisj {fsp : FSP} {s : State} {a : AStrat} [ha : a.WF] (h : s.aForallWinsDisj fsp a) :
        Instances For
          Equations
          Instances For
            Equations
            Instances For
              def AP.aDisjEraseTaken (s s' : State) (p : PointZ) (a : AStrat) (fsp : FSP) :
              Equations
              Instances For
                theorem AP.AState.validTr_of_aForallWinsDisj {fsp : FSP} {s : State} {a : AStrat} [hsa : AState s] (h : s.aForallWinsDisj fsp a) :
                sys.validTr s (a.f s)
                @[simp]
                instance AP.instWFADisjEraseTaken {s s' : State} {p : PointZ} {a : AStrat} {fsp : FSP} :
                (aDisjEraseTaken s s' p a fsp).WF
                structure AP.DisjEraseTaken.Cnd (w₀ w : DisjEraseTaken) (s' s₁' : State) (n : ) :
                Instances For
                  theorem AP.DisjEraseTaken.Cnd.state_eq_symm {w₀ w : DisjEraseTaken} {s' s₁' : State} {n : } (h : w₀.Cnd w s' s₁' n) :
                  w.s = { pw := s₁'.pw, taken := s₁'.taken.insert w.p, aPos := s₁'.aPos, aTurn := s₁'.aTurn, hist := w.s.hist }
                  theorem AP.State.aWinsDisj_insert_taken_of_aWinsDisj {fsp : FSP} {s : State} {st : Strat} [hs : sys.WF s] (h : s.aWinsDisj fsp st) :
                  theorem AP.State.aHwsDisj_insert_taken_of_aHwsDisj {fsp : FSP} {s : State} [hs : sys.WF s] (h : s.aHwsDisj fsp) :
                  theorem AP.State.aWinsDisj_of_aWinsDisj_insertSet {fsp : FSP} {s : State} {k : } {ps : Set PointZ} {st : Strat} (h : s.aWinsDisj (fsp.insertSet k ps) st) :
                  s.aWinsDisj fsp st
                  theorem AP.State.aHwsDisj_of_aHwsDisj_insertSet {fsp : FSP} {s : State} {k : } {ps : Set PointZ} (h : s.aHwsDisj (fsp.insertSet k ps)) :
                  s.aHwsDisj fsp
                  theorem AP.State.aWinsDisj_of_aWinsDisj_insert {fsp : FSP} {s : State} {k : } {p : PointZ} {st : Strat} (h : s.aWinsDisj (fsp.insert k p) st) :
                  s.aWinsDisj fsp st
                  theorem AP.State.aForallWinsDisj_of_aForallWinsDisj_insert {fsp : FSP} {s : State} {k : } {p : PointZ} {a : AStrat} (h : s.aForallWinsDisj (fsp.insert k p) a) :
                  theorem AP.State.aHwsDisj_of_aHwsDisj_insert {fsp : FSP} {s : State} {k : } {p : PointZ} (h : s.aHwsDisj (fsp.insert k p)) :
                  s.aHwsDisj fsp
                  theorem AP.State.aHwsDisj_erase_taken {fsp : FSP} {s s' : State} {p : PointZ} [hs : sys.WF s] [hs' : sys.WF s'] (h : s.aHwsDisj fsp) (hpw : s'.pw = s.pw) (ht : s'.aTurn = s.aTurn) (hpa : s'.aPos = s.aPos) (hp : s'.taken = s.taken.erase p) (h₁ : p s.taken) :
                  s'.aHwsDisj (fsp.insert 0 p)
                  theorem AP.State.aHwsDisj_erase_taken' {fsp : FSP} {s s' : State} {p : PointZ} [hs : sys.WF s] [hs' : sys.WF s'] (h : s.aHwsDisj fsp) (hpw : s'.pw = s.pw) (ht : s'.aTurn = s.aTurn) (hpa : s'.aPos = s.aPos) (hp : s'.taken = s.taken.erase p) (h₁ : p s.taken) :
                  s'.aHwsDisj fsp
                  theorem AP.State.aHwsDisj_of_taken_subset {fsp : FSP} {s s' : State} [hs : sys.WF s] [hs' : sys.WF s'] (h : s.aHwsDisj fsp) (hpw : s'.pw = s.pw) (ht : s'.aTurn = s.aTurn) (hpa : s'.aPos = s.aPos) (h₁ : s'.taken s.taken) :
                  theorem AP.State.aHwsDisj_of_taken_subset' {fsp : FSP} {s s' : State} [hs : sys.WF s] [hs' : sys.WF s'] (h : s.aHwsDisj fsp) (hpw : s'.pw = s.pw) (ht : s'.aTurn = s.aTurn) (hpa : s'.aPos = s.aPos) (h₁ : s'.taken s.taken) :
                  s'.aHwsDisj fsp
                  noncomputable def AP.dChooseFromSet (ps : Set' PointZ) :
                  Equations
                  Instances For
                    theorem AP.State.eventually_simulate_dChooseFromSet_subset_taken {s : State} {ps : Set' PointZ} {a : AStrat} [hs : sys.WF s] [ha : a.WF] :
                    eventually fun (n : ) => ∀ (s' : State), sys.simulate { a := a, d := dChooseFromSet ps }.f s n = (s', 0)ps s'.taken
                    theorem AP.State.eventually_simulate_dChooseFromSet_aPos_not_mem {s : State} {ps : Set' PointZ} {a : AStrat} [hs : sys.WF s] [ha : a.WF] :
                    eventually fun (n : ) => ∀ (s' : State), sys.simulate { a := a, d := dChooseFromSet ps }.f s n = (s', 0)s'.aPosps
                    theorem AP.State.aTurn_of_tr_aPos_ne {s s' : State} {p : PointZ} [hs : sys.WF s] (h₁ : sys.tr s p = some s') (h₂ : s'.aPos s.aPos) :
                    theorem AP.AState.of_tr_aPos_ne {s s' : State} {p : PointZ} [hs : sys.WF s] (h₁ : sys.tr s p = some s') (h₂ : s'.aPos s.aPos) :
                    theorem AP.State.aForallWinsDisj_of_simulate_eq {fsp : FSP} {s s' : State} {r n : } {a : AStrat} {d : DStrat} [hs : sys.WF s] [ha : a.WF] [hd : d.WF] (h₁ : s.aForallWinsDisj fsp a) (h₂ : sys.simulate { a := a, d := d }.f s n = (s', r)) :
                    s'.aForallWinsDisj (fsp.offset n) a
                    theorem AP.State.aForallWinsDisj_insertSet_zero_of {s : State} {set : Set PointZ} {a : AStrat} {fsp : FSP} (h₁ : s.aForallWinsDisj fsp a) (h₂ : ∀ (d : DStrat) [d.WF] (n : ) (s₁ : State), sys.simulate { a := a, d := d }.f s n = (s₁, 0)s₁.aPosset) :
                    s.aForallWinsDisj (fsp.insertSet 0 set) a
                    @[simp]
                    theorem AP.State.aWinsDisj_empty {s : State} {st : Strat} :
                    @[simp]
                    theorem AP.State.aForallWinsDisj_empty {s : State} {a : AStrat} :
                    s.aForallWinsDisj a ∀ (d : DStrat), d.WFs.aWins { a := a, d := d }
                    theorem AP.State.aHws_of_taken_subset {s s' : State} [hs : sys.WF s] [hs' : sys.WF s'] (h₁ : s.aHws) (hpw : s'.pw = s.pw) (h₂ : s'.aTurn = s.aTurn) (h₃ : s'.aPos = s.aPos) (h₄ : s'.taken s.taken) :
                    s'.aHws
                    theorem AP.State.dHws_of_taken_subset {s s' : State} [hs : sys.WF s] [hs' : sys.WF s'] (h₁ : s.dHws) (hpw : s'.pw = s.pw) (h₂ : s'.aTurn = s.aTurn) (h₃ : s'.aPos = s.aPos) (h₄ : s.taken s'.taken) :
                    s'.dHws