-
Notifications
You must be signed in to change notification settings - Fork 0
/
sheet3.v
58 lines (48 loc) · 977 Bytes
/
sheet3.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Require Import Classical.
Lemma trivial_implication : forall(A : Prop),
A ->
A.
Proof.
intros. apply H.
Qed.
Lemma remove_double_negation : forall(A : Prop),
~~A ->
A.
Proof.
intros. apply NNPP in H. apply H.
Qed.
Lemma contraposition : forall A B : Prop, (A -> B) -> (~B -> ~A).
Proof.
intros A B H1 H2.
intro Ha.
apply H2.
apply H1.
apply Ha.
Qed.
Lemma implication_from_inconsistency : forall A B : Prop, ~B -> (B->A).
Proof.
intros.
contradiction.
Qed.
Lemma elimination_of_assumptions : forall A B : Prop,
(B -> A) -> ((~B -> A) -> A).
Proof.
intros A B H1 H2.
destruct (classic B) as [H3 | H3].
- apply H1. assumption.
- apply H2. assumption.
Qed.
Theorem a : forall(x y : Prop),
x -> ((x -> y) -> y).
Proof.
intros x y H1 H2.
apply H2.
apply H1.
Qed.
Theorem b : forall(p q : Prop),
~p -> (p -> (p -> q)).
Proof.
intros. apply implication_from_inconsistency with (B := p).
- apply H.
- apply H1.
Qed.