proposition: Lemma lem1 : forall x y z w : E, pair x y = pair z w -> x = z.
proof: Proof. ir. assert (inc (singleton x) (pair z w)). rewrite <- H. unfold pair in |- *. ap doubleton_first. unfold pair in H0. pose (doubleton_or H0). nin o. ap singleton_inj. am. assert (inc emptyset (singleton x)). rewrite H1. ap doubleton_first. assert (inc (singleton w) (singleton x)). rewrite H1. ap doubleton_second. assert (emptyset = x :> Type). ap singleton_eq. am. assert (singleton w = x). ap singleton_eq. am. assert (inc w emptyset). rewrite H4. rewrite <- H5. ap singleton_inc. pose (emptyset_empty H6). elim f. Qed.
imports: tactics