Documentation

Projects.Sokoban.Reachability

Equations
Instances For
    noncomputable def Sokoban.State.trBox (s : State) :
    Equations
    Instances For
      noncomputable def Sokoban.State.BoxPushed (s s' : State) :
      Equations
      Instances For
        theorem Sokoban.trBox_spec_aux {s : State} [hs : sys.WF s] (h : s.boxes ) :
        s.trBox s.boxesReachable ps.boxesReachable, s.trBox.y p.y (s.trBox.y = p.yp.x s.trBox.x)
        @[simp]
        theorem Sokoban.trBox_mem {s : State} [hs : sys.WF s] (h : s.boxes ) :
        theorem Sokoban.trBox_spec' {s : State} [hs : sys.WF s] (h : s.boxes ) (p : PointZ) :
        p s.boxesReachables.trBox.y p.y (s.trBox.y = p.yp.x s.trBox.x)
        theorem Sokoban.trBox_spec {s : State} {p : PointZ} [hs : sys.WF s] (h : s.boxes ) (hp : p s.boxesReachable) :
        s.trBox.y p.y (s.trBox.y = p.yp.x s.trBox.x)
        theorem Sokoban.exi_tr_of_boxPushed {s s' : State} (h : s.BoxPushed s') :
        ∃ (p : Move), sys.tr s p = some s'
        theorem Sokoban.wf_of_boxPushed {s s' : State} [hs : sys.WF s] (h : s.BoxPushed s') :
        sys.WF s'
        theorem Sokoban.player'_mem_boxes_of_tr_and_boxes_ne {s s' : State} {p : Move} (h₁ : sys.tr s p = some s') (h₂ : s'.boxes s.boxes) :
        theorem Sokoban.exi_boxPushed_of_boxes_ne {s s' : State} (h₁ : sys.Reachable s s') (h₂ : s'.boxes s.boxes) :
        ∃ (s₁ : State) (s₂ : State), sys.Reachable s s₁ s₁.BoxPushed s₂ sys.Reachable s₂ s'