proposition: Lemma compare_trans : forall (c : comparison) (x y z : t), compare x y = c -> compare y z = c -> compare x z = c.
proof: Proof. induction x; simpl. - intros. destruct y; destruct z; simpl in *;intuition try congruence. destruct c; repeat Lib.elim_compare; lia. - intros. destruct y; destruct z; simpl in *;intuition try congruence. destruct l,l1,l3; simpl in *; auto; try congruence. eapply list_compare_trans; eauto. eapply list_compare_trans; eauto. - intros. destruct y; destruct z; simpl in *;intuition try congruence. destruct (id t0 ?= id t1) eqn:IDA ; destruct (id t1 ?= id t2) eqn:IDH ; destruct (id t0 ?= id t2) eqn:IDH0 ; repeat Lib.elim_compare; try lia; try congruence. eapply list_compare_trans;eauto. Qed.
imports: Cdcl.PatriciaR Cdcl.KeyInt Cdcl.ReifClasses Cdcl.Lib Bool Setoid ZifyBool ZArith Uint63 Lia List Cdcl.Syntax Cdcl.Clause