def contains_cells.k

minebender-game@1.0.0.0 · proof_cells.bend:190

import minebender-game@1.0.0.0/proof_cells.bend as ProofCells
import Base
import minebender-game@1.0.0.0/types.bend as T
import minebender-game@1.0.0.0/board.bend as B
import minebender-game@1.0.0.0/proof_base.bend as P

190def contains_cells.k(+w: Nat, +a: Nat, +t: List<&2, Nat>, +x: Nat, +y: Nat,
191  xm: {memn(List.range(w), x) == True{} : Bool}, +b: Bool,
192  e: {Bool.or(b, memn(t, y)) == True{} : Bool}, be: {Nat.is_eq(a, y) == b : Bool},
193  ih: {memn(t, y) == True{} : Bool} -> {B.contains(B.cells.go(w, t), T.Pos{x, y}) == True{} : Bool}) ->
194  {Bool.or(B.contains(B.row_cells(a, List.range(w)), T.Pos{x, y}), B.contains(B.cells.go(w, t), T.Pos{x, y}))
195    == True{} : Bool}:
196  match b:
197    case True{}:
198      %P.eq_sound(a, y, be) :
199        {Bool.or(B.contains(B.row_cells(a, List.range(w)), T.Pos{x, _}), B.contains(B.cells.go(w, t), T.Pos{x, y}))
200          == True{} : Bool}
201      %Equal.sym(Bool, B.contains(B.row_cells(a, List.range(w)), T.Pos{x, a}), True{},
202        contains_row(a, List.range(w), x, xm)) :
203        {Bool.or(_, B.contains(B.cells.go(w, t), T.Pos{x, y})) == True{} : Bool}
204      {==}
205    case False{}:
206      %Equal.sym(Bool, B.contains(B.cells.go(w, t), T.Pos{x, y}), True{}, ih(e)) :
207        {Bool.or(B.contains(B.row_cells(a, List.range(w)), T.Pos{x, y}), _) == True{} : Bool}
208      or_true_r(B.contains(B.row_cells(a, List.range(w)), T.Pos{x, y}))

Uses (15)

Used by (1)