proposition: Theorem contrapositive : forall (P Q : Prop), (P -> Q) -> (~Q -> ~P).
proof: Proof. Admitted. Theorem not_both_true_and_false : forall P : Prop, ~ (P /\ ~P). Proof. Admitted. Definition manual_grade_for_informal_not_PNP : option (nat*string) := None. Theorem de_morgan_not_or : forall (P Q : Prop), ~ (P \/ Q) -> ~P /\ ~Q. Proof. Admitted. Theorem not_true_is_false : forall b : bool, b <> true -> b = false. Proof. intros b H. destruct b eqn:HE. - unfold not in H. apply ex_falso_quodlibet. apply H. reflexivity. - reflexivity. Qed.