def order_split.rest
minebender-game@1.0.0.0 · proof_solver.bend:1966
import minebender-game@1.0.0.0/proof_solver.bend as ProofSolver
import Base
import minebender-game@1.0.0.0/types.bend as T
import minebender-game@1.0.0.0/solver.bend as S
1966def order_split.rest(+t: S.Todo, +rest: List<&2, S.Todo>, +q: T.Pos, +hr: Bool,
1967 r: Or({tcontains(S.nears(rest), q) == True{} : Bool}, {tcontains(S.fars(rest), q) == True{} : Bool})) ->
1968 {Bool.or(tcontains(List.filter.put(S.Todo, t, S.nears(rest), hr), q),
1969 tcontains(List.filter.put(S.Todo, t, S.fars(rest), Bool.not(hr)), q)) == True{} : Bool}:
1970 match r:
1971 case Inl{a}:
1972 or_l(tcontains(List.filter.put(S.Todo, t, S.nears(rest), hr), q),
1973 tcontains(List.filter.put(S.Todo, t, S.fars(rest), Bool.not(hr)), q), tput_keeps(hr, t, S.nears(rest), q, a))
1974 case Inr{b}:
1975 or_r(tcontains(List.filter.put(S.Todo, t, S.nears(rest), hr), q),
1976 tcontains(List.filter.put(S.Todo, t, S.fars(rest), Bool.not(hr)), q), tput_keeps(Bool.not(hr), t, S.fars(rest), q, b))