ProofSolver.solve_safe.go: def of minebender-game@1.0.0.0 Import: import minebender-game@1.0.0.0/proof_solver.bend as ProofSolver Lines 2780-2793 of minebender-game@1.0.0.0/proof_solver.bend: https://jend.leeeet.dev/read.txt?path=minebender-game@1.0.0.0/proof_solver.bend&start_line=2780&end_line=2793 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 import minebender-game@1.0.0.0/LAWS.bend as L def solve_safe.go(+w: Nat, +h: Nat, +n: Nat, +rows: T.Grid(T.Seen), +c: T.Pos, +ok: Bool, oke: {B.shaped(T.Seen, w, h, rows) == ok : Bool}, e: {S.solve.go(ok, S.hidden_cells(rows, B.cells(w, h)), w, h, n, rows) == Some{c} : Maybe<&2, T.Pos>}) -> L.ProvablySafe(T.Knowledge{w, h, n, rows}, c): match ok: case False{}: +hs = S.hidden_cells(rows, B.cells(w, h)) safe_hidden(w, h, n, rows, c, hc_sound(rows, B.cells(w, h), c, head_some(hs, c, e)), layout => cons => safe_none(w, h, n, rows, oke, c, layout, cons)) case True{}: +hs = S.hidden_cells(rows, B.cells(w, h)) +its = S.items(w, h, rows, B.cells(w, h)) ls = loop_some(hs, Nil{}, S.plan(w, h, S.todos(its, hs)), S.start(rows), S.Ctx{w, h, n, rows, its}, c, e) solve_safe.k(w, h, n, rows, c, oke, ls) Uses (24): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/LAWS.bend&name=ProvablySafe https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/board.bend&name=cells https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/board.bend&name=shaped https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/proof_solver.bend&name=hc_sound https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/proof_solver.bend&name=head_some https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/proof_solver.bend&name=loop_some https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/proof_solver.bend&name=safe_hidden https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/proof_solver.bend&name=safe_none https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/proof_solver.bend&name=solve_safe.k https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/solver.bend&name=Ctx https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/solver.bend&name=hidden_cells https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/solver.bend&name=items https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/solver.bend&name=plan https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/solver.bend&name=solve.go https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/solver.bend&name=start https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/solver.bend&name=todos https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/types.bend&name=Grid https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/types.bend&name=Knowledge https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/types.bend&name=Pos https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/types.bend&name=Seen