def safe_rev_cell

minebender-game@1.0.0.0 · proof_laws.bend:284

import minebender-game@1.0.0.0/proof_laws.bend as ProofLaws
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/game.bend as G
import minebender-game@1.0.0.0/LAWS.bend as L
import minebender-game@1.0.0.0/proof_copy.bend as PC

284def safe_rev_cell(+w: Nat, +h: Nat, +layout: T.Grid(Bool), +shown: T.Grid(Bool), +flags: List<&2, T.Pos>,
285  +status: T.Status, +q: T.Pos, +on: {B.on_board(w, h, q) == True{} : Bool}) ->
286  {Bool.or(L.mine(layout, q), L.revealed(G.knowledge(G.Game{w, h, layout, shown, flags, status}), q))
287    == Bool.or(B.mine(layout, q), B.at(Bool, False{}, shown, q)) : Bool}:
288  %PC.mine_eq(layout, q) :
289    {Bool.or(_, L.revealed(G.knowledge(G.Game{w, h, layout, shown, flags, status}), q))
290      == Bool.or(B.mine(layout, q), B.at(Bool, False{}, shown, q)) : Bool}
291  %Equal.sym(Bool, L.revealed(G.knowledge(G.Game{w, h, layout, shown, flags, status}), q), B.at(Bool, False{}, shown, q),
292    know_revealed(w, h, layout, shown, flags, status, q, on)) :
293    {Bool.or(B.mine(layout, q), _) == Bool.or(B.mine(layout, q), B.at(Bool, False{}, shown, q)) : Bool}
294  {==}

Uses (17)

Used by (1)