-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproofs.txt
87 lines (75 loc) · 1.87 KB
/
proofs.txt
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
{(a ^ b)} |- (a ^ b):
(assume (a ^ b))
{(a ^ (b ^ c))} |- ((a ^ b) ^ c):
(conj-intro
(conj-intro
(conj-elim-l (assume (a ^ (b ^ c))))
(conj-elim-l (conj-elim-r (assume (a ^ (b ^ c))))))
(conj-elim-r (conj-elim-r (assume (a ^ (b ^ c))))))
{((a ^ b) -> c)} |- (a -> (b -> c)):
(impl-intro
'a
(impl-intro
'b
(impl-elim (assume ((a ^ b) -> c)) (conj-intro (assume 'a) (assume 'b)))))
{(a -> (b -> c))} |- ((a ^ b) -> c):
(impl-intro
(a ^ b)
(impl-elim
(impl-elim (assume (a -> (b -> c))) (conj-elim-l (assume (a ^ b))))
(conj-elim-r (assume (a ^ b)))))
{(a ^ (b ^ c))} |- a:
(conj-elim-l (assume (a ^ (b ^ c))))
{(a ^ (b ^ c))} |- b:
(conj-elim-l (conj-elim-r (assume (a ^ (b ^ c)))))
{(a ^ (b ^ c))} |- c:
(conj-elim-r (conj-elim-r (assume (a ^ (b ^ c)))))
{a} |- (a v b):
(disj-intro-l (assume 'a) 'b)
{(~~(a v ~a) -> (a v ~a))} |- (a v ~a):
(impl-elim
(assume (~~(a v ~a) -> (a v ~a)))
(impl-intro
~(a v ~a)
(impl-elim
(assume ~(a v ~a))
(disj-intro-r
'a
(impl-intro
'a
(impl-elim (assume ~(a v ~a)) (disj-intro-l (assume 'a) ~a)))))))
{(~~a -> a)} |- (~(a -> ~a) -> a):
(impl-intro
~(a -> ~a)
(impl-elim
(assume (~~a -> a))
(impl-intro ~a (impl-elim (assume ~(a -> ~a)) (impl-intro 'a (assume ~a))))))
{(~(a -> ~a) -> a)} |- (~~a -> a):
(impl-intro
~~a
(impl-elim
(assume (~(a -> ~a) -> a))
(impl-intro
(a -> ~a)
(impl-elim
(assume ~~a)
(impl-intro
'a
(impl-elim (impl-elim (assume (a -> ~a)) (assume 'a)) (assume 'a)))))))
{(a v ~a)} |- ((~a -> a) -> a):
(impl-intro
(~a -> a)
(disj-elim
(assume (a v ~a))
(assume 'a)
(impl-elim (assume (~a -> a)) (assume ~a))))
{((~(a v ~a) -> (a v ~a)) -> (a v ~a))} |- (a v ~a):
(impl-elim
(assume ((~(a v ~a) -> (a v ~a)) -> (a v ~a)))
(impl-intro
~(a v ~a)
(disj-intro-r
'a
(impl-intro
'a
(impl-elim (assume ~(a v ~a)) (disj-intro-l (assume 'a) ~a))))))