feat: 3234 week 2

This commit is contained in:
2024-02-04 15:40:50 +08:00
parent 1b606271ef
commit 6482186773
7 changed files with 1438 additions and 45 deletions

View File

@@ -0,0 +1,67 @@
(* week-02_the-revert-tactic.v *)
(* LPP 2024 - CS3234 2023-2024, Sem2 *)
(* Olivier Danvy <danvy@yale-nus.edu.sg> *)
(* Version of 28 Jan 2024, with an instance of revert with several arguments *)
(* was: *)
(* Version of 25 Jan 2024 *)
(* ********** *)
Lemma a_proposition_implies_itself :
forall A : Prop,
A -> A.
Proof.
intro A.
intro H_A.
exact H_A.
Restart.
intro A.
intro H_A.
revert H_A. (* <-- *)
revert A. (* <-- *)
intros A H_A.
exact H_A.
Qed.
(* ********** *)
Lemma swapping_the_order_of_quantifiers :
forall A B : Prop,
(A -> B -> A /\ B) -> B -> A -> A /\ B.
Proof.
intros A B H_implication H_B H_A.
exact (H_implication H_A H_B).
Restart.
intros A B H_implication H_B H_A.
revert H_B.
revert H_A.
exact H_implication.
Restart.
intros A B H_implication H_B H_A.
revert H_B.
revert H_A.
revert H_implication.
exact (a_proposition_implies_itself (A -> B -> A /\ B)).
Restart.
intros A B H_implication H_B H_A.
revert H_A H_B.
exact H_implication.
Restart.
intros A B H_implication H_B H_A.
revert H_implication H_A H_B.
exact (a_proposition_implies_itself (A -> B -> A /\ B)).
Qed.
(* ********** *)
(* end of week-02_the-revert-tactic.v *)