:: Replacing of Variables in Formulas of ZF Theory
:: by Grzegorz Bancerek
::
:: Received August 10, 1990
:: Copyright (c) 1990-2017 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, ZF_LANG, XBOOLEAN, XXREAL_0, BVFUNC_2, CLASSES2,
FUNCT_1, CARD_1, FINSEQ_1, ARYTM_3, TARSKI, XBOOLE_0, ZF_MODEL, SUBSET_1,
REALSET1, RELAT_1, FUNCT_4, FINSET_1, NAT_1, ZFMISC_1, ORDINAL4,
ZF_LANG1;
notations TARSKI, XBOOLE_0, ENUMSET1, ZFMISC_1, SUBSET_1, ORDINAL1, NUMBERS,
XCMPLX_0, NAT_1, RELAT_1, FUNCT_1, FUNCT_2, FINSEQ_1, FINSET_1, ZF_LANG,
ZF_MODEL, XXREAL_0, FUNCT_7, TREES_3;
constructors ENUMSET1, XXREAL_0, XREAL_0, NAT_1, ZF_MODEL, FUNCT_7, RELSET_1,
NUMBERS, TREES_3;
registrations XBOOLE_0, SUBSET_1, ORDINAL1, RELSET_1, FINSET_1, XXREAL_0,
NAT_1, FINSEQ_1, ZF_LANG, XCMPLX_0;
requirements NUMERALS, REAL, BOOLE, SUBSET, ARITHM;
definitions TARSKI, ZF_LANG, ZF_MODEL, XBOOLE_0;
equalities ZF_LANG;
expansions TARSKI, ZF_LANG, ZF_MODEL;
theorems TARSKI, ZFMISC_1, ENUMSET1, NAT_1, FINSEQ_1, FINSEQ_3, FUNCT_1,
FUNCT_2, ZF_LANG, ZF_MODEL, ZFMODEL1, RELSET_1, XBOOLE_0, XBOOLE_1,
XXREAL_0, ORDINAL1, FUNCT_7, RELAT_1;
schemes PARTFUN1, ZF_LANG;
begin
reserve p,p1,p2,q,r,F,G,G1,G2,H,H1,H2 for ZF-formula,
x,x1,x2,y,y1,y2,z,z1,z2,s,t for Variable,
a,X for set;
theorem Th1:
Var1 (x '=' y) = x & Var2 (x '=' y) = y
proof
x '=' y is being_equality;
then x '=' y = (Var1 (x '=' y)) '=' (Var2 (x '=' y)) by ZF_LANG:36;
hence thesis by ZF_LANG:1;
end;
theorem Th2:
Var1 (x 'in' y) = x & Var2 (x 'in' y) = y
proof
x 'in' y is being_membership;
then x 'in' y = (Var1 (x 'in' y)) 'in' (Var2 (x 'in' y)) by ZF_LANG:37;
hence thesis by ZF_LANG:2;
end;
theorem Th3:
the_argument_of 'not' p = p
proof
'not' p is negative;
hence thesis by ZF_LANG:def 30;
end;
theorem Th4:
the_left_argument_of (p '&' q) = p & the_right_argument_of (p '&' q) = q
proof
p '&' q is conjunctive;
then
p '&' q = (the_left_argument_of (p '&' q)) '&' (the_right_argument_of (p
'&' q)) by ZF_LANG:40;
hence thesis by ZF_LANG:30;
end;
theorem
the_left_argument_of (p 'or' q) = p & the_right_argument_of (p 'or' q) = q
proof
p 'or' q is disjunctive;
then
p 'or' q = (the_left_argument_of (p 'or' q)) 'or' (the_right_argument_of
(p 'or' q)) by ZF_LANG:41;
hence thesis by ZF_LANG:31;
end;
theorem Th6:
the_antecedent_of (p => q) = p & the_consequent_of (p => q) = q
proof
p => q is conditional;
then
p => q = (the_antecedent_of (p => q)) => (the_consequent_of (p => q)) by
ZF_LANG:47;
hence thesis by ZF_LANG:32;
end;
theorem
the_left_side_of (p <=> q) = p & the_right_side_of (p <=> q) = q
proof
p <=> q is biconditional;
then
p <=> q = (the_left_side_of (p <=> q)) <=> (the_right_side_of (p <=> q))
by ZF_LANG:49;
hence thesis by ZF_LANG:33;
end;
theorem Th8:
bound_in All(x,p) = x & the_scope_of All(x,p) = p
proof
All(x,p) is universal;
then All(x,p) = All(bound_in All(x,p), the_scope_of All(x,p)) by ZF_LANG:44;
hence thesis by ZF_LANG:3;
end;
theorem Th9:
bound_in Ex(x,p) = x & the_scope_of Ex(x,p) = p
proof
Ex(x,p) is existential;
then Ex(x,p) = Ex(bound_in Ex(x,p), the_scope_of Ex(x,p)) by ZF_LANG:45;
hence thesis by ZF_LANG:34;
end;
theorem
p 'or' q = 'not' p => q;
theorem
All(x,y,p) is universal & bound_in All(x,y,p) = x & the_scope_of All(x
,y,p) = All(y,p) by Th8;
theorem
Ex(x,y,p) is existential & bound_in Ex(x,y,p) = x & the_scope_of Ex(x,
y,p) = Ex(y,p) by Th9;
theorem
All(x,y,z,p) = All(x,All(y,All(z,p))) & All(x,y,z,p) = All(x,y,All(z,p ));
theorem Th14:
All(x1,y1,p1) = All(x2,y2,p2) implies x1 = x2 & y1 = y2 & p1 = p2
proof
assume
A1: All(x1,y1,p1) = All(x2,y2,p2);
then All(y1,p1) = All(y2,p2) by ZF_LANG:3;
hence thesis by A1,ZF_LANG:3;
end;
theorem
All(x1,y1,z1,p1) = All(x2,y2,z2,p2) implies x1 = x2 & y1 = y2 & z1 =
z2 & p1 = p2
proof
assume
A1: All(x1,y1,z1,p1) = All(x2,y2,z2,p2);
then All(y1,z1,p1) = All(y2,z2,p2) by ZF_LANG:3;
hence thesis by A1,Th14,ZF_LANG:3;
end;
theorem
All(x,y,z,p) = All(t,s,q) implies x = t & y = s & All(z,p) = q
proof
All(x,y,z,p) = All(x,y,All(z,p));
hence thesis by Th14;
end;
theorem Th17:
Ex(x1,y1,p1) = Ex(x2,y2,p2) implies x1 = x2 & y1 = y2 & p1 = p2
proof
assume
A1: Ex(x1,y1,p1) = Ex(x2,y2,p2);
then Ex(y1,p1) = Ex(y2,p2) by ZF_LANG:34;
hence thesis by A1,ZF_LANG:34;
end;
theorem
Ex(x,y,z,p) = Ex(x,Ex(y,Ex(z,p))) & Ex(x,y,z,p) = Ex(x,y,Ex(z,p));
theorem
Ex(x1,y1,z1,p1) = Ex(x2,y2,z2,p2) implies x1 = x2 & y1 = y2 & z1 = z2
& p1 = p2
proof
assume
A1: Ex(x1,y1,z1,p1) = Ex(x2,y2,z2,p2);
then Ex(y1,z1,p1) = Ex(y2,z2,p2) by ZF_LANG:34;
hence thesis by A1,Th17,ZF_LANG:34;
end;
theorem
Ex(x,y,z,p) = Ex(t,s,q) implies x = t & y = s & Ex(z,p) = q
proof
Ex(x,y,z,p) = Ex(x,y,Ex(z,p));
hence thesis by Th17;
end;
theorem
All(x,y,z,p) is universal & bound_in All(x,y,z,p) = x & the_scope_of
All(x,y,z,p) = All(y,z,p) by Th8;
theorem
Ex(x,y,z,p) is existential & bound_in Ex(x,y,z,p) = x & the_scope_of
Ex(x,y,z,p) = Ex(y,z,p) by Th9;
theorem
H is disjunctive implies the_left_argument_of H = the_argument_of
the_left_argument_of the_argument_of H
proof
assume H is disjunctive;
then H = (the_left_argument_of H) 'or' (the_right_argument_of H) by
ZF_LANG:41;
then the_argument_of H = 'not'(the_left_argument_of H) '&' 'not' (
the_right_argument_of H) by Th3;
then the_left_argument_of the_argument_of H = 'not'(the_left_argument_of H)
by Th4;
hence thesis by Th3;
end;
theorem
H is disjunctive implies the_right_argument_of H = the_argument_of
the_right_argument_of the_argument_of H
proof
assume H is disjunctive;
then H = (the_left_argument_of H) 'or' (the_right_argument_of H) by
ZF_LANG:41;
then the_argument_of H = 'not'(the_left_argument_of H) '&' 'not' (
the_right_argument_of H) by Th3;
then
the_right_argument_of the_argument_of H = 'not'(the_right_argument_of H)
by Th4;
hence thesis by Th3;
end;
theorem
H is conditional implies the_antecedent_of H = the_left_argument_of
the_argument_of H
proof
assume H is conditional;
then H = (the_antecedent_of H) => (the_consequent_of H) by ZF_LANG:47;
then
the_argument_of H = (the_antecedent_of H) '&' 'not'(the_consequent_of H)
by Th3;
hence thesis by Th4;
end;
theorem
H is conditional implies the_consequent_of H = the_argument_of
the_right_argument_of the_argument_of H
proof
assume H is conditional;
then H = (the_antecedent_of H) => (the_consequent_of H) by ZF_LANG:47;
then
the_argument_of H = (the_antecedent_of H) '&' 'not'(the_consequent_of H)
by Th3;
then
the_right_argument_of the_argument_of H = 'not' (the_consequent_of H) by Th4;
hence thesis by Th3;
end;
theorem
H is biconditional implies the_left_side_of H = the_antecedent_of
the_left_argument_of H & the_left_side_of H = the_consequent_of
the_right_argument_of H
proof
assume H is biconditional;
then H = (the_left_side_of H) <=> (the_right_side_of H) by ZF_LANG:49;
then
the_left_argument_of H = (the_left_side_of H) => (the_right_side_of H )
& the_right_argument_of H = (the_right_side_of H) => (the_left_side_of H) by
Th4;
hence thesis by Th6;
end;
theorem
H is biconditional implies the_right_side_of H = the_consequent_of
the_left_argument_of H & the_right_side_of H = the_antecedent_of
the_right_argument_of H
proof
assume H is biconditional;
then H = (the_left_side_of H) <=> (the_right_side_of H) by ZF_LANG:49;
then
the_left_argument_of H = (the_left_side_of H) => (the_right_side_of H )
& the_right_argument_of H = (the_right_side_of H) => (the_left_side_of H) by
Th4;
hence thesis by Th6;
end;
theorem
H is existential implies bound_in H = bound_in the_argument_of H &
the_scope_of H = the_argument_of the_scope_of the_argument_of H
proof
assume H is existential;
then H = Ex(bound_in H, the_scope_of H) by ZF_LANG:45;
then
A1: the_argument_of H = All(bound_in H, 'not' the_scope_of H) by Th3;
hence bound_in H = bound_in the_argument_of H by Th8;
'not' the_scope_of H = the_scope_of the_argument_of H by A1,Th8;
hence thesis by Th3;
end;
theorem
the_argument_of F 'or' G = 'not' F '&' 'not' G & the_antecedent_of F
'or' G = 'not' F & the_consequent_of F 'or' G = G
proof
thus the_argument_of F 'or' G = 'not' F '&' 'not' G by Th3;
F 'or' G = 'not' F => G;
hence thesis by Th6;
end;
theorem
the_argument_of F => G = F '&' 'not' G by Th3;
theorem
the_left_argument_of F <=> G = F => G & the_right_argument_of F <=> G
= G => F by Th4;
theorem
the_argument_of Ex(x,H) = All(x,'not' H) by Th3;
theorem
H is disjunctive implies H is conditional & H is negative &
the_argument_of H is conjunctive & the_left_argument_of the_argument_of H is
negative & the_right_argument_of the_argument_of H is negative
proof
assume H is disjunctive;
then
A1: H = (the_left_argument_of H) 'or' (the_right_argument_of H) by ZF_LANG:41;
then H = 'not'(the_left_argument_of H) => (the_right_argument_of H);
hence H is conditional & H is negative;
A2: the_argument_of H = 'not'(the_left_argument_of H) '&' 'not' (
the_right_argument_of H) by A1,Th3;
hence the_argument_of H is conjunctive;
the_left_argument_of the_argument_of H = 'not'(the_left_argument_of H) &
the_right_argument_of the_argument_of H = 'not'(the_right_argument_of H) by A2
,Th4;
hence thesis;
end;
theorem
H is conditional implies H is negative & the_argument_of H is
conjunctive & the_right_argument_of the_argument_of H is negative
proof
assume H is conditional;
then
A1: H = (the_antecedent_of H) => (the_consequent_of H) by ZF_LANG:47;
hence H is negative;
A2: the_argument_of H = (the_antecedent_of H) '&' 'not'(the_consequent_of H)
by A1,Th3;
hence the_argument_of H is conjunctive;
the_right_argument_of the_argument_of H = 'not' (the_consequent_of H) by A2
,Th4;
hence thesis;
end;
theorem
H is biconditional implies H is conjunctive & the_left_argument_of H
is conditional & the_right_argument_of H is conditional
by Th4;
theorem
H is existential implies H is negative & the_argument_of H is
universal & the_scope_of the_argument_of H is negative
proof
assume H is existential;
then
A1: H = Ex(bound_in H, the_scope_of H) by ZF_LANG:45;
hence H is negative;
A2: the_argument_of H = All(bound_in H, 'not' the_scope_of H) by A1,Th3;
hence the_argument_of H is universal;
'not' the_scope_of H = the_scope_of the_argument_of H by A2,Th8;
hence thesis;
end;
theorem
not (H is being_equality & (H is being_membership or H is negative or
H is conjunctive or H is universal)) & not (H is being_membership & (H is
negative or H is conjunctive or H is universal)) & not (H is negative & (H is
conjunctive or H is universal)) & not (H is conjunctive & H is universal)
proof
H.1 = 0 or H.1 = 1 or H.1 = 2 or H.1 = 3 or H.1 = 4 by ZF_LANG:23;
hence thesis by ZF_LANG:18,19,20,21,22;
end;
theorem Th39:
F is_subformula_of G implies len F <= len G
by ZF_LANG:def 41,ZF_LANG:62;
theorem Th40:
F is_proper_subformula_of G & G is_subformula_of H or F
is_subformula_of G & G is_proper_subformula_of H or F is_subformula_of G & G
is_immediate_constituent_of H or F is_immediate_constituent_of G & G
is_subformula_of H or F is_proper_subformula_of G & G
is_immediate_constituent_of H or F is_immediate_constituent_of G & G
is_proper_subformula_of H implies F is_proper_subformula_of H
proof
A1: F is_immediate_constituent_of G implies F is_proper_subformula_of G by
ZF_LANG:61;
A2: now
assume
A3: F is_proper_subformula_of G;
then
A4: len F < len G by ZF_LANG:62;
assume
A5: G is_subformula_of H;
F is_subformula_of G by A3;
then
A6: F is_subformula_of H by A5,ZF_LANG:65;
len G <= len H by A5,Th39;
hence F is_proper_subformula_of H by A4,A6;
end;
G is_immediate_constituent_of H implies G is_proper_subformula_of H by
ZF_LANG:61;
hence thesis by A2,A1;
end;
theorem
not H is_immediate_constituent_of H
proof
assume H is_immediate_constituent_of H;
then H is_proper_subformula_of H by ZF_LANG:61;
hence contradiction;
end;
theorem
not (G is_proper_subformula_of H & H is_subformula_of G)
proof
assume G is_proper_subformula_of H & H is_subformula_of G;
then G is_proper_subformula_of G by Th40;
hence contradiction;
end;
theorem
not (G is_proper_subformula_of H & H is_proper_subformula_of G)
proof
assume G is_proper_subformula_of H & H is_proper_subformula_of G;
then G is_proper_subformula_of G by ZF_LANG:64;
hence contradiction;
end;
theorem
not (G is_subformula_of H & H is_immediate_constituent_of G)
proof
assume G is_subformula_of H & H is_immediate_constituent_of G;
then G is_proper_subformula_of G by Th40;
hence contradiction;
end;
theorem
not (G is_proper_subformula_of H & H is_immediate_constituent_of G)
proof
assume G is_proper_subformula_of H & H is_immediate_constituent_of G;
then G is_proper_subformula_of G by Th40;
hence contradiction;
end;
theorem
'not' F is_subformula_of H implies F is_proper_subformula_of H
proof
F is_immediate_constituent_of 'not' F;
hence thesis by Th40;
end;
theorem
F '&' G is_subformula_of H implies F is_proper_subformula_of H & G
is_proper_subformula_of H
proof
F is_immediate_constituent_of F '&' G & G is_immediate_constituent_of F
'&' G;
hence thesis by Th40;
end;
theorem
All(x,H) is_subformula_of F implies H is_proper_subformula_of F
proof
H is_immediate_constituent_of All(x,H);
hence thesis by Th40;
end;
theorem
F '&' 'not' G is_proper_subformula_of F => G & F
is_proper_subformula_of F => G & 'not' G is_proper_subformula_of F => G & G
is_proper_subformula_of F => G
proof
F '&' 'not' G is_immediate_constituent_of F => G;
hence
A1: F '&' 'not' G is_proper_subformula_of F => G by ZF_LANG:61;
F is_immediate_constituent_of F '&' 'not' G & 'not' G
is_immediate_constituent_of F '&' 'not' G;
hence
A2: F is_proper_subformula_of F => G & 'not' G is_proper_subformula_of
F => G by A1,Th40;
G is_immediate_constituent_of 'not' G;
hence thesis by A2,Th40;
end;
theorem
'not' F '&' 'not' G is_proper_subformula_of F 'or' G & 'not' F
is_proper_subformula_of F 'or' G & 'not' G is_proper_subformula_of F 'or' G & F
is_proper_subformula_of F 'or' G & G is_proper_subformula_of F 'or' G
proof
'not' F '&' 'not' G is_immediate_constituent_of F 'or' G;
hence
A1: 'not' F '&' 'not' G is_proper_subformula_of F 'or' G by ZF_LANG:61;
'not' F is_immediate_constituent_of 'not' F '&' 'not' G & 'not' G
is_immediate_constituent_of 'not' F '&' 'not' G;
hence
A2: 'not' F is_proper_subformula_of F 'or' G & 'not' G
is_proper_subformula_of F 'or' G by A1,Th40;
F is_immediate_constituent_of 'not' F & G is_immediate_constituent_of
'not' G;
hence thesis by A2,Th40;
end;
theorem
All(x,'not' H) is_proper_subformula_of Ex(x,H) & 'not' H
is_proper_subformula_of Ex(x,H)
proof
All(x,'not' H) is_immediate_constituent_of Ex(x,H);
hence
A1: All(x,'not' H) is_proper_subformula_of Ex(x,H) by ZF_LANG:61;
'not' H is_immediate_constituent_of All(x,'not' H);
hence thesis by A1,Th40;
end;
theorem
G is_subformula_of H iff G in Subformulae H by ZF_LANG:78,def 42;
theorem
G in Subformulae H implies Subformulae G c= Subformulae H by ZF_LANG:78,79;
theorem
H in Subformulae H
proof
H is_subformula_of H by ZF_LANG:59;
hence thesis by ZF_LANG:def 42;
end;
theorem Th55:
Subformulae (F => G) = Subformulae F \/ Subformulae G \/ { 'not'
G, F '&' 'not' G, F => G }
proof
thus Subformulae (F => G) = Subformulae (F '&' 'not' G) \/ { F => G } by
ZF_LANG:82
.= Subformulae F \/ Subformulae 'not' G \/ {F '&' 'not' G} \/ {F => G}
by ZF_LANG:83
.= Subformulae F \/ (Subformulae G \/ {'not' G}) \/ {F '&' 'not' G} \/ {
F => G } by ZF_LANG:82
.= Subformulae F \/ Subformulae G \/ {'not' G} \/ {F '&' 'not' G} \/ { F
=> G } by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ {'not' G} \/ ({F '&' 'not' G} \/ {
F => G }) by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ ({'not' G} \/ ({F '&' 'not' G} \/ {
F => G })) by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ ({'not' G} \/ { F '&' 'not' G,F =>
G }) by ENUMSET1:1
.= Subformulae F \/ Subformulae G \/ { 'not' G,F '&' 'not' G,F => G } by
ENUMSET1:2;
end;
theorem
Subformulae (F 'or' G) = Subformulae F \/ Subformulae G \/ {'not' G,
'not' F, 'not' F '&' 'not' G, F 'or' G}
proof
thus Subformulae (F 'or' G) = Subformulae ('not' F '&' 'not' G) \/ { F 'or'
G } by ZF_LANG:82
.= Subformulae 'not' F \/ Subformulae 'not' G \/ {'not' F '&' 'not' G}
\/ {F 'or' G} by ZF_LANG:83
.= Subformulae 'not' F \/ (Subformulae G \/ {'not' G}) \/ {'not' F '&'
'not' G} \/ {F 'or' G} by ZF_LANG:82
.= Subformulae F \/ {'not' F} \/ (Subformulae G \/ {'not' G}) \/ {'not'
F '&' 'not' G} \/ {F 'or' G} by ZF_LANG:82
.= Subformulae F \/ ((Subformulae G \/ {'not' G}) \/ {'not' F}) \/ {
'not' F '&' 'not' G} \/ {F 'or' G} by XBOOLE_1:4
.= Subformulae F \/ (Subformulae G \/ ({'not' G} \/ {'not' F})) \/ {
'not' F '&' 'not' G} \/ {F 'or' G} by XBOOLE_1:4
.= Subformulae F \/ (Subformulae G \/ {'not' G,'not' F}) \/ {'not' F '&'
'not' G} \/ {F 'or' G} by ENUMSET1:1
.= Subformulae F \/ Subformulae G \/ {'not' G,'not' F} \/ {'not' F '&'
'not' G} \/ {F 'or' G} by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ {'not' G,'not' F} \/ ({'not' F '&'
'not' G} \/ {F 'or' G}) by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ {'not' G,'not' F} \/ {'not' F '&'
'not' G, F 'or' G} by ENUMSET1:1
.= Subformulae F \/ Subformulae G \/ ({'not' G,'not' F} \/ {'not' F '&'
'not' G, F 'or' G}) by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ {'not' G, 'not' F, 'not' F '&'
'not' G, F 'or' G} by ENUMSET1:5;
end;
theorem
Subformulae (F <=> G) = Subformulae F \/ Subformulae G \/ { 'not' G, F
'&' 'not' G, F => G, 'not' F, G '&' 'not' F, G => F, F <=> G }
proof
thus Subformulae (F <=> G) = Subformulae(F => G) \/ Subformulae(G => F) \/ {
F <=> G} by ZF_LANG:83
.= Subformulae F \/ Subformulae G \/ { 'not' G, F '&' 'not' G, F => G }
\/ Subformulae(G => F) \/ {F <=> G} by Th55
.= Subformulae F \/ Subformulae G \/ { 'not' G, F '&' 'not' G, F => G }
\/ (Subformulae F \/ Subformulae G \/ { 'not' F, G '&' 'not' F, G => F }) \/ {F
<=> G} by Th55
.= Subformulae F \/ Subformulae G \/ ((Subformulae F \/ Subformulae G \/
{ 'not' G, F '&' 'not' G, F => G }) \/ { 'not' F, G '&' 'not' F, G => F }) \/ {
F <=> G} by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ (Subformulae F \/ Subformulae G \/
({ 'not' G, F '&' 'not' G, F => G } \/ { 'not' F, G '&' 'not' F, G => F })) \/
{F <=> G} by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ (Subformulae F \/ Subformulae G) \/
({ 'not' G, F '&' 'not' G, F => G } \/ { 'not' F, G '&' 'not' F, G => F }) \/ {
F <=> G} by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ { 'not' G, F '&' 'not' G, F => G,
'not' F, G '&' 'not' F, G => F } \/ {F <=> G} by ENUMSET1:13
.= Subformulae F \/ Subformulae G \/ ({ 'not' G, F '&' 'not' G, F => G,
'not' F, G '&' 'not' F, G => F } \/ {F <=> G}) by XBOOLE_1:4
.= Subformulae F \/ Subformulae G \/ { 'not' G, F '&' 'not' G, F => G,
'not' F, G '&' 'not' F, G => F, F <=> G } by ENUMSET1:21;
end;
theorem Th58:
Free (x '=' y) = {x,y}
proof
A1: Var2 (x '=' y) = y by Th1;
x '=' y is being_equality & Var1 (x '=' y) = x by Th1;
hence thesis by A1,ZF_MODEL:1;
end;
theorem Th59:
Free (x 'in' y) = {x,y}
proof
A1: Var2 (x 'in' y) = y by Th2;
x 'in' y is being_membership & Var1 (x 'in' y) = x by Th2;
hence thesis by A1,ZF_MODEL:1;
end;
theorem Th60:
Free ('not' p) = Free p
proof
'not' p is negative & the_argument_of 'not' p = p by Th3;
hence thesis by ZF_MODEL:1;
end;
theorem Th61:
Free (p '&' q) = Free p \/ Free q
proof
A1: the_right_argument_of (p '&' q) = q by Th4;
p '&' q is conjunctive & the_left_argument_of (p '&' q) = p by Th4;
hence thesis by A1,ZF_MODEL:1;
end;
theorem Th62:
Free All(x,p) = Free p \ {x}
proof
A1: the_scope_of All(x,p) = p by Th8;
All(x,p) is universal & bound_in All(x,p) = x by Th8;
hence thesis by A1,ZF_MODEL:1;
end;
theorem
Free (p 'or' q) = Free p \/ Free q
proof
thus Free (p 'or' q) = Free ('not' p '&' 'not' q) by Th60
.= Free 'not' p \/ Free 'not' q by Th61
.= Free p \/ Free 'not' q by Th60
.= Free p \/ Free q by Th60;
end;
theorem Th64:
Free (p => q) = Free p \/ Free q
proof
thus Free (p => q) = Free (p '&' 'not' q) by Th60
.= Free p \/ Free 'not' q by Th61
.= Free p \/ Free q by Th60;
end;
theorem
Free (p <=> q) = Free p \/ Free q
proof
thus Free (p <=> q) = Free (p => q) \/ Free (q => p) by Th61
.= Free p \/ Free q \/ Free (q => p) by Th64
.= Free p \/ Free q \/ (Free q \/ Free p) by Th64
.= Free p \/ Free q \/ Free q \/ Free p by XBOOLE_1:4
.= Free p \/ (Free q \/ Free q) \/ Free p by XBOOLE_1:4
.= Free p \/ Free p \/ Free q by XBOOLE_1:4
.= Free p \/ Free q;
end;
theorem Th66:
Free Ex(x,p) = Free p \ {x}
proof
thus Free Ex(x,p) = Free All(x,'not' p) by Th60
.= Free 'not' p \ {x} by Th62
.= Free p \ {x} by Th60;
end;
theorem Th67:
Free All(x,y,p) = Free p \ {x,y}
proof
thus Free All(x,y,p) = Free All(y,p) \ {x} by Th62
.= (Free p \ {y}) \ {x} by Th62
.= Free p \ ({x} \/ {y}) by XBOOLE_1:41
.= Free p \ {x,y} by ENUMSET1:1;
end;
theorem
Free All(x,y,z,p) = Free p \ {x,y,z}
proof
thus Free All(x,y,z,p) = Free All(y,z,p) \ {x} by Th62
.= (Free p \ {y,z}) \ {x} by Th67
.= Free p \ ({x} \/ {y,z}) by XBOOLE_1:41
.= Free p \ {x,y,z} by ENUMSET1:2;
end;
theorem Th69:
Free Ex(x,y,p) = Free p \ {x,y}
proof
thus Free Ex(x,y,p) = Free Ex(y,p) \ {x} by Th66
.= (Free p \ {y}) \ {x} by Th66
.= Free p \ ({x} \/ {y}) by XBOOLE_1:41
.= Free p \ {x,y} by ENUMSET1:1;
end;
theorem
Free Ex(x,y,z,p) = Free p \ {x,y,z}
proof
thus Free Ex(x,y,z,p) = Free Ex(y,z,p) \ {x} by Th66
.= (Free p \ {y,z}) \ {x} by Th69
.= Free p \ ({x} \/ {y,z}) by XBOOLE_1:41
.= Free p \ {x,y,z} by ENUMSET1:2;
end;
scheme
ZFInduction { P[ZF-formula] } : for H holds P[H]
provided
A1: for x1,x2 holds P[x1 '=' x2] & P[x1 'in' x2] and
A2: for H st P[H] holds P['not' H] and
A3: for H1,H2 st P[H1] & P[H2] holds P[H1 '&' H2] and
A4: for H,x st P[H] holds P[All(x,H)]
proof
A5: for H st H is conjunctive & P[the_left_argument_of H] & P[
the_right_argument_of H] holds P[H]
proof
let H;
assume H is conjunctive;
then H = (the_left_argument_of H) '&' (the_right_argument_of H) by
ZF_LANG:40;
hence thesis by A3;
end;
A6: for H st H is atomic holds P[H]
proof
let H such that
A7: H is being_equality or H is being_membership;
A8: H is being_membership implies thesis
by A1;
H is being_equality implies thesis
by A1;
hence thesis by A7,A8;
end;
A9: for H st H is universal & P[the_scope_of H] holds P[H]
proof
let H;
assume H is universal;
then H = All(bound_in H, the_scope_of H) by ZF_LANG:44;
hence thesis by A4;
end;
A10: for H st H is negative & P[the_argument_of H] holds P[H]
proof
let H;
assume H is negative;
then H = 'not' the_argument_of H by ZF_LANG:def 30;
hence thesis by A2;
end;
thus for H holds P[H] from ZF_LANG:sch 1(A6,A10,A5,A9);
end;
reserve M for non empty set,
m,m9 for Element of M,
v,v9 for Function of VAR,M;
definition
let D,D1,D2 be non empty set, f be Function of D,D1;
assume
A1: D1 c= D2;
func D2!f -> Function of D,D2 equals
f;
correctness
proof
rng f c= D1 by RELAT_1:def 19;
then
A2: rng f c= D2 by A1;
dom f = D by FUNCT_2:def 1;
hence thesis by A2,FUNCT_2:def 1,RELSET_1:4;
end;
end;
notation
let E be non empty set, f be Function of VAR,E, x be Variable, e be Element
of E;
synonym f / (x,e) for f+*(x,e);
end;
definition
let E be non empty set, f be Function of VAR,E, x be Variable, e be Element
of E;
redefine func f/(x,e) -> Function of VAR, E;
coherence
proof
f+*(x,e) is Function of VAR, E;
hence thesis;
end;
end;
theorem Th71:
M,v |= All(x,H) iff for m holds M,v/(x,m) |= H
proof
thus M,v |= All(x,H) implies for m holds M,v/(x,m) |= H
proof
assume
A1: M,v |= All(x,H);
let m;
for y st (v/(x,m)).y <> v.y holds x = y by FUNCT_7:32;
hence thesis by A1,ZF_MODEL:16;
end;
assume
A2: for m holds M,v/(x,m) |= H;
now
let v9;
assume for y st v9.y <> v.y holds x = y;
then v9 = v/(x,v9.x) by FUNCT_7:129;
hence M,v9 |= H by A2;
end;
hence thesis by ZF_MODEL:16;
end;
theorem Th72:
M,v |= All(x,H) iff M,v/(x,m) |= All(x,H)
proof
A1: for v,m st M,v |= All(x,H) holds M,v/(x,m) |= All(x,H)
proof
let v,m such that
A2: M,v |= All(x,H);
now
let m9;
(v/(x,m))/(x,m9) = v/(x,m9) by FUNCT_7:34;
hence M,(v/(x,m))/(x,m9) |= H by A2,Th71;
end;
hence thesis by Th71;
end;
(v/(x,m))/(x,v.x) = v/(x,v.x) by FUNCT_7:34
.= v by FUNCT_7:35;
hence thesis by A1;
end;
theorem Th73:
M,v |= Ex(x,H) iff ex m st M,v/(x,m) |= H
proof
thus M,v |= Ex(x,H) implies ex m st M,v/(x,m) |= H
proof
assume M,v |= Ex(x,H);
then consider v9 such that
A1: ( for y st v9.y <> v.y holds x = y)& M,v9 |= H by ZF_MODEL:20;
take v9.x;
thus thesis by A1,FUNCT_7:129;
end;
given m such that
A2: M,v/(x,m) |= H;
now
take v9 = v/(x,m);
thus for y st v9.y <> v.y holds x = y by FUNCT_7:32;
thus M,v9 |= H by A2;
end;
hence thesis by ZF_MODEL:20;
end;
theorem
M,v |= Ex(x,H) iff M,v/(x,m) |= Ex(x,H)
proof
A1: for v,m st M,v |= Ex(x,H) holds M,v/(x,m) |= Ex(x,H)
proof
let v,m;
assume M,v |= Ex(x,H);
then consider m9 such that
A2: M,v/(x,m9) |= H by Th73;
(v/(x,m))/(x,m9) = v/(x,m9) by FUNCT_7:34;
hence thesis by A2,Th73;
end;
(v/(x,m))/(x,v.x) = v/(x,v.x) by FUNCT_7:34
.= v by FUNCT_7:35;
hence thesis by A1;
end;
theorem
for v,v9 st for x st x in Free H holds v9.x = v.x holds M,v |= H
implies M,v9 |= H
proof
defpred Etha[ZF-formula] means for v,v9 st for x st x in Free $1 holds v9.x
= v.x holds M,v |= $1 implies M,v9 |= $1;
A1: for H1,H2 st Etha[H1] & Etha[H2] holds Etha[H1 '&' H2]
proof
let H1,H2 such that
A2: Etha[H1] and
A3: Etha[H2];
let v,v9;
assume
A4: for x st x in Free H1 '&' H2 holds v9.x = v.x;
A5: Free (H1 '&' H2) = Free H1 \/ Free H2 by Th61;
A6: now
let x;
assume x in Free H2;
then x in Free (H1 '&' H2) by A5,XBOOLE_0:def 3;
hence v9.x = v.x by A4;
end;
assume
A7: M,v |= H1 '&' H2;
then M,v |= H2 by ZF_MODEL:15;
then
A8: M,v9 |= H2 by A3,A6;
A9: now
let x;
assume x in Free H1;
then x in Free (H1 '&' H2) by A5,XBOOLE_0:def 3;
hence v9.x = v.x by A4;
end;
M,v |= H1 by A7,ZF_MODEL:15;
then M,v9 |= H1 by A2,A9;
hence thesis by A8,ZF_MODEL:15;
end;
A10: for x1,x2 holds Etha[x1 '=' x2] & Etha[x1 'in' x2]
proof
let x1,x2;
A11: Free (x1 '=' x2) = {x1,x2} by Th58;
thus Etha[x1 '=' x2]
proof
let v,v9;
assume
A12: for x st x in Free (x1 '=' x2) holds v9.x = v.x;
x2 in Free (x1 '=' x2) by A11,TARSKI:def 2;
then
A13: v9.x2 = v.x2 by A12;
assume M,v |= x1 '=' x2;
then
A14: v.x1 = v.x2 by ZF_MODEL:12;
x1 in Free (x1 '=' x2) by A11,TARSKI:def 2;
then v9.x1 = v.x1 by A12;
hence thesis by A14,A13,ZF_MODEL:12;
end;
let v,v9;
assume
A15: for x st x in Free (x1 'in' x2) holds v9.x = v.x;
A16: Free (x1 'in' x2) = {x1,x2} by Th59;
then x2 in Free (x1 'in' x2) by TARSKI:def 2;
then
A17: v9.x2 = v.x2 by A15;
assume M,v |= x1 'in' x2;
then
A18: v.x1 in v.x2 by ZF_MODEL:13;
x1 in Free (x1 'in' x2) by A16,TARSKI:def 2;
then v9.x1 = v.x1 by A15;
hence thesis by A18,A17,ZF_MODEL:13;
end;
A19: for H,x st Etha[H] holds Etha[All(x,H)]
proof
let H,x1 such that
A20: Etha[H];
let v,v9;
assume that
A21: for x st x in Free All(x1,H) holds v9.x = v.x and
A22: M,v |= All(x1,H);
now
let m;
A23: Free All(x1,H) = Free H \ {x1} by Th62;
A24: now
let x;
assume x in Free H;
then x in Free All(x1,H) & not x in {x1} or x in {x1} by A23,
XBOOLE_0:def 5;
then v9.x = v.x & x <> x1 or x = x1 by A21,TARSKI:def 1;
then
v9/(x1,m).x = v.x & v.x = v/(x1,m).x or v/(x1,m).x = m & v9/(x1,m
).x = m by FUNCT_7:32,128;
hence v9/(x1,m).x = v/(x1,m).x;
end;
M,v/(x1,m) |= H by A22,Th71;
hence M,v9/(x1,m) |= H by A20,A24;
end;
hence thesis by Th71;
end;
A25: for H st Etha[H] holds Etha['not' H]
proof
let H such that
A26: Etha[H];
let v,v9;
assume
A27: for x st x in Free 'not' H holds v9.x = v.x;
A28: now
let x;
assume x in Free H;
then x in Free 'not' H by Th60;
hence v.x = v9.x by A27;
end;
assume M,v |= 'not' H;
then not M,v |= H by ZF_MODEL:14;
then not M,v9 |= H by A26,A28;
hence thesis by ZF_MODEL:14;
end;
for H holds Etha[H] from ZFInduction(A10,A25,A1,A19);
hence thesis;
end;
registration
let H;
cluster Free H -> finite;
coherence
proof
defpred P[ZF-formula] means Free $1 is finite;
A1: P[p] & P[q] implies P[p '&' q]
proof
Free p '&' q = Free p \/ Free q by Th61;
hence thesis;
end;
A2: P[p] implies P[All(x,p)]
proof
Free All(x,p) = Free p \ {x} by Th62;
hence thesis;
end;
A3: P[x '=' y] & P[x 'in' y]
proof
Free (x '=' y) = {x,y} by Th58;
hence thesis by Th59;
end;
A4: P[p] implies P['not' p] by Th60;
P[p] from ZFInduction(A3,A4,A1,A2);
hence thesis;
end;
end;
reserve i,j for Element of NAT;
theorem
x.i = x.j implies i = j;
theorem
ex i st x = x.i
proof
x in VAR;
then consider j such that
A1: x = j and
A2: 5 <= j;
consider i be Nat such that
A3: j = 5+i by A2,NAT_1:10;
reconsider i as Element of NAT by ORDINAL1:def 12;
take i;
thus thesis by A1,A3;
end;
theorem Th78:
M,v |= x '=' x
proof
v.x = v.x;
hence thesis by ZF_MODEL:12;
end;
theorem Th79:
M |= x '=' x
by Th78;
theorem Th80:
not M,v |= x 'in' x
proof
not v.x in v.x;
hence thesis by ZF_MODEL:13;
end;
theorem Th81:
not M |= x 'in' x & M |= 'not' x 'in' x
proof
set v = the Function of VAR,M;
not M,v |= x 'in' x by Th80;
hence not M |= x 'in' x;
let v;
not M,v |= x 'in' x by Th80;
hence thesis by ZF_MODEL:14;
end;
theorem
M |= x '=' y iff x = y or ex a st {a} = M
proof
thus M |= x '=' y implies x = y or ex a st {a} = M
proof
set v = the Function of VAR,M;
set m = the Element of M;
assume that
A1: for v holds M,v |= x '=' y and
A2: x <> y;
reconsider a = m as set;
take a;
thus {a} c= M by ZFMISC_1:31;
let b be object;
assume that
A3: b in M and
A4: not b in {a};
reconsider b as Element of M by A3;
M,(v/(x,m))/(y,b) |= x '=' y by A1;
then
A5: (v/(x,m))/(y,b).x = (v/(x,m))/(y,b).y by ZF_MODEL:12;
A6: v/(x,m).x = m & (v/(x,m))/(y,b).y = b by FUNCT_7:128;
(v/(x,m))/(y,b).x = v/(x,m).x by A2,FUNCT_7:32;
hence contradiction by A4,A5,A6,TARSKI:def 1;
end;
now
given a such that
A7: {a} = M;
let v;
v.x = a & v.y = a by A7,TARSKI:def 1;
hence M,v |= x '=' y by ZF_MODEL:12;
end;
hence thesis by Th79;
end;
theorem
M |= 'not' x 'in' y iff x = y or for X st X in M holds X misses M
proof
thus M |= 'not' x 'in' y implies x = y or for X st X in M holds X misses M
proof
set v = the Function of VAR,M;
assume that
A1: for v holds M,v |= 'not' x 'in' y and
A2: x <> y;
let X;
set a = the Element of X /\ M;
assume X in M;
then reconsider m = X as Element of M;
assume
A3: X /\ M <> {};
then reconsider a as Element of M by XBOOLE_0:def 4;
M,(v/(x,a))/(y,m) |= 'not' x 'in' y by A1;
then not M,(v/(x,a))/(y,m) |= x 'in' y by ZF_MODEL:14;
then
A4: not (v/(x,a))/(y,m).x in (v/(x,a))/(y,m).y by ZF_MODEL:13;
A5: v/(x,a).x = a & (v/(x,a))/(y,m).y = m by FUNCT_7:128;
(v/(x,a))/(y,m).x = v/(x,a).x by A2,FUNCT_7:32;
hence contradiction by A3,A4,A5,XBOOLE_0:def 4;
end;
now
assume
A6: for X st X in M holds X misses M;
let v;
v.y misses M by A6;
then not v.x in v.y by XBOOLE_0:3;
then not M,v |= x 'in' y by ZF_MODEL:13;
hence M,v |= 'not' x 'in' y by ZF_MODEL:14;
end;
hence thesis by Th81;
end;
theorem
H is being_equality implies (M,v |= H iff v.Var1 H = v.Var2 H)
proof
assume H is being_equality;
then H = (Var1 H) '=' (Var2 H) by ZF_LANG:36;
hence thesis by ZF_MODEL:12;
end;
theorem
H is being_membership implies (M,v |= H iff v.Var1 H in v.Var2 H)
proof
assume H is being_membership;
then H = (Var1 H) 'in' (Var2 H) by ZF_LANG:37;
hence thesis by ZF_MODEL:13;
end;
theorem
H is negative implies (M,v |= H iff not M,v |= the_argument_of H)
proof
assume H is negative;
then H = 'not' the_argument_of H by ZF_LANG:def 30;
hence thesis by ZF_MODEL:14;
end;
theorem
H is conjunctive implies (M,v |= H iff M,v |= the_left_argument_of H &
M,v |= the_right_argument_of H)
proof
assume H is conjunctive;
then H = (the_left_argument_of H) '&' (the_right_argument_of H)
by ZF_LANG:40;
hence thesis by ZF_MODEL:15;
end;
theorem
H is universal implies (M,v |= H iff for m holds M,v/(bound_in H,m) |=
the_scope_of H)
proof
assume H is universal;
then H = All(bound_in H, the_scope_of H) by ZF_LANG:44;
hence thesis by Th71;
end;
theorem
H is disjunctive implies (M,v |= H iff M,v |= the_left_argument_of H
or M,v |= the_right_argument_of H)
proof
assume H is disjunctive;
then H = (the_left_argument_of H) 'or' (the_right_argument_of H) by
ZF_LANG:41;
hence thesis by ZF_MODEL:17;
end;
theorem
H is conditional implies (M,v |= H iff (M,v |= the_antecedent_of H
implies M,v |= the_consequent_of H))
proof
assume H is conditional;
then H = (the_antecedent_of H) => (the_consequent_of H) by ZF_LANG:47;
hence thesis by ZF_MODEL:18;
end;
theorem
H is biconditional implies (M,v |= H iff (M,v |= the_left_side_of H
iff M,v |= the_right_side_of H))
proof
assume H is biconditional;
then H = (the_left_side_of H) <=> (the_right_side_of H) by ZF_LANG:49;
hence thesis by ZF_MODEL:19;
end;
theorem
H is existential implies (M,v |= H iff ex m st M,v/(bound_in H,m) |=
the_scope_of H)
proof
assume H is existential;
then H = Ex(bound_in H, the_scope_of H) by ZF_LANG:45;
hence thesis by Th73;
end;
theorem
M |= Ex(x,H) iff for v ex m st M,v/(x,m) |= H
proof
thus M |= Ex(x,H) implies for v ex m st M,v/(x,m) |= H
by Th73;
assume
A1: for v ex m st M,v/(x,m) |= H;
let v;
ex m st M,v/(x,m) |= H by A1;
hence thesis by Th73;
end;
theorem Th94:
M |= H implies M |= Ex(x,H)
proof
assume
A1: M |= H;
let v;
M,v/(x,v.x) |= H by A1;
hence thesis by Th73;
end;
theorem Th95:
M |= H iff M |= All(x,y,H)
proof
M |= H iff M |= All(y,H) by ZF_MODEL:23;
hence thesis by ZF_MODEL:23;
end;
theorem Th96:
M |= H implies M |= Ex(x,y,H)
proof
M |= H implies M |= Ex(y,H) by Th94;
hence thesis by Th94;
end;
theorem
M |= H iff M |= All(x,y,z,H)
proof
M |= H iff M |= All(y,z,H) by Th95;
hence thesis by ZF_MODEL:23;
end;
theorem
M |= H implies M |= Ex(x,y,z,H)
proof
M |= H implies M |= Ex(y,z,H) by Th96;
hence thesis by Th94;
end;
::
:: Axioms of Logic
::
theorem
M,v |= (p <=> q) => (p => q) & M |= (p <=> q) => (p => q)
proof
A1: now
let v;
M,v |= p <=> q implies M,v |= p => q by ZF_MODEL:15;
hence M,v |= (p <=> q) => (p => q) by ZF_MODEL:18;
end;
hence M,v |= (p <=> q) => (p => q);
let v;
thus thesis by A1;
end;
theorem
M,v |= (p <=> q) => (q => p) & M |= (p <=> q) => (q => p)
proof
A1: now
let v;
M,v |= p <=> q implies M,v |= q => p by ZF_MODEL:15;
hence M,v |= (p <=> q) => (q => p) by ZF_MODEL:18;
end;
hence M,v |= (p <=> q) => (q => p);
let v;
thus thesis by A1;
end;
theorem Th101:
M |= (p => q) => ((q => r) => (p => r))
proof
let v;
now
assume
A1: M,v |= p => q;
now
assume
A2: M,v |= q => r;
now
assume M,v |= p;
then M,v |= q by A1,ZF_MODEL:18;
hence M,v |= r by A2,ZF_MODEL:18;
end;
hence M,v |= p => r by ZF_MODEL:18;
end;
hence M,v |= (q => r) => (p => r) by ZF_MODEL:18;
end;
hence thesis by ZF_MODEL:18;
end;
theorem Th102:
M,v |= p => q & M,v |= q => r implies M,v |= p => r
proof
assume that
A1: M,v |= p => q and
A2: M,v |= q => r;
M |= (p => q) => ((q => r) => (p => r)) by Th101;
then M,v |= (p => q) => ((q => r) => (p => r));
then M,v |= (q => r) => (p => r) by A1,ZF_MODEL:18;
hence thesis by A2,ZF_MODEL:18;
end;
theorem
M |= p => q & M |= q => r implies M |= p => r
proof
assume
A1: M |= p => q & M |= q => r;
let v;
M,v |= p => q & M,v |= q => r by A1;
hence thesis by Th102;
end;
theorem
M,v |= (p => q) '&' (q => r) => (p => r) & M |= (p => q) '&' (q => r)
=> (p => r)
proof
now
let v;
now
assume M,v |= (p => q) '&' (q => r);
then M,v |= (p => q) & M,v |= (q => r) by ZF_MODEL:15;
hence M,v |= p => r by Th102;
end;
hence M,v |= (p => q) '&' (q => r) => (p => r) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= p => (q => p) & M |= p => (q => p)
proof
now
let v;
M,v |= p implies M,v |= q => p by ZF_MODEL:18;
hence M,v |= p => (q => p) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= (p => (q => r)) => ((p => q) => (p => r)) & M |= (p => (q => r)
) => ((p => q) => (p => r))
proof
now
let v;
now
assume
A1: M,v |= p => (q => r);
now
assume M,v |= p => q;
then
A2: M,v |= p implies M,v |= q => r & M,v |= q by A1,ZF_MODEL:18;
M,v |= q & M,v |= q => r implies M,v |= r by ZF_MODEL:18;
hence M,v |= p => r by A2,ZF_MODEL:18;
end;
hence M,v |= (p => q) => (p => r) by ZF_MODEL:18;
end;
hence M,v |= (p => (q => r)) => ((p => q) => (p => r)) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= p '&' q => p & M |= p '&' q => p
proof
now
let v;
M,v |= p '&' q implies M,v |= p by ZF_MODEL:15;
hence M,v |= p '&' q => p by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= p '&' q => q & M |= p '&' q => q
proof
now
let v;
M,v |= p '&' q implies M,v |= q by ZF_MODEL:15;
hence M,v |= p '&' q => q by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= p '&' q => q '&' p & M |= p '&' q => q '&' p
proof
now
let v;
A1: M,v |= p & M,v |= q implies M,v |= q '&' p by ZF_MODEL:15;
M,v |= p '&' q implies M,v |= p & M,v |= q by ZF_MODEL:15;
hence M,v |= p '&' q => q '&' p by A1,ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= p => p '&' p & M |= p => p '&' p
proof
now
let v;
M,v |= p implies M,v |= p '&' p by ZF_MODEL:15;
hence M,v |= p => p '&' p by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= (p => q) => ((p => r) => (p => q '&' r)) & M |= (p => q) => ((p
=> r) => (p => q '&' r))
proof
now
let v;
now
assume
A1: M,v |= p => q;
now
assume M,v |= p => r;
then M,v |= p implies M,v |= r & M,v |= q by A1,ZF_MODEL:18;
then M,v |= p implies M,v |= q '&' r by ZF_MODEL:15;
hence M,v |= p => q '&' r by ZF_MODEL:18;
end;
hence M,v |= (p => r) => (p => q '&' r) by ZF_MODEL:18;
end;
hence M,v |= (p => q) => ((p => r) => (p => q '&' r)) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem Th112:
M,v |= p => p 'or' q & M |= p => p 'or' q
proof
now
let v;
M,v |= p implies M,v |= p 'or' q by ZF_MODEL:17;
hence M,v |= p => p 'or' q by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= q => p 'or' q & M |= q => p 'or' q
proof
now
let v;
M,v |= q implies M,v |= p 'or' q by ZF_MODEL:17;
hence M,v |= q => p 'or' q by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= p 'or' q => q 'or' p & M |= p 'or' q => q 'or' p
proof
now
let v;
A1: M,v |= p or M,v |= q implies M,v |= q 'or' p by ZF_MODEL:17;
M,v |= p 'or' q implies M,v |= p or M,v |= q by ZF_MODEL:17;
hence M,v |= p 'or' q => q 'or' p by A1,ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= p => p 'or' p & M |= p => p 'or' p by Th112;
theorem
M,v |= (p => r) => ((q => r) => (p 'or' q => r)) & M |= (p => r) => ((
q => r) => (p 'or' q => r))
proof
now
let v;
now
assume
A1: M,v |= p => r;
now
assume M,v |= q => r;
then M,v |= p or M,v |= q implies M,v |= r by A1,ZF_MODEL:18;
then M,v |= p 'or' q implies M,v |= r by ZF_MODEL:17;
hence M,v |= p 'or' q => r by ZF_MODEL:18;
end;
hence M,v |= (q => r) => (p 'or' q => r) by ZF_MODEL:18;
end;
hence M,v |= (p => r) => ((q => r) => (p 'or' q => r)) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= (p => r) '&' (q => r) => (p 'or' q => r) & M |= (p => r) '&' (q
=> r) => (p 'or' q => r)
proof
now
let v;
now
assume M,v |= (p => r) '&' (q => r);
then M,v |= p => r & M,v |= q => r by ZF_MODEL:15;
then M,v |= p or M,v |= q implies M,v |= r by ZF_MODEL:18;
then M,v |= p 'or' q implies M,v |= r by ZF_MODEL:17;
hence M,v |= p 'or' q => r by ZF_MODEL:18;
end;
hence M,v |= (p => r) '&' (q => r) => (p 'or' q => r) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= (p => 'not' q) => (q => 'not' p) & M |= (p => 'not' q) => (q =>
'not' p)
proof
now
let v;
now
assume M,v |= p => 'not' q;
then M,v |= p implies M,v |= 'not' q by ZF_MODEL:18;
then M,v |= q implies M,v |= 'not' p by ZF_MODEL:14;
hence M,v |= q => 'not' p by ZF_MODEL:18;
end;
hence M,v |= (p => 'not' q) => (q => 'not' p) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= 'not' p => (p => q) & M |= 'not' p => (p => q)
proof
now
let v;
now
assume M,v |= 'not' p;
then not M,v |= p by ZF_MODEL:14;
hence M,v |= p => q by ZF_MODEL:18;
end;
hence M,v |= 'not' p => (p => q) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= (p => q) '&' (p => 'not' q) => 'not' p & M |= (p => q) '&' (p
=> 'not' q) => 'not' p
proof
now
let v;
now
assume M,v |= (p => q) '&' (p => 'not' q);
then M,v |= p => q & M,v |= p => 'not' q by ZF_MODEL:15;
then M,v |= p implies M,v |= q & M,v |= 'not' q by ZF_MODEL:18;
hence M,v |= 'not' p by ZF_MODEL:14;
end;
hence M,v |= (p => q) '&' (p => 'not' q) => 'not' p by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M |= p => q & M |= p implies M |= q
proof
assume
A1: M |= p => q & M |= p;
let v;
M,v |= p => q & M,v |= p by A1;
hence thesis by ZF_MODEL:18;
end;
theorem
M,v |= 'not'(p '&' q) => 'not' p 'or' 'not' q & M |= 'not'(p '&' q) =>
'not' p 'or' 'not' q
proof
now
let v;
now
assume M,v |= 'not'(p '&' q);
then not M,v |= p '&' q by ZF_MODEL:14;
then not M,v |= p or not M,v |= q by ZF_MODEL:15;
then M,v |= 'not' p or M,v |= 'not' q by ZF_MODEL:14;
hence M,v |= 'not' p 'or' 'not' q by ZF_MODEL:17;
end;
hence M,v |= 'not'(p '&' q) => 'not' p 'or' 'not' q by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= 'not' p 'or' 'not' q => 'not'(p '&' q) & M |= 'not' p 'or'
'not' q => 'not'(p '&' q)
proof
now
let v;
now
assume M,v |= 'not' p 'or' 'not' q;
then M,v |= 'not' p or M,v |= 'not' q by ZF_MODEL:17;
then not M,v |= p or not M,v |= q by ZF_MODEL:14;
then not M,v |= p '&' q by ZF_MODEL:15;
hence M,v |= 'not'(p '&' q) by ZF_MODEL:14;
end;
hence M,v |= 'not' p 'or' 'not' q => 'not'(p '&' q) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= 'not'(p 'or' q) => 'not' p '&' 'not' q & M |= 'not'(p 'or' q)
=> 'not' p '&' 'not' q
proof
now
let v;
now
assume M,v |= 'not'(p 'or' q);
then
A1: not M,v |= p 'or' q by ZF_MODEL:14;
then not M,v |= q by ZF_MODEL:17;
then
A2: M,v |= 'not' q by ZF_MODEL:14;
not M,v |= p by A1,ZF_MODEL:17;
then M,v |= 'not' p by ZF_MODEL:14;
hence M,v |= 'not' p '&' 'not' q by A2,ZF_MODEL:15;
end;
hence M,v |= 'not'(p 'or' q) => 'not' p '&' 'not' q by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M,v |= 'not' p '&' 'not' q => 'not'(p 'or' q) & M |= 'not' p '&' 'not'
q => 'not'(p 'or' q)
proof
now
let v;
now
assume
A1: M,v |= 'not' p '&' 'not' q;
then M,v |= 'not' q by ZF_MODEL:15;
then
A2: not M,v |= q by ZF_MODEL:14;
M,v |= 'not' p by A1,ZF_MODEL:15;
then not M,v |= p by ZF_MODEL:14;
then not M,v |= p 'or' q by A2,ZF_MODEL:17;
hence M,v |= 'not'(p 'or' q) by ZF_MODEL:14;
end;
hence M,v |= 'not' p '&' 'not' q => 'not'(p 'or' q) by ZF_MODEL:18;
end;
hence thesis;
end;
theorem
M |= All(x,H) => H
proof
let v;
M,v |= All(x,H) implies M,v/(x,v.x) |= H by Th71;
then M,v |= All(x,H) implies M,v |= H by FUNCT_7:35;
hence thesis by ZF_MODEL:18;
end;
theorem
M |= H => Ex(x,H)
proof
let v;
M,v/(x,v.x) |= H implies M,v |= Ex(x,H) by Th73;
then M,v |= H implies M,v |= Ex(x,H) by FUNCT_7:35;
hence thesis by ZF_MODEL:18;
end;
theorem Th128:
not x in Free H1 implies M |= All(x,H1 => H2) => (H1 => All(x, H2))
proof
assume
A1: not x in Free H1;
let v;
now
assume
A2: M,v |= All(x,H1 => H2);
now
assume
A3: M,v |= H1;
now
let m;
M,v |= All(x,H1) by A1,A3,ZFMODEL1:10;
then
A4: M,v/(x,m) |= H1 by Th71;
M,v/(x,m) |= H1 => H2 by A2,Th71;
hence M,v/(x,m) |= H2 by A4,ZF_MODEL:18;
end;
hence M,v |= All(x,H2) by Th71;
end;
hence M,v |= H1 => All(x,H2) by ZF_MODEL:18;
end;
hence thesis by ZF_MODEL:18;
end;
theorem
not x in Free H1 & M |= H1 => H2 implies M |= H1 => All(x,H2)
proof
assume that
A1: not x in Free H1 and
A2: for v holds M,v |= H1 => H2;
let v;
M |= All(x,H1 => H2) => (H1 => All(x,H2)) by A1,Th128;
then
A3: M,v |= All(x,H1 => H2) => (H1 => All(x,H2));
for m holds M,v/(x,m) |= H1 => H2 by A2;
then M,v |= All(x,H1 => H2) by Th71;
hence thesis by A3,ZF_MODEL:18;
end;
theorem Th130:
not x in Free H2 implies M |= All(x,H1 => H2) => (Ex(x,H1) => H2)
proof
assume
A1: not x in Free H2;
let v;
now
assume
A2: M,v |= All(x,H1 => H2);
now
assume M,v |= Ex(x,H1);
then consider m such that
A3: M,v/(x,m) |= H1 by Th73;
M,v/(x,m) |= H1 => H2 by A2,Th71;
then M,v/(x,m) |= H2 by A3,ZF_MODEL:18;
then M,v/(x,m) |= All(x,H2) by A1,ZFMODEL1:10;
then M,v |= All(x,H2) by Th72;
then M,v/(x,v.x) |= H2 by Th71;
hence M,v |= H2 by FUNCT_7:35;
end;
hence M,v |= Ex(x,H1) => H2 by ZF_MODEL:18;
end;
hence thesis by ZF_MODEL:18;
end;
theorem
not x in Free H2 & M |= H1 => H2 implies M |= Ex(x,H1) => H2
proof
assume that
A1: not x in Free H2 and
A2: for v holds M,v |= H1 => H2;
let v;
M |= All(x,H1 => H2) => (Ex(x,H1) => H2) by A1,Th130;
then
A3: M,v |= All(x,H1 => H2) => (Ex(x,H1) => H2);
for m holds M,v/(x,m) |= H1 => H2 by A2;
then M,v |= All(x,H1 => H2) by Th71;
hence thesis by A3,ZF_MODEL:18;
end;
theorem
M |= H1 => All(x,H2) implies M |= H1 => H2
proof
assume
A1: for v holds M,v |= H1 => All(x,H2);
let v;
A2: M,v |= H1 => All(x,H2) by A1;
now
assume M,v |= H1;
then M,v |= All(x,H2) by A2,ZF_MODEL:18;
then M,v/(x,v.x) |= H2 by Th71;
hence M,v |= H2 by FUNCT_7:35;
end;
hence thesis by ZF_MODEL:18;
end;
theorem
M |= Ex(x,H1) => H2 implies M |= H1 => H2
proof
assume
A1: for v holds M,v |= Ex(x,H1) => H2;
let v;
A2: M,v |= Ex(x,H1) => H2 by A1;
now
assume M,v |= H1;
then M,v/(x,v.x) |= H1 by FUNCT_7:35;
then M,v |= Ex(x,H1) by Th73;
hence M,v |= H2 by A2,ZF_MODEL:18;
end;
hence thesis by ZF_MODEL:18;
end;
theorem
WFF c= bool [:NAT,NAT:]
proof
let a be object;
assume a in WFF;
then reconsider H = a as ZF-formula by ZF_LANG:4;
H c= [:NAT,NAT:];
hence thesis;
end;
::
:: Variables in ZF-formula
::
definition
let H;
func variables_in H -> set equals
rng H \ { 0,1,2,3,4 };
correctness;
end;
theorem Th135:
x <> 0 & x <> 1 & x <> 2 & x <> 3 & x <> 4
proof
x in VAR;
then
A1: ex i st x = i & 5 <= i;
assume x = 0 or x = 1 or x = 2 or x = 3 or x = 4;
hence contradiction by A1;
end;
theorem Th136:
not x in { 0,1,2,3,4 }
proof
assume x in { 0,1,2,3,4 };
then x in { 0,1 } \/ { 2,3,4 } by ENUMSET1:8;
then x in { 0,1 } or x in { 2,3,4 } by XBOOLE_0:def 3;
then
A1: x = 0 or x = 1 or x = 2 or x = 3 or x = 4 by ENUMSET1:def 1,TARSKI:def 2;
x in VAR;
then ex i st x = i & 5 <= i;
hence contradiction by A1;
end;
theorem Th137:
a in variables_in H implies a <> 0 & a <> 1 & a <> 2 & a <> 3 & a <> 4
proof
assume a in variables_in H;
then not a in {0,1,2,3,4} by XBOOLE_0:def 5;
then not a in {0,1} \/ {2,3,4} by ENUMSET1:8;
then ( not a in {0,1})& not a in {2,3,4} by XBOOLE_0:def 3;
hence thesis by ENUMSET1:def 1,TARSKI:def 2;
end;
theorem Th138:
variables_in x '=' y = {x,y}
proof
A1: rng (x '=' y) = rng (<*0*>^<*x*>) \/ rng <*y*> by FINSEQ_1:31
.= rng <*0*> \/ rng <*x*> \/ rng <*y*> by FINSEQ_1:31
.= {0} \/ rng <*x*> \/ rng <*y*> by FINSEQ_1:39
.= {0} \/ {x} \/ rng <*y*> by FINSEQ_1:39
.= {0} \/ {x} \/ {y} by FINSEQ_1:39
.= {0} \/ ({x} \/ {y}) by XBOOLE_1:4
.= {0} \/ {x,y} by ENUMSET1:1;
thus variables_in (x '=' y) c= {x,y}
proof
let a be object;
assume
A2: a in variables_in x '=' y;
then a <> 0 by Th137;
then not a in {0} by TARSKI:def 1;
hence thesis by A1,A2,XBOOLE_0:def 3;
end;
let a be object;
assume
A3: a in {x,y};
then a = x or a = y by TARSKI:def 2;
then
A4: not a in {0,1,2,3,4} by Th136;
a in {0} \/ {x,y} by A3,XBOOLE_0:def 3;
hence thesis by A1,A4,XBOOLE_0:def 5;
end;
theorem Th139:
variables_in x 'in' y = {x,y}
proof
A1: rng (x 'in' y) = rng (<*1*>^<*x*>) \/ rng <*y*> by FINSEQ_1:31
.= rng <*1*> \/ rng <*x*> \/ rng <*y*> by FINSEQ_1:31
.= {1} \/ rng <*x*> \/ rng <*y*> by FINSEQ_1:39
.= {1} \/ {x} \/ rng <*y*> by FINSEQ_1:39
.= {1} \/ {x} \/ {y} by FINSEQ_1:39
.= {1} \/ ({x} \/ {y}) by XBOOLE_1:4
.= {1} \/ {x,y} by ENUMSET1:1;
thus variables_in (x 'in' y) c= {x,y}
proof
let a be object;
assume
A2: a in variables_in x 'in' y;
then a <> 1 by Th137;
then not a in {1} by TARSKI:def 1;
hence thesis by A1,A2,XBOOLE_0:def 3;
end;
let a be object;
assume
A3: a in {x,y};
then a = x or a = y by TARSKI:def 2;
then
A4: not a in {0,1,2,3,4} by Th136;
a in {1} \/ {x,y} by A3,XBOOLE_0:def 3;
hence thesis by A1,A4,XBOOLE_0:def 5;
end;
theorem Th140:
variables_in 'not' H = variables_in H
proof
A1: rng 'not' H = rng <*2*> \/ rng H by FINSEQ_1:31
.= {2} \/ rng H by FINSEQ_1:39;
thus variables_in 'not' H c= variables_in H
proof
let a be object;
assume
A2: a in variables_in 'not' H;
then a <> 2 by Th137;
then not a in {2} by TARSKI:def 1;
then
A3: a in rng H by A1,A2,XBOOLE_0:def 3;
not a in {0,1,2,3,4} by A2,XBOOLE_0:def 5;
hence thesis by A3,XBOOLE_0:def 5;
end;
thus thesis by A1,XBOOLE_1:7,33;
end;
theorem Th141:
variables_in H1 '&' H2 = variables_in H1 \/ variables_in H2
proof
A1: variables_in H1 \/ variables_in H2 = (rng H1 \/ rng H2) \ {0,1,2,3,4} by
XBOOLE_1:42;
A2: rng(H1 '&' H2) = rng (<*3*>^H1) \/ rng H2 by FINSEQ_1:31
.= rng <*3*> \/ rng H1 \/ rng H2 by FINSEQ_1:31
.= {3} \/ rng H1 \/ rng H2 by FINSEQ_1:39
.= {3} \/ (rng H1 \/ rng H2) by XBOOLE_1:4;
thus variables_in H1 '&' H2 c= variables_in H1 \/ variables_in H2
proof
let a be object;
assume
A3: a in variables_in H1 '&' H2;
then a <> 3 by Th137;
then not a in {3} by TARSKI:def 1;
then
A4: a in rng H1 \/ rng H2 by A2,A3,XBOOLE_0:def 3;
not a in {0,1,2,3,4} by A3,XBOOLE_0:def 5;
hence thesis by A1,A4,XBOOLE_0:def 5;
end;
thus thesis by A2,A1,XBOOLE_1:7,33;
end;
theorem Th142:
variables_in All(x,H) = variables_in H \/ {x}
proof
A1: rng All(x,H) = rng (<*4*>^<*x*>) \/ rng H by FINSEQ_1:31
.= rng <*4*> \/ rng <*x*> \/ rng H by FINSEQ_1:31
.= {4} \/ rng <*x*> \/ rng H by FINSEQ_1:39
.= {4} \/ {x} \/ rng H by FINSEQ_1:39
.= {4} \/ ({x} \/ rng H) by XBOOLE_1:4;
thus variables_in All(x,H) c= variables_in H \/ {x}
proof
let a be object;
assume
A2: a in variables_in All(x,H);
then a <> 4 by Th137;
then not a in {4} by TARSKI:def 1;
then a in {x} \/ rng H by A1,A2,XBOOLE_0:def 3;
then
A3: a in {x} or a in rng H by XBOOLE_0:def 3;
not a in {0,1,2,3,4} by A2,XBOOLE_0:def 5;
then a in rng H implies a in variables_in H by XBOOLE_0:def 5;
hence thesis by A3,XBOOLE_0:def 3;
end;
let a be object;
assume a in variables_in H \/ {x};
then
A4: a in variables_in H or a in {x} by XBOOLE_0:def 3;
then a in {x} \/ rng H by XBOOLE_0:def 3;
then
A5: a in {4} \/ ({x} \/ rng H) by XBOOLE_0:def 3;
a in rng H & not a in {0,1,2,3,4} or a in {x} & x = a by A4,TARSKI:def 1
,XBOOLE_0:def 5;
then not a in {0,1,2,3,4} by Th136;
hence thesis by A1,A5,XBOOLE_0:def 5;
end;
theorem
variables_in H1 'or' H2 = variables_in H1 \/ variables_in H2
proof
thus variables_in H1 'or' H2 = variables_in 'not' H1 '&' 'not' H2 by Th140
.= variables_in 'not' H1 \/ variables_in 'not' H2 by Th141
.= variables_in H1 \/ variables_in 'not' H2 by Th140
.= variables_in H1 \/ variables_in H2 by Th140;
end;
theorem Th144:
variables_in H1 => H2 = variables_in H1 \/ variables_in H2
proof
thus variables_in H1 => H2 = variables_in H1 '&' 'not' H2 by Th140
.= variables_in H1 \/ variables_in 'not' H2 by Th141
.= variables_in H1 \/ variables_in H2 by Th140;
end;
theorem
variables_in H1 <=> H2 = variables_in H1 \/ variables_in H2
proof
thus variables_in H1 <=> H2 = variables_in H1 => H2 \/ variables_in H2 => H1
by Th141
.= variables_in H1 \/ variables_in H2 \/ variables_in H2 => H1 by Th144
.= variables_in H1 \/ variables_in H2 \/ (variables_in H1 \/
variables_in H2) by Th144
.= variables_in H1 \/ variables_in H2;
end;
theorem Th146:
variables_in Ex(x,H) = variables_in H \/ {x}
proof
thus variables_in Ex(x,H) = variables_in All(x,'not' H) by Th140
.= variables_in 'not' H \/ {x} by Th142
.= variables_in H \/ {x} by Th140;
end;
theorem Th147:
variables_in All(x,y,H) = variables_in H \/ {x,y}
proof
thus variables_in All(x,y,H) = variables_in All(y,H) \/ {x} by Th142
.= variables_in H \/ {y} \/ {x} by Th142
.= variables_in H \/ ({y} \/ {x}) by XBOOLE_1:4
.= variables_in H \/ {x,y} by ENUMSET1:1;
end;
theorem Th148:
variables_in Ex(x,y,H) = variables_in H \/ {x,y}
proof
thus variables_in Ex(x,y,H) = variables_in Ex(y,H) \/ {x} by Th146
.= variables_in H \/ {y} \/ {x} by Th146
.= variables_in H \/ ({y} \/ {x}) by XBOOLE_1:4
.= variables_in H \/ {x,y} by ENUMSET1:1;
end;
theorem
variables_in All(x,y,z,H) = variables_in H \/ {x,y,z}
proof
thus variables_in All(x,y,z,H) = variables_in All(y,z,H) \/ {x} by Th142
.= variables_in H \/ {y,z} \/ {x} by Th147
.= variables_in H \/ ({y,z} \/ {x}) by XBOOLE_1:4
.= variables_in H \/ {y,z,x} by ENUMSET1:3
.= variables_in H \/ {x,y,z} by ENUMSET1:59;
end;
theorem
variables_in Ex(x,y,z,H) = variables_in H \/ {x,y,z}
proof
thus variables_in Ex(x,y,z,H) = variables_in Ex(y,z,H) \/ {x} by Th146
.= variables_in H \/ {y,z} \/ {x} by Th148
.= variables_in H \/ ({y,z} \/ {x}) by XBOOLE_1:4
.= variables_in H \/ {y,z,x} by ENUMSET1:3
.= variables_in H \/ {x,y,z} by ENUMSET1:59;
end;
theorem
Free H c= variables_in H
proof
defpred P[ZF-formula] means Free $1 c= variables_in $1;
A1: P[H1] implies P['not' H1]
proof
assume Free H1 c= variables_in H1;
then Free 'not' H1 c= variables_in H1 by Th60;
hence thesis by Th140;
end;
A2: P[H1] & P[H2] implies P[H1 '&' H2]
proof
assume Free H1 c= variables_in H1 & Free H2 c= variables_in H2;
then Free H1 \/ Free H2 c= variables_in H1 \/ variables_in H2 by
XBOOLE_1:13;
then Free H1 '&' H2 c= variables_in H1 \/ variables_in H2 by Th61;
hence thesis by Th141;
end;
A3: P[H1] implies P[All(x,H1)]
proof
Free H1 \ {x} c= Free H1 by XBOOLE_1:36;
then
A4: Free All(x,H1) c= Free H1 by Th62;
variables_in H1 c= variables_in H1 \/ {x } by XBOOLE_1:7;
then
A5: variables_in H1 c= variables_in All(x, H1) by Th142;
assume Free H1 c= variables_in H1;
then Free H1 c= variables_in All(x,H1) by A5;
hence thesis by A4,XBOOLE_1:1;
end;
A6: P[x '=' y] & P[x 'in' y]
proof
variables_in (x '=' y) = {x,y} & variables_in (x 'in' y) = {x,y} by Th138
,Th139;
hence thesis by Th58,Th59;
end;
for H holds P[H] from ZFInduction(A6,A1,A2,A3);
hence thesis;
end;
definition
let H;
redefine func variables_in H -> non empty Subset of VAR;
coherence
proof
defpred P[ZF-formula] means variables_in $1 <> {};
A1: for H1,H2 st P[H1] & P[H2] holds P[H1 '&' H2]
proof
let H1,H2;
variables_in H1 '&' H2 = variables_in H1 \/ variables_in H2 by Th141;
hence thesis;
end;
A2: for H,x st P[H] holds P[All(x,H)]
proof
let H,x;
variables_in All(x,H) = variables_in H \/ {x} by Th142;
hence thesis;
end;
A3: for x,y holds P[x '=' y] & P[x 'in' y]
proof
let x,y;
variables_in x '=' y = {x,y} by Th138;
hence thesis by Th139;
end;
A4: for H st P[H] holds P['not' H] by Th140;
for H holds P[H] from ZFInduction(A3,A4,A1,A2);
then reconsider D = variables_in H as non empty set;
D c= VAR
proof
let a be object;
A5: rng H c= NAT by FINSEQ_1:def 4;
A6: 0+1 = 1;
assume
A7: a in D;
then a in rng H;
then reconsider i = a as Element of NAT by A5;
a <> 0 by A7,Th137;
then
A8: 1 <= i by A6,NAT_1:13;
A9: 3+1 = 4;
A10: 2+1 = 3;
A11: 1+1 = 2;
a <> 1 by A7,Th137;
then 1 < i by A8,XXREAL_0:1;
then
A12: 2 <= i by A11,NAT_1:13;
a <> 2 by A7,Th137;
then 2 < i by A12,XXREAL_0:1;
then
A13: 3 <= i by A10,NAT_1:13;
a <> 3 by A7,Th137;
then 3 < i by A13,XXREAL_0:1;
then
A14: 4 <= i by A9,NAT_1:13;
a <> 4 by A7,Th137;
then
A15: 4 < i by A14,XXREAL_0:1;
4+1 = 5;
then 5 <= i by A15,NAT_1:13;
hence thesis;
end;
hence thesis;
end;
end;
definition
let H,x,y;
func H/(x,y) -> Function means
: Def3:
dom it = dom H & for a being object st a in dom H
holds (H.a = x implies it.a = y) & (H.a <> x implies it.a = H.a);
existence
proof
deffunc G(object) = H.$1;
deffunc F(object) = y;
set A = dom H;
defpred C[object] means H.$1 = x;
thus ex f being Function st dom f = A &
for a being object st a in A holds (C[a]
implies f.a = F(a)) & (not C[a] implies f.a = G(a)) from PARTFUN1:sch 1;
end;
uniqueness
proof
let f1,f2 be Function such that
A1: dom f1 = dom H and
A2: for a being object st a in dom H
holds (H.a = x implies f1.a = y) & (H.a <> x
implies f1.a = H.a) and
A3: dom f2 = dom H and
A4: for a being object st a in dom H
holds (H.a = x implies f2.a = y) & (H.a <> x
implies f2.a = H.a);
now
let a be object;
assume
A5: a in dom H;
then
A6: H.a <> x implies f1.a = H.a by A2;
H.a = x implies f1.a = y by A2,A5;
hence f1.a = f2.a by A4,A5,A6;
end;
hence thesis by A1,A3,FUNCT_1:2;
end;
end;
theorem Th152:
(x1 '=' x2)/(y1,y2) = z1 '=' z2 iff x1 <> y1 & x2 <> y1 & z1 =
x1 & z2 = x2 or x1 = y1 & x2 <> y1 & z1 = y2 & z2 = x2 or x1 <> y1 & x2 = y1 &
z1 = x1 & z2 = y2 or x1 = y1 & x2 = y1 & z1 = y2 & z2 = y2
proof
set H = x1 '=' x2, Hz = z1 '=' z2;
set f = H/(y1,y2);
A1: H.1 = 0 & y1 <> 0 by Th135,ZF_LANG:15;
H is being_equality;
then
A2: H is atomic;
then
A3: len H = 3 by ZF_LANG:11;
then
A4: dom H = {1,2,3} by FINSEQ_1:def 3,FINSEQ_3:1;
Hz is being_equality;
then
A5: Hz is atomic;
then len Hz = 3 by ZF_LANG:11;
then
A6: dom Hz = Seg 3 by FINSEQ_1:def 3;
Var1 Hz = z1 by Th1;
then
A7: Hz.2 = z1 by A5,ZF_LANG:35;
Var2 Hz = z2 by Th1;
then
A8: Hz.3 = z2 by A5,ZF_LANG:35;
A9: Var2 H = x2 by Th1;
then
A10: H.3 = x2 by A2,ZF_LANG:35;
A11: Var1 H = x1 by Th1;
then
A12: H.2 = x1 by A2,ZF_LANG:35;
thus (x1 '=' x2)/(y1,y2) = z1 '=' z2 implies x1 <> y1 & x2 <> y1 & z1 = x1 &
z2 = x2 or x1 = y1 & x2 <> y1 & z1 = y2 & z2 = x2 or x1 <> y1 & x2 = y1 & z1 =
x1 & z2 = y2 or x1 = y1 & x2 = y1 & z1 = y2 & z2 = y2
proof
assume
A13: (x1 '=' x2)/(y1,y2) = z1 '=' z2;
per cases;
case
A14: x1 <> y1 & x2 <> y1;
2 in dom H & 3 in dom H by A4,ENUMSET1:def 1;
hence thesis by A12,A10,A7,A8,A13,A14,Def3;
end;
case
A15: x1 = y1 & x2 <> y1;
A16: 2 in dom H & 3 in dom H by A4,ENUMSET1:def 1;
H.2 = y1 by A2,A11,A15,ZF_LANG:35;
hence thesis by A10,A7,A8,A13,A15,A16,Def3;
end;
case
A17: x1 <> y1 & x2 = y1;
A18: 2 in dom H & 3 in dom H by A4,ENUMSET1:def 1;
H.3 = y1 by A2,A9,A17,ZF_LANG:35;
hence thesis by A12,A7,A8,A13,A17,A18,Def3;
end;
case
A19: x1 = y1 & x2 = y1;
A20: 2 in dom H & 3 in dom H by A4,ENUMSET1:def 1;
H.2 = y1 & H.3 = y1 by A2,A11,A9,A19,ZF_LANG:35;
hence thesis by A7,A8,A13,A20,Def3;
end;
end;
A21: dom H = Seg 3 by A3,FINSEQ_1:def 3;
A22: dom f = dom H by Def3;
A23: now
assume
A24: x1 <> y1 & x2 <> y1 & z1 = x1 & z2 = x2;
now
let a be object;
assume
A25: a in dom H;
then a = 1 or a = 2 or a = 3 by A4,ENUMSET1:def 1;
hence Hz.a = f.a by A12,A10,A1,A24,A25,Def3;
end;
hence f = Hz by A22,A21,A6,FUNCT_1:2;
end;
A26: Hz.1 = 0 by ZF_LANG:15;
A27: now
assume
A28: x1 <> y1 & x2 = y1 & z1 = x1 & z2 = y2;
now
let a be object;
assume
A29: a in dom H;
then a = 1 or a = 2 or a = 3 by A4,ENUMSET1:def 1;
hence Hz.a = f.a by A12,A10,A26,A7,A8,A1,A28,A29,Def3;
end;
hence f = Hz by A22,A21,A6,FUNCT_1:2;
end;
A30: now
assume
A31: x1 = y1 & x2 = y1 & z1 = y2 & z2 = y2;
now
let a be object;
assume
A32: a in dom H;
then a = 1 or a = 2 or a = 3 by A4,ENUMSET1:def 1;
hence Hz.a = f.a by A12,A10,A26,A7,A8,A1,A31,A32,Def3;
end;
hence f = Hz by A22,A21,A6,FUNCT_1:2;
end;
now
assume
A33: x1 = y1 & x2 <> y1 & z1 = y2 & z2 = x2;
now
let a be object;
assume
A34: a in dom H;
then a = 1 or a = 2 or a = 3 by A4,ENUMSET1:def 1;
hence Hz.a = f.a by A12,A10,A26,A7,A8,A1,A33,A34,Def3;
end;
hence f = Hz by A22,A21,A6,FUNCT_1:2;
end;
hence thesis by A23,A27,A30;
end;
theorem Th153:
ex z1,z2 st (x1 '=' x2)/(y1,y2) = z1 '=' z2
proof
x1 <> y1 & x2 <> y1 or x1 = y1 & x2 <> y1 or x1 <> y1 & x2 = y1 or x1 =
y1 & x2 = y1;
then consider z1,z2 such that
A1: x1 <> y1 & x2 <> y1 & z1 = x1 & z2 = x2 or x1 = y1 & x2 <> y1 & z1 =
y2 & z2 = x2 or x1 <> y1 & x2 = y1 & z1 = x1 & z2 = y2 or x1 = y1 & x2 = y1 &
z1 = y2 & z2 = y2;
take z1,z2;
thus thesis by A1,Th152;
end;
theorem Th154:
(x1 'in' x2)/(y1,y2) = z1 'in' z2 iff x1 <> y1 & x2 <> y1 & z1
= x1 & z2 = x2 or x1 = y1 & x2 <> y1 & z1 = y2 & z2 = x2 or x1 <> y1 & x2 = y1
& z1 = x1 & z2 = y2 or x1 = y1 & x2 = y1 & z1 = y2 & z2 = y2
proof
set H = x1 'in' x2, Hz = z1 'in' z2;
set f = H/(y1,y2);
A1: H.1 = 1 & y1 <> 1 by Th135,ZF_LANG:15;
H is being_membership;
then
A2: H is atomic;
then
A3: len H = 3 by ZF_LANG:11;
then
A4: dom H = {1,2,3} by FINSEQ_1:def 3,FINSEQ_3:1;
Hz is being_membership;
then
A5: Hz is atomic;
then len Hz = 3 by ZF_LANG:11;
then
A6: dom Hz = Seg 3 by FINSEQ_1:def 3;
Var1 Hz = z1 by Th2;
then
A7: Hz.2 = z1 by A5,ZF_LANG:35;
Var2 Hz = z2 by Th2;
then
A8: Hz.3 = z2 by A5,ZF_LANG:35;
A9: Var2 H = x2 by Th2;
then
A10: H.3 = x2 by A2,ZF_LANG:35;
A11: Var1 H = x1 by Th2;
then
A12: H.2 = x1 by A2,ZF_LANG:35;
thus (x1 'in' x2)/(y1,y2) = z1 'in' z2 implies x1 <> y1 & x2 <> y1 & z1 = x1
& z2 = x2 or x1 = y1 & x2 <> y1 & z1 = y2 & z2 = x2 or x1 <> y1 & x2 = y1 & z1
= x1 & z2 = y2 or x1 = y1 & x2 = y1 & z1 = y2 & z2 = y2
proof
assume
A13: (x1 'in' x2)/(y1,y2) = z1 'in' z2;
per cases;
case
A14: x1 <> y1 & x2 <> y1;
2 in dom H & 3 in dom H by A4,ENUMSET1:def 1;
hence thesis by A12,A10,A7,A8,A13,A14,Def3;
end;
case
A15: x1 = y1 & x2 <> y1;
A16: 2 in dom H & 3 in dom H by A4,ENUMSET1:def 1;
H.2 = y1 by A2,A11,A15,ZF_LANG:35;
hence thesis by A10,A7,A8,A13,A15,A16,Def3;
end;
case
A17: x1 <> y1 & x2 = y1;
A18: 2 in dom H & 3 in dom H by A4,ENUMSET1:def 1;
H.3 = y1 by A2,A9,A17,ZF_LANG:35;
hence thesis by A12,A7,A8,A13,A17,A18,Def3;
end;
case
A19: x1 = y1 & x2 = y1;
A20: 2 in dom H & 3 in dom H by A4,ENUMSET1:def 1;
H.2 = y1 & H.3 = y1 by A2,A11,A9,A19,ZF_LANG:35;
hence thesis by A7,A8,A13,A20,Def3;
end;
end;
A21: dom H = Seg 3 by A3,FINSEQ_1:def 3;
A22: dom f = dom H by Def3;
A23: now
assume
A24: x1 <> y1 & x2 <> y1 & z1 = x1 & z2 = x2;
now
let a be object;
assume
A25: a in dom H;
then a = 1 or a = 2 or a = 3 by A4,ENUMSET1:def 1;
hence Hz.a = f.a by A12,A10,A1,A24,A25,Def3;
end;
hence f = Hz by A22,A21,A6,FUNCT_1:2;
end;
A26: Hz.1 = 1 by ZF_LANG:15;
A27: now
assume
A28: x1 <> y1 & x2 = y1 & z1 = x1 & z2 = y2;
now
let a be object;
assume
A29: a in dom H;
then a = 1 or a = 2 or a = 3 by A4,ENUMSET1:def 1;
hence Hz.a = f.a by A12,A10,A26,A7,A8,A1,A28,A29,Def3;
end;
hence f = Hz by A22,A21,A6,FUNCT_1:2;
end;
A30: now
assume
A31: x1 = y1 & x2 = y1 & z1 = y2 & z2 = y2;
now
let a be object;
assume
A32: a in dom H;
then a = 1 or a = 2 or a = 3 by A4,ENUMSET1:def 1;
hence Hz.a = f.a by A12,A10,A26,A7,A8,A1,A31,A32,Def3;
end;
hence f = Hz by A22,A21,A6,FUNCT_1:2;
end;
now
assume
A33: x1 = y1 & x2 <> y1 & z1 = y2 & z2 = x2;
now
let a be object;
assume
A34: a in dom H;
then a = 1 or a = 2 or a = 3 by A4,ENUMSET1:def 1;
hence Hz.a = f.a by A12,A10,A26,A7,A8,A1,A33,A34,Def3;
end;
hence f = Hz by A22,A21,A6,FUNCT_1:2;
end;
hence thesis by A23,A27,A30;
end;
theorem Th155:
ex z1,z2 st (x1 'in' x2)/(y1,y2) = z1 'in' z2
proof
x1 <> y1 & x2 <> y1 or x1 = y1 & x2 <> y1 or x1 <> y1 & x2 = y1 or x1 =
y1 & x2 = y1;
then consider z1,z2 such that
A1: x1 <> y1 & x2 <> y1 & z1 = x1 & z2 = x2 or x1 = y1 & x2 <> y1 & z1 =
y2 & z2 = x2 or x1 <> y1 & x2 = y1 & z1 = x1 & z2 = y2 or x1 = y1 & x2 = y1 &
z1 = y2 & z2 = y2;
take z1,z2;
thus thesis by A1,Th154;
end;
theorem Th156:
'not' F = ('not' H)/(x,y) iff F = H/(x,y)
proof
set N = ('not' H)/(x,y);
A1: len <*2*> = 1 by FINSEQ_1:39;
A2: dom 'not' F = Seg len 'not' F & dom 'not' H = Seg len 'not' H by
FINSEQ_1:def 3;
A3: len 'not' F = len <*2*> + len F & len 'not' H = len <*2*> + len H by
FINSEQ_1:22;
A4: dom F = Seg len F & dom H = Seg len H by FINSEQ_1:def 3;
thus 'not' F = ('not' H)/(x,y) implies F = H/(x,y)
proof
assume
A5: 'not' F = N;
then
A6: dom 'not' F = dom 'not' H by Def3;
then
A7: len 'not' F = len 'not' H by FINSEQ_3:29;
A8: now
let a be object;
assume
A9: a in dom F;
then reconsider i = a as Element of NAT;
A10: F.a = N.(1+i) & 1+i in dom N by A1,A5,A9,FINSEQ_1:28,def 7;
A11: ('not' H).(1+i) = H.a by A1,A4,A3,A7,A9,FINSEQ_1:def 7;
then
A12: H.a = x implies F.a = y by A5,A6,A10,Def3;
A13: H.a <> x implies F.a = H.a by A5,A6,A10,A11,Def3;
H.a = x implies H/(x,y).a = y by A4,A3,A7,A9,Def3;
hence F.a = H/(x,y).a by A4,A3,A7,A9,A12,A13,Def3;
end;
A14: dom H = dom (H/(x,y)) by Def3;
dom F = dom H by A3,A7,FINSEQ_3:29;
hence thesis by A14,A8,FUNCT_1:2;
end;
assume
A15: F = H/(x,y);
then
A16: dom F = dom H by Def3;
then
A17: len F = len H by FINSEQ_3:29;
A18: dom <*2*> = {1} by FINSEQ_1:2,def 8;
A19: now
let a be object;
assume
A20: a in dom 'not' F;
then reconsider i = a as Element of NAT;
A21: now
A22: ('not' H).a <> x implies N.a = ('not' H).a by A2,A3,A17,A20,Def3;
given j be Nat such that
A23: j in dom F and
A24: i = 1+j;
A25: H.j = ('not' H).i & F.j = ('not' F).i by A1,A16,A23,A24,FINSEQ_1:def 7;
then
A26: ('not' H).a = x implies ('not' F).a = y by A15,A16,A23,Def3;
('not' H).a <> x implies ('not' F).a = ('not' H).a by A15,A16,A23,A25
,Def3;
hence ('not' F).a = N.a by A2,A3,A17,A20,A26,A22,Def3;
end;
now
A27: ('not' H).1 = 2 & 2 <> x by Th135,FINSEQ_1:41;
assume i in {1};
then
A28: i = 1 by TARSKI:def 1;
then ('not' F).i = 2 by FINSEQ_1:41;
hence ('not' F).a = N.a by A2,A3,A17,A20,A28,A27,Def3;
end;
hence ('not' F).a = N.a by A1,A18,A20,A21,FINSEQ_1:25;
end;
dom 'not' F = dom N by A2,A3,A17,Def3;
hence thesis by A19,FUNCT_1:2;
end;
Lm1: G1 = H1/(x,y) & G2 = H2/(x,y) implies G1 '&' G2 = (H1 '&' H2)/(x,y)
proof
set N = (H1 '&' H2)/(x,y);
A1: dom <*3*> = {1} by FINSEQ_1:2,def 8;
A2: dom (G1 '&' G2) = Seg len (G1 '&' G2) & dom (H1 '&' H2) = Seg len (H1
'&' H2 ) by FINSEQ_1:def 3;
A3: len <*3*> = 1 by FINSEQ_1:39;
then
A4: len (<*3*>^G1) = 1+len G1 by FINSEQ_1:22;
then
A5: len (G1 '&' G2) = 1+len G1 + len G2 by FINSEQ_1:22;
A6: len (<*3*>^H1) = 1+len H1 by A3,FINSEQ_1:22;
then
A7: len (H1 '&' H2) = 1+len H1 + len H2 by FINSEQ_1:22;
A8: dom (<*3*>^H1) = Seg (1+len H1) by A6,FINSEQ_1:def 3;
A9: dom N = dom (H1 '&' H2) by Def3;
assume that
A10: G1 = H1/(x,y) and
A11: G2 = H2/(x,y);
A12: dom G1 = dom H1 by A10,Def3;
then
A13: len G1 = len H1 by FINSEQ_3:29;
A14: dom G2 = dom H2 by A11,Def3;
then len G2 = len H2 by FINSEQ_3:29;
then
A15: dom N = dom (G1 '&' G2) by A2,A5,A7,A13,Def3;
A16: dom (<*3*>^G1) = Seg (1+len G1) by A4,FINSEQ_1:def 3;
now
let a be object;
assume
A17: a in dom N;
then reconsider i = a as Element of NAT by A15;
A18: now
A19: now
assume i in {1};
then
A20: i = 1 by TARSKI:def 1;
(H1 '&' H2).1 = 3 & x <> 3 by Th135,ZF_LANG:16;
then N.i = 3 by A9,A17,A20,Def3;
hence N.a = (G1 '&' G2).a by A20,ZF_LANG:16;
end;
assume
A21: i in dom (<*3*>^G1);
then
A22: (G1 '&' G2).i = (<*3*>^G1).i & (H1 '&' H2).i = (<*3*>^H1).i by A16,A8,A13
,FINSEQ_1:def 7;
now
A23: (H1 '&' H2).a <> x implies N.a = (H1 '&' H2).a by A9,A17,Def3;
given j be Nat such that
A24: j in dom G1 and
A25: i = 1+j;
A26: G1.j = (G1 '&' G2).i & H1.j = (H1 '&' H2).i by A3,A12,A22,A24,A25,
FINSEQ_1:def 7;
then
A27: (H1 '&' H2).a = x implies (G1 '&' G2).a = y by A10,A12,A24,Def3;
(H1 '&' H2).a <> x implies (G1 '&' G2).a = (H1 '&' H2).a by A10,A12,A24
,A26,Def3;
hence (G1 '&' G2).a = N.a by A9,A17,A27,A23,Def3;
end;
hence (G1 '&' G2).a = N.a by A3,A1,A21,A19,FINSEQ_1:25;
end;
now
A28: (H1 '&' H2).a <> x implies N.a = (H1 '&' H2).a by A9,A17,Def3;
given j be Nat such that
A29: j in dom G2 and
A30: i = 1+len G1+j;
A31: G2.j = (G1 '&' G2).i & H2.j = (H1 '&' H2).i by A4,A6,A14,A13,A29,A30,
FINSEQ_1:def 7;
then
A32: (H1 '&' H2).a = x implies (G1 '&' G2).a = y by A11,A14,A29,Def3;
(H1 '&' H2).a <> x implies (G1 '&' G2).a = (H1 '&' H2).a by A11,A14,A29
,A31,Def3;
hence (G1 '&' G2).a = N.a by A9,A17,A28,A32,Def3;
end;
hence (G1 '&' G2).a = N.a by A4,A15,A17,A18,FINSEQ_1:25;
end;
hence thesis by A15,FUNCT_1:2;
end;
Lm2: F = H/(x,y) & (z = s & s <> x or z = y & s = x) implies All(z,F) = All(s,
H)/(x,y)
proof
set N = All(s,H)/(x,y);
A1: len <*4*> = 1 & 1+1 = 2 by FINSEQ_1:39;
len <*s*> = 1 by FINSEQ_1:39;
then
A2: len (<*4*>^<*s*>) = 2 by A1,FINSEQ_1:22;
then
A3: dom (<*4*>^<*s*>) = {1,2} by FINSEQ_1:2,def 3;
len All(s,H) = 2+len H by A2,FINSEQ_1:22;
then
A4: dom All(s,H) = Seg (2+len H) by FINSEQ_1:def 3;
A5: <*4*>^<*z*> = <*4,z*> & <*4*>^<*s*> = <*4,s*> by FINSEQ_1:def 9;
A6: dom N = dom All(s,H) by Def3;
assume that
A7: F = H/(x,y) and
A8: z = s & s <> x or z = y & s = x;
A9: dom F = dom H by A7,Def3;
len <*z*> = 1 by FINSEQ_1:39;
then
A10: len (<*4*>^<*z*>) = 2 by A1,FINSEQ_1:22;
then
A11: dom (<*4*>^<*z*>) = {1,2} by FINSEQ_1:2,def 3;
A12: now
let a be object;
assume
A13: a in dom N;
then reconsider a1=a as Element of NAT by A6;
A14: now
A15: x <> 4 & <*4,z*>.1 = 4 by Th135,FINSEQ_1:44;
A16: <*4,s*>.1 = 4 & <*4,z*>.2 = z by FINSEQ_1:44;
A17: <*4,s*>.2 = s by FINSEQ_1:44;
assume
A18: a in {1,2};
then
A19: a = 1 or a = 2 by TARSKI:def 2;
All(z,F).a1 = <*4,z*>.a1 & All(s,H).a1 = <*4,s*>.a1 by A11,A3,A5,A18,
FINSEQ_1:def 7;
hence All(z,F).a = All(s,H)/(x,y).a by A8,A6,A13,A19,A15,A16,A17,Def3;
end;
now
A20: All(s,H).a <> x implies All(s,H)/(x,y).a = All(s,H).a by A6,A13,Def3;
given i be Nat such that
A21: i in dom H and
A22: a1 = 2+i;
A23: All(z,F).a = F.i & All(s,H).a = H.i by A10,A2,A9,A21,A22,FINSEQ_1:def 7;
then
A24: All(s,H).a = x implies All(z,F).a = y by A7,A21,Def3;
All(s,H).a <> x implies All(z,F).a = All(s,H).a by A7,A21,A23,Def3;
hence All(z,F).a = All(s,H)/(x,y).a by A6,A13,A24,A20,Def3;
end;
hence All(z,F).a = All(s,H)/(x,y).a by A2,A3,A6,A13,A14,FINSEQ_1:25;
end;
len All(z,F) = 2+len F by A10,FINSEQ_1:22;
then dom All(z,F) = Seg (2+len F) by FINSEQ_1:def 3;
then dom All(s,H) = dom All(z,F) by A4,A9,FINSEQ_3:29;
hence thesis by A6,A12,FUNCT_1:2;
end;
theorem Th157:
H/(x,y) in WFF
proof
defpred P[ZF-formula] means $1/(x,y) in WFF;
A1: for H st P[H] holds P[('not' H)]
proof
let H;
assume H/(x,y) in WFF;
then reconsider F = H/(x,y) as ZF-formula by ZF_LANG:4;
'not' F = ('not' H)/(x,y) by Th156;
hence thesis by ZF_LANG:4;
end;
A2: for H1,H2 st P[H1] & P[H2] holds P[H1 '&' H2]
proof
let H1,H2;
assume H1/(x,y) in WFF & H2/(x,y) in WFF;
then reconsider F1 = H1/(x,y), F2 = H2/(x,y) as ZF-formula by ZF_LANG:4;
F1 '&' F2 = (H1 '&' H2)/(x,y) by Lm1;
hence thesis by ZF_LANG:4;
end;
A3: for H,z st P[H] holds P[All(z,H)]
proof
let H,z;
assume H/(x,y) in WFF;
then reconsider F = H/(x,y) as ZF-formula by ZF_LANG:4;
z <> x or z = x;
then consider s such that
A4: s = z & z <> x or s = y & z = x;
All(s,F) = All(z,H)/(x,y) by A4,Lm2;
hence thesis by ZF_LANG:4;
end;
A5: for x1,x2 holds P[x1 '=' x2] & P[x1 'in' x2]
proof
let x1,x2;
( ex y1,y2 st (x1 '=' x2)/(x,y) = y1 '=' y2)& ex z1,z2 st (x1 'in' x2)
/(x,y) = z1 'in' z2 by Th153,Th155;
hence thesis by ZF_LANG:4;
end;
for H holds P[H] from ZFInduction(A5,A1,A2,A3);
hence thesis;
end;
definition
let H,x,y;
redefine func H/(x,y) -> ZF-formula;
coherence
by Th157,ZF_LANG:4;
end;
theorem Th158:
G1 '&' G2 = (H1 '&' H2)/(x,y) iff G1 = H1/(x,y) & G2 = H2/(x,y)
proof
thus G1 '&' G2 = (H1 '&' H2)/(x,y) implies G1 = H1/(x,y) & G2 = H2/(x,y)
proof
assume G1 '&' G2 = (H1 '&' H2)/(x,y);
then G1 '&' G2 = (H1/(x,y)) '&' (H2/(x,y)) by Lm1;
hence thesis by ZF_LANG:30;
end;
thus thesis by Lm1;
end;
theorem Th159:
z <> x implies (All(z,G) = All(z,H)/(x,y) iff G = H/(x,y))
proof
assume
A1: z <> x;
thus All(z,G) = All(z,H)/(x,y) implies G = H/(x,y)
proof
assume All(z,G) = All(z,H)/(x,y);
then All(z,G) = All(z,H/(x,y)) by A1,Lm2;
hence thesis by ZF_LANG:3;
end;
thus thesis by A1,Lm2;
end;
theorem Th160:
All(y,G) = All(x,H)/(x,y) iff G = H/(x,y)
proof
thus All(y,G) = All(x,H)/(x,y) implies G = H/(x,y)
proof
assume All(y,G) = All(x,H)/(x,y);
then All(y,G) = All(y,H/(x,y)) by Lm2;
hence thesis by ZF_LANG:3;
end;
thus thesis by Lm2;
end;
theorem Th161:
G1 'or' G2 = (H1 'or' H2)/(x,y) iff G1 = H1/(x,y) & G2 = H2/(x, y)
proof
'not' G1 = ('not' H1)/(x,y) & 'not' G2 = ('not' H2)/(x,y) iff 'not' G1
'&' 'not' G2 = ('not' H1 '&' 'not' H2)/(x,y) by Th158;
hence thesis by Th156;
end;
theorem Th162:
G1 => G2 = (H1 => H2)/(x,y) iff G1 = H1/(x,y) & G2 = H2/(x,y)
proof
G1 = H1/(x,y) & 'not' G2 = ('not' H2)/(x,y) iff G1 '&' 'not' G2 = (H1
'&' 'not' H2)/(x,y) by Th158;
hence thesis by Th156;
end;
theorem Th163:
G1 <=> G2 = (H1 <=> H2)/(x,y) iff G1 = H1/(x,y) & G2 = H2/(x,y)
proof
G1 <=> G2 = (H1 <=> H2)/(x,y) iff G1 => G2 = (H1 => H2)/(x,y) & G2 => G1
= (H2 => H1)/(x,y) by Th158;
hence thesis by Th162;
end;
theorem Th164:
z <> x implies (Ex(z,G) = Ex(z,H)/(x,y) iff G = H/(x,y))
proof
assume z <> x;
then 'not' G = ('not' H)/(x,y) iff All(z,'not' G) = All(z,'not' H)/(x,y) by
Th159;
hence thesis by Th156;
end;
theorem Th165:
Ex(y,G) = Ex(x,H)/(x,y) iff G = H/(x,y)
proof
'not' G = ('not' H)/(x,y) iff All(y,'not' G) = All(x,'not' H)/(x,y) by Th160;
hence thesis by Th156;
end;
theorem
H is being_equality iff H/(x,y) is being_equality
proof
thus H is being_equality implies H/(x,y) is being_equality
by Th153;
assume H/(x,y) is being_equality;
then
A1: H/(x,y).1 = 0 by ZF_LANG:18;
3 <= len H by ZF_LANG:13;
then 1 <= len H by XXREAL_0:2;
then
A2: 1 in dom H by FINSEQ_3:25;
y <> 0 by Th135;
then H.1 <> x by A1,A2,Def3;
then 0 = H.1 by A1,A2,Def3;
hence thesis by ZF_LANG:24;
end;
theorem
H is being_membership iff H/(x,y) is being_membership
proof
thus H is being_membership implies H/(x,y) is being_membership
by Th155;
assume H/(x,y) is being_membership;
then
A1: H/(x,y).1 = 1 by ZF_LANG:19;
3 <= len H by ZF_LANG:13;
then 1 <= len H by XXREAL_0:2;
then
A2: 1 in dom H by FINSEQ_3:25;
y <> 1 by Th135;
then H.1 <> x by A1,A2,Def3;
then 1 = H.1 by A1,A2,Def3;
hence thesis by ZF_LANG:25;
end;
theorem Th168:
H is negative iff H/(x,y) is negative
proof
thus H is negative implies H/(x,y) is negative
proof
given H1 such that
A1: H = 'not' H1;
H/(x,y) = 'not' (H1/(x,y)) by A1,Th156;
hence thesis;
end;
assume H/(x,y) is negative;
then
A2: H/(x,y).1 = 2 by ZF_LANG:20;
3 <= len H by ZF_LANG:13;
then 1 <= len H by XXREAL_0:2;
then
A3: 1 in dom H by FINSEQ_3:25;
y <> 2 by Th135;
then H.1 <> x by A2,A3,Def3;
then 2 = H.1 by A2,A3,Def3;
hence thesis by ZF_LANG:26;
end;
theorem Th169:
H is conjunctive iff H/(x,y) is conjunctive
proof
thus H is conjunctive implies H/(x,y) is conjunctive
proof
given H1,H2 such that
A1: H = H1 '&' H2;
H/(x,y) = (H1/(x,y)) '&' (H2/(x,y)) by A1,Th158;
hence thesis;
end;
assume H/(x,y) is conjunctive;
then
A2: H/(x,y).1 = 3 by ZF_LANG:21;
3 <= len H by ZF_LANG:13;
then 1 <= len H by XXREAL_0:2;
then
A3: 1 in dom H by FINSEQ_3:25;
y <> 3 by Th135;
then H.1 <> x by A2,A3,Def3;
then 3 = H.1 by A2,A3,Def3;
hence thesis by ZF_LANG:27;
end;
theorem Th170:
H is universal iff H/(x,y) is universal
proof
thus H is universal implies H/(x,y) is universal
proof
given z,H1 such that
A1: H = All(z,H1);
z = x or z <> x;
then consider s such that
A2: z = x & s = y or z <> x & s = z;
H/(x,y) = All(s,H1/(x,y)) by A1,A2,Th159,Th160;
hence thesis;
end;
assume H/(x,y) is universal;
then
A3: H/(x,y).1 = 4 by ZF_LANG:22;
3 <= len H by ZF_LANG:13;
then 1 <= len H by XXREAL_0:2;
then
A4: 1 in dom H by FINSEQ_3:25;
y <> 4 by Th135;
then H.1 <> x by A3,A4,Def3;
then 4 = H.1 by A3,A4,Def3;
hence thesis by ZF_LANG:28;
end;
theorem
H is negative implies the_argument_of (H/(x,y)) = (the_argument_of H)/
(x, y )
proof
assume
A1: H is negative;
then H/(x,y) is negative by Th168;
then
A2: H/(x,y) = 'not' the_argument_of (H/(x,y)) by ZF_LANG:def 30;
H = 'not' the_argument_of H by A1,ZF_LANG:def 30;
hence thesis by A2,Th156;
end;
theorem
H is conjunctive implies the_left_argument_of (H/(x,y)) = (
the_left_argument_of H)/(x,y) & the_right_argument_of (H/(x,y)) = (
the_right_argument_of H)/(x,y)
proof
assume
A1: H is conjunctive;
then H/(x,y) is conjunctive by Th169;
then
A2: H/(x,y) = (the_left_argument_of (H/(x,y))) '&' (the_right_argument_of (H
/(x,y))) by ZF_LANG:40;
H = (the_left_argument_of H) '&' (the_right_argument_of H) by A1,ZF_LANG:40;
hence thesis by A2,Th158;
end;
theorem
H is universal implies the_scope_of (H/(x,y)) = (the_scope_of H)/(x,y)
& (bound_in H = x implies bound_in (H/(x,y)) = y) & (bound_in H <> x implies
bound_in (H/(x,y)) = bound_in H)
proof
assume
A1: H is universal;
then H/(x,y) is universal by Th170;
then
A2: H/(x,y) = All(bound_in (H/(x,y)),the_scope_of (H/(x,y))) by ZF_LANG:44;
A3: H = All(bound_in H,the_scope_of H) by A1,ZF_LANG:44;
then
A4: bound_in H <> x implies H/(x,y) = All(bound_in H,(the_scope_of H)/(x,y)
) by Th159;
bound_in H = x implies H/(x,y) = All(y,(the_scope_of H)/(x,y)) by A3,Th160;
hence thesis by A2,A4,ZF_LANG:3;
end;
theorem Th174:
H is disjunctive iff H/(x,y) is disjunctive
proof
set G = H/(x,y);
thus H is disjunctive implies H/(x,y) is disjunctive
proof
given H1,H2 such that
A1: H = H1 'or' H2;
H/(x,y) = (H1/(x,y)) 'or' (H2/(x,y)) by A1,Th161;
hence thesis;
end;
given G1,G2 such that
A2: G = G1 'or' G2;
G is negative by A2;
then H is negative by Th168;
then consider H9 being ZF-formula such that
A3: H = 'not' H9;
A4: 'not' G1 '&' 'not' G2 = H9/(x,y) by A2,A3,Th156;
then H9/(x,y) is conjunctive;
then H9 is conjunctive by Th169;
then consider H1,H2 such that
A5: H9 = H1 '&' H2;
'not' G2 = H2/(x,y) by A4,A5,Th158;
then H2/(x,y) is negative;
then H2 is negative by Th168;
then consider p2 such that
A6: H2 = 'not' p2;
'not' G1 = H1/(x,y) by A4,A5,Th158;
then H1/(x,y) is negative;
then H1 is negative by Th168;
then consider p1 such that
A7: H1 = 'not' p1;
H = p1 'or' p2 by A3,A5,A7,A6;
hence thesis;
end;
theorem Th175:
H is conditional iff H/(x,y) is conditional
proof
set G = H/(x,y);
thus H is conditional implies H/(x,y) is conditional
proof
given H1,H2 such that
A1: H = H1 => H2;
H/(x,y) = (H1/(x,y)) => (H2/(x,y)) by A1,Th162;
hence thesis;
end;
given G1,G2 such that
A2: G = G1 => G2;
G is negative by A2;
then H is negative by Th168;
then consider H9 being ZF-formula such that
A3: H = 'not' H9;
A4: G1 '&' 'not' G2 = H9/(x,y) by A2,A3,Th156;
then H9/(x,y) is conjunctive;
then H9 is conjunctive by Th169;
then consider H1,H2 such that
A5: H9 = H1 '&' H2;
'not' G2 = H2/(x,y) by A4,A5,Th158;
then H2/(x,y) is negative;
then H2 is negative by Th168;
then consider p2 such that
A6: H2 = 'not' p2;
H = H1 => p2 by A3,A5,A6;
hence thesis;
end;
theorem Th176:
H is biconditional implies H/(x,y) is biconditional
proof
given H1,H2 such that
A1: H = H1 <=> H2;
H/(x,y) = (H1/(x,y)) <=> (H2/(x,y)) by A1,Th163;
hence thesis;
end;
theorem Th177:
H is existential iff H/(x,y) is existential
proof
thus H is existential implies H/(x,y) is existential
proof
given z,H1 such that
A1: H = Ex(z,H1);
z = x or z <> x;
then consider s such that
A2: z = x & s = y or z <> x & s = z;
H/(x,y) = Ex(s,H1/(x,y)) by A1,A2,Th164,Th165;
hence thesis;
end;
given z,G such that
A3: H/(x,y) = Ex(z,G);
H/(x,y) is negative by A3;
then H is negative by Th168;
then consider H1 such that
A4: H = 'not' H1;
bound_in H1 = x or bound_in H1 <> x;
then consider s such that
A5: bound_in H1 = x & s = y or bound_in H1 <> x & s = bound_in H1;
A6: H1/(x,y) = All(z,'not' G) by A3,A4,Th156;
then H1/(x,y) is universal;
then H1 is universal by Th170;
then
A7: H1 = All(bound_in H1, the_scope_of H1) by ZF_LANG:44;
then All(z,'not' G) = All(s,(the_scope_of H1)/(x,y)) by A6,A5,Th159,Th160;
then 'not' G = (the_scope_of H1)/(x,y) by ZF_LANG:3;
then (the_scope_of H1)/(x,y) is negative;
then the_scope_of H1 is negative by Th168;
then H = Ex(bound_in H1, the_argument_of the_scope_of H1) by A4,A7,
ZF_LANG:def 30;
hence thesis;
end;
theorem
H is disjunctive implies the_left_argument_of (H/(x,y)) = (
the_left_argument_of H)/(x,y) & the_right_argument_of (H/(x,y)) = (
the_right_argument_of H)/(x,y)
proof
assume
A1: H is disjunctive;
then H/(x,y) is disjunctive by Th174;
then
A2: H/(x,y) = (the_left_argument_of (H/(x,y))) 'or' (the_right_argument_of (
H/(x,y))) by ZF_LANG:41;
H = (the_left_argument_of H) 'or' (the_right_argument_of H) by A1,ZF_LANG:41;
hence thesis by A2,Th161;
end;
theorem
H is conditional implies the_antecedent_of (H/(x,y)) = (
the_antecedent_of H)/(x,y) & the_consequent_of (H/(x,y)) = (the_consequent_of H
)/(x,y)
proof
assume
A1: H is conditional;
then H/(x,y) is conditional by Th175;
then
A2: H/(x,y) = (the_antecedent_of (H/(x,y))) => (the_consequent_of (H/(x,y)))
by ZF_LANG:47;
H = (the_antecedent_of H) => (the_consequent_of H) by A1,ZF_LANG:47;
hence thesis by A2,Th162;
end;
theorem
H is biconditional implies the_left_side_of (H/(x,y)) = (
the_left_side_of H)/(x,y) & the_right_side_of (H/(x,y)) = (the_right_side_of H)
/(x,y)
proof
assume H is biconditional;
then H = (the_left_side_of H) <=> (the_right_side_of H) & H/(x,y) = (
the_left_side_of (H/(x,y))) <=> (the_right_side_of (H/(x,y))) by Th176,
ZF_LANG:49;
hence thesis by Th163;
end;
theorem
H is existential implies the_scope_of (H/(x,y)) = (the_scope_of H)/(x,
y) & (bound_in H = x implies bound_in (H/(x,y)) = y) & (bound_in H <> x implies
bound_in (H/(x,y)) = bound_in H)
proof
assume
A1: H is existential;
then H/(x,y) is existential by Th177;
then
A2: H/(x,y) = Ex(bound_in (H/(x,y)),the_scope_of (H/(x,y))) by ZF_LANG:45;
A3: H = Ex(bound_in H,the_scope_of H) by A1,ZF_LANG:45;
then
A4: bound_in H <> x implies H/(x,y) = Ex(bound_in H,(the_scope_of H)/(x,y))
by Th164;
bound_in H = x implies H/(x,y) = Ex(y,(the_scope_of H)/(x,y)) by A3,Th165;
hence thesis by A2,A4,ZF_LANG:34;
end;
theorem Th182:
not x in variables_in H implies H/(x,y) = H
proof
assume
A1: not x in variables_in H;
A2: not x in {0,1,2,3,4} by Th136;
A3: now
let a be object;
assume
A4: a in dom H;
then
A5: H.a in rng H by FUNCT_1:def 3;
H.a <> x implies H/(x,y).a = H.a by A4,Def3;
hence H/(x,y).a = H.a by A1,A2,A5,XBOOLE_0:def 5;
end;
dom H = dom (H/(x,y)) by Def3;
hence thesis by A3,FUNCT_1:2;
end;
theorem
H/(x,x) = H
proof
A1: now
let a be object;
assume
A2: a in dom H;
then H.a = x implies H/(x,x).a = x by Def3;
hence H.a = H/(x,x).a by A2,Def3;
end;
dom (H/(x,x)) = dom H by Def3;
hence thesis by A1,FUNCT_1:2;
end;
theorem Th184:
x <> y implies not x in variables_in (H/(x,y))
proof
assume
A1: x <> y;
assume x in variables_in (H/(x,y));
then consider a being object such that
A2: a in dom (H/(x,y)) and
A3: x = H/(x,y).a by FUNCT_1:def 3;
A4: dom (H/(x,y)) = dom H by Def3;
then H.a = x implies H/(x,y).a = y by A2,Def3;
hence contradiction by A1,A2,A3,A4,Def3;
end;
theorem
x in variables_in H implies y in variables_in (H/(x,y))
proof
assume x in variables_in H;
then consider a being object such that
A1: a in dom H and
A2: x = H.a by FUNCT_1:def 3;
A3: dom (H/(x,y)) = dom H by Def3;
A4: not y in {0,1,2,3,4} by Th136;
H/(x,y).a = y by A1,A2,Def3;
then y in rng (H/(x,y)) by A1,A3,FUNCT_1:def 3;
hence thesis by A4,XBOOLE_0:def 5;
end;
theorem
x <> y implies (H/(x,y))/(x,z) = H/(x,y)
proof
assume x <> y;
then not x in variables_in (H/(x,y)) by Th184;
hence thesis by Th182;
end;
theorem
variables_in (H/(x,y)) c= (variables_in H \ {x}) \/ {y}
proof
let a be object;
assume
A1: a in variables_in (H/(x,y));
then reconsider z = a as Variable;
consider b being object such that
A2: b in dom (H/(x,y)) and
A3: z = H/(x,y).b by A1,FUNCT_1:def 3;
A4: dom (H/(x,y)) = dom H by Def3;
then
A5: H.b <> x implies z = H.b by A2,A3,Def3;
H.b = x implies z = y by A2,A3,A4,Def3;
then z in {y} or z in rng H & not z in {0,1,2,3,4} & not z in {x} by A2,A4,A5
,Th136,FUNCT_1:def 3,TARSKI:def 1;
then z in {y} or z in rng H \ {0,1,2,3,4} & not z in {x} by XBOOLE_0:def 5;
then z in {y} or z in variables_in H \ {x} by XBOOLE_0:def 5;
hence thesis by XBOOLE_0:def 3;
end;