proposition: Lemma select_at_diff: forall a b, a <> b -> select a (diff a b) <> select b (diff a b).
proof: Proof. intros a b H. unfold diff. assert (equal a b = false). apply not_true_iff_false. red. intro. apply equal_eq in H0. subst. auto. generalize (@notequal_neq a b). rewrite H0. intro. unfold diff_index. destruct (diff_index_p (n Logic.eq_refl)). simpl; auto. Qed.
imports: Bool OrderedType SMT_classes ProofIrrelevance