-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.txt
112 lines (77 loc) · 1.74 KB
/
test.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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// To run the test please issue:
// cargo run -- -f test.txt
// Contingent
(p -> (!p & r))
// Contingent
!p -> q
// Logically True
p | q | !p
// Contingent
a -> b -> c -> d
// Logically True
((p & q) -> p)
// Contingent
((p | q) -> (r -> p))
// Logically True
p -> (q -> r | p)
// Logically True
p & q -> p
// Logically True
(p -> q) -> ((q -> r) -> (p -> r))
// Contingent
!((!p | !q) & (p <-> !r) -> !(q & r))
// Logically False
p & q <-> !(p & q) | !q
// Logically False
p & !p
// Logically True
p | !p
// Contingent
(!p | !q) & (p <-> !r) -> !(q & r)
// Logically True
!(p & q <-> !(p & q) | !q)
// Contingent
q & (p -> q) -> p
// Logically True
p -> q -> (p & r -> p)
// Logically True
p & (!q -> !p) -> q
// -----------------------------------
// Some important valid argument forms
// -----------------------------------
// Logically True - Modus Ponens
p & (p -> q) -> q
// Logically True - Modus Tollens
!q & (p -> q) -> !p
// Logically True - Disjunctive syllogism
(p | q) & !p -> q
// as well as
(p | q) & !q -> p
// Logically True - Addition
p -> (p | q)
// as well as
p -> (q | p)
// Logically True - Simplification
p & q -> p
// as well as
p & q -> q
// Logically True - Double negation
!!p -> p
// Logically True - Transitivity of implication
((p -> q) & (q -> r)) -> (p -> r)
// Logically True - "Dreierschluss"
(p -> (q -> r)) -> ((p -> q) -> (p -> r))
// Logically True - "Constructive dilemma"
((p -> q) & (r -> s) & (p | r)) -> q | s
// Logically True - "Destructive dilemma"
(p -> q) & (r -> s) & (!q | !s) -> !p | !r
// Logically True - Reiteration, trivial argument
p -> p
// Logically True - mEFQ
!p -> (p -> q)
// Logically True - mVEQ
q -> (p -> q)
// Logically True - lEFQ
p & !p -> q
// Logically True - lVEQ
p -> (q | !q)