Print or. Check or_ind. Lemma or_commute: forall A B:Prop, A\/B -> B\/A. intros A B H. elim H. Show Proof. intros H1. right. assumption. intros H1. left. assumption. (* ??? *) Show Proof. Qed. Print or_commute. Reset or_commute. Lemma or_commute: forall A B:Prop, A\/B -> B\/A. exact (fun (A B : Prop) (H : A \/ B) => or_ind (fun HA : A => or_intror B HA) (fun HB : B => or_introl A HB) H). Qed. Reset or_commute. Lemma or_commute: forall A B:Prop, A\/B -> B\/A. tauto. Qed. Reset or_commute. Lemma or_commute: forall A B:Prop, A\/B -> B\/A. intuition. Qed. Reset or_commute. Lemma or_commute: forall A B:Prop, A\/B -> B\/A. intros A B H. elim H. intros HA. right. (* apply or_intror *) assumption. intros HB. left. (* apply or_introl *) apply HB. Show Proof. Qed.