fact: Fixpoint radd_term (t : Term' * Annot) (cl : clause) : clause + Trace := match cl with | nil => match deduce (fst t) (fst t) with | Some u => if unsat u then inr (push (snd t) null) else inl (t::nil) | None => inl (t::nil) end | t'::cl => match deduce (fst t) (fst t') with | Some u => if unsat u then inr (push (snd t) (push (snd t') null)) else match radd_term t cl with | inl cl' => inl (t'::cl') | inr l => inr l end | None => match radd_term t cl with | inl cl' => inl (t'::cl') | inr l => inr l end end end.
imports: List Refl Bool Relation_Definitions Setoid