def leaf_keep

minebender-game@1.0.0.0 · proof_solver.bend:1186

import minebender-game@1.0.0.0/proof_solver.bend as ProofSolver
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/solver.bend as S

1186def leaf_keep(+ctx: S.Ctx, +part: T.Grid(Maybe<&2, Bool>), +l: T.Grid(Bool), +q: T.Pos, +bq: Bool,
1187  lq: {S.look(part, q) == Some{bq} : Maybe<&2, Bool>},
1188  r: {S.fill(part) == l : T.Grid(Bool)} & {S.check(ctx, S.fill(part)) == True{} : Bool}) ->
1189  {B.mine(l, q) == bq : Bool}:
1190  match r:
1191    case (fl, ck):
1192      %fl : {B.mine(_, q) == bq : Bool}
1193      %Equal.sym(Bool, B.mine(S.fill(part), q), Maybe.default(&2, Bool, S.look(part, q), False{}), fill_at(part, q)) :
1194        {_ == bq : Bool}
1195      %Equal.sym(Maybe<&2, Bool>, S.look(part, q), Some{bq}, lq) : {Maybe.default(&2, Bool, _, False{}) == bq : Bool}
1196      {==}

Uses (14)

Used by (2)