:: Calculus of Quantifiers. Deduction Theorem
:: by Agata Darmochwa\l
::
:: Received October 24, 1990
:: Copyright (c) 1990-2011 Association of Mizar Users


begin

theorem Th1: :: CQC_THE2:1
for p, q, r being Element of CQC-WFF st p => (q => r) is valid holds
(p '&' q) => r is valid
proof end;

theorem Th2: :: CQC_THE2:2
for p, q, r being Element of CQC-WFF st p => (q => r) is valid holds
(q '&' p) => r is valid
proof end;

theorem Th3: :: CQC_THE2:3
for p, q, r being Element of CQC-WFF st (p '&' q) => r is valid holds
p => (q => r) is valid
proof end;

theorem Th4: :: CQC_THE2:4
for p, q, r being Element of CQC-WFF st (p '&' q) => r is valid holds
q => (p => r) is valid
proof end;

Lm1: for p, q being Element of CQC-WFF holds
( (p '&' q) => p is valid & (p '&' q) => q is valid )
proof end;

Lm2: for p, q being Element of CQC-WFF st p '&' q is valid holds
( p is valid & q is valid )
proof end;

Lm3: for p, q, r being Element of CQC-WFF st p => q is valid & p => r is valid holds
p => (q '&' r) is valid
proof end;

Lm4: for p, q, r, t being Element of CQC-WFF st p => q is valid & r => t is valid holds
(p 'or' r) => (q 'or' t) is valid
proof end;

Lm5: for p, q, r, t being Element of CQC-WFF st p => q is valid & r => t is valid holds
(p '&' r) => (q '&' t) is valid
proof end;

Lm6: for p, q being Element of CQC-WFF holds
( p => (p 'or' q) is valid & p => (q 'or' p) is valid )
proof end;

Lm7: for p, q, r being Element of CQC-WFF st p => q is valid & r => q is valid holds
(p 'or' r) => q is valid
proof end;

Lm8: for p, q being Element of CQC-WFF st p is valid & q is valid holds
p '&' q is valid
proof end;

Lm9: for p, q, r being Element of CQC-WFF st p => q is valid holds
(r '&' p) => (r '&' q) is valid
proof end;

Lm10: for p, q, r being Element of CQC-WFF st p => q is valid holds
(p 'or' r) => (q 'or' r) is valid
proof end;

Lm11: for p, q being Element of CQC-WFF holds (p 'or' q) => (('not' p) => q) is valid
proof end;

Lm12: for p, q being Element of CQC-WFF holds (('not' p) => q) => (p 'or' q) is valid
proof end;

Lm13: for p being Element of CQC-WFF holds p <=> p is valid
proof end;

Lm14: for p, q being Element of CQC-WFF holds
( ( p => q is valid & q => p is valid ) iff p <=> q is valid )
proof end;

Lm15: for p, q being Element of CQC-WFF st p <=> q is valid holds
( p is valid iff q is valid )
proof end;

Lm16: for p, q, r, t being Element of CQC-WFF st p => (q => r) is valid & r => t is valid holds
p => (q => t) is valid
proof end;

theorem Th5: :: CQC_THE2:5
for s being QC-formula
for y, x being bound_QC-variable holds
( y in still_not-bound_in (All (x,s)) iff ( y in still_not-bound_in s & y <> x ) )
proof end;

theorem Th6: :: CQC_THE2:6
for s being QC-formula
for y, x being bound_QC-variable holds
( y in still_not-bound_in (Ex (x,s)) iff ( y in still_not-bound_in s & y <> x ) )
proof end;

theorem Th7: :: CQC_THE2:7
for s, h being QC-formula
for y being bound_QC-variable holds
( y in still_not-bound_in (s => h) iff ( y in still_not-bound_in s or y in still_not-bound_in h ) )
proof end;

theorem :: CQC_THE2:8
canceled;

theorem Th9: :: CQC_THE2:9
for s, h being QC-formula
for y being bound_QC-variable holds
( y in still_not-bound_in (s '&' h) iff ( y in still_not-bound_in s or y in still_not-bound_in h ) )
proof end;

theorem Th10: :: CQC_THE2:10
for s, h being QC-formula
for y being bound_QC-variable holds
( y in still_not-bound_in (s 'or' h) iff ( y in still_not-bound_in s or y in still_not-bound_in h ) )
proof end;

theorem :: CQC_THE2:11
for s being QC-formula
for x, y being bound_QC-variable holds
( not x in still_not-bound_in (All (x,y,s)) & not y in still_not-bound_in (All (x,y,s)) )
proof end;

theorem :: CQC_THE2:12
for s being QC-formula
for x, y being bound_QC-variable holds
( not x in still_not-bound_in (Ex (x,y,s)) & not y in still_not-bound_in (Ex (x,y,s)) )
proof end;

theorem :: CQC_THE2:13
canceled;

theorem Th14: :: CQC_THE2:14
for s, h being QC-formula
for x being bound_QC-variable holds (s => h) . x = (s . x) => (h . x)
proof end;

theorem :: CQC_THE2:15
for s, h being QC-formula
for x being bound_QC-variable holds (s 'or' h) . x = (s . x) 'or' (h . x)
proof end;

theorem :: CQC_THE2:16
canceled;

theorem :: CQC_THE2:17
for p being Element of CQC-WFF
for x, y being bound_QC-variable st x <> y holds
(Ex (x,p)) . y = Ex (x,(p . y))
proof end;

theorem Th18: :: CQC_THE2:18
for p being Element of CQC-WFF
for x being bound_QC-variable holds p => (Ex (x,p)) is valid
proof end;

theorem Th19: :: CQC_THE2:19
for p being Element of CQC-WFF
for x being bound_QC-variable st p is valid holds
Ex (x,p) is valid
proof end;

theorem :: CQC_THE2:20
for p being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,p)) => (Ex (x,p)) is valid
proof end;

theorem :: CQC_THE2:21
for p being Element of CQC-WFF
for x, y being bound_QC-variable holds (All (x,p)) => (Ex (y,p)) is valid
proof end;

theorem Th22: :: CQC_THE2:22
for p, q being Element of CQC-WFF
for x being bound_QC-variable st p => q is valid & not x in still_not-bound_in q holds
(Ex (x,p)) => q is valid
proof end;

theorem Th23: :: CQC_THE2:23
for p being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
(Ex (x,p)) => p is valid
proof end;

theorem :: CQC_THE2:24
for p being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p & Ex (x,p) is valid holds
p is valid
proof end;

theorem Th25: :: CQC_THE2:25
for p, q being Element of CQC-WFF
for h being QC-formula
for x, y being bound_QC-variable st p = h . x & q = h . y & not y in still_not-bound_in h holds
p => (Ex (y,q)) is valid
proof end;

theorem Th26: :: CQC_THE2:26
for p being Element of CQC-WFF
for x being bound_QC-variable st p is valid holds
All (x,p) is valid
proof end;

theorem Th27: :: CQC_THE2:27
for p being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
p => (All (x,p)) is valid
proof end;

theorem Th28: :: CQC_THE2:28
for p, q being Element of CQC-WFF
for h being QC-formula
for x, y being bound_QC-variable st p = h . x & q = h . y & not x in still_not-bound_in h holds
(All (x,p)) => q is valid
proof end;

theorem :: CQC_THE2:29
for p being Element of CQC-WFF
for y, x being bound_QC-variable st not y in still_not-bound_in p holds
(All (x,p)) => (All (y,p)) is valid
proof end;

theorem :: CQC_THE2:30
for p, q being Element of CQC-WFF
for h being QC-formula
for x, y being bound_QC-variable st p = h . x & q = h . y & not x in still_not-bound_in h & not y in still_not-bound_in p holds
(All (x,p)) => (All (y,q)) is valid
proof end;

theorem :: CQC_THE2:31
for p being Element of CQC-WFF
for x, y being bound_QC-variable st not x in still_not-bound_in p holds
(Ex (x,p)) => (Ex (y,p)) is valid
proof end;

theorem :: CQC_THE2:32
for p, q being Element of CQC-WFF
for h being QC-formula
for x, y being bound_QC-variable st p = h . x & q = h . y & not x in still_not-bound_in q & not y in still_not-bound_in h holds
(Ex (x,p)) => (Ex (y,q)) is valid
proof end;

theorem :: CQC_THE2:33
canceled;

theorem Th34: :: CQC_THE2:34
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,(p => q))) => ((All (x,p)) => (All (x,q))) is valid
proof end;

theorem Th35: :: CQC_THE2:35
for p, q being Element of CQC-WFF
for x being bound_QC-variable st All (x,(p => q)) is valid holds
(All (x,p)) => (All (x,q)) is valid
proof end;

theorem Th36: :: CQC_THE2:36
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,(p <=> q))) => ((All (x,p)) <=> (All (x,q))) is valid
proof end;

theorem :: CQC_THE2:37
for p, q being Element of CQC-WFF
for x being bound_QC-variable st All (x,(p <=> q)) is valid holds
(All (x,p)) <=> (All (x,q)) is valid
proof end;

theorem Th38: :: CQC_THE2:38
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,(p => q))) => ((Ex (x,p)) => (Ex (x,q))) is valid
proof end;

theorem Th39: :: CQC_THE2:39
for p, q being Element of CQC-WFF
for x being bound_QC-variable st All (x,(p => q)) is valid holds
(Ex (x,p)) => (Ex (x,q)) is valid
proof end;

theorem Th40: :: CQC_THE2:40
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds
( (All (x,(p '&' q))) => ((All (x,p)) '&' (All (x,q))) is valid & ((All (x,p)) '&' (All (x,q))) => (All (x,(p '&' q))) is valid )
proof end;

theorem Th41: :: CQC_THE2:41
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,(p '&' q))) <=> ((All (x,p)) '&' (All (x,q))) is valid
proof end;

theorem :: CQC_THE2:42
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds
( All (x,(p '&' q)) is valid iff (All (x,p)) '&' (All (x,q)) is valid )
proof end;

theorem Th43: :: CQC_THE2:43
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds ((All (x,p)) 'or' (All (x,q))) => (All (x,(p 'or' q))) is valid
proof end;

theorem Th44: :: CQC_THE2:44
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds
( (Ex (x,(p 'or' q))) => ((Ex (x,p)) 'or' (Ex (x,q))) is valid & ((Ex (x,p)) 'or' (Ex (x,q))) => (Ex (x,(p 'or' q))) is valid )
proof end;

theorem Th45: :: CQC_THE2:45
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (Ex (x,(p 'or' q))) <=> ((Ex (x,p)) 'or' (Ex (x,q))) is valid
proof end;

theorem :: CQC_THE2:46
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds
( Ex (x,(p 'or' q)) is valid iff (Ex (x,p)) 'or' (Ex (x,q)) is valid )
proof end;

theorem Th47: :: CQC_THE2:47
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (Ex (x,(p '&' q))) => ((Ex (x,p)) '&' (Ex (x,q))) is valid
proof end;

theorem :: CQC_THE2:48
for p, q being Element of CQC-WFF
for x being bound_QC-variable st Ex (x,(p '&' q)) is valid holds
(Ex (x,p)) '&' (Ex (x,q)) is valid
proof end;

theorem Th49: :: CQC_THE2:49
for p being Element of CQC-WFF
for x being bound_QC-variable holds
( (All (x,('not' ('not' p)))) => (All (x,p)) is valid & (All (x,p)) => (All (x,('not' ('not' p)))) is valid )
proof end;

theorem :: CQC_THE2:50
for p being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,('not' ('not' p)))) <=> (All (x,p)) is valid
proof end;

theorem Th51: :: CQC_THE2:51
for p being Element of CQC-WFF
for x being bound_QC-variable holds
( (Ex (x,('not' ('not' p)))) => (Ex (x,p)) is valid & (Ex (x,p)) => (Ex (x,('not' ('not' p)))) is valid )
proof end;

theorem :: CQC_THE2:52
for p being Element of CQC-WFF
for x being bound_QC-variable holds (Ex (x,('not' ('not' p)))) <=> (Ex (x,p)) is valid
proof end;

theorem Th53: :: CQC_THE2:53
for p being Element of CQC-WFF
for x being bound_QC-variable holds
( ('not' (Ex (x,('not' p)))) => (All (x,p)) is valid & (All (x,p)) => ('not' (Ex (x,('not' p)))) is valid )
proof end;

theorem :: CQC_THE2:54
for p being Element of CQC-WFF
for x being bound_QC-variable holds ('not' (Ex (x,('not' p)))) <=> (All (x,p)) is valid
proof end;

theorem Th55: :: CQC_THE2:55
for p being Element of CQC-WFF
for x being bound_QC-variable holds
( ('not' (All (x,p))) => (Ex (x,('not' p))) is valid & (Ex (x,('not' p))) => ('not' (All (x,p))) is valid )
proof end;

theorem :: CQC_THE2:56
for p being Element of CQC-WFF
for x being bound_QC-variable holds ('not' (All (x,p))) <=> (Ex (x,('not' p))) is valid
proof end;

theorem :: CQC_THE2:57
for p being Element of CQC-WFF
for x being bound_QC-variable holds
( ('not' (Ex (x,p))) => (All (x,('not' p))) is valid & (All (x,('not' p))) => ('not' (Ex (x,p))) is valid )
proof end;

theorem Th58: :: CQC_THE2:58
for p being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,('not' p))) <=> ('not' (Ex (x,p))) is valid
proof end;

theorem :: CQC_THE2:59
for p being Element of CQC-WFF
for x, y being bound_QC-variable holds
( (All (x,(All (y,p)))) => (All (y,(All (x,p)))) is valid & (All (x,y,p)) => (All (y,x,p)) is valid )
proof end;

theorem :: CQC_THE2:60
for p, q being Element of CQC-WFF
for h being QC-formula
for x, y being bound_QC-variable st p = h . x & q = h . y & not y in still_not-bound_in h holds
(All (x,(All (y,q)))) => (All (x,p)) is valid
proof end;

theorem :: CQC_THE2:61
for p being Element of CQC-WFF
for x, y being bound_QC-variable holds
( (Ex (x,(Ex (y,p)))) => (Ex (y,(Ex (x,p)))) is valid & (Ex (x,y,p)) => (Ex (y,x,p)) is valid )
proof end;

theorem :: CQC_THE2:62
for p, q being Element of CQC-WFF
for h being QC-formula
for x, y being bound_QC-variable st p = h . x & q = h . y & not y in still_not-bound_in h holds
(Ex (x,p)) => (Ex (x,y,q)) is valid
proof end;

theorem :: CQC_THE2:63
for p being Element of CQC-WFF
for x, y being bound_QC-variable holds (Ex (x,(All (y,p)))) => (All (y,(Ex (x,p)))) is valid
proof end;

theorem :: CQC_THE2:64
for p being Element of CQC-WFF
for x being bound_QC-variable holds Ex (x,(p <=> p)) is valid by Lm13, Th19;

theorem Th65: :: CQC_THE2:65
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds
( (Ex (x,(p => q))) => ((All (x,p)) => (Ex (x,q))) is valid & ((All (x,p)) => (Ex (x,q))) => (Ex (x,(p => q))) is valid )
proof end;

theorem Th66: :: CQC_THE2:66
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (Ex (x,(p => q))) <=> ((All (x,p)) => (Ex (x,q))) is valid
proof end;

theorem :: CQC_THE2:67
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds
( Ex (x,(p => q)) is valid iff (All (x,p)) => (Ex (x,q)) is valid )
proof end;

theorem Th68: :: CQC_THE2:68
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,(p '&' q))) => (p '&' (All (x,q))) is valid
proof end;

theorem Th69: :: CQC_THE2:69
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (All (x,(p '&' q))) => ((All (x,p)) '&' q) is valid
proof end;

theorem Th70: :: CQC_THE2:70
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
(p '&' (All (x,q))) => (All (x,(p '&' q))) is valid
proof end;

theorem :: CQC_THE2:71
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p & p '&' (All (x,q)) is valid holds
All (x,(p '&' q)) is valid
proof end;

theorem Th72: :: CQC_THE2:72
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
( (p 'or' (All (x,q))) => (All (x,(p 'or' q))) is valid & (All (x,(p 'or' q))) => (p 'or' (All (x,q))) is valid )
proof end;

theorem Th73: :: CQC_THE2:73
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
(p 'or' (All (x,q))) <=> (All (x,(p 'or' q))) is valid
proof end;

theorem :: CQC_THE2:74
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
( p 'or' (All (x,q)) is valid iff All (x,(p 'or' q)) is valid )
proof end;

theorem Th75: :: CQC_THE2:75
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
( (p '&' (Ex (x,q))) => (Ex (x,(p '&' q))) is valid & (Ex (x,(p '&' q))) => (p '&' (Ex (x,q))) is valid )
proof end;

theorem Th76: :: CQC_THE2:76
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
(p '&' (Ex (x,q))) <=> (Ex (x,(p '&' q))) is valid
proof end;

theorem :: CQC_THE2:77
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
( p '&' (Ex (x,q)) is valid iff Ex (x,(p '&' q)) is valid )
proof end;

Lm17: for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
(All (x,(p => q))) => (p => (All (x,q))) is valid
proof end;

theorem Th78: :: CQC_THE2:78
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
( (All (x,(p => q))) => (p => (All (x,q))) is valid & (p => (All (x,q))) => (All (x,(p => q))) is valid )
proof end;

theorem Th79: :: CQC_THE2:79
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
(p => (All (x,q))) <=> (All (x,(p => q))) is valid
proof end;

theorem :: CQC_THE2:80
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
( All (x,(p => q)) is valid iff p => (All (x,q)) is valid )
proof end;

theorem Th81: :: CQC_THE2:81
for q, p being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in q holds
(Ex (x,(p => q))) => ((All (x,p)) => q) is valid
proof end;

theorem Th82: :: CQC_THE2:82
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds ((All (x,p)) => q) => (Ex (x,(p => q))) is valid
proof end;

theorem :: CQC_THE2:83
for q, p being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in q holds
( (All (x,p)) => q is valid iff Ex (x,(p => q)) is valid )
proof end;

theorem Th84: :: CQC_THE2:84
for q, p being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in q holds
( ((Ex (x,p)) => q) => (All (x,(p => q))) is valid & (All (x,(p => q))) => ((Ex (x,p)) => q) is valid )
proof end;

theorem Th85: :: CQC_THE2:85
for q, p being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in q holds
((Ex (x,p)) => q) <=> (All (x,(p => q))) is valid
proof end;

theorem :: CQC_THE2:86
for q, p being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in q holds
( (Ex (x,p)) => q is valid iff All (x,(p => q)) is valid )
proof end;

theorem Th87: :: CQC_THE2:87
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
(Ex (x,(p => q))) => (p => (Ex (x,q))) is valid
proof end;

theorem Th88: :: CQC_THE2:88
for p, q being Element of CQC-WFF
for x being bound_QC-variable holds (p => (Ex (x,q))) => (Ex (x,(p => q))) is valid
proof end;

theorem Th89: :: CQC_THE2:89
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
(p => (Ex (x,q))) <=> (Ex (x,(p => q))) is valid
proof end;

theorem :: CQC_THE2:90
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
( p => (Ex (x,q)) is valid iff Ex (x,(p => q)) is valid )
proof end;

theorem :: CQC_THE2:91
for p being Element of CQC-WFF holds {p} |- p
proof end;

theorem Th92: :: CQC_THE2:92
for p, q being Element of CQC-WFF holds Cn ({p} \/ {q}) = Cn {(p '&' q)}
proof end;

theorem :: CQC_THE2:93
for p, q, r being Element of CQC-WFF holds
( {p,q} |- r iff {(p '&' q)} |- r )
proof end;

theorem Th94: :: CQC_THE2:94
for X being Subset of CQC-WFF
for p being Element of CQC-WFF
for x being bound_QC-variable st X |- p holds
X |- All (x,p)
proof end;

theorem :: CQC_THE2:95
for X being Subset of CQC-WFF
for p, q being Element of CQC-WFF
for x being bound_QC-variable st not x in still_not-bound_in p holds
X |- (All (x,(p => q))) => (p => (All (x,q))) by Th78, CQC_THE1:98;

theorem :: CQC_THE2:96
for X being Subset of CQC-WFF
for F, G being Element of CQC-WFF st F is closed & X \/ {F} |- G holds
X |- F => G
proof end;