def gen_first.col
minebender-game@1.0.0.0 · proof_gen.bend:209
import minebender-game@1.0.0.0/proof_gen.bend as ProofGen
import Base
import minebender-game@1.0.0.0/types.bend as T
import minebender-game@1.0.0.0/game.bend as G
import minebender-game@1.0.0.0/proof_base.bend as P
209def gen_first.col(+z: G.Zone, +fx: Nat, +fy: Nat, +w: Nat, +st2: G.GenState,
210 s: {G.gen.out(z, T.Pos{fx, fy}) == True{} : Bool}, +b: Bool,
211 e: {Nat.is_lt(fx, w) == b : Bool}) ->
212 {Maybe.default(&2, Bool, List.get(&2, Bool, G.gen.row(z, fy, List.range(w), st2), fx), False{})
213 == False{} : Bool}:
214 match b:
215 case True{}:
216 %Equal.sym(Maybe<&2, Bool>, List.get(&2, Bool, G.gen.row(z, fy, List.range(w), st2), fx),
217 Some{False{}},
218 gen_row_first(z, fy, List.range(w), fx, fx, st2, P.range_get(w, fx, e), s)) :
219 {Maybe.default(&2, Bool, _, False{}) == False{} : Bool}
220 {==}
221 case False{}:
222 %Equal.sym(Maybe<&2, Bool>, List.get(&2, Bool, G.gen.row(z, fy, List.range(w), st2), fx),
223 None{}, gen_row_out(z, fy, List.range(w), fx, st2, P.range_get_out(w, fx, e))) :
224 {Maybe.default(&2, Bool, _, False{}) == False{} : Bool}
225 {==}