def agrees_cell

minebender-game@1.0.0.0 · proof_laws.bend:216

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_grid.bend as PG

216def agrees_cell(+w: Nat, +h: Nat, +layout: T.Grid(Bool), +shown: T.Grid(Bool), +p: T.Pos,
217  on: {B.on_board(w, h, p) == True{} : Bool}) ->
218  {L.agrees(w, h, layout, p, L.at(T.Seen, T.Hidden{}, G.know_rows(w, h, layout, shown, List.range(h)), p)) == True{} : Bool}:
219  match p:
220    case T.Pos{x, y}:
221      +q = {T.Pos{x, y} : T.Pos}
222      %Equal.sym(T.Seen, L.at(T.Seen, T.Hidden{}, G.know_rows(w, h, layout, shown, List.range(h)), q),
223        G.seen_at(w, h, layout, shown, q), PG.know_at(w, h, layout, shown, x, y, on)) :
224        {L.agrees(w, h, layout, q, _) == True{} : Bool}
225      agrees_pick(w, h, layout, q, B.at(Bool, False{}, shown, q), B.mine(layout, q), {==})

Uses (16)

Used by (1)