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 {==}