proposition: Lemma eq_bool_ok : forall (t1 t2 : A), if eq_bool t1 t2 then t1 = t2 else t1 <> t2.
proof: Proof. intros [b1 t1] [b2 t2]; destruct b1; destruct b2; simpl; try solve [intros H; inversion H]; case_eq (EqtT.T.eq_symb_bool t1 t2); intros H; generalize (EqtT.T.eq_symb_bool_ok t1 t2); rewrite H; intros H0; try (f_equal; exact H0); intros G; inversion G as [H1]; elim H0; exact H1. Qed.
imports: Coq(Setoid List Relations Wellfounded PeanoNat) CoLoR(weaved_relation list_permut terminaison)