def inv_reveal.go

minebender-game@1.0.0.0 · proof_inv.bend:599

import minebender-game@1.0.0.0/proof_inv.bend as ProofInv
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

599def inv_reveal.go(+w: Nat, +h: Nat, +layout: T.Grid(Bool), +shown: T.Grid(Bool), +flags: List<&2, T.Pos>,
600  +status: T.Status, +sh: {B.shaped(Bool, w, h, shown) == True{} : Bool},
601  +won: {L.is_won(status) == G.all_safe(w, h, layout, shown) : Bool},
602  +cm: {calm(status, w, h, layout, shown) == True{} : Bool},
603  +cl: {closed(w, h, layout, shown) == True{} : Bool}, +p: T.Pos, +f: Bool) ->
604  Inv(w, h, layout, G.reveal.go(f, G.Game{w, h, layout, shown, flags, status}, p)):
605  match f:
606    case True{}:
607      ({==}, ({==}, ({==}, (sh, (won, (cm, cl))))))
608    case False{}:
609      inv_open(w, h, layout, shown, flags, status, sh, won, cm, cl, p)

Uses (16)

Used by (1)