Documentation

Projects.AP.Defense.Edge.Cnd

Equations
Instances For
    def AP.Edge.cnd₁ (d : ) (arr : Array Bool) (offset : ) :
    Equations
    Instances For
      Equations
      Instances For
        def AP.Edge.aMove₀ (p : PointZ) (m : Fin 8) :
        Equations
        Instances For
          @[instance_reducible]
          instance AP.Edge.instDecidableCnd₁ {d : } {arr : Array Bool} {offset : } :
          Decidable (cnd₁ d arr offset)
          Equations
          @[simp]
          theorem AP.Edge.size_ptsArr {s : State} {offset : } {n : } :
          (edge₀.ptsArr s offset n).size = n
          theorem AP.Edge.cnd₁_iff_cnd₁_extract {arr : Array Bool} {offset : } {d : } :
          cnd₁ d arr offset cnd₁ d (arr.extract offset (offset + 7)) 0
          theorem AP.Edge.cnd₁_iff_cnd₁_append {arr : Array Bool} {offset : } {d : } {n : } :
          cnd₁ d arr offset cnd₁ d { toList := arr.toList ++ List.replicate n false } offset
          theorem AP.Edge.cnd₁_iff_cnd₁_min_6 {arr : Array Bool} {offset : } {d : } :
          cnd₁ d arr offset cnd₁ (min 6 d) arr offset
          @[simp]
          theorem AP.Edge.ptsArr_eq_empty_iff {e : Edge} {s : State} {z : } {n : } :
          e.ptsArr s z n = #[] n = 0
          @[simp]
          theorem AP.Edge.ptsArr_zero {e : Edge} {s : State} {z : } :
          e.ptsArr s z 0 = #[]
          theorem AP.Edge.getBorderPoint_add {p : PointZ} {n m : } :
          edge₀.getBorderPoint p (n + m) = edge₀.getBorderPoint p n + { x := m, y := 0 }
          @[simp]
          theorem AP.Edge.extract_ptsArr {s : State} {z : } {n i j : } :
          (edge₀.ptsArr s z n).extract i j = edge₀.ptsArr s (z + i) (min n j - i)
          theorem AP.Edge.exi_aMove₀_of_dist_eq_one {p p' : PointZ} (h : Point.dist p' p = 1) :
          ∃ (m : Fin 8), aMove₀ p m = p'
          theorem AP.Edge.exi_aMove₀_of_tr_eq_some {s : State} [hpw : Fact (s.pw = 1)] {s' : State} {p : PointZ} [hs : AState s] (h : sys.tr s p = some s') :
          ∃ (m : Fin 8), aMove₀ s.aPos m = p
          @[simp]
          theorem AP.Edge.le_one_add_aMove₀_x {p : PointZ} {m : Fin 8} :
          p.x 1 + (aMove₀ p m).x
          @[simp]
          theorem AP.Edge.one_add_aMove₀_le_two_add_x {p : PointZ} {m : Fin 8} :
          1 + (aMove₀ p m).x 2 + p.x
          @[simp]
          theorem AP.Edge.f₄_lt_7 {d : } {f : Bool} :
          f₄ d f < 7
          theorem AP.Edge.ptsArr_eq_of_taken_eq {s s' : State} {z : } {n : } (h : s'.taken = s.taken) :
          edge₀.ptsArr s' z n = edge₀.ptsArr s (z + s'.aPos.x - s.aPos.x) n
          theorem AP.Edge.ptsArr_eq_of_aPos_eq_and_taken_eq_insert.proof₁ {s s' : State} {p : PointZ} (h₁ : s'.taken = s.taken.insert p) (h₃ : ∃ (z : ), |z| 3 edge₀.getBorderPoint s.aPos z = p) :
          (p.x - s.aPos.x + 3).toNat < (edge₀.ptsArr s (-3) 7).size
          theorem AP.Edge.ptsArr_eq_of_aPos_eq_and_taken_eq_insert {s s' : State} {p : PointZ} (h₂ : s'.aPos = s.aPos) (h₁ : s'.taken = s.taken.insert p) (h₃ : ∃ (z : ), |z| 3 edge₀.getBorderPoint s.aPos z = p) :
          edge₀.ptsArr s' (-3) 7 = (edge₀.ptsArr s (-3) 7).set (p.x - s.aPos.x + 3).toNat true
          theorem AP.Edge.exi_fin_y_of_f_eq_some {s : State} {p : PointZ} (h : edge₀.f s = some p) :
          ∃ (y : Fin 6), s.aPos.y = -y