def contains_remove_self.go

minebender-game@1.0.0.0 · proof_grid.bend:229

import minebender-game@1.0.0.0/proof_grid.bend as ProofGrid
import Base
import minebender-game@1.0.0.0/types.bend as T
import minebender-game@1.0.0.0/board.bend as B

229def contains_remove_self.go(+q: T.Pos, +t: List<&2, T.Pos>, +p: T.Pos, +b: Bool,
230  +e: {B.same(q, p) == b : Bool},
231  ih: {B.contains(B.remove(t, p), p) == False{} : Bool}) ->
232  {B.contains(List.filter.put(T.Pos, q, B.remove(t, p), Bool.not(B.same(q, p))), p)
233    == False{} : Bool}:
234  match b:
235    case True{}:
236      %Equal.sym(Bool, B.same(q, p), True{}, e) :
237        {B.contains(List.filter.put(T.Pos, q, B.remove(t, p), Bool.not(_)), p) == False{} : Bool}
238      ih
239    case False{}:
240      %Equal.sym(Bool, B.same(q, p), False{}, e) :
241        {B.contains(List.filter.put(T.Pos, q, B.remove(t, p), Bool.not(_)), p) == False{} : Bool}
242      %Equal.sym(Bool, B.same(q, p), False{}, e) :
243        {Bool.or(_, B.contains(B.remove(t, p), p)) == False{} : Bool}
244      ih

Uses (10)

Used by (1)