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