proposition: Lemma elim_no_vars : forall env p cl1 cl2, ~ is_var_of_cnf p cl1 -> beval_cnf env (Elim.elim p (cl1 ++ cl2)) = beval_cnf env (cl1 ++ Elim.elim p cl2).
proof: Proof. unfold Elim.elim. intros. destruct (Elim.split_polarity p (cl1 ++ cl2)) as ((lp,ln),lo) eqn: S1. destruct (Elim.split_polarity p cl2) as ((lp1,ln1),lo1) eqn: S2. rewrite! beval_cnf_app. apply split_polarity_no_vars with (cl1:=cl1) in S2; auto. rewrite S1 in S2. inv S2. rewrite beval_cnf_app. rewrite beval_cnf_normalise. btauto. Qed.
imports: ZArith List Bool Lia Morphisms Cdcl.Syntax Cdcl.Lib Cdcl.Lit Cdcl.Clause