fact: Fixpoint reduce (lit: IntMap.ptrie (Annot.t bool)) (ann: LitSet.t) (w:literal) (cl : list literal) := match cl with | nil => Annot.mk (UNIT w) ann | e::l => if eq_literal e w then reduce lit ann w l else match find_lit e lit with | None => Annot.mk (CLAUSE {| watch1 := w ; watch2 := e ; unwatched := l |}) ann | Some b => if Annot.elt b then Annot.mk_elt TRUE else reduce lit (LitSet.union (Annot.deps b) ann) w l end end.
imports: Cdcl.PatriciaR Cdcl.KeyInt Cdcl.ReifClasses Cdcl.Lib Bool Setoid ZifyBool ZArith Uint63 Lia List Cdcl.Syntax Cdcl.Clause