fact: Fixpoint try_one (bs : seq bool) (p : pos) (z : nat) (g : grid) (st : state) (f: seq nat -> state -> option (seq nat)) {struct bs}: option (seq nat) := if bs is b :: bs1 then if b then let g1 := update p z g in let st1 := update_anti_literals p z st in if f g1 st1 is some c1 then some c1 else try_one bs1 p z.+1 g st f else try_one bs1 p z.+1 g st f else None.
imports: mathcomp(all_ssreflect) mathcomp(zify)