:: Logical Equivalence of Formulae
:: by Oleg Okhotnikov
::
:: Received January 24, 1995
:: Copyright (c) 1995-2026 Association of Mizar Users
:: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.
environ
vocabularies NUMBERS, SUBSET_1, CQC_LANG, QC_LANG1, CQC_THE1, TARSKI,
XBOOLE_0, XBOOLEAN, BVFUNC_2, RCOMP_1, XXREAL_0, FINSEQ_1, FUNCT_1,
ARYTM_3, CARD_1, ZFREFLE1, FUNCOP_1, REALSET1, QC_LANG3, CQC_THE3, NAT_1;
notations TARSKI, XBOOLE_0, SUBSET_1, DOMAIN_1, ORDINAL1, NUMBERS, XCMPLX_0,
NAT_1, FUNCT_1, FINSEQ_1, QC_LANG1, QC_LANG3, CQC_LANG, CQC_THE1,
XXREAL_0;
constructors DOMAIN_1, XXREAL_0, NAT_1, MEMBERED, QC_LANG3, CQC_THE1, NUMBERS;
registrations SUBSET_1, RELSET_1, MEMBERED, CQC_LANG, LUKASI_1, XXREAL_0;
requirements NUMERALS, REAL, BOOLE, SUBSET, ARITHM;
definitions TARSKI;
expansions TARSKI;
theorems TARSKI, ZFMISC_1, CQC_THE1, CQC_THE2, LUKASI_1, NAT_1, QC_LANG1,
QC_LANG2, QC_LANG3, PROCAL_1, CQC_LANG, XBOOLE_0, XBOOLE_1;
schemes NAT_1, QC_LANG1;
begin
reserve A for QC-alphabet;
reserve p, q, r, s, p1, q1 for Element of CQC-WFF(A),
X, Y, Z, X1, X2 for Subset of CQC-WFF(A),
h for QC-formula of A,
x, y for bound_QC-variable of A,
n for Element of NAT;
theorem Th1:
p in X implies X |- p
proof
X c= Cn(X) by CQC_THE1:17;
hence thesis by CQC_THE1:def 8;
end;
theorem Th2:
X c= Cn(Y) implies Cn(X) c= Cn(Y) by CQC_THE1:15,16;
theorem Th3:
X |- p & {p} |- q implies X |- q
proof
assume that
A1: X |- p and
A2: {p} |- q;
p in Cn(X) by A1,CQC_THE1:def 8;
then {p} c= Cn(X) by ZFMISC_1:31;
then
A3: Cn({p}) c= Cn(X) by CQC_THE1:15,16;
q in Cn({p}) by A2,CQC_THE1:def 8;
hence thesis by A3,CQC_THE1:def 8;
end;
theorem Th4:
X |- p & X c= Y implies Y |- p
proof
assume that
A1: X |- p and
A2: X c= Y;
A3: p in Cn(X) by A1,CQC_THE1:def 8;
Cn(X) c= Cn(Y) by A2,CQC_THE1:18;
hence thesis by A3,CQC_THE1:def 8;
end;
definition
let A;
let p, q be Element of CQC-WFF(A);
pred p |- q means
{p} |- q;
end;
theorem Th5:
p |- p
by CQC_THE2:87;
theorem Th6:
p |- q & q |- r implies p |- r
by Th3;
definition
let A;
let X, Y be Subset of CQC-WFF(A);
pred X |- Y means
for p being Element of CQC-WFF(A) st p in Y holds X |- p;
end;
theorem Th7:
X |- Y iff Y c= Cn(X)
proof
hereby
assume
A1: X |- Y;
now
let p be object;
assume
A2: p in Y;
then reconsider p9 = p as Element of CQC-WFF(A);
X |- p9 by A1,A2;
hence p in Cn(X) by CQC_THE1:def 8;
end;
hence Y c= Cn(X);
end;
thus thesis by CQC_THE1:def 8;
end;
theorem
X |- X
by Th1;
theorem Th9:
X |- Y & Y |- Z implies X |- Z
proof
assume that
A1: X |- Y and
A2: Y |- Z;
for p st p in Z holds X |- p
proof
let p;
assume p in Z;
then Y |- p by A2;
then
A3: p in Cn(Y) by CQC_THE1:def 8;
Y c= Cn(X) by A1,Th7;
then Cn(Y) c= Cn(X) by CQC_THE1:15,16;
hence thesis by A3,CQC_THE1:def 8;
end;
hence thesis;
end;
theorem Th10:
X |- {p} iff X |- p
proof
hereby
p in {p} by TARSKI:def 1;
hence X |- {p} implies X |- p;
end;
thus thesis by TARSKI:def 1;
end;
theorem Th11:
{p} |- {q} iff p |- q
by Th10;
theorem
X c= Y implies Y |- X
by Th1;
theorem Th13:
X |- TAUT(A)
proof
TAUT(A) c= Cn(X) by CQC_THE1:39;
hence thesis by Th7;
end;
theorem
{}(CQC-WFF(A)) |- TAUT(A) by Th13;
definition
let A;
let X be Subset of CQC-WFF(A);
pred |- X means
for p being Element of CQC-WFF(A) st p in X holds p is valid;
end;
theorem Th15:
|- X iff {}(CQC-WFF(A)) |- X
proof
hereby
assume
A1: |- X;
now
let p;
assume p in X;
then p is valid by A1;
hence {}(CQC-WFF(A)) |- p by CQC_THE1:def 9;
end;
hence {}(CQC-WFF(A)) |- X;
end;
thus thesis by CQC_THE1:def 9;
end;
theorem
|- TAUT(A)
proof
A1: |- TAUT(A) iff {}(CQC-WFF(A)) |- TAUT(A) by Th15;
{}(CQC-WFF(A)) |- TAUT(A) by Th13;
hence thesis by A1;
end;
theorem
|- X iff X c= TAUT(A)
proof
hereby
assume
A1: |- X;
now
let p;
assume p in X;
then p is valid by A1;
hence p in TAUT(A) by CQC_THE1:def 10;
end;
hence X c= TAUT(A);
end;
thus thesis by CQC_THE1:def 10;
end;
definition
let A, X, Y;
pred X |-| Y means
for p holds (X |- p iff Y |- p);
reflexivity;
symmetry;
end;
theorem Th18:
X |-| Y iff X |- Y & Y |- X
proof
thus X |-| Y implies X |- Y & Y |- X by Th1;
assume that
A1: X |- Y and
A2: Y |- X;
let p;
A3: now
assume Y |- p;
then Y |- {p} by Th10;
then X |- {p} by A1,Th9;
hence X |- p by Th10;
end;
now
assume X |- p;
then X |- {p} by Th10;
then Y |- {p} by A2,Th9;
hence Y |- p by Th10;
end;
hence X |- p iff Y |- p by A3;
end;
theorem
X |-| Y & Y |-| Z implies X |-| Z;
theorem Th20:
X |-| Y iff Cn(X) = Cn(Y)
proof
A1: now
assume
A2: X |-| Y;
then Y |- X by Th18;
then X c= Cn(Y) by Th7;
then
A3: Cn(X) c= Cn(Y) by CQC_THE1:15,16;
X |- Y by A2,Th18;
then Y c= Cn(X) by Th7;
then Cn(Y) c= Cn(X) by CQC_THE1:15,16;
hence Cn(X) = Cn(Y) by A3,XBOOLE_0:def 10;
end;
now
assume
A4: Cn(X) = Cn(Y);
X c= Cn(X) by CQC_THE1:17;
then
A5: Y |- X by A4,Th7;
Y c= Cn(Y) by CQC_THE1:17;
then X |- Y by A4,Th7;
hence X |-| Y by A5,Th18;
end;
hence thesis by A1;
end;
Lm1: X \/ Y c= Cn(X) \/ Cn(Y)
proof
A1: Y c= Cn(Y) by CQC_THE1:17;
X c= Cn(X) by CQC_THE1:17;
hence thesis by A1,XBOOLE_1:13;
end;
theorem Th21:
Cn(X) \/ Cn(Y) c= Cn(X \/ Y)
proof
A1: Cn(Y) c= Cn(X \/ Y) by CQC_THE1:18,XBOOLE_1:7;
Cn(X) c= Cn(X \/ Y) by CQC_THE1:18,XBOOLE_1:7;
hence thesis by A1,XBOOLE_1:8;
end;
theorem Th22:
Cn(X \/ Y) = Cn(Cn(X) \/ Cn(Y))
proof
A1: Cn(X \/ Y) c= Cn(Cn(X) \/ Cn(Y)) by Lm1,CQC_THE1:18;
Cn(Cn(X) \/ Cn(Y)) c= Cn(X \/ Y) by Th2,Th21;
hence thesis by A1,XBOOLE_0:def 10;
end;
theorem
X |-| Cn(X)
proof
Cn(X) = Cn(Cn(X)) by CQC_THE1:19;
hence thesis by Th20;
end;
theorem
X \/ Y |-| Cn(X) \/ Cn(Y)
proof
Cn(X \/ Y) = Cn(Cn(X) \/ Cn(Y)) by Th22;
hence thesis by Th20;
end;
theorem Th25:
X1 |-| X2 implies X1 \/ Y |-| X2 \/ Y
proof
assume X1 |-| X2;
then Cn(X1) = Cn(X2) by Th20;
then Cn(X1 \/ Y) = Cn(Cn(X2) \/ Cn(Y)) by Th22
.= Cn(X2 \/ Y) by Th22;
hence thesis by Th20;
end;
theorem Th26:
X1 |-| X2 & X1 \/ Y |- Z implies X2 \/ Y |- Z
proof
assume that
A1: X1 |-| X2 and
A2: X1 \/ Y |- Z;
X1 \/ Y |-| X2 \/ Y by A1,Th25;
then Cn(X1 \/ Y) = Cn(X2 \/ Y) by Th20;
then Z c= Cn(X2 \/ Y) by A2,Th7;
hence thesis by Th7;
end;
theorem Th27:
X1 |-| X2 & Y |- X1 implies Y |- X2
proof
assume that
A1: X1 |-| X2 and
A2: Y |- X1;
X1 |- X2 by A1,Th18;
hence thesis by A2,Th9;
end;
definition
let A;
let p, q be Element of CQC-WFF(A);
pred p |-| q means
p |- q & q |- p;
reflexivity by Th5;
symmetry;
end;
theorem Th28:
p |-| q & q |-| r implies p |-| r
by Th6;
theorem Th29:
p |-| q iff {p} |-| {q}
proof
A1: now
assume
A2: {p} |-| {q};
then {q} |- {p} by Th18;
then
A3: q |- p by Th11;
{p} |- {q} by A2,Th18;
then p |- q by Th11;
hence p |-| q by A3;
end;
now
assume
A4: p |-| q;
then q |- p;
then
A5: {q} |- {p} by Th11;
p |- q by A4;
then {p} |- {q} by Th11;
hence {p} |-| {q} by A5,Th18;
end;
hence thesis by A1;
end;
theorem
p |-| q & X |- p implies X |- q
proof
assume that
A1: p |-| q and
A2: X |- p;
A3: X |- {p} by A2,Th10;
{p} |-| {q} by A1,Th29;
then X |- {q} by A3,Th27;
hence thesis by Th10;
end;
theorem Th31:
{p,q} |-| {p '&' q}
by CQC_THE2:89;
theorem
p '&' q |-| q '&' p
proof
A1: {q,p} |-| {q '&' p} by Th31;
{p '&' q} |-| {q,p} by Th31;
then {p '&' q} |-| {q '&' p} by A1;
hence thesis by Th29;
end;
Lm2: X |- p & X |- q implies X |- p '&' q
proof
assume that
A1: X |- p and
A2: X |- q;
for r st r in {p,q} holds X |- r by A1,A2,TARSKI:def 2;
then X |- {p,q};
then X |- {p '&' q} by Th27,Th31;
hence thesis by Th10;
end;
Lm3: X |- p '&' q implies X |- p & X |- q
proof
assume X |- p '&' q;
then
A1: X |- {p '&' q} by Th10;
{p,q} |-| {p '&' q} by Th31;
then
A2: X |- {p,q} by A1,Th27;
p in {p,q} by TARSKI:def 2;
hence X |- p by A2;
q in {p,q} by TARSKI:def 2;
hence thesis by A2;
end;
theorem
X |- p '&' q iff X |- p & X |- q by Lm2,Lm3;
Lm4: p |-| q & r |-| s implies p '&' r |- q '&' s
proof
assume that
A1: p |-| q and
A2: r |-| s;
r |- s by A2;
then {r} |- s;
then
A3: {p,r} |- s by Th4,ZFMISC_1:7;
{p,r} |-| {p '&' r} by Th31;
then
A4: {p '&' r} |- {p,r} by Th18;
p |- q by A1;
then {p} |- q;
then {p,r} |- q by Th4,ZFMISC_1:7;
then {p,r} |- q '&' s by A3,Lm2;
then {p,r} |- {q '&' s} by Th10;
then {p '&' r} |- {q '&' s} by A4,Th9;
hence thesis by Th11;
end;
theorem
p |-| q & r |-| s implies p '&' r |-| q '&' s
by Lm4;
theorem Th35:
X |- All(x,p) iff X |- p
proof
thus X |- All(x,p) implies X |- p
proof
A1: X |- All(x,p) => p by CQC_THE1:56;
assume X |- All(x,p);
hence thesis by A1,CQC_THE1:55;
end;
thus thesis by CQC_THE2:90;
end;
theorem Th36:
All(x,p) |-| p
proof
{All(x,p)} |- All(x,p) => p by CQC_THE1:56;
then {All(x,p)} |- p by CQC_THE1:55,CQC_THE2:87;
hence All(x,p) |- p;
{p} |- p by CQC_THE2:87;
then {p} |- All(x,p) by Th35;
hence thesis;
end;
theorem
p |-| q implies All(x,p) |-| All(y,q)
proof
assume
A1: p |-| q;
A2: q |-| All(y,q) by Th36;
All(x,p) |-| p by Th36;
then All(x,p) |-| q by A1,Th28;
hence thesis by A2,Th28;
end;
definition
let A;
let p, q be Element of CQC-WFF(A);
pred p is_an_universal_closure_of q means
p is closed & ex n being
Element of NAT st 1 <= n & ex L being FinSequence st len L = n & L.1 = q & L.n
= p & for k being Nat st 1 <= k & k < n holds
ex x being bound_QC-variable of A st
ex r being Element of CQC-WFF(A) st r = L.k &
L.(k+1) = All(x,r);
end;
theorem Th38:
p is_an_universal_closure_of q implies p |-| q
proof
assume p is_an_universal_closure_of q;
then consider n being Element of NAT such that
A1: 1 <= n and
A2: ex L being FinSequence st len L = n & L.1 = q & L.n = p &
for k being Nat st 1 <= k & k < n ex x, r st r = L.k & L.(k+1) = All(x,r);
consider L being FinSequence such that
len L = n and
A3: L.1 = q and
A4: L.n = p and
A5: for k being Nat st 1 <= k & k < n holds ex x, r st r = L.
k & L.(k+1) = All(x,r) by A2;
for k being Nat st 1 <= k & k <= n ex r st r = L.k & q |-| r
proof
defpred P[Nat] means 1 <= $1 & $1 <= n implies ex r st r = L.$1 & q |-| r;
A6: for k being Nat st P[k] holds P[k+1]
proof
let k be Nat such that
A7: P[k];
now
assume that
1 <= k+1 and
A8: k+1 <= n;
per cases by A8,NAT_1:13,14;
case
A9: k = 0;
take p=q;
thus ex r st r = L.(k+1) & q |-| r by A3,A9;
end;
case
A10: 1 <= k & k < n;
then consider x, r such that
A11: r = L.k and
A12: L.(k+1) = All(x,r) by A5;
consider s such that
A13: s = All(x,r);
s |-| r by A13,Th36;
hence ex s st s = L.(k+1) & q |-| s by A7,A10,A11,A12,A13,Th28;
end;
end;
hence thesis;
end;
A14: P[0];
thus for k being Nat holds P[k] from NAT_1:sch 2(A14,A6 );
end;
then ex r st r = L.n & q |-| r by A1;
hence thesis by A4;
end;
theorem Th39:
p => q is valid implies p |- q
proof
assume p => q is valid;
then {p} |- p => q by CQC_THE1:59;
then {p} |- q by CQC_THE1:55,CQC_THE2:87;
hence thesis;
end;
theorem Th40:
X |- p => q implies X \/ {p} |- q
proof
p in {p} by TARSKI:def 1;
then p in X \/ {p} by XBOOLE_0:def 3;
then
A1: X \/ {p} |- p by Th1;
assume X |- p => q;
then X \/ {p} |- p => q by Th4,XBOOLE_1:7;
hence thesis by A1,CQC_THE1:55;
end;
theorem Th41:
p is closed & p |- q implies p => q is valid
proof
assume that
A1: p is closed and
A2: p |- q;
{}(CQC-WFF(A)) \/ {p} |- q by A2;
then {}(CQC-WFF(A)) |- p => q by A1,CQC_THE2:92;
hence thesis by CQC_THE1:def 9;
end;
theorem
p1 is_an_universal_closure_of p implies (X \/ {p} |- q iff X |- p1 => q)
proof
assume
A1: p1 is_an_universal_closure_of p;
now
assume X \/ {p} |- q;
then
A2: X \/ {p} |- {q} by Th10;
p |-| p1 by A1,Th38;
then {p} |-| {p1} by Th29;
then X \/ {p1} |- {q} by A2,Th26;
then
A3: X \/ {p1} |- q by Th10;
p1 is closed by A1;
hence X |- p1 => q by A3,CQC_THE2:92;
end;
hence X \/ {p} |- q implies X |- p1 => q;
now
assume X |- p1 => q;
then X \/ {p1} |- q by Th40;
then
A4: X \/ {p1} |- {q} by Th10;
p |-| p1 by A1,Th38;
then {p} |-| {p1} by Th29;
then X \/ {p} |- {q} by A4,Th26;
hence X \/ {p} |- q by Th10;
end;
hence thesis;
end;
theorem Th43:
p is closed & p |- q implies 'not' q |- 'not' p
proof
assume that
A1: p is closed and
A2: p |- q;
p => q is valid by A1,A2,Th41;
then 'not' q => 'not' p is valid by LUKASI_1:52;
hence thesis by Th39;
end;
theorem
p is closed & X \/ {p} |- q implies X \/ {'not' q} |- 'not' p
proof
assume that
A1: p is closed and
A2: X \/ {p} |- q;
X |- p => q by A1,A2,CQC_THE2:92;
then X |- 'not' q => 'not' p by LUKASI_1:69;
hence thesis by Th40;
end;
theorem Th45:
p is closed & 'not' p |- 'not' q implies q |- p
proof
assume that
A1: p is closed and
A2: 'not' p |- 'not' q;
'not' p is closed by A1,QC_LANG3:21;
then 'not' p => 'not' q is valid by A2,Th41;
then q => p is valid by LUKASI_1:52;
hence thesis by Th39;
end;
theorem
p is closed & X \/ {'not' p} |- 'not' q implies X \/ {q} |- p
proof
assume that
A1: p is closed and
A2: X \/ {'not' p} |- 'not' q;
'not' p is closed by A1,QC_LANG3:21;
then X |- 'not' p => 'not' q by A2,CQC_THE2:92;
then X |- q => p by LUKASI_1:69;
hence thesis by Th40;
end;
theorem
p is closed & q is closed implies (p |- q iff 'not' q |- 'not' p) by Th43
,Th45;
theorem Th48:
p1 is_an_universal_closure_of p & q1 is_an_universal_closure_of
q implies (p |- q iff 'not' q1 |- 'not' p1)
proof
assume that
A1: p1 is_an_universal_closure_of p and
A2: q1 is_an_universal_closure_of q;
now
q |-| q1 by A2,Th38;
then
A3: q |- q1;
p1 |-| p by A1,Th38;
then
A4: p1 |- p;
assume p |- q;
then p1 |- q by A4,Th6;
then
A5: p1 |- q1 by A3,Th6;
p1 is closed by A1;
hence 'not' q1 |- 'not' p1 by A5,Th43;
end;
hence p |- q implies 'not' q1 |- 'not' p1;
now
q1 |-| q by A2,Th38;
then
A6: q1 |- q;
p1 |-| p by A1,Th38;
then
A7: p |- p1;
assume
A8: 'not' q1 |- 'not' p1;
q1 is closed by A2;
then p1 |- q1 by A8,Th45;
then p |- q1 by A7,Th6;
hence p |- q by A6,Th6;
end;
hence thesis;
end;
theorem
p1 is_an_universal_closure_of p & q1 is_an_universal_closure_of q
implies (p |-| q iff 'not' p1 |-| 'not' q1)
by Th48;
definition
let A;
let p, q be Element of CQC-WFF(A);
pred p <==> q means
p <=> q is valid;
reflexivity
proof
let p;
{}(CQC-WFF(A)) |- p => p by CQC_THE1:def 9;
then {}(CQC-WFF(A)) |- (p => p) '&' (p => p) by Lm2;
then (p => p) '&' (p => p) is valid by CQC_THE1:def 9;
hence thesis by QC_LANG2:def 4;
end;
symmetry
proof
let p, q;
assume p <=> q is valid;
then (p => q) '&' (q => p) is valid by QC_LANG2:def 4;
then
A1: {}(CQC-WFF(A)) |- (p => q) '&' (q => p) by CQC_THE1:def 9;
then
A2: {}(CQC-WFF(A)) |- q => p by Lm3;
{}(CQC-WFF(A)) |- p => q by A1,Lm3;
then {}(CQC-WFF(A)) |- (q => p) '&' (p => q) by A2,Lm2;
then (q => p) '&' (p => q) is valid by CQC_THE1:def 9;
hence thesis by QC_LANG2:def 4;
end;
end;
theorem Th50:
p <==> q iff p => q is valid & q => p is valid
proof
A1: now
assume that
A2: p => q is valid and
A3: q => p is valid;
A4: {}(CQC-WFF(A)) |- q => p by A3,CQC_THE1:def 9;
{}(CQC-WFF(A)) |- p => q by A2,CQC_THE1:def 9;
then {}(CQC-WFF(A)) |- (p => q) '&' (q => p) by A4,Lm2;
then (p => q) '&' (q => p) is valid by CQC_THE1:def 9;
then p <=> q is valid by QC_LANG2:def 4;
hence p <==> q;
end;
now
assume p <==> q;
then p <=> q is valid;
then (p => q) '&' (q => p) is valid by QC_LANG2:def 4;
then
A5: {}(CQC-WFF(A)) |- (p => q) '&' (q => p) by CQC_THE1:def 9;
then
A6: {}(CQC-WFF(A)) |- q => p by Lm3;
{}(CQC-WFF(A)) |- p => q by A5,Lm3;
hence p => q is valid & q => p is valid by A6,CQC_THE1:def 9;
end;
hence thesis by A1;
end;
theorem
p <==> q & q <==> r implies p <==> r
proof
assume that
A1: p <==> q and
A2: q <==> r;
A3: r => q is valid by A2,Th50;
q => p is valid by A1,Th50;
then
A4: r => p is valid by A3,LUKASI_1:42;
A5: q => r is valid by A2,Th50;
p => q is valid by A1,Th50;
then p => r is valid by A5,LUKASI_1:42;
hence thesis by A4,Th50;
end;
theorem
p <==> q implies p |-| q
proof
assume p <==> q;
then p <=> q is valid;
then (p => q) '&' (q => p) is valid by QC_LANG2:def 4;
then
A1: {}(CQC-WFF(A)) |- (p => q) '&' (q => p) by CQC_THE1:def 9;
then {}(CQC-WFF(A)) |- q => p by Lm3;
then
A2: q => p is valid by CQC_THE1:def 9;
{}(CQC-WFF(A)) |- p => q by A1,Lm3;
then p => q is valid by CQC_THE1:def 9;
hence p |- q & q |- p by A2,Th39;
end;
Lm5: p <==> q implies 'not' p <==> 'not' q
proof
assume
A1: p <==> q;
then q => p is valid by Th50;
then
A2: 'not' p => 'not' q is valid by LUKASI_1:52;
p => q is valid by A1,Th50;
then 'not' q => 'not' p is valid by LUKASI_1:52;
hence thesis by A2,Th50;
end;
Lm6: 'not' p <==> 'not' q implies p <==> q
proof
assume
A1: 'not' p <==> 'not' q;
then 'not' q => 'not' p is valid by Th50;
then
A2: p => q is valid by LUKASI_1:52;
'not' p => 'not' q is valid by A1,Th50;
then q => p is valid by LUKASI_1:52;
hence thesis by A2,Th50;
end;
theorem
p <==> q iff 'not' p <==> 'not' q by Lm5,Lm6;
theorem Th54:
p <==> q & r <==> s implies p '&' r <==> q '&' s
proof
assume that
A1: p <==> q and
A2: r <==> s;
s => r is valid by A2,Th50;
then
A3: s => r in TAUT(A) by CQC_THE1:def 10;
q => p is valid by A1,Th50;
then q => p in TAUT(A) by CQC_THE1:def 10;
then q '&' s => p '&' r in TAUT(A) by A3,PROCAL_1:56;
then
A4: q '&' s => p '&' r is valid by CQC_THE1:def 10;
r => s is valid by A2,Th50;
then
A5: r => s in TAUT(A) by CQC_THE1:def 10;
p => q is valid by A1,Th50;
then p => q in TAUT(A) by CQC_THE1:def 10;
then p '&' r => q '&' s in TAUT(A) by A5,PROCAL_1:56;
then p '&' r => q '&' s is valid by CQC_THE1:def 10;
hence thesis by A4,Th50;
end;
theorem Th55:
p <==> q & r <==> s implies p => r <==> q => s
proof
assume that
A1: p <==> q and
A2: r <==> s;
'not' r <==> 'not' s by A2,Lm5;
then p '&' 'not' r <==> q '&' 'not' s by A1,Th54;
then
A3: 'not' (p '&' 'not' r) <==> 'not' (q '&' 'not' s) by Lm5;
p => r = 'not' (p '&' 'not' r) by QC_LANG2:def 2;
hence thesis by A3,QC_LANG2:def 2;
end;
theorem
p <==> q & r <==> s implies p 'or' r <==> q 'or' s
proof
assume that
A1: p <==> q and
A2: r <==> s;
s => r is valid by A2,Th50;
then
A3: s => r in TAUT(A) by CQC_THE1:def 10;
q => p is valid by A1,Th50;
then q => p in TAUT(A) by CQC_THE1:def 10;
then q 'or' s => p 'or' r in TAUT(A) by A3,PROCAL_1:57;
then
A4: q 'or' s => p 'or' r is valid by CQC_THE1:def 10;
r => s is valid by A2,Th50;
then
A5: r => s in TAUT(A) by CQC_THE1:def 10;
p => q is valid by A1,Th50;
then p => q in TAUT(A) by CQC_THE1:def 10;
then p 'or' r => q 'or' s in TAUT(A) by A5,PROCAL_1:57;
then p 'or' r => q 'or' s is valid by CQC_THE1:def 10;
hence thesis by A4,Th50;
end;
theorem
p <==> q & r <==> s implies p <=> r <==> q <=> s
proof
assume that
A1: p <==> q and
A2: r <==> s;
A3: r => p <==> s => q by A1,A2,Th55;
A4: p <=> r = (p => r) '&' (r => p) by QC_LANG2:def 4;
p => r <==> q => s by A1,A2,Th55;
then (p => r) '&' (r => p) <==> (q => s) '&' (s => q) by A3,Th54;
hence thesis by A4,QC_LANG2:def 4;
end;
theorem Th58:
p <==> q implies All(x,p) <==> All(x,q)
proof
assume
A1: p <==> q;
then q => p is valid by Th50;
then All(x,q => p) is valid by CQC_THE2:23;
then
A2: All(x,q) => All(x,p) is valid by CQC_THE2:31;
p => q is valid by A1,Th50;
then All(x,p => q) is valid by CQC_THE2:23;
then All(x,p) => All(x,q) is valid by CQC_THE2:31;
hence thesis by A2,Th50;
end;
theorem
p <==> q implies Ex(x,p) <==> Ex(x,q)
proof
assume p <==> q;
then 'not' p <==> 'not' q by Lm5;
then All(x,'not' p) <==> All(x,'not' q) by Th58;
then
A1: 'not' All(x,'not' p) <==> 'not' All(x,'not' q) by Lm5;
Ex(x,p) = 'not' All(x,'not' p) by QC_LANG2:def 5;
hence thesis by A1,QC_LANG2:def 5;
end;
theorem Th60:
for k being Nat, l being QC-variable_list of k,A, a
being free_QC-variable of A, x being bound_QC-variable of A holds
still_not-bound_in l c=
still_not-bound_in Subst(l,a .--> x)
proof
let k be Nat, l be QC-variable_list of k,A,
a be free_QC-variable of A,
x be bound_QC-variable of A;
let y be object;
A1: still_not-bound_in l = { l.n where n is Nat:
1 <= n & n <= len l & l.n in
bound_QC-variables A} by QC_LANG1:def 29;
assume
A2: y in still_not-bound_in l;
then reconsider y9 = y as Element of still_not-bound_in l;
A3: still_not-bound_in Subst(l,a .--> x)
= { Subst(l,a .--> x).n where n is Nat: 1 <= n
& n <= len Subst(l,a .--> x) & Subst(l,a .--> x).n in bound_QC-variables
A}
by QC_LANG1:def 29;
consider n being Nat such that
A4: y9 = l.n and
A5: 1 <= n and
A6: n <= len l and
A7: l.n in bound_QC-variables A by A1,A2;
l.n <> a by A7,QC_LANG3:34;
then
A8: l.n = Subst(l,a .--> x).n by A5,A6,CQC_LANG:3;
n <= len Subst(l,a .--> x) by A6,CQC_LANG:def 1;
hence y in still_not-bound_in Subst(l,a .--> x) by A3,A4,A5,A7,A8;
end;
theorem Th61:
for k being Nat, l being QC-variable_list of k,A, a
being free_QC-variable of A,
x being bound_QC-variable of A holds still_not-bound_in
Subst(l,a .--> x) c= still_not-bound_in l \/ {x}
proof
let k be Nat, l be QC-variable_list of k,A,
a be free_QC-variable of A,
x be bound_QC-variable of A;
let y be object;
A1: still_not-bound_in l = { l.n where n is Nat:
1 <= n & n <= len l & l.n in
bound_QC-variables A} by QC_LANG1:def 29;
assume
A2: y in still_not-bound_in Subst(l,a .--> x);
then reconsider y9 = y as Element of still_not-bound_in Subst(l,a .--> x);
still_not-bound_in Subst(l,a .--> x)
= { Subst(l,a .--> x).n where n is Nat:
1 <= n &
n <= len Subst(l,a .--> x) & Subst(l,a .--> x).n in bound_QC-variables A}
by QC_LANG1:def 29;
then consider n being Nat such that
A3: y9 = Subst(l,a .--> x).n and
A4: 1 <= n and
A5: n <= len Subst(l,a .--> x) and
A6: Subst(l,a .--> x).n in bound_QC-variables A by A2;
A7: n <= len l by A5,CQC_LANG:def 1;
per cases;
suppose
l.n = a;
then y9 = x by A3,A4,A7,CQC_LANG:3;
then y9 in {x} by TARSKI:def 1;
hence thesis by XBOOLE_0:def 3;
end;
suppose
l.n <> a;
then l.n = Subst(l,a .--> x).n by A4,A7,CQC_LANG:3;
then y9 in still_not-bound_in l by A1,A3,A4,A6,A7;
hence thesis by XBOOLE_0:def 3;
end;
end;
theorem Th62:
for h holds still_not-bound_in h c= still_not-bound_in (h.x)
proof
defpred P[QC-formula of A] means still_not-bound_in $1
c= still_not-bound_in ($1.x);
A1: for p being Element of QC-WFF(A) st P[p] holds P['not' p]
proof
let p be Element of QC-WFF(A);
still_not-bound_in (('not' p).x) = still_not-bound_in 'not' (p.x) by
CQC_LANG:19
.= still_not-bound_in(p.x) by QC_LANG3:7;
hence thesis by QC_LANG3:7;
end;
A2: for p, q being Element of QC-WFF(A) st P[p] & P[q] holds P[p '&' q]
proof
let p, q be Element of QC-WFF(A) such that
A3: P[p] and
A4: P[q];
A5: still_not-bound_in ((p '&' q).x) = still_not-bound_in ((p.x) '&' (q.x
)) by CQC_LANG:21
.= still_not-bound_in (p.x) \/ still_not-bound_in (q.x) by QC_LANG3:10;
still_not-bound_in (p '&' q) = still_not-bound_in p \/
still_not-bound_in q by QC_LANG3:10;
hence thesis by A3,A4,A5,XBOOLE_1:13;
end;
A6: for x being bound_QC-variable of A, p being Element of QC-WFF(A) st
P[p] holds
P[All(x, p)]
proof
let y be bound_QC-variable of A, p be Element of QC-WFF(A) such that
A7: P[p];
per cases;
suppose
y = x;
hence thesis by CQC_LANG:24;
end;
suppose
A8: y <> x;
A9: still_not-bound_in All(y,p) = still_not-bound_in p \ {y} by QC_LANG3:12;
still_not-bound_in (All(y,p).x) = still_not-bound_in All(y,p.x) by A8,
CQC_LANG:25
.= still_not-bound_in (p.x) \ {y} by QC_LANG3:12;
hence thesis by A7,A9,XBOOLE_1:33;
end;
end;
A10: for k being Nat, P being (QC-pred_symbol of k,A), ll being
QC-variable_list of k,A holds P[P!ll]
proof
let k be Nat, P be (QC-pred_symbol of k,A), ll be
QC-variable_list of k,A;
A11: still_not-bound_in ((P!ll).x) = still_not-bound_in
(P!Subst(ll,(A)a.0.-->
x)) by CQC_LANG:17
.= still_not-bound_in Subst(ll,(A)a.0.-->x) by QC_LANG3:5;
still_not-bound_in ll c= still_not-bound_in
Subst(ll,(A)a.0.-->x) by Th60;
hence thesis by A11,QC_LANG3:5;
end;
A12: P[VERUM(A)] by CQC_LANG:15;
thus for h holds P[h] from QC_LANG1:sch 1(A10,A12,A1,A2,A6);
end;
theorem Th63:
for h holds still_not-bound_in (h.x) c= still_not-bound_in h \/ {x}
proof
defpred P[QC-formula of A] means
still_not-bound_in ($1.x) c= still_not-bound_in $1 \/ {x};
A1: for p being Element of QC-WFF(A) st P[p] holds P['not' p]
proof
let p be Element of QC-WFF(A);
still_not-bound_in (('not' p).x) = still_not-bound_in 'not' (p.x) by
CQC_LANG:19
.= still_not-bound_in(p.x) by QC_LANG3:7;
hence thesis by QC_LANG3:7;
end;
A2: for p, q being Element of QC-WFF(A) st P[p] & P[q] holds P[p '&' q]
proof
let p, q be Element of QC-WFF(A) such that
A3: P[p] and
A4: P[q];
A5: still_not-bound_in ((p '&' q).x) = still_not-bound_in ((p.x) '&' (q.x
)) by CQC_LANG:21
.= still_not-bound_in (p.x) \/ still_not-bound_in (q.x) by QC_LANG3:10;
A6: still_not-bound_in p \/ {x} \/ (still_not-bound_in q \/ {x}) =
still_not-bound_in p \/ ({x} \/ still_not-bound_in q) \/ {x} by XBOOLE_1:4
.= still_not-bound_in p \/ still_not-bound_in q \/ {x} \/ {x} by
XBOOLE_1:4
.= still_not-bound_in p \/ still_not-bound_in q \/ ({x} \/ {x}) by
XBOOLE_1:4
.= still_not-bound_in p \/ still_not-bound_in q \/ {x};
still_not-bound_in (p.x) \/ still_not-bound_in (q.x) c=
still_not-bound_in p \/ {x} \/ (still_not-bound_in q \/ {x}) by A3,A4,
XBOOLE_1:13;
hence thesis by A5,A6,QC_LANG3:10;
end;
A7: for x being bound_QC-variable of A,
p being Element of QC-WFF(A) st P[p] holds
P[All(x, p)]
proof
let y be bound_QC-variable of A,
p be Element of QC-WFF(A) such that
A8: P[p];
per cases;
suppose
A9: y = x;
A10: (still_not-bound_in p) \ {x} c= still_not-bound_in p by XBOOLE_1:36;
A11: still_not-bound_in All(x,p) = (still_not-bound_in p) \ {x} by QC_LANG3:12
;
still_not-bound_in p c= still_not-bound_in (p.x) by Th62;
then
still_not-bound_in All(x,p) c= still_not-bound_in (p.x) by A11,A10;
then
A12: still_not-bound_in All(x,p) c= still_not-bound_in p \/ {x} by A8,
XBOOLE_1:1;
still_not-bound_in All(y,p) \/ {x} = ((still_not-bound_in p) \ {x})
\/ {x} by A9,QC_LANG3:12
.= still_not-bound_in p \/ {x} by XBOOLE_1:39;
hence thesis by A9,A12,CQC_LANG:24;
end;
suppose
A13: y <> x;
A14: still_not-bound_in All(y,p) \/ {x} = (still_not-bound_in p \ {y})
\/ {x} by QC_LANG3:12
.= (still_not-bound_in p \/ {x}) \ {y} by A13,XBOOLE_1:87,ZFMISC_1:11;
still_not-bound_in (All(y,p).x) = still_not-bound_in All(y,p.x) by A13,
CQC_LANG:25
.= still_not-bound_in (p.x) \ {y} by QC_LANG3:12;
hence thesis by A8,A14,XBOOLE_1:33;
end;
end;
A15: for k being Nat, P being (QC-pred_symbol of k,A), ll being
QC-variable_list of k,A holds P[P!ll]
proof
let k be Nat, P be (QC-pred_symbol of k,A), ll be
QC-variable_list of k,A;
A16: still_not-bound_in ((P!ll).x) = still_not-bound_in
(P!Subst(ll,(A)a.0.-->
x)) by CQC_LANG:17
.= still_not-bound_in Subst(ll,(A)a.0.-->x) by QC_LANG3:5;
still_not-bound_in Subst(ll,(A)a.0.-->x) c= still_not-bound_in ll \/ {x}
by Th61;
hence thesis by A16,QC_LANG3:5;
end;
A17: still_not-bound_in VERUM(A) = {} by QC_LANG3:3;
VERUM(A).x = VERUM(A) by CQC_LANG:15; then
still_not-bound_in ((VERUM(A)).x) = {} by A17; then
A18: still_not-bound_in ((VERUM(A)).x) c=
still_not-bound_in (VERUM(A)) \/ {x} by XBOOLE_1:2;
A19: P[VERUM(A)] by A18;
thus for h holds P[h] from QC_LANG1:sch 1(A15,A19,A1,A2,A7);
end;
theorem Th64:
p = h.x & x <> y & not y in still_not-bound_in h implies not y
in still_not-bound_in p
proof
assume that
A1: p = h.x and
A2: x <> y and
A3: not y in still_not-bound_in h and
A4: y in still_not-bound_in p;
A5: still_not-bound_in p c= still_not-bound_in h \/ {x} by A1,Th63;
per cases by A4,A5,XBOOLE_0:def 3;
suppose
y in still_not-bound_in h;
hence contradiction by A3;
end;
suppose
y in {x};
hence contradiction by A2,TARSKI:def 1;
end;
end;
theorem
p = h.x & q = h.y & not x in still_not-bound_in h & not y in
still_not-bound_in h implies All(x,p) <==> All(y,q)
proof
assume that
A1: p = h.x and
A2: q = h.y and
A3: not x in still_not-bound_in h and
A4: not y in still_not-bound_in h;
per cases;
suppose
x = y;
hence thesis by A1,A2;
end;
suppose
A5: x <> y;
then not x in still_not-bound_in q by A2,A3,Th64;
then
A6: All(y,q) => All(x,p) is valid by A1,A2,A4,CQC_THE2:27;
not y in still_not-bound_in p by A1,A4,A5,Th64;
then All(x,p) => All(y,q) is valid by A1,A2,A3,CQC_THE2:27;
hence thesis by A6,Th50;
end;
end;