:: Abian's Fixed Point Theorem
:: by Piotr Rudnicki and Andrzej Trybulec
::
:: Received February 22, 1997
:: Copyright (c) 1997-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, SETFAM_1, FUNCT_1, SUBSET_1, INT_1, RELAT_1, CARD_1,
XXREAL_0, ARYTM_3, ARYTM_1, FUNCT_7, XBOOLE_0, TARSKI, ZFMISC_1,
FINSET_1, EQREL_1, FUNCOP_1, ABIAN, XCMPLX_0, NAT_1, RECDEF_2;
notations TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, ORDINAL1, NUMBERS, XCMPLX_0,
MCART_1, DOMAIN_1, FINSET_1, SETFAM_1, SEQ_4, RELAT_1, FUNCT_1, FUNCT_2,
FUNCOP_1, INT_1, NAT_1, NAT_D, EQREL_1, FUNCT_7, XXREAL_0;
constructors SETFAM_1, XXREAL_0, REAL_1, NAT_1, NAT_D, EQREL_1, SEQ_4,
REALSET1, FUNCT_7, XXREAL_2, RELSET_1;
registrations XBOOLE_0, SUBSET_1, SETFAM_1, FUNCT_1, ORDINAL1, RELSET_1,
PARTFUN1, FINSET_1, XREAL_0, INT_1, MEMBERED, EQREL_1, XXREAL_2,
XXREAL_0, NAT_1;
requirements REAL, NUMERALS, BOOLE, SUBSET, ARITHM;
definitions TARSKI, XBOOLE_0, RELAT_1, FUNCT_1, SETFAM_1, INT_1;
equalities RELAT_1;
expansions XBOOLE_0, INT_1;
theorems TARSKI, ZFMISC_1, FUNCT_1, FUNCT_2, EQREL_1, NAT_1, INT_1, MCART_1,
SCHEME1, FUNCOP_1, SETFAM_1, XBOOLE_0, XBOOLE_1, FUNCT_7, XREAL_1,
XXREAL_0, NAT_D, XXREAL_2;
schemes EQREL_1, FUNCT_2, NAT_1, DOMAIN_1;
begin
reserve x, y, z, E, E1, E2, E3 for set,
sE for Subset-Family of E,
f for Function of E, E,
k, l, m, n for Nat;
definition
let i be Integer;
attr i is even means
2 divides i;
end;
notation
let i be Integer;
antonym i is odd for i is even;
end;
Lm1:
for i being Integer holds i is even iff ex j being Integer st i = 2*j
by INT_1:def 3;
definition
let n be Nat;
redefine attr n is even means
ex k st n = 2*k;
compatibility
proof
hereby
assume n is even;
then 2 divides n;
then consider k being Integer such that
A1: n = 2*k;
0<=k by A1,XREAL_1:132;
then k in NAT by INT_1:3;
then reconsider k as Nat;
take k;
thus n = 2*k by A1;
end;
thus thesis by Lm1;
end;
end;
registration
cluster even for Nat;
existence
proof
take 0, 0;
thus thesis;
end;
cluster odd for Nat;
existence
proof
take 1;
let k be Nat;
thus thesis by NAT_1:15;
end;
cluster even for Element of NAT;
existence
proof
take 0, 0;
thus thesis;
end;
cluster odd for Element of NAT;
existence
proof
take 1;
let k be Nat;
thus thesis by NAT_1:15;
end;
cluster even for Integer;
existence
proof
take 0, 0;
thus thesis;
end;
cluster odd for Integer;
existence
proof
take 1;
assume 1 is even;
then ex k being Integer st 1 = 2*k;
hence contradiction by INT_1:9;
end;
end;
theorem Th1:
for i being Integer holds i is odd iff ex j being Integer st i = 2*j+1
proof
let i be Integer;
hereby
consider k such that
A1: i = k or i = -k by INT_1:2;
consider m being Element of NAT such that
A2: k = 2*m or k = 2*m+1 by SCHEME1:1;
assume
A3: i is odd;
assume
A4: for j being Integer holds i <> 2*j+1;
per cases by A1,A2;
suppose
i = k & k = 2*m;
hence contradiction by A3,Lm1;
end;
suppose
i = -k & k = 2*m;
then i = 2*(-m);
hence contradiction by A3,Lm1;
end;
suppose
i = k & k = 2*m+1;
hence contradiction by A4;
end;
suppose
i = -k & k = 2*m+1;
then i = 2*-(m+1)+1;
hence contradiction by A4;
end;
end;
given j being Integer such that
A5: i = 2*j+1;
given k being Integer such that
A6: i = 2*k;
1 = 2*(k - j) by A5,A6;
hence contradiction by INT_1:9;
end;
registration
let i be Integer;
cluster 2*i -> even;
coherence by Lm1;
end;
registration
let i be even Integer;
cluster i+1 -> odd;
coherence
proof
ex j being Integer st i = 2*j by Lm1;
hence thesis by Th1;
end;
end;
registration
let i be odd Integer;
cluster i+1 -> even;
coherence
proof
consider j being Integer such that
A1: i = 2*j+1 by Th1;
i+1 = 2*(j+1) by A1;
hence thesis;
end;
end;
registration
let i be even Integer;
cluster i-1 -> odd;
coherence
proof
consider j being Integer such that
A1: i = 2*j by Lm1;
i-1 = 2*(j-1)+1 by A1;
hence thesis;
end;
end;
registration
let i be odd Integer;
cluster i-1 -> even;
coherence
proof
ex j being Integer st i = 2*j+1 by Th1;
hence thesis;
end;
end;
registration
let i be even Integer, j be Integer;
cluster i*j -> even;
coherence
proof
consider k being Integer such that
A1: i = 2*k by Lm1;
i*j = 2*(k*j) by A1;
hence thesis;
end;
cluster j*i -> even;
coherence;
end;
registration
let i, j be odd Integer;
cluster i*j -> odd;
coherence
proof
consider l being Integer such that
A1: j = 2*l+1 by Th1;
consider k being Integer such that
A2: i = 2*k+1 by Th1;
i*j = 2*(k*(2*l)+(k*1)+(l*1))+1 by A2,A1;
hence thesis;
end;
end;
registration
let i, j be even Integer;
cluster i+j -> even;
coherence
proof
consider l being Integer such that
A1: j = 2*l by Lm1;
consider k being Integer such that
A2: i = 2*k by Lm1;
i+j = 2*(k+l) by A2,A1;
hence thesis;
end;
end;
registration
let i be even Integer, j be odd Integer;
cluster i+j -> odd;
coherence
proof
consider l being Integer such that
A1: j = 2*l+1 by Th1;
consider k being Integer such that
A2: i = 2*k by Lm1;
i+j = 2*(k+l)+1 by A2,A1;
hence thesis;
end;
cluster j+i -> odd;
coherence;
end;
registration
let i, j be odd Integer;
cluster i+j -> even;
coherence
proof
consider l being Integer such that
A1: j = 2*l+1 by Th1;
consider k being Integer such that
A2: i = 2*k+1 by Th1;
j+i = 2*(k+l+1) by A2,A1;
hence thesis;
end;
end;
registration
let i be even Integer, j be odd Integer;
cluster i-j -> odd;
coherence
proof
consider l being Integer such that
A1: j = 2*l+1 by Th1;
consider k being Integer such that
A2: i = 2*k by Lm1;
i-j = 2*(k-l)-1 by A2,A1;
hence thesis;
end;
cluster j-i -> odd;
coherence
proof
consider l being Integer such that
A3: j = 2*l+1 by Th1;
consider k being Integer such that
A4: i = 2*k by Lm1;
j-i = 2*(l-k)+1 by A4,A3;
hence thesis;
end;
end;
registration
let i, j be odd Integer;
cluster i-j -> even;
coherence
proof
consider l being Integer such that
A1: j = 2*l+1 by Th1;
consider k being Integer such that
A2: i = 2*k+1 by Th1;
i-j = 2*(k-l) by A2,A1;
hence thesis;
end;
end;
registration
let m be even Integer;
cluster m + 2 -> even;
coherence
proof
2 = 2*1;
then reconsider t = 2 as even Integer;
m + t is even;
hence thesis;
end;
end;
registration
let m be odd Integer;
cluster m + 2 -> odd;
coherence
proof
2 = 2*1;
then reconsider t = 2 as even Integer;
m + t is odd;
hence thesis;
end;
end;
definition
let E, f; let n be Nat;
redefine func iter(f, n) -> Function of E, E;
coherence by FUNCT_7:83;
end;
theorem Th2:
for S being non empty Subset of NAT st 0 in S holds min S = 0
by XXREAL_2:def 7;
theorem Th3:
for E being non empty set, f being Function of E, E, x being
Element of E holds iter(f,0).x = x
proof
let E be non empty set, f be Function of E, E, x be Element of E;
dom f = E by FUNCT_2:def 1;
then
A1: x in dom f \/ rng f by XBOOLE_0:def 3;
thus iter(f,0).x = id(field f).x by FUNCT_7:68
.= x by A1,FUNCT_1:17;
end;
:: from KNASTER, 2005.02.06, A.T.
definition
let x be object, f be Function;
pred x is_a_fixpoint_of f means
x in dom f & x = f.x;
end;
definition
let A be non empty set, a be Element of A, f be Function of A, A;
redefine pred a is_a_fixpoint_of f means
a = f.a;
compatibility
proof
thus a is_a_fixpoint_of f implies a = f.a;
assume
A1: a = f.a;
a in A;
hence a in dom f by FUNCT_2:52;
thus a = f.a by A1;
end;
end;
definition
let f be Function;
attr f is with_fixpoint means
ex x being object st x is_a_fixpoint_of f;
end;
notation
let f be Function;
antonym f is without_fixpoints for f is with_fixpoint;
end;
definition
let X be set, x be Element of X;
attr x is covering means
union x = union union X;
end;
theorem Th4:
sE is covering iff union sE = E
proof
union union bool bool E = union bool E by ZFMISC_1:81
.= E by ZFMISC_1:81;
hence thesis;
end;
registration
let E;
cluster non empty finite covering for Subset-Family of E;
existence
proof
reconsider sE = {E} as Subset-Family of E by ZFMISC_1:68;
take sE;
thus sE is non empty finite;
union sE = E by ZFMISC_1:25;
hence thesis by Th4;
end;
end;
theorem
for E being set, f being Function of E, E, sE being non empty covering
Subset-Family of E st for X being Element of sE holds X misses f.:X holds
f is without_fixpoints
proof
let E be set, f be Function of E, E, sE be non empty covering Subset-Family
of E;
assume
A1: for X being Element of sE holds X misses f.:X;
given x being object such that
A2: x is_a_fixpoint_of f;
A3: f.x = x by A2;
A4: x in dom f by A2;
dom f = E by FUNCT_2:52;
then x in union sE by A4,Th4;
then consider X being set such that
A5: x in X and
A6: X in sE by TARSKI:def 4;
f.x in f.:X by A4,A5,FUNCT_1:def 6;
then X meets f.:X by A3,A5,XBOOLE_0:3;
hence contradiction by A1,A6;
end;
definition
let E, f;
func =_f -> Equivalence_Relation of E means
:Def7:
for x, y st x in E & y in
E holds [x,y] in it iff ex k, l st iter(f,k).x = iter(f,l).y;
existence
proof
defpred P[object,object] means
$1 in E & $2 in E & ex k, l st iter(f,k).$1 = iter(f,l).$2;
A1: now
let x be object;
A2: iter(f,0).x = iter(f,0).x;
assume x in E;
hence P[x,x] by A2;
end;
A3: now
let x,y,z be object;
assume that
A4: P[x,y] and
A5: P[y,z];
consider k, l such that
A6: iter(f,k).x = iter(f,l).y by A4;
consider m, n such that
A7: iter(f,m).y =iter(f,n).z by A5;
A8: dom iter(f,m) = E by FUNCT_2:52;
A9: dom iter(f,l) = E by FUNCT_2:52;
A10: dom iter(f,k) = E by FUNCT_2:52;
A11: dom iter(f,n) = E by FUNCT_2:52;
iter(f,k+m).x = (iter(f,m)*iter(f,k)).x by FUNCT_7:77
.= iter(f,m).(iter(f,l).y) by A4,A6,A10,FUNCT_1:13
.= (iter(f,m)*(iter(f,l))).y by A4,A9,FUNCT_1:13
.= (iter(f,m+l)).y by FUNCT_7:77
.= (iter(f,l)*iter(f,m)).y by FUNCT_7:77
.= iter(f,l).(iter(f,n).z) by A4,A7,A8,FUNCT_1:13
.= (iter(f,l)*iter(f,n)).z by A5,A11,FUNCT_1:13
.= iter(f,l+n).z by FUNCT_7:77;
hence P[x,z] by A4,A5;
end;
A12: for x,y being object st P[x,y] holds P[y,x];
consider EqR being Equivalence_Relation of E such that
A13: for x,y being object holds [x,y] in EqR iff x in E & y in E & P[x,y]
from
EQREL_1:sch 1(A1, A12, A3);
take EqR;
let x, y;
assume x in E & y in E;
hence thesis by A13;
end;
uniqueness
proof
let IT1, IT2 be Equivalence_Relation of E such that
A14: for x, y st x in E & y in E holds [x,y] in IT1 iff ex k, l st
iter(f,k).x = iter(f,l).y and
A15: for x, y st x in E & y in E holds [x,y] in IT2 iff ex k, l st
iter(f,k).x = iter(f,l).y;
let a, b be object;
hereby
assume
A16: [a, b] in IT1;
then
A17: a in E & b in E by ZFMISC_1:87;
then ex k, l st iter(f,k).a = iter(f,l).b by A14,A16;
hence [a, b] in IT2 by A15,A17;
end;
assume
A18: [a, b] in IT2;
then
A19: a in E & b in E by ZFMISC_1:87;
then ex k, l st iter(f,k).a = iter(f,l).b by A15,A18;
hence thesis by A14,A19;
end;
end;
theorem Th6:
for E being non empty set, f being Function of E, E, c being
Element of Class =_f, e being Element of c holds f.e in c
proof
let E be non empty set, f be Function of E, E;
let c be Element of Class =_f, e be Element of c;
dom f = E by FUNCT_2:def 1;
then
A1: f.e in dom f \/ rng f by XBOOLE_0:def 3;
ex x9 being object st x9 in E & c = Class(=_f, x9) by EQREL_1:def 3;
then
A2: c = Class(=_f, e) by EQREL_1:23;
iter(f, 1).e = f.e by FUNCT_7:70
.= id(field f).(f.e) by A1,FUNCT_1:17
.= iter(f, 0).(f.e) by FUNCT_7:68;
then [f.e,e] in =_f by Def7;
hence thesis by A2,EQREL_1:19;
end;
theorem Th7:
for E being non empty set, f being Function of E, E, c being
Element of Class =_f, e being Element of c, n holds iter(f, n).e in c
proof
let E be non empty set, f be Function of E, E;
let c be Element of Class =_f, e be Element of c, n;
dom f = E by FUNCT_2:def 1;
then iter(f,n).e in dom f \/ rng f by XBOOLE_0:def 3;
then iter(f, n).e = id(field f).(iter(f,n).e) by FUNCT_1:17
.= iter(f, 0).(iter(f,n).e) by FUNCT_7:68;
then
A1: [iter(f,n).e,e] in =_f by Def7;
ex x9 being object st x9 in E & c = Class(=_f, x9) by EQREL_1:def 3;
then c = Class(=_f, e) by EQREL_1:23;
hence thesis by A1,EQREL_1:19;
end;
registration
cluster empty-membered -> trivial for set;
coherence;
end;
registration
let A be set, B be with_non-empty_element set;
cluster non-empty for Function of A, B;
existence
proof
consider X being non empty set such that
A1: X in B by SETFAM_1:def 10;
reconsider f = A --> X as Function of A, B by A1,FUNCOP_1:45;
take f;
let n be object;
assume n in dom f;
then n in A by FUNCOP_1:13;
hence thesis by FUNCOP_1:7;
end;
end;
registration
let A be non empty set, B be with_non-empty_element set, f be non-empty
Function of A, B, a be Element of A;
cluster f.a -> non empty;
coherence
proof
dom f = A by FUNCT_2:def 1;
then f.a in rng f by FUNCT_1:def 3;
hence thesis;
end;
end;
registration
let X be non empty set;
cluster bool X -> with_non-empty_element;
coherence
proof
take X;
thus thesis by ZFMISC_1:def 1;
end;
end;
theorem
for E being non empty set, f being Function of E, E st f
is without_fixpoints ex E1, E2, E3 st E1 \/ E2 \/ E3 = E &
f.:E1 misses E1 & f.:E2 misses E2 & f.:E3 misses E3
proof
let E be non empty set, f be Function of E, E;
defpred P[set,Element of [:bool E qua set, bool E, bool E:]] means
$2`1_3 \/ $2`2_3 \/ $2`3_3 = $1 &
f.:($2`1_3) misses $2`1_3 & f.:($2`2_3) misses $2`2_3 & f.:($2`3_3)
misses $2`3_3;
deffunc i(Nat) = iter(f, $1);
assume
A1: f is without_fixpoints;
A2: for a being Element of Class =_f ex b being Element of [:bool E, bool E,
bool E:] st P[a,b]
proof
reconsider c3 = {} as Subset of E by XBOOLE_1:2;
let c be Element of Class =_f;
consider x0 being object such that
A3: x0 in E and
A4: c = Class(=_f, x0) by EQREL_1:def 3;
reconsider x0 as Element of c by A3,A4,EQREL_1:20;
defpred P[set] means ex k, l st i(k).$1 = i(l).x0 & k is even & l is even;
set c1 = { x where x is Element of c : P[x] };
c1 is Subset of c from DOMAIN_1:sch 7;
then reconsider c1 as Subset of E by XBOOLE_1:1;
defpred P[set] means ex k, l st i(k).$1 = i(l).x0 & k is odd & l is even;
set c2 = { x where x is Element of c : P[x] };
c2 is Subset of c from DOMAIN_1:sch 7;
then reconsider c2 as Subset of E by XBOOLE_1:1;
per cases;
suppose
A5: c1 misses c2;
take b = [c1,c2,c3];
A6: b`2_3 = c2 by MCART_1:def 6;
A7: b`3_3 = c3 by MCART_1:def 7;
A8: b`1_3 = c1 by MCART_1:def 5;
thus b`1_3 \/ b`2_3 \/ b`3_3 = c
proof
hereby
let x be object;
assume
A9: x in b`1_3 \/ b`2_3 \/ b`3_3;
per cases by A8,A6,A7,A9,XBOOLE_0:def 3;
suppose
x in c1;
then
ex xx being Element of c st x = xx & ex k, l st i(k).xx = i(l)
.x0 & k is even & l is even;
hence x in c;
end;
suppose
x in c2;
then
ex xx being Element of c st x = xx & ex k, l st i(k).xx = i(l)
.x0 & k is odd & l is even;
hence x in c;
end;
suppose
x in c3;
hence x in c;
end;
end;
let x be object;
assume x in c;
then reconsider xc = x as Element of c;
[xc,x0] in =_f by A4,EQREL_1:19;
then consider k, l such that
A10: i(k).xc = i(l).x0 by Def7;
A11: dom i(l) = E by FUNCT_2:def 1;
A12: dom i(k) = E by FUNCT_2:def 1;
per cases;
suppose
A13: k is even;
then reconsider k as even Nat;
thus x in b`1_3 \/ b`2_3 \/ b`3_3
proof
per cases;
suppose
l is even;
then xc in c1 by A10,A13;
hence thesis by A8,A7,XBOOLE_0:def 3;
end;
suppose
l is odd;
then reconsider l as odd Nat;
i(k+1).xc = (f*i(k)).xc by FUNCT_7:71
.= f.(i(l).x0) by A10,A12,FUNCT_1:13
.= (f*i(l)).x0 by A11,FUNCT_1:13
.= i(l+1).x0 by FUNCT_7:71;
then xc in c2;
hence thesis by A6,A7,XBOOLE_0:def 3;
end;
end;
end;
suppose
A14: k is odd;
then reconsider k as odd Nat;
thus x in b`1_3 \/ b`2_3 \/ b`3_3
proof
per cases;
suppose
l is even;
then xc in c2 by A10,A14;
hence thesis by A6,A7,XBOOLE_0:def 3;
end;
suppose
l is odd;
then reconsider l as odd Nat;
i(k+1).xc = (f*i(k)).xc by FUNCT_7:71
.= f.(i(l).x0) by A10,A12,FUNCT_1:13
.= (f*i(l)).x0 by A11,FUNCT_1:13
.= i(l+1).x0 by FUNCT_7:71;
then xc in c1;
hence thesis by A8,A7,XBOOLE_0:def 3;
end;
end;
end;
end;
f.:c1 c= c2
proof
let y be object;
A15: dom f = E by FUNCT_2:def 1;
assume y in f.:c1;
then consider x being object such that
x in dom f and
A16: x in c1 and
A17: y = f.x by FUNCT_1:def 6;
consider xx being Element of c such that
A18: x = xx and
A19: ex k, l st i(k).xx = i(l).x0 & k is even & l is even by A16;
consider k, l such that
A20: i(k).xx = i(l).x0 and
A21: k is even & l is even by A19;
reconsider k, l as even Nat by A21;
reconsider k1 = k+1 as odd Element of NAT;
reconsider l1 = l+1 as odd Element of NAT;
reconsider l2 = l1+1 as even Element of NAT;
A22: dom i(k) = E by FUNCT_2:def 1;
reconsider yc = y as Element of c by A17,A18,Th6;
A23: dom i(l) = E by FUNCT_2:def 1;
A24: dom i(k1) = E by FUNCT_2:def 1;
A25: i(k1+1).xx = (i(k1)*f).xx by FUNCT_7:69
.= i(k1).(f.xx) by A15,FUNCT_1:13;
A26: dom i(l1) = E by FUNCT_2:def 1;
i(k1+1).xx = (f*i(k1)).xx by FUNCT_7:71
.= f.(i(k1).xx) by A24,FUNCT_1:13
.= f.((f*i(k)).xx) by FUNCT_7:71
.= f.(f.(i(l).x0)) by A20,A22,FUNCT_1:13
.= f.((f*i(l)).x0) by A23,FUNCT_1:13
.= f.(i(l1).x0) by FUNCT_7:71
.= (f*i(l1)).x0 by A26,FUNCT_1:13
.= i(l2).x0 by FUNCT_7:71;
then yc in c2 by A17,A18,A25;
hence thesis;
end;
hence f.:(b`1_3) misses b`1_3 by A5,A8,XBOOLE_1:63;
f.:c2 c= c1
proof
let y be object;
A27: dom f = E by FUNCT_2:def 1;
assume y in f.:c2;
then consider x being object such that
x in dom f and
A28: x in c2 and
A29: y = f.x by FUNCT_1:def 6;
consider xx being Element of c such that
A30: x = xx and
A31: ex k, l st i(k).xx = i(l).x0 & k is odd & l is even by A28;
consider k, l such that
A32: i(k).xx = i(l).x0 and
A33: k is odd and
A34: l is even by A31;
reconsider l as even Nat by A34;
reconsider k as odd Nat by A33;
reconsider k1 = k+1 as even Element of NAT;
reconsider l1 = l+1 as odd Element of NAT;
reconsider l2 = l1+1 as even Element of NAT;
A35: dom i(k) = E by FUNCT_2:def 1;
reconsider yc = y as Element of c by A29,A30,Th6;
A36: dom i(l) = E by FUNCT_2:def 1;
A37: dom i(k1) = E by FUNCT_2:def 1;
A38: i(k1+1).xx = (i(k1)*f).xx by FUNCT_7:69
.= i(k1).(f.xx) by A27,FUNCT_1:13;
A39: dom i(l1) = E by FUNCT_2:def 1;
i(k1+1).xx = (f*i(k1)).xx by FUNCT_7:71
.= f.(i(k1).xx) by A37,FUNCT_1:13
.= f.((f*i(k)).xx) by FUNCT_7:71
.= f.(f.(i(l).x0)) by A32,A35,FUNCT_1:13
.= f.((f*i(l)).x0) by A36,FUNCT_1:13
.= f.(i(l1).x0) by FUNCT_7:71
.= (f*i(l1)).x0 by A39,FUNCT_1:13
.= i(l2).x0 by FUNCT_7:71;
then yc in c1 by A29,A30,A38;
hence thesis;
end;
hence f.:(b`2_3) misses b`2_3 by A5,A6,XBOOLE_1:63;
thus thesis by A7;
end;
suppose
c1 meets c2;
then consider x1 being object such that
A40: x1 in c1 and
A41: x1 in c2 by XBOOLE_0:3;
consider x11 being Element of c such that
A42: x1 = x11 and
A43: ex k, l st i(k).x11 = i(l).x0 & k is even & l is even by A40;
consider x12 being Element of c such that
A44: x1 = x12 and
A45: ex k, l st i(k).x12 = i(l).x0 & k is odd & l is even by A41;
consider k2, l2 being Nat such that
A46: i(k2).x12 = i(l2).x0 and
A47: k2 is odd and
A48: l2 is even by A45;
reconsider x1 as Element of c by A42;
consider k1, l1 being Nat such that
A49: i(k1).x11 = i(l1).x0 and
A50: k1 is even & l1 is even by A43;
A51: dom i(k1) = E by FUNCT_2:def 1;
A52: dom i(l1) = E by FUNCT_2:def 1;
A53: i(l2+k1).x1 = (i(l2)*i(k1)).x1 by FUNCT_7:77
.= i(l2).(i(l1).x0) by A42,A49,A51,FUNCT_1:13
.= (i(l2)*i(l1)).x0 by A52,FUNCT_1:13
.= i(l1+l2).x0 by FUNCT_7:77;
A54: dom i(l2) = E by FUNCT_2:def 1;
A55: dom i(k2) = E by FUNCT_2:def 1;
A56: i(l1+k2).x1 = (i(l1)*i(k2)).x1 by FUNCT_7:77
.= i(l1).(i(l2).x0) by A44,A46,A55,FUNCT_1:13
.= (i(l1)*i(l2)).x0 by A54,FUNCT_1:13
.= i(l1+l2).x0 by FUNCT_7:77;
ex r being Element of E, k being odd Element of NAT st i(k).r = r &
r in c
proof
reconsider k2 as odd Nat by A47;
reconsider k1, l1, l2 as even Nat by A50,A48;
A57: dom i(k1+l2) = E by FUNCT_2:def 1;
A58: dom i(k2+l1) = E by FUNCT_2:def 1;
per cases by XXREAL_0:1;
suppose
k1+l2 < k2+l1;
then reconsider k = k2+l1-(k1+l2) as Element of NAT by INT_1:5;
take r = i(k1+l2).x1;
reconsider k as odd Element of NAT;
take k;
i(k).(i(k1+l2).x1) = (i(k)*i(k1+l2)).x1 by A57,FUNCT_1:13
.= i(k+(k1+l2)).x1 by FUNCT_7:77
.= i(k1+l2).x1 by A56,A53;
hence i(k).r = r;
thus thesis by Th7;
end;
suppose
k1+l2 > k2+l1;
then reconsider k = k1+l2-(k2+l1) as Element of NAT by INT_1:5;
take r = i(k2+l1).x1;
reconsider k as odd Element of NAT;
take k;
i(k).(i(k2+l1).x1) = (i(k)*i(k2+l1)).x1 by A58,FUNCT_1:13
.= i(k+(k2+l1)).x1 by FUNCT_7:77
.= i(k2+l1).x1 by A56,A53;
hence i(k).r = r;
thus thesis by Th7;
end;
end;
then consider r being Element of E, k being odd Element of NAT such that
A59: i(k).r = r and
A60: r in c;
reconsider r as Element of c by A60;
deffunc F(set) = {l where l is Element of NAT : i(l).$1 = r};
A61: for x being Element of c holds F(x) in bool NAT
proof
let x be Element of c;
defpred P1[Element of NAT] means i($1).x = r;
{ l where l is Element of NAT : P1[l]} is Subset of NAT from
DOMAIN_1:sch 7;
hence thesis;
end;
consider Odl being Function of c, bool NAT such that
A62: for x being Element of c holds Odl.x = F(x) from FUNCT_2:sch 8(
A61);
now
defpred P[Nat] means i(k*$1).r = r;
let n be object;
assume n in dom Odl;
then reconsider nc = n as Element of c by FUNCT_2:def 1;
A63: Odl.nc = {l where l is Element of NAT : i(l).nc = r} by A62;
A64: now
let i be Nat;
assume
A65: P[i];
A66: dom i(k) = E by FUNCT_2:def 1;
i(k*(i+1)).r = i(k*i+k*1).r .= (i(k*i)*i(k)).r by FUNCT_7:77
.= r by A59,A65,A66,FUNCT_1:13;
hence P[i+1];
end;
A67: P[0] by Th3;
A68: for i being Nat holds P[i] from NAT_1:sch 2(A67,A64);
ex x9 being object st x9 in E & c = Class(=_f, x9) by EQREL_1:def 3;
then [nc, r] in =_f by EQREL_1:22;
then consider kn, ln being Nat such that
A69: iter(f,kn).nc = iter(f,ln).r by Def7;
A70: dom i(ln) = E by FUNCT_2:def 1;
set mk = ln mod k;
set dk = ln div k;
A71: dom i(kn) = E by FUNCT_2:def 1;
A72: 2*0 <> k;
then mk < k by NAT_D:1;
then reconsider kmk = k - mk as Element of NAT by INT_1:5;
ln = k*dk+mk by A72,NAT_D:2;
then
A73: ln+kmk = k*(dk+1);
i(kmk+kn).nc = (i(kmk)*i(kn)).nc by FUNCT_7:77
.= i(kmk).(i(ln).r) by A69,A71,FUNCT_1:13
.= (i(kmk)*i(ln)).r by A70,FUNCT_1:13
.= i(k*(dk+1)).r by A73,FUNCT_7:77
.= r by A68;
then kn+kmk in Odl.n by A63;
hence Odl.n is non empty;
end;
then reconsider Odl as non-empty Function of c, bool NAT by FUNCT_1:def 9
;
deffunc F(Element of c) = min (Odl.$1);
consider odl being Function of c, NAT such that
A74: for x being Element of c holds odl.x = F(x) from FUNCT_2:sch 4;
defpred P1[Element of c] means odl.$1 is even;
set c1 = { x where x is Element of c : P1[x]};
set d1 = c1 \ {r};
c1 is Subset of c from DOMAIN_1:sch 7;
then
A75: d1 c= c by XBOOLE_1:1;
i(0).r = r by Th3;
then 0 in {l where l is Element of NAT : i(l).r = r};
then 0 in Odl.r by A62;
then min (Odl.r) = 0 by Th2;
then
A76: odl.r = 2*0 by A74;
then
A77: r in c1;
reconsider d1 as Subset of E by A75,XBOOLE_1:1;
defpred P2[Element of c] means odl.$1 is odd;
set d2 = { x where x is Element of c : P2[x]};
d2 is Subset of c from DOMAIN_1:sch 7;
then reconsider d2 as Subset of E by XBOOLE_1:1;
A78: for x being Element of c st x <> r holds odl.(f.x) = (odl.x qua
Element of NAT)-1
proof
let x be Element of c;
reconsider fx = f.x as Element of c by Th6;
reconsider ofx = odl.(fx), ox = odl.x as Element of NAT;
assume
A79: x <> r;
now
assume odl.x = 0;
then 0 = min (Odl.x) by A74;
then 0 in Odl.x by XXREAL_2:def 7;
then 0 in {l where l is Element of NAT : i(l).x = r} by A62;
then ex l being Element of NAT st l = 0 & i(l).x = r;
hence contradiction by A79,Th3;
end;
then reconsider ox1 = ox-1 as Element of NAT by INT_1:5,NAT_1:14;
ox = min (Odl.x) by A74;
then ox in Odl.x by XXREAL_2:def 7;
then ox in {l where l is Element of NAT : i(l).x = r} by A62;
then
A80: ex l being Element of NAT st l = ox & i(l).x = r;
A81: dom f = E by FUNCT_2:def 1;
then i(ox1).fx = (i(ox1)*f).x by FUNCT_1:13
.= i(ox1+1).x by FUNCT_7:69
.= i(ox).x;
then ox1 in {l where l is Element of NAT : i(l).fx = r} by A80;
then
A82: ox1 in Odl.fx by A62;
ofx = min (Odl.fx) by A74;
then ofx in Odl.fx by XXREAL_2:def 7;
then ofx in {l where l is Element of NAT : i(l).fx = r} by A62;
then
A83: ex l being Element of NAT st l = ofx & i(l).fx = r;
i(ofx+1).x = (i(ofx)*f).x by FUNCT_7:69
.= i(ofx).fx by A81,FUNCT_1:13;
then ofx+1 in {l where l is Element of NAT : i(l).x = r} by A83;
then
A84: ofx+1 in Odl.x by A62;
ox = min (Odl.x) by A74;
then ofx+1 >= ox by A84,XXREAL_2:def 7;
then
A85: ofx >= ox-1 by XREAL_1:20;
ofx = min (Odl.fx) by A74;
then ofx <= ox-1 by A82,XXREAL_2:def 7;
hence thesis by A85,XXREAL_0:1;
end;
A86: f.:d1 c= d2
proof
let y be object;
assume y in f.:d1;
then consider x being object such that
x in dom f and
A87: x in d1 and
A88: y = f.x by FUNCT_1:def 6;
x in c1 by A87;
then consider xx being Element of c such that
A89: x = xx and
A90: odl.xx is even;
reconsider ox = odl.xx as even Element of NAT by A90;
reconsider yc = y as Element of c by A88,A89,Th6;
r <> xx by A87,A89,ZFMISC_1:56;
then odl.yc = ox-1 by A78,A88,A89;
hence thesis;
end;
A91: c1 \/ d2 = c
proof
hereby
let x be object;
assume
A92: x in c1 \/ d2;
per cases by A92,XBOOLE_0:def 3;
suppose
x in c1;
then ex xc being Element of c st xc = x & odl.xc is even;
hence x in c;
end;
suppose
x in d2;
then ex xc being Element of c st xc = x & odl.xc is odd;
hence x in c;
end;
end;
let x be object;
assume x in c;
then reconsider xc = x as Element of c;
odl.xc is even or odl.xc is odd;
then x in c1 or x in d2;
hence thesis by XBOOLE_0:def 3;
end;
reconsider d3 = {r} as Subset of E by ZFMISC_1:31;
take b = [d1,d2,d3];
A93: b`1_3 = d1 by MCART_1:def 5;
A94: b`2_3 = d2 by MCART_1:def 6;
A95: b`3_3 = d3 by MCART_1:def 7;
d1 \/ d3 = c1 \/ d3 by XBOOLE_1:39
.= c1 by A77,ZFMISC_1:40;
hence b`1_3 \/ b`2_3 \/ b`3_3 = c by A93,A94,A95,A91,XBOOLE_1:4;
A96: c1 misses d2
proof
assume c1 meets d2;
then consider z being object such that
A97: z in c1 & z in d2 by XBOOLE_0:3;
( ex x being Element of c st z = x & odl.x is even)& ex x being
Element of c st z = x & odl.x is odd by A97;
hence contradiction;
end;
then d1 misses d2 by XBOOLE_1:63;
hence f.:(b`1_3) misses b`1_3 by A93,A86,XBOOLE_1:63;
f.:d2 c= c1
proof
let y be object;
assume y in f.:d2;
then consider x being object such that
x in dom f and
A98: x in d2 and
A99: y = f.x by FUNCT_1:def 6;
consider xx being Element of c such that
A100: x = xx and
A101: odl.xx is odd by A98;
reconsider ox = odl.xx as odd Element of NAT by A101;
reconsider yc = y as Element of c by A99,A100,Th6;
odl.yc = ox-1 by A76,A78,A99,A100;
hence thesis;
end;
hence f.:(b`2_3) misses b`2_3 by A94,A96,XBOOLE_1:63;
thus f.:(b`3_3) misses b`3_3
proof
assume f.:(b`3_3) meets b`3_3;
then consider y being object such that
A102: y in f.:(b`3_3) and
A103: y in b`3_3 by XBOOLE_0:3;
A104: y = r by A95,A103,TARSKI:def 1;
consider x being object such that
x in dom f and
A105: x in {r} and
A106: y = f.x by A95,A102,FUNCT_1:def 6;
x = r by A105,TARSKI:def 1;
then r is_a_fixpoint_of f by A104,A106;
hence contradiction by A1;
end;
end;
end;
consider F being Function of Class =_f, [:bool E, bool E, bool E:] such that
A107: for a being Element of Class =_f holds P[a,F.a] from FUNCT_2:sch 3
(A2);
set E3c = the set of all (F.c)`3_3 where c is Element of Class =_f;
set E2c = the set of all (F.c)`2_3 where c is Element of Class =_f;
set E1c = the set of all (F.c)`1_3 where c is Element of Class =_f;
set E1 = union E1c;
set E2 = union E2c;
set E3 = union E3c;
take E1, E2, E3;
thus E1 \/ E2 \/ E3 = E
proof
hereby
let x be object;
assume x in E1 \/ E2 \/ E3;
then
A108: x in E1 \/ E2 or x in E3 by XBOOLE_0:def 3;
per cases by A108,XBOOLE_0:def 3;
suppose
x in E1;
then consider Y being set such that
A109: x in Y and
A110: Y in E1c by TARSKI:def 4;
ex c being Element of Class =_f st Y = (F.c)`1_3 by A110;
hence x in E by A109;
end;
suppose
x in E2;
then consider Y being set such that
A111: x in Y and
A112: Y in E2c by TARSKI:def 4;
ex c being Element of Class =_f st Y = (F.c)`2_3 by A112;
hence x in E by A111;
end;
suppose
x in E3;
then consider Y being set such that
A113: x in Y and
A114: Y in E3c by TARSKI:def 4;
ex c being Element of Class =_f st Y = (F.c)`3_3 by A114;
hence x in E by A113;
end;
end;
let x be object;
set c = Class(=_f,x);
assume
A115: x in E;
then
A116: x in c by EQREL_1:20;
reconsider c as Element of Class =_f by A115,EQREL_1:def 3;
x in (F.c)`1_3 \/ (F.c)`2_3 \/ (F.c)`3_3 by A107,A116;
then
A117: x in (F.c)`1_3 \/ (F.c)`2_3 or x in (F.c)`3_3 by XBOOLE_0:def 3;
per cases by A117,XBOOLE_0:def 3;
suppose
A118: x in (F.c)`1_3;
(F.c)`1_3 in E1c;
then x in E1 by A118,TARSKI:def 4;
then x in E1 \/ E2 by XBOOLE_0:def 3;
hence thesis by XBOOLE_0:def 3;
end;
suppose
A119: x in (F.c)`2_3;
(F.c)`2_3 in E2c;
then x in E2 by A119,TARSKI:def 4;
then x in E1 \/ E2 by XBOOLE_0:def 3;
hence thesis by XBOOLE_0:def 3;
end;
suppose
A120: x in (F.c)`3_3;
(F.c)`3_3 in E3c;
then x in E3 by A120,TARSKI:def 4;
hence thesis by XBOOLE_0:def 3;
end;
end;
thus f.:E1 misses E1
proof
assume not thesis;
then consider x being object such that
A121: x in f.:E1 and
A122: x in E1 by XBOOLE_0:3;
consider Y being set such that
A123: x in Y and
A124: Y in E1c by A122,TARSKI:def 4;
consider c being Element of Class =_f such that
A125: Y = (F.c)`1_3 by A124;
x in (F.c)`1_3 \/ (F.c)`2_3 by A123,A125,XBOOLE_0:def 3;
then x in (F.c)`1_3 \/ (F.c)`2_3 \/ (F.c)`3_3 by XBOOLE_0:def 3;
then
A126: x in c by A107;
ex x9 being object st x9 in E & c = Class(=_f, x9) by EQREL_1:def 3;
then
A127: c = Class(=_f, x) by A126,EQREL_1:23;
dom f = E by FUNCT_2:def 1;
then
A128: x in dom f \/ rng f by A123,A125,XBOOLE_0:def 3;
consider xx being object such that
A129: xx in dom f and
A130: xx in E1 and
A131: x = f.xx by A121,FUNCT_1:def 6;
consider YY being set such that
A132: xx in YY and
A133: YY in E1c by A130,TARSKI:def 4;
consider cc being Element of Class =_f such that
A134: YY = (F.cc)`1_3 by A133;
xx in (F.cc)`1_3 \/ (F.cc)`2_3 by A132,A134,XBOOLE_0:def 3;
then xx in (F.cc)`1_3 \/ (F.cc)`2_3 \/ (F.cc)`3_3 by XBOOLE_0:def 3;
then
A135: xx in cc by A107;
ex xx9 being object st xx9 in E & cc = Class(=_f, xx9) by EQREL_1:def 3;
then
A136: cc = Class(=_f, xx) by A135,EQREL_1:23;
iter(f, 1).xx = x by A131,FUNCT_7:70
.= id(field f).x by A128,FUNCT_1:17
.= iter(f, 0).x by FUNCT_7:68;
then [x,xx] in =_f by A123,A125,A132,A134,Def7;
then
A137: Class(=_f, x) = Class(=_f, xx) by A123,A125,EQREL_1:35;
A138: f.xx in f.:YY by A129,A132,FUNCT_1:def 6;
f.:YY misses YY by A107,A134;
hence contradiction by A123,A125,A131,A134,A127,A136,A137,A138,XBOOLE_0:3;
end;
thus f.:E2 misses E2
proof
assume not thesis;
then consider x being object such that
A139: x in f.:E2 and
A140: x in E2 by XBOOLE_0:3;
consider Y being set such that
A141: x in Y and
A142: Y in E2c by A140,TARSKI:def 4;
consider c being Element of Class =_f such that
A143: Y = (F.c)`2_3 by A142;
x in (F.c)`1_3 \/ (F.c)`2_3 by A141,A143,XBOOLE_0:def 3;
then x in (F.c)`1_3 \/ (F.c)`2_3 \/ (F.c)`3_3 by XBOOLE_0:def 3;
then
A144: x in c by A107;
ex x9 being object st x9 in E & c = Class(=_f, x9) by EQREL_1:def 3;
then
A145: c = Class(=_f, x) by A144,EQREL_1:23;
dom f = E by FUNCT_2:def 1;
then
A146: x in dom f \/ rng f by A141,A143,XBOOLE_0:def 3;
consider xx being object such that
A147: xx in dom f and
A148: xx in E2 and
A149: x = f.xx by A139,FUNCT_1:def 6;
consider YY being set such that
A150: xx in YY and
A151: YY in E2c by A148,TARSKI:def 4;
consider cc being Element of Class =_f such that
A152: YY = (F.cc)`2_3 by A151;
xx in (F.cc)`1_3 \/ (F.cc)`2_3 by A150,A152,XBOOLE_0:def 3;
then xx in (F.cc)`1_3 \/ (F.cc)`2_3 \/ (F.cc)`3_3 by XBOOLE_0:def 3;
then
A153: xx in cc by A107;
ex xx9 being object st xx9 in E & cc = Class(=_f, xx9) by EQREL_1:def 3;
then
A154: cc = Class(=_f, xx) by A153,EQREL_1:23;
iter(f, 1).xx = x by A149,FUNCT_7:70
.= id(field f).x by A146,FUNCT_1:17
.= iter(f, 0).x by FUNCT_7:68;
then [x,xx] in =_f by A141,A143,A150,A152,Def7;
then
A155: Class(=_f, x) = Class(=_f, xx) by A141,A143,EQREL_1:35;
A156: f.xx in f.:YY by A147,A150,FUNCT_1:def 6;
f.:YY misses YY by A107,A152;
hence contradiction by A141,A143,A149,A152,A145,A154,A155,A156,XBOOLE_0:3;
end;
thus f.:E3 misses E3
proof
assume not thesis;
then consider x being object such that
A157: x in f.:E3 and
A158: x in E3 by XBOOLE_0:3;
consider Y being set such that
A159: x in Y and
A160: Y in E3c by A158,TARSKI:def 4;
consider c being Element of Class =_f such that
A161: Y = (F.c)`3_3 by A160;
x in (F.c)`1_3 \/ (F.c)`2_3 \/ (F.c)`3_3 by A159,A161,XBOOLE_0:def 3;
then
A162: x in c by A107;
ex x9 being object st x9 in E & c = Class(=_f, x9) by EQREL_1:def 3;
then
A163: c = Class(=_f, x) by A162,EQREL_1:23;
dom f = E by FUNCT_2:def 1;
then
A164: x in dom f \/ rng f by A159,A161,XBOOLE_0:def 3;
consider xx being object such that
A165: xx in dom f and
A166: xx in E3 and
A167: x = f.xx by A157,FUNCT_1:def 6;
consider YY being set such that
A168: xx in YY and
A169: YY in E3c by A166,TARSKI:def 4;
consider cc being Element of Class =_f such that
A170: YY = (F.cc)`3_3 by A169;
xx in (F.cc)`1_3 \/ (F.cc)`2_3 \/ (F.cc)`3_3 by A168,A170,XBOOLE_0:def 3;
then
A171: xx in cc by A107;
ex xx9 being object st xx9 in E & cc = Class(=_f, xx9) by EQREL_1:def 3;
then
A172: cc = Class(=_f, xx) by A171,EQREL_1:23;
iter(f, 1).xx = x by A167,FUNCT_7:70
.= id(field f).x by A164,FUNCT_1:17
.= iter(f, 0).x by FUNCT_7:68;
then [x,xx] in =_f by A159,A161,A168,A170,Def7;
then
A173: Class(=_f, x) = Class(=_f, xx) by A159,A161,EQREL_1:35;
A174: f.xx in f.:YY by A165,A168,FUNCT_1:def 6;
f.:YY misses YY by A107,A170;
hence contradiction by A159,A161,A167,A170,A163,A172,A173,A174,XBOOLE_0:3;
end;
end;
begin :: Addenda
:: from SCMFSA9A, 2006.03.14, A.T.
theorem
for n being Nat holds
n is odd iff ex k being Nat st n = 2*k+1
proof
let n be Nat;
hereby
assume
A1: n is odd;
then consider j being Integer such that
A2: n = 2*j+1 by Th1;
now
assume j < 0;
then
A3: 2*j + 1 <= 2*0 by INT_1:7,XREAL_1:68;
per cases by A3;
suppose
2*j+1 < 0;
hence contradiction by A2;
end;
suppose
2*j+1 = 0;
then n = 2*0;
hence contradiction by A1;
end;
end;
then j in NAT by INT_1:3;
then reconsider j as Nat;
take j;
thus n = 2*j+1 by A2;
end;
thus thesis;
end;
:: missing, 2008.03.20, A.T.
theorem
for A being non empty set, f being Function of A,A, x being Element of
A holds iter(f,n+1).x = f.(iter(f,n).x)
proof
let A be non empty set, f be Function of A,A, x be Element of A;
thus iter(f,n+1).x = (f*iter(f,n)).x by FUNCT_7:71
.= f.(iter(f,n).x) by FUNCT_2:15;
end;
theorem
for i being Integer holds i is even iff ex j being Integer st i = 2*j by Lm1;
:: from HEYTING3, MOEBIUS1, 2010.02.13, A.T.
registration
cluster odd for Nat;
existence
proof
take 1;
1 = 2*0+1;
hence thesis;
end;
cluster even for Nat;
existence
proof
take 0;
0 = 2*0;
hence thesis;
end;
end;
theorem Th12:
for n being odd Nat holds 1 <= n
proof
let n be odd Nat;
2 * 0 < n;
then 0 + 1 <= n by NAT_1:13;
hence thesis;
end;
registration
cluster odd -> non zero for Integer;
coherence by Th12;
end;