feat: 3234 week 2
This commit is contained in:
67
cs3234/labs/week-02_the-revert-tactic.v
Normal file
67
cs3234/labs/week-02_the-revert-tactic.v
Normal 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 *)
|
||||
Reference in New Issue
Block a user