fact: Fixpoint reduce_lits (lit: IntMap.ptrie (Annot.t bool)) (ann: LitSet.t) (cl : list literal) := match cl with | nil => Some (Annot.mk nil ann) | e::cl => match find_lit e lit with | None => match reduce_lits lit ann cl with | None => None | Some l' => Some (Annot.map (fun x => e::x) l') end | Some b => if Annot.elt b then None else reduce_lits lit (LitSet.union (Annot.deps b) ann) cl end end.
imports: Cdcl.PatriciaR Cdcl.KeyInt Cdcl.ReifClasses Cdcl.Lib Bool Setoid ZifyBool ZArith Uint63 Lia List Cdcl.Syntax Cdcl.Clause