Copyright (c) 1990 Association of Mizar Users
environ vocabulary FUNCT_1, FINSEQ_1, RELAT_1, FINSET_1, CARD_1, BOOLE, PARTFUN1, ARYTM_1, INT_1, RLSUB_2, TARSKI, FINSEQ_4; notation TARSKI, XBOOLE_0, ENUMSET1, SUBSET_1, NUMBERS, XCMPLX_0, XREAL_0, FINSEQ_1, RELAT_1, FUNCT_1, PARTFUN1, CARD_1, FUNCT_2, FINSET_1, INT_1, NAT_1, FINSEQ_3; constructors DOMAIN_1, WELLORD2, FUNCT_2, INT_1, NAT_1, FINSEQ_3, MEMBERED, XBOOLE_0; clusters FINSEQ_1, FUNCT_1, CARD_1, INT_1, FINSET_1, FINSEQ_3, RELSET_1, MEMBERED, ZFMISC_1, XBOOLE_0; requirements REAL, NUMERALS, SUBSET, BOOLE, ARITHM; definitions FUNCT_1, TARSKI, XBOOLE_0; theorems CARD_1, CARD_2, ENUMSET1, FINSEQ_1, FINSEQ_2, FINSEQ_3, FUNCT_1, FUNCT_2, INT_1, NAT_1, PARTFUN1, REAL_1, RLVECT_1, TARSKI, WELLORD2, ZFMISC_1, AXIOMS, RELAT_1, RELSET_1, XBOOLE_0, XBOOLE_1, XCMPLX_0, XCMPLX_1; schemes FINSEQ_1, FINSET_1, NAT_1; begin reserve f for Function; reserve p,q for FinSequence; reserve A,B,C,x,x1,x2,y,z for set; reserve i,k,l,m,m1,m2,n for Nat; definition let f,x; pred f is_one-to-one_at x means :Def1: f " (f .: {x}) = {x}; end; canceled; theorem Th2: f is_one-to-one_at x implies x in dom f proof assume f is_one-to-one_at x; then f " (f .: {x}) = {x} by Def1; then x in f " (f .: {x}) by TARSKI:def 1; hence thesis by FUNCT_1:def 13; end; theorem Th3: f is_one-to-one_at x iff x in dom f & f " {f.x} = {x} proof thus f is_one-to-one_at x implies x in dom f & f " {f.x} = {x} proof assume A1: f is_one-to-one_at x; hence A2: x in dom f by Th2; f " (f .: {x}) = {x} by A1,Def1; hence thesis by A2,FUNCT_1:117; end; assume x in dom f & f " {f.x} = {x}; hence f " (f .: {x}) = {x} by FUNCT_1:117; end; theorem Th4: f is_one-to-one_at x iff x in dom f & for z st z in dom f & x <> z holds f.x <> f.z proof thus f is_one-to-one_at x implies x in dom f & for z st z in dom f & x <> z holds f.x <> f.z proof assume A1: f is_one-to-one_at x; hence x in dom f by Th2; let z; assume that A2: z in dom f and A3: x <> z and A4: f.x = f.z; f.x in {f.x} by TARSKI:def 1; then z in f " {f.x} by A2,A4,FUNCT_1:def 13; then z in {x} by A1,Th3; hence thesis by A3,TARSKI:def 1; end; assume that A5: x in dom f and A6: for z st z in dom f & x <> z holds f.x <> f.z and A7: not f is_one-to-one_at x; f " {f.x} <> {x} by A5,A7,Th3; then consider y such that A8: y in f " {f.x} & not y in {x} or y in {x} & not y in f " {f.x} by TARSKI:2; f.x in {f.x} by TARSKI:def 1; then A9: x in f " {f.x} by A5,FUNCT_1:def 13; now per cases by A8; suppose y in f " {f.x} & not y in {x}; then y in dom f & f.y in {f.x} & y <> x by FUNCT_1:def 13,TARSKI:def 1; then y in dom f & x <> y & f.y = f.x by TARSKI:def 1; hence thesis by A6; suppose not y in f " {f.x} & y in {x}; hence thesis by A9,TARSKI:def 1; end; hence thesis; end; theorem (for x st x in dom f holds f is_one-to-one_at x) iff f is one-to-one proof thus (for x st x in dom f holds f is_one-to-one_at x) implies f is one-to-one proof assume A1: for x st x in dom f holds f is_one-to-one_at x; let x1,x2; assume that A2: x1 in dom f and A3: x2 in dom f & f.x1 = f.x2; f is_one-to-one_at x1 by A1,A2; hence thesis by A3,Th4; end; assume A4: f is one-to-one; let x; assume A5: x in dom f; then for z holds z in dom f & x <> z implies f.x <> f.z by A4,FUNCT_1:def 8; hence thesis by A5,Th4; end; definition let f,y; pred f just_once_values y means :Def2: ex B being finite set st B = f " {y} & card B = 1; end; canceled; theorem Th7: f just_once_values y implies y in rng f proof assume f just_once_values y; then ex B being finite set st B = f " {y} & card B = 1 by Def2; then rng f meets {y} by CARD_1:78,RELAT_1:173; then consider x being set such that A1: x in rng f /\ {y} by XBOOLE_0:4; x in {y} by A1,XBOOLE_0:def 3; then y = x by TARSKI:def 1; hence thesis by A1,XBOOLE_0:def 3; end; theorem Th8: f just_once_values y iff ex x st {x} = f " {y} proof thus f just_once_values y implies ex x st {x} = f " {y} proof assume A1: f just_once_values y; then y in rng f by Th7; then consider x such that A2: x in dom f and A3: f.x = y by FUNCT_1:def 5 ; take x; ex B being finite set st B = f " {y} & card B = 1 by A1,Def2; then consider z such that A4: f " {y} = {z} by CARD_2:60; f.x in {y} by A3,TARSKI:def 1; then x in {z} by A2,A4,FUNCT_1:def 13; hence thesis by A4,TARSKI:def 1; end; given x such that A5: {x} = f " {y}; reconsider B = f " {y} as finite set by A5; take B; thus B = f " {y} & card B = 1 by A5,CARD_1:79; end; theorem Th9: f just_once_values y iff ex x st x in dom f & y = f.x & for z st z in dom f & z <> x holds f.z <> y proof thus f just_once_values y implies ex x st x in dom f & y = f.x & for z st z in dom f & z <> x holds f.z <> y proof assume A1: f just_once_values y; then consider B being finite set such that A2: B = f " {y} & card B = 1 by Def2; y in rng f by A1,Th7; then consider x1 such that A3: x1 in dom f and A4: f.x1 = y by FUNCT_1:def 5; take x1; thus x1 in dom f & y = f.x1 by A3,A4; let z; assume that A5: z in dom f and A6: z <> x1 and A7: f.z = y; f.x1 in {y} & f.z in {y} by A4,A7,TARSKI:def 1; then z in f " {y} & x1 in f " {y} by A3,A5,FUNCT_1:def 13; then {z,x1} c= f " {y} & card B = 1 & f " {y} is finite by A2,ZFMISC_1:38; then card{z,x1} <= 1 by A2,CARD_1:80; then 2 <= 1 by A6,CARD_2:76; hence thesis; end; given x such that A8: x in dom f and A9: y = f.x and A10: for z st z in dom f & z <> x holds f.z <> y; A11: {x} = f " {y} proof thus {x} c= f " {y} proof let x1; assume x1 in {x}; then x1 = x & f.x in {y} by A9,TARSKI:def 1; hence thesis by A8,FUNCT_1:def 13; end; let x1; assume x1 in f " {y}; then f.x1 in {y} & x1 in dom f by FUNCT_1:def 13; then x1 in dom f & f.x1 = y by TARSKI:def 1; then x1 = x by A10; hence thesis by TARSKI:def 1; end; then reconsider B = f " {y} as finite set; card B = 1 & f " {y} is finite by A11,CARD_1:79; hence thesis by Def2; end; theorem Th10: f is one-to-one iff for y st y in rng f holds f just_once_values y proof thus f is one-to-one implies for y st y in rng f holds f just_once_values y proof assume A1: f is one-to-one; let y; assume y in rng f; then consider x such that A2: x in dom f & f.x = y by FUNCT_1:def 5; for z holds z in dom f & z <> x implies f.z <> y by A1,A2,FUNCT_1:def 8; hence thesis by A2,Th9; end; assume A3: for y st y in rng f holds f just_once_values y; let x,y; assume that A4: x in dom f & y in dom f and A5: f.x = f.y; f.x in rng f & f.y in rng f by A4,FUNCT_1:def 5; then f just_once_values f.x & f just_once_values f.y by A3; then consider x1 such that A6: {x1} = f " {f.x} by Th8; f.x in {f.x} & f.y in {f.y} by TARSKI:def 1; then x in f " {f.x} & y in f "{f.x} by A4,A5,FUNCT_1:def 13; then x = x1 & y = x1 by A6,TARSKI:def 1; hence thesis; end; theorem Th11: f is_one-to-one_at x iff x in dom f & f just_once_values f.x proof thus f is_one-to-one_at x implies x in dom f & f just_once_values f.x proof assume A1: f is_one-to-one_at x; hence x in dom f by Th2; {x} = f " {f.x} by A1,Th3; hence thesis by Th8; end; assume that A2: x in dom f and A3: f just_once_values f.x; consider z such that A4: f " {f.x} = {z} by A3,Th8; f.x in {f.x} by TARSKI:def 1; then x in {z} by A2,A4,FUNCT_1:def 13; then x = z by TARSKI:def 1; hence thesis by A2,A4,Th3; end; definition let f,y; assume A1: f just_once_values y; func f <- y -> set means :Def3: it in dom f & f.it = y; existence proof y in rng f by A1,Th7; then consider x such that A2: x in dom f & f.x = y by FUNCT_1:def 5; take x; thus thesis by A2; end; uniqueness proof let x1,x2; assume A3: x1 in dom f & f.x1 = y & x2 in dom f & f.x2 = y; consider x such that x in dom f & f.x = y and A4: for z st z in dom f & z <> x holds f.z <> y by A1,Th9; x = x1 & x = x2 by A3,A4; hence thesis; end; end; canceled 4; theorem f just_once_values y implies f .: {f <- y} = {y} proof assume A1: f just_once_values y; then f <- y in dom f by Def3; hence f .: {f <- y} = {f.(f <- y)} by FUNCT_1:117 .= {y} by A1,Def3; end; theorem Th17: f just_once_values y implies f " {y} = {f <- y} proof assume A1: f just_once_values y; then consider x such that A2: {x} = f " {y} by Th8; x in f " {y} by A2,ZFMISC_1:37; then x in dom f & f.x in {y} by FUNCT_1:def 13; then x in dom f & f.x = y by TARSKI:def 1; hence thesis by A1,A2,Def3; end; theorem f is one-to-one & y in rng f implies (f").y = f <- y proof assume that A1: f is one-to-one and A2: y in rng f; consider x such that A3: x in dom f & f.x = y by A2,FUNCT_1:def 5; f just_once_values y by A1,A2,Th10; then x = f <- y by A3,Def3; hence thesis by A1,A3,FUNCT_1:54; end; canceled; theorem f is_one-to-one_at x implies f <- (f.x) = x proof assume f is_one-to-one_at x; then x in dom f & f just_once_values f.x by Th11; hence thesis by Def3; end; theorem f just_once_values y implies f is_one-to-one_at f <- y proof assume A1: f just_once_values y; then A2: f <- y in dom f by Def3; now let x; assume x in dom f & x <> f <- y; then f.x <> y by A1,Def3; hence f.x <> f.(f <- y) by A1,Def3; end; hence thesis by A2,Th4; end; reserve D for non empty set; reserve d,d1,d2,d3 for Element of D; definition let D; let d1,d2; redefine func <* d1,d2 *> -> FinSequence of D; coherence by FINSEQ_2:15; end; definition let D; let d1,d2,d3; redefine func <* d1,d2,d3 *> -> FinSequence of D; coherence by FINSEQ_2:16; end; definition let X,D be set, p be PartFunc of X,D, i be set; assume A1: i in dom p; func p/.i -> Element of D equals :Def4: p.i; coherence by A1,PARTFUN1:27; end; theorem for X,D be non empty set, p be Function of X,D, i be Element of X holds p/.i = p.i proof let X,D be non empty set, p be Function of X,D, i be Element of X; i in X; then i in dom p by FUNCT_2:def 1; hence p/.i = p.i by Def4; end; canceled; theorem for D being set, P being FinSequence of D, i st 1 <= i & i <= len P holds P/.i = P.i proof let D be set, P be FinSequence of D, i; assume 1 <= i & i <= len P; then i in dom P by FINSEQ_3:27; hence thesis by Def4; end; theorem <* d *>/.1 = d proof dom<* d *> = {1} & <* d *>.1 = d & 1 in {1} by FINSEQ_1:4,def 8,TARSKI:def 1; hence thesis by Def4; end; theorem <* d1,d2 *>/.1 = d1 & <* d1,d2 *>/.2 = d2 proof set s = <* d1,d2 *>; dom s = {1,2} & s.1 = d1 & s.2 = d2 & 1 in {1,2} & 2 in {1,2} by FINSEQ_1:4,61,FINSEQ_3:29,TARSKI:def 2; hence thesis by Def4; end; theorem <* d1,d2,d3 *>/.1 = d1 & <* d1,d2,d3 *>/.2 = d2 & <* d1,d2,d3 *>/.3 = d3 proof set s = <* d1,d2,d3 *>; dom s = {1,2,3} & s.1 = d1 & s.2 = d2 & s.3 = d3 & 1 in {1,2,3} & 2 in {1,2,3} & 3 in {1,2,3} by ENUMSET1:14,FINSEQ_1:62,FINSEQ_3:1,30; hence thesis by Def4; end; definition let p; let x; func x..p -> Nat equals :Def5: Sgm(p " {x}).1; coherence proof set q = Sgm(p " {x}); per cases; suppose not 1 in dom q; hence thesis by CARD_1:51,FUNCT_1:def 4; suppose 1 in dom q; then q.1 in rng q & rng q c= NAT by FINSEQ_1:def 4,FUNCT_1:def 5; hence thesis; end; end; canceled; theorem Th29: x in rng p implies p.(x..p) = x proof assume A1: x in rng p; set q = Sgm(p " {x}); A2: p " {x} <> {} & p " {x} c= dom p & dom p = Seg(len p) by A1,FINSEQ_1:def 3,FUNCT_1:142,RELAT_1:167; then rng q <> {} by FINSEQ_1:def 13; then 1 in dom q by FINSEQ_3:34; then q.1 in rng q & rng q = p " {x} & x..p = q.1 by A2,Def5,FINSEQ_1:def 13,FUNCT_1:def 5; then p.(x..p) in {x} by FUNCT_1:def 13; hence thesis by TARSKI:def 1; end; theorem Th30: x in rng p implies x..p in dom p proof assume A1: x in rng p; A2: x..p = Sgm(p " {x}).1 by Def5; A3: p " {x} <> {} & p " {x} c= dom p & dom p = Seg(len p) by A1,FINSEQ_1:def 3,FUNCT_1:142,RELAT_1:167; then rng(Sgm(p " {x})) <> {} by FINSEQ_1:def 13; then 1 in dom(Sgm(p " {x})) by FINSEQ_3:34; then x..p in rng(Sgm(p " {x})) by A2,FUNCT_1:def 5; then x..p in p " {x} by A3,FINSEQ_1:def 13; hence thesis by FUNCT_1:def 13; end; theorem Th31: x in rng p implies 1 <= x..p & x..p <= len p proof assume x in rng p; then x..p in dom p by Th30; hence thesis by FINSEQ_3:27; end; theorem Th32: x in rng p implies x..p - 1 is Nat & len p - x..p is Nat proof assume x in rng p; then len p is Integer & x..p is Integer & 1 is Integer & 1 <= x..p & x..p <= len p by Th31; hence thesis by INT_1:18; end; theorem Th33: x in rng p implies x..p in p " {x} proof assume x in rng p; then p.(x..p) = x & x..p in dom p by Th29,Th30; then p.(x..p) in {x} & x..p in dom p by TARSKI:def 1; hence thesis by FUNCT_1:def 13; end; theorem Th34: for k st k in dom p & k < x..p holds p.k <> x proof let k; set q = Sgm(p " {x}); assume that A1: k in dom p and A2: k < x..p and A3: p.k = x; A4: p " {x} c= dom p & dom p = Seg(len p) by FINSEQ_1:def 3,RELAT_1:167; then rng q = p " {x} & x in {x} by FINSEQ_1:def 13,TARSKI:def 1; then k in rng q by A1,A3,FUNCT_1:def 13; then consider y such that A5: y in dom q and A6: q.y = k by FUNCT_1:def 5 ; A7: dom q = Seg(len q) by FINSEQ_1:def 3; then reconsider y as Nat by A5; A8: q.1 = x..p by Def5; now assume not 1 < y; then 1 = y or y < 1 by REAL_1:def 5; then 1 = y or y = 0 by RLVECT_1:98; hence contradiction by A2,A5,A6,Def5,FINSEQ_3:26; end; then 1 <= 1 & 1 < y & y <= len q by A5,A7,FINSEQ_1:3; hence contradiction by A2,A4,A6,A8,FINSEQ_1:def 13; end; theorem Th35: p just_once_values x implies p <- x = x..p proof assume A1: p just_once_values x; then p <- x in dom p & x in rng p by Def3,Th7; then p <- x in dom p & x..p in dom p & p.(x..p) = x & p.(p <- x) = x by A1,Def3,Th29,Th30; hence thesis by A1,Def3; end; theorem Th36: p just_once_values x implies for k st k in dom p & k <> x..p holds p.k <> x proof assume A1: p just_once_values x; let k; assume A2: k in dom p & k <> x..p & p.k = x; x in rng p by A1,Th7; then p <- x = x..p & p.(x..p) = x by A1,Th29,Th35; hence thesis by A1,A2,Def3; end; theorem Th37: x in rng p & (for k st k in dom p & k <> x..p holds p.k <> x) implies p just_once_values x proof assume that A1: x in rng p and A2: for k st k in dom p & k <> x..p holds p.k <> x; A3: p.(x..p) = x & x..p in dom p by A1,Th29,Th30; now let z; assume that A4: z in dom p and A5: z <> x..p; reconsider n = z as Nat by A4,FINSEQ_3:25; p.n <> x by A2,A4,A5; hence p.z <> x; end; hence thesis by A3,Th9; end; theorem Th38: p just_once_values x iff x in rng p & {x..p} = p " {x} proof thus p just_once_values x implies x in rng p & {x..p} = p " {x} proof assume A1: p just_once_values x; then x..p = p <- x by Th35; hence thesis by A1,Th7,Th17; end; assume that A2: x in rng p and A3: {x..p} = p " {x}; A4: p.(x..p) = x & x..p in dom p by A2,Th29,Th30; now let z; assume that A5: z in dom p and A6: z <> x..p and A7: p.z = x; p.z in {x} by A7,TARSKI:def 1; then z in p " {x} by A5,FUNCT_1:def 13; hence contradiction by A3,A6,TARSKI:def 1; end; hence thesis by A4,Th9; end; theorem p is one-to-one & x in rng p implies {x..p} = p " {x} proof assume that A1: p is one-to-one and A2: x in rng p; thus {x..p} c= p " {x} proof let y; assume y in {x..p}; then y = x..p by TARSKI:def 1; hence thesis by A2,Th33; end; let y; assume y in p " {x}; then y in dom p & p.y in {x} by FUNCT_1:def 13; then y in dom p & p.y = x & p.(x..p) = x & x..p in dom p by A2,Th29,Th30,TARSKI:def 1; then x..p = y by A1,FUNCT_1:def 8; hence thesis by TARSKI:def 1; end; theorem Th40: p just_once_values x iff len(p - {x}) = len p - 1 proof thus p just_once_values x implies len(p - {x}) = len p - 1 proof assume A1: p just_once_values x; A2: len(p - {x}) = len p - card(p " {x}) by FINSEQ_3:66; p " {x} = {x..p} by A1,Th38; hence thesis by A2,CARD_1:79; end; assume A3: len(p - {x}) = len p - 1; len p + (- 1) = len p - 1 by XCMPLX_0:def 8 .= len p - card(p " {x}) by A3,FINSEQ_3:66 .= len p + (- card(p " {x})) by XCMPLX_0:def 8; then - 1 = - card(p " {x}) by XCMPLX_1:2; then 1 = - (- card(p " {x})) .= card(p " {x}); hence thesis by Def2; end; theorem Th41: p just_once_values x implies for k st k in dom(p - {x}) holds (k < x..p implies (p - {x}).k = p.k) & (x..p <= k implies (p - {x}).k = p.(k + 1)) proof assume A1: p just_once_values x; then A2: x in rng p by Th7; let k; assume A3: k in dom(p - {x}); A4: dom(p - {x}) c= dom p by FINSEQ_3:70; set A = {l : l in dom p & l <= k & p.l in {x}}; set q = p - {x}; set B = {m : m in dom p & m <= k + 1 & p.m in {x}}; thus k < x..p implies (p - {x}).k = p.k proof assume A5: k < x..p; A6: A = {} proof thus A c= {} proof let y; assume y in A; then consider l such that y = l and A7: l in dom p and A8: l <= k and A9: p.l in {x}; p.l <> x & p.l = x by A1,A5,A7,A8,A9,Th36,TARSKI:def 1; hence thesis; end; thus {} c= A by XBOOLE_1:2; end; p.k <> x by A1,A3,A4,A5,Th36; then not p.k in {x} by TARSKI:def 1; then q.(k - 0) = p.k by A3,A4,A6,CARD_1:78,FINSEQ_3:92; hence thesis; end; assume A10: x..p <= k; A11: B = {x..p} proof thus B c= {x..p} proof let y; assume y in B; then consider m such that A12: m = y and A13: m in dom p and m <= k + 1 and A14: p.m in {x}; p.m = x by A14,TARSKI:def 1; then m = x..p by A1,A13,Th36; hence thesis by A12,TARSKI:def 1; end; let y; assume y in {x..p}; then A15: y = x..p by TARSKI:def 1; A16: x..p in dom p by A2,Th30; A17: x..p <= k + 1 by A10,NAT_1:37; p.(x..p) = x by A2,Th29; then p.(x..p) in {x} by TARSKI:def 1; hence thesis by A15,A16,A17; end; then reconsider B as finite set; dom q = Seg(len q) & len(p - {x}) = len p - 1 by A1,Th40,FINSEQ_1:def 3 ; then 1 <= k & k <= len p - 1 & k <= k + 1 by A3,FINSEQ_1:3,NAT_1:37; then 1 <= k + 1 & k + 1 <= len p by AXIOMS:22,REAL_1:84; then k + 1 in Seg(len p) by FINSEQ_1:3; then A18: k + 1 in dom p by FINSEQ_1:def 3; now assume A19: p.(k + 1) in {x}; x..p <> k + 1 by A10,REAL_1:69; then p.(k + 1) <> x by A1,A18,Th36; hence contradiction by A19,TARSKI:def 1; end; then (p - {x}).((k + 1) - card B) = p.(k + 1) by A18,FINSEQ_3:92; then q.((k + 1) - 1) = p.(k + 1) by A11,CARD_1:79; hence thesis by XCMPLX_1:26; end; theorem p is one-to-one & x in rng p implies for k st k in dom(p - {x}) holds ((p - {x}).k = p.k iff k < x..p) & ((p - {x}).k = p.(k + 1) iff x..p <= k) proof assume that A1: p is one-to-one and A2: x in rng p; A3: p just_once_values x by A1,A2,Th10; let k; set q = p - {x}; assume A4: k in dom(p - {x}); A5: dom(p - {x}) c= dom p by FINSEQ_3:70; dom q = Seg(len q) & len(p - {x}) = len p - 1 by A3,Th40,FINSEQ_1:def 3; then 1 <= k & k <= len p - 1 & k <= k + 1 by A4,FINSEQ_1:3,NAT_1:37; then 1 <= k + 1 & k + 1 <= len p by AXIOMS:22,REAL_1:84; then k + 1 in Seg(len p) by FINSEQ_1:3; then A6: k + 1 in dom p by FINSEQ_1:def 3; thus (p - {x}).k = p.k implies k < x..p proof assume that A7: (p - {x}).k = p.k and A8: not k < x..p; q.k = p.(k + 1) by A3,A4,A8,Th41; then k + 0 = k + 1 by A1,A4,A5,A6,A7,FUNCT_1:def 8; hence thesis by XCMPLX_1:2; end; thus k < x..p implies (p - {x}).k = p.k by A3,A4,Th41; thus (p - {x}).k = p.(k + 1) implies x..p <= k proof assume A9: (p - {x}).k = p.(k + 1); assume not x..p <= k; then p.(k + 1) = p.k by A3,A4,A9,Th41; then k + 0 = k + 1 by A1,A4,A5,A6,FUNCT_1:def 8; hence thesis by XCMPLX_1:2; end; thus x..p <= k implies (p - {x}).k = p.(k + 1) by A3,A4,Th41; end; definition let p; let x; assume A1: x in rng p; func p -| x -> FinSequence means :Def6: ex n st n = x..p - 1 & it = p | Seg n; existence proof reconsider n = x..p - 1 as Nat by A1,Th32; reconsider q = p | Seg n as FinSequence by FINSEQ_1:19; take q; thus thesis; end; uniqueness; end; canceled 2; theorem Th45: x in rng p & n = x..p - 1 implies p | Seg n = p -| x proof assume x in rng p; then ex m st m = x..p - 1 & p | Seg m = p -| x by Def6; hence thesis; end; theorem Th46: x in rng p implies len(p -| x) = x..p - 1 proof assume A1: x in rng p; then consider n such that A2: n = x..p - 1 and A3: p | Seg n = p -| x by Def6; n + 1 <= x..p & x..p <= len p by A1,A2,Th31,REAL_1:84; then n + 1 <= len p & n <= n + 1 by AXIOMS:22,NAT_1:37; then n <= len p by AXIOMS:22; hence thesis by A2,A3,FINSEQ_1:21; end; theorem Th47: x in rng p & n = x..p - 1 implies dom(p -| x) = Seg n proof assume x in rng p; then len(p -| x) = x..p - 1 by Th46; hence thesis by FINSEQ_1:def 3; end; theorem Th48: x in rng p & k in dom(p -| x) implies p.k = (p -| x).k proof assume that A1: x in rng p and A2: k in dom(p -| x); ex n st n = x..p - 1 & p | Seg n = p -| x by A1,Def6; hence thesis by A2,FUNCT_1:70; end; theorem Th49: x in rng p implies not x in rng(p -| x) proof assume that A1: x in rng p and A2: x in rng(p -| x); reconsider n = x..p - 1 as Nat by A1,Th32; set r = p | Seg n; A3: r = p -| x by A1,Th45; then consider y such that A4: y in dom r and A5: r.y = x by A2,FUNCT_1:def 5; A6: dom r = Seg n by A1,A3,Th47; then reconsider y as Nat by A4; A7: dom r c= dom p by FUNCT_1:76; y <= n by A4,A6,FINSEQ_1:3; then y + 1 <= x..p & y < y + 1 by REAL_1:69,84; then y < x..p by AXIOMS:22; then p.y <> x by A4,A7,Th34; hence thesis by A4,A5,FUNCT_1:70; end; theorem x in rng p implies rng(p -| x) misses {x} proof assume x in rng p; then not x in rng(p -| x) by Th49; then for y st y in rng(p -| x) holds not y in {x} by TARSKI:def 1; hence thesis by XBOOLE_0:3; end; theorem x in rng p implies rng(p -| x) c= rng p proof assume x in rng p; then ex n st n = x..p - 1 & p | Seg n = p -| x by Def6; hence thesis by FUNCT_1:76; end; theorem x in rng p implies (x..p = 1 iff p -| x = {}) proof assume A1: x in rng p; thus x..p = 1 implies p -| x = {} proof assume A2: x..p = 1; len(p -| x) = x..p - 1 by A1,Th46 .= 0 by A2; hence thesis by FINSEQ_1:25; end; assume p -| x = {}; then len(p -| x) = 0 & len(p -| x) = x..p - 1 by A1,Th46,FINSEQ_1:25; then x..p - 1 + 1 = 1; hence thesis by XCMPLX_1:27; end; theorem x in rng p & p is FinSequence of D implies p -| x is FinSequence of D proof assume x in rng p; then ex n st n = x..p - 1 & p | Seg n = p -| x by Def6; hence thesis by FINSEQ_1:23; end; definition let p; let x; assume A1: x in rng p; func p |-- x -> FinSequence means :Def7: len it = len p - x..p & for k st k in dom it holds it.k = p.(k + x..p); existence proof reconsider n = len p - x..p as Nat by A1,Th32; deffunc F(Nat) = p.($1 + x..p); consider q such that A2: len q = n and A3: for k st k in Seg n holds q.k = F(k) from SeqLambda; take q; dom q = Seg n by A2,FINSEQ_1:def 3; hence thesis by A2,A3; end; uniqueness proof let q,r be FinSequence; assume that A4: len q = len p - x..p and A5: for k st k in dom q holds q.k = p.(k + x..p); assume that A6: len r = len p - x..p and A7: for k st k in dom r holds r.k = p.(k + x..p); now let k; assume A8: k in Seg(len q); dom q = Seg(len q) & dom r = Seg(len r) by FINSEQ_1:def 3; then q.k = p.(k + x..p) & r.k = p.(k + x..p) by A4,A5,A6,A7,A8; hence q.k = r.k; end; hence thesis by A4,A6,FINSEQ_2:10; end; end; canceled 3; theorem Th57: x in rng p & n = len p - x..p implies dom(p |-- x) = Seg n proof assume x in rng p; then len(p |-- x) = len p - x..p by Def7; hence thesis by FINSEQ_1:def 3; end; theorem Th58: x in rng p & n in dom(p |-- x) implies n + x..p in dom p proof assume that A1: x in rng p and A2: n in dom(p |-- x); 1 <= n & n <= n + x..p by A2,FINSEQ_3:27,NAT_1:37; then A3: 1 <= n + x..p by AXIOMS:22; reconsider m = len p - x..p as Nat by A1,Th32; n in Seg m by A1,A2,Th57; then n <= len p - x..p by FINSEQ_1:3; then n + x..p <= len p by REAL_1:84; hence n + x..p in dom p by A3,FINSEQ_3:27; end; theorem x in rng p implies rng(p |-- x) c= rng p proof assume A1: x in rng p; let y; assume y in rng(p |-- x); then consider z such that A2: z in dom(p |-- x) and A3: (p |-- x).z = y by FUNCT_1:def 5; reconsider z as Nat by A2,FINSEQ_3:25; A4: y = p.(z + x..p) by A1,A2,A3,Def7; z + x..p in dom p by A1,A2,Th58; hence thesis by A4,FUNCT_1:def 5; end; theorem Th60: p just_once_values x iff x in rng p & not x in rng(p |-- x) proof thus p just_once_values x implies x in rng p & not x in rng(p |-- x) proof assume A1: p just_once_values x; hence A2: x in rng p by Th7; assume x in rng(p |-- x); then consider z such that A3: z in dom(p |-- x) and A4: (p |-- x).z = x by FUNCT_1:def 5; reconsider z as Nat by A3,FINSEQ_3:25; A5: (p |-- x).z = p.(z + x..p) by A2,A3,Def7; z + x..p in dom p by A2,A3,Th58; then z + x..p = 0 + x..p by A1,A4,A5,Th36; then z = 0 by XCMPLX_1:2; hence thesis by A3,FINSEQ_3:26; end; assume that A6: x in rng p and A7: not x in rng(p |-- x); now let k; assume that A8: k in dom p and A9: k <> x..p and A10: p.k = x; now per cases by A9,AXIOMS:21; suppose k < x..p; then k + 1 <= x..p by NAT_1:38; then k <= x..p - 1 by REAL_1:84; then 1 <= k & k <= len(p -| x) by A6,A8,Th46,FINSEQ_3:27; then A11: k in dom(p -| x) by FINSEQ_3:27; then x = (p -| x).k by A6,A10,Th48; then x in rng(p -| x) by A11,FUNCT_1:def 5; hence contradiction by A6,Th49; suppose A12: x..p < k; then consider m such that A13: k = x..p + m by NAT_1:28; x..p + 0 < x..p + m by A12,A13; then 0 < m by AXIOMS:24; then A14: 0 + 1 <= m by NAT_1:38; m + x..p <= len p by A8,A13,FINSEQ_3:27; then m <= len p - x..p by REAL_1:84; then m <= len(p |-- x) by A6,Def7; then A15: m in dom(p |-- x) by A14,FINSEQ_3:27; then (p |-- x).m = p.k by A6,A13,Def7; hence contradiction by A7,A10,A15,FUNCT_1:def 5; end; hence contradiction; end; hence thesis by A6,Th37; end; theorem Th61: x in rng p & p is one-to-one implies not x in rng(p |-- x) proof assume that A1: x in rng p and A2: p is one-to-one and A3: x in rng(p |-- x); consider y such that A4: y in dom(p |-- x) and A5: (p |-- x).y = x by A3,FUNCT_1:def 5 ; reconsider y as Nat by A4,FINSEQ_3:25; A6: (p |-- x).y = p.(y + x..p) by A1,A4,Def7; A7: x..p in dom p & p.(x..p) = x by A1,Th29,Th30; 1 <= x..p & x..p <= y + x..p by A1,Th31,NAT_1:37; then A8: 1 <= y + x..p by AXIOMS:22; A9: y in Seg(len(p |-- x)) by A4,FINSEQ_1:def 3; then y <= len(p |-- x) & len(p |-- x) = len p - x..p by A1,Def7,FINSEQ_1:3; then y + x..p <= len p by REAL_1:84; then y + x..p in Seg(len p) by A8,FINSEQ_1:3; then y + x..p in dom p by FINSEQ_1:def 3; then 0 + x..p = y + x..p by A2,A5,A6,A7,FUNCT_1:def 8; then 0 = y by XCMPLX_1:2; hence thesis by A9,FINSEQ_1:3; end; theorem p just_once_values x iff x in rng p & rng(p |-- x) misses {x} proof thus p just_once_values x implies x in rng p & rng(p |-- x) misses {x} proof assume A1: p just_once_values x; hence x in rng p by Th60; A2: not x in rng(p |-- x) by A1,Th60; assume not rng(p |-- x) misses {x}; then ex y st y in rng(p |-- x) & y in {x} by XBOOLE_0:3; hence thesis by A2,TARSKI:def 1; end; assume that A3: x in rng p and A4: rng(p |-- x) misses {x}; now assume A5: x in rng(p |-- x); x in {x} by TARSKI:def 1; hence contradiction by A4,A5,XBOOLE_0:3; end; hence thesis by A3,Th60; end; theorem x in rng p & p is one-to-one implies rng(p |-- x) misses {x} proof assume x in rng p & p is one-to-one; then not x in rng(p |-- x) by Th61; then for y st y in rng(p |-- x) holds not y in {x} by TARSKI:def 1; hence thesis by XBOOLE_0:3; end; theorem x in rng p implies (x..p = len p iff p |-- x = {}) proof assume A1: x in rng p; thus x..p = len p implies p |-- x = {} proof assume A2: x..p = len p; len(p |-- x) = len p - x..p by A1,Def7 .= 0 by A2,XCMPLX_1:14; hence thesis by FINSEQ_1:25; end; assume p |-- x = {}; then len(p |-- x) = 0 & len(p |-- x) = len p - x..p by A1,Def7,FINSEQ_1:25; then len p - x..p + x..p = x..p; hence thesis by XCMPLX_1:27; end; theorem x in rng p & p is FinSequence of D implies p |-- x is FinSequence of D proof assume that A1: x in rng p and A2: p is FinSequence of D; rng(p |-- x) c= D proof let y; assume y in rng(p |-- x); then consider z such that A3: z in dom(p |-- x) and A4: (p |-- x).z = y by FUNCT_1:def 5; A5: dom(p |-- x) = Seg(len(p |-- x)) by FINSEQ_1:def 3; then reconsider z as Nat by A3; A6: y = p.(z + x..p) by A1,A3,A4,Def7; 1 <= x..p & x..p <= z + x..p by A1,Th31,NAT_1:37; then A7: 1 <= z + x..p by AXIOMS:22; z <= len(p |-- x) & len(p |-- x) = len p - x..p by A1,A3,A5,Def7,FINSEQ_1:3; then z + x..p <= len p by REAL_1:84; then z + x..p in Seg(len p) by A7,FINSEQ_1:3; then z + x..p in dom p by FINSEQ_1:def 3; then y in rng p & rng p c= D by A2,A6,FINSEQ_1:def 4,FUNCT_1:def 5; hence thesis; end; hence thesis by FINSEQ_1:def 4; end; theorem Th66: x in rng p implies p = (p -| x) ^ <* x *> ^ (p |-- x) proof assume A1: x in rng p; set q1 = p -| x; set q2 = p |-- x; set r = q1 ^ <* x *>; A2: len p = len p - x..p + x..p by XCMPLX_1:27 .= x..p + len q2 by A1,Def7 .= x..p - 1 + 1 + len q2 by XCMPLX_1:27 .= len q1 + 1 + len q2 by A1,Th46 .= len q1 + len<* x *> + len q2 by FINSEQ_1:57 .= len r + len q2 by FINSEQ_1:35; A3: now let k; assume A4: k in dom r; now per cases by A4,FINSEQ_1:38; suppose A5: k in dom q1; hence r.k = q1.k by FINSEQ_1:def 7 .= p.k by A1,A5,Th48; suppose ex n st n in dom<* x *> & k = len q1 + n; then consider n such that A6: n in dom <* x *> and A7: k = len q1 + n; n in {1} by A6,FINSEQ_1:4,def 8; then A8: n = 1 by TARSKI:def 1; hence r.k = <* x *>.1 by A6,A7,FINSEQ_1:def 7 .= x by FINSEQ_1:def 8 .= p.(x..p) by A1,Th29 .= p.(x..p - 1 + 1) by XCMPLX_1:27 .= p.k by A1,A7,A8,Th46; end; hence p.k = r.k; end; now let k; assume k in dom q2; then q2.k = p.(x..p + k) by A1,Def7 .= p.(x..p - 1 + 1 + k) by XCMPLX_1:27 .= p.(len q1 + 1 + k) by A1,Th46 .= p.(len q1 + len<* x *> + k) by FINSEQ_1:57 .= p.(len r + k) by FINSEQ_1:35; hence p.(len r + k) = q2.k; end; hence thesis by A2,A3,FINSEQ_3:43; end; theorem x in rng p & p is one-to-one implies p -| x is one-to-one proof assume x in rng p; then p = (p -| x) ^ <* x *> ^ (p |-- x) by Th66 .= (p -| x) ^ (<* x *> ^ (p |-- x)) by FINSEQ_1:45; hence thesis by FINSEQ_3:98; end; theorem x in rng p & p is one-to-one implies p |-- x is one-to-one proof assume x in rng p; then p = (p -| x) ^ <* x *> ^ (p |-- x) by Th66; hence thesis by FINSEQ_3:98; end; theorem Th69: p just_once_values x iff x in rng p & p - {x} = (p -| x) ^ (p |-- x) proof set q = p - {x}; set r = p -| x; set s = p |-- x; thus p just_once_values x implies x in rng p & p - {x} = (p -| x) ^ (p |-- x) proof assume A1: p just_once_values x; hence A2: x in rng p by Th7; then len r + len s = (x..p - 1) + len s by Th46 .= (x..p - 1) + (len p - x..p) by A2,Def7 .= (x.. p + (len p - x..p)) - 1 by XCMPLX_1:29 .= len p - 1 by XCMPLX_1:27 .= len q by A1,Th40; then A3: dom q = Seg(len r + len s) by FINSEQ_1:def 3; A4: now let k; assume A5: k in dom r; then A6: r.k = p.k by A2,Th48; x..p <= len p by A2,Th31; then x..p - 1 <= len p - 1 by REAL_1:49; then len r <= len p - 1 by A2,Th46; then len r <= len q by A1,Th40; then A7: Seg(len r) c= Seg(len q) & Seg(len r) = dom r & Seg(len q) = dom q by FINSEQ_1:7,def 3; k in Seg(len r) by A5,FINSEQ_1:def 3; then k <= len r by FINSEQ_1:3; then k <= x..p - 1 by A2,Th46; then k + 1 <= x..p & k < k + 1 by REAL_1:69,84; then k < x..p by AXIOMS:22; hence q.k = r.k by A1,A5,A6,A7,Th41; end; now let k; assume A8: k in dom s; then A9: s.k = p.(k + x..p) by A2,Def7; A10: k + x..p - 1 = k + x..p + (- 1) by XCMPLX_0:def 8 .= k + (x..p + (- 1)) by XCMPLX_1:1 .= k + (x..p - 1) by XCMPLX_0:def 8; reconsider m = x..p - 1 as Nat by A2,Th32; set z = k + m; A11: dom s = Seg(len s) by FINSEQ_1:def 3; then A12: 1 <= k & 1 <= x..p by A2,A8,Th31,FINSEQ_1:3; then 1 + 1 <= k + x..p by REAL_1:55; then A13: 1 <= k + x..p - 1 by REAL_1:84; k <= len s by A8,A11,FINSEQ_1:3; then k <= len p - x..p by A2,Def7; then k + x..p <= len p by REAL_1:84; then k + x..p - 1 <= len p - 1 by REAL_1:49; then k + x..p - 1 <= len q & dom q = Seg(len q) by A1,Th40,FINSEQ_1:def 3; then A14: z in dom q by A10,A13,FINSEQ_1:3; x..p + 1 <= k + x..p by A12,REAL_1:55; then x..p <= k + x..p - 1 by REAL_1:84; then q.z = p.(z + 1) by A1,A10,A14,Th41 .= p.(k + x..p) by A10,XCMPLX_1:27; hence q.(len r + k) = s.k by A2,A9,Th46; end; hence thesis by A3,A4,FINSEQ_1:def 7; end; assume A15: x in rng p; assume A16: p - {x} = (p -| x) ^ (p |-- x); now let k; assume that A17: k in dom p and A18: k <> x..p and A19: p.k = x; A20: len q = len p - card(p " {x}) by FINSEQ_3:66 .= len p + (- card(p " {x})) by XCMPLX_0:def 8; len q = len r + len s by A16,FINSEQ_1:35 .= (x..p - 1) + len s by A15,Th46 .= (x..p - 1) + (len p - x..p) by A15,Def7 .= (x.. p + (len p - x..p)) - 1 by XCMPLX_1:29 .= len p - 1 by XCMPLX_1:27 .= len p + (- 1) by XCMPLX_0:def 8; then - card(p " {x}) = - 1 by A20,XCMPLX_1:2; then A21: - (- card(p " {x})) = 1; {x..p,k} c= p " {x} proof let y; assume A22: y in {x..p,k}; x in {x} & x..p in dom p & p.(x..p) = x by A15,Th29,Th30,TARSKI:def 1; then x..p in p " {x} & k in p " {x} by A17,A19,FUNCT_1:def 13; hence thesis by A22,TARSKI:def 2; end; then card{x..p,k} <= card(p " {x}) by CARD_1:80; then 2 <= card(p " {x}) by A18,CARD_2:76; hence contradiction by A21; end; hence thesis by A15,Th37; end; theorem x in rng p & p is one-to-one implies p - {x} = (p -| x) ^ (p |-- x) proof assume x in rng p & p is one-to-one; then p just_once_values x by Th10; hence thesis by Th69; end; theorem Th71: x in rng p & p - {x} is one-to-one & p - {x} = (p -| x) ^ (p |-- x) implies p is one-to-one proof assume that A1: x in rng p and A2: p - {x} is one-to-one and A3: p - {x} = (p -| x) ^ (p |-- x); let x1,x2; set q = p - {x}; assume that A4: x1 in dom p and A5: x2 in dom p and A6: p.x1 = p.x2; reconsider k1 = x1, k2 = x2 as Nat by A4,A5,FINSEQ_3:25; A7: p just_once_values x by A1,A3,Th69; now per cases by AXIOMS:21; suppose x1 = x..p & x2 = x..p; hence thesis; suppose x1 = x..p & x..p < k2; then p.x1 = x & k2 <> x..p by A1,Th29; hence thesis by A5,A6,A7,Th36; suppose x1 = x..p & k2 < x..p; then p.x1 = x & k2 <> x..p by A1,Th29; hence thesis by A5,A6,A7,Th36; suppose k1 < x..p & x..p = x2; then p.x2 = x & k1 <> x..p by A1,Th29; hence thesis by A4,A6,A7,Th36; suppose A8: k1 < x..p & x..p < k2; then k2 <> 0 by NAT_1:18; then consider m2 such that A9: k2 = m2 + 1 by NAT_1:22; k1 in Seg(len p) by A4,FINSEQ_1:def 3; then A10: 1 <= k1 by FINSEQ_1:3; x..p <= len p by A1,Th31; then k1 < len p by A8,AXIOMS:22; then k1 + 1 <= len p by NAT_1:38; then k1 <= len p - 1 by REAL_1:84; then k1 <= len q by A7,Th40; then k1 in Seg(len q) by A10,FINSEQ_1:3; then A11: k1 in dom q by FINSEQ_1:def 3; A12: x..p <= m2 by A8,A9,NAT_1:38; 1 <= x..p by A1,Th31; then A13: 1 <= m2 by A12,AXIOMS:22; k2 in Seg(len p) by A5,FINSEQ_1:def 3; then k2 <= len p by FINSEQ_1:3; then m2 <= len p - 1 by A9,REAL_1:84; then m2 <= len q by A7,Th40; then m2 in Seg(len q) by A13,FINSEQ_1:3; then A14: m2 in dom(p - {x}) by FINSEQ_1:def 3; then q.k1 = p.k1 & q.m2 = p.k2 by A7,A8,A9,A11,A12,Th41; hence thesis by A2,A6,A8,A11,A12,A14,FUNCT_1:def 8; suppose A15: k1 < x..p & k2 < x..p; k1 in Seg(len p) & k2 in Seg(len p) by A4,A5,FINSEQ_1:def 3; then A16: 1 <= k1 & 1 <= k2 by FINSEQ_1:3; x..p <= len p by A1,Th31; then k1 < len p & k2 < len p by A15,AXIOMS:22; then k1 + 1 <= len p & k2 + 1 <= len p by NAT_1:38; then k1 <= len p - 1 & k2 <= len p - 1 by REAL_1:84; then k1 <= len q & k2 <= len q by A7,Th40; then k1 in Seg(len q) & k2 in Seg(len q) by A16,FINSEQ_1:3; then A17: k1 in dom q & k2 in dom q by FINSEQ_1:def 3; then p.k1 = (p - {x}).k1 & p.k2 = (p - {x}).k2 by A7,A15,Th41; hence thesis by A2,A6,A17,FUNCT_1:def 8; suppose A18: x..p < k1 & x..p < k2; then A19: k1 <> 0 & k2 <> 0 by NAT_1:18; then consider m1 such that A20: k1 = m1 + 1 by NAT_1:22; consider m2 such that A21: k2 = m2 + 1 by A19,NAT_1:22; A22: x..p <= m1 & x..p <= m2 by A18,A20,A21,NAT_1:38; 1 <= x..p by A1,Th31; then A23: 1 <= m1 & 1 <= m2 by A22,AXIOMS:22; k1 in Seg(len p) & k2 in Seg(len p) by A4,A5,FINSEQ_1:def 3; then k1 <= len p & k2 <= len p by FINSEQ_1:3; then m1 <= len p - 1 & m2 <= len p - 1 by A20,A21,REAL_1:84; then m1 <= len q & m2 <= len q by A7,Th40; then m1 in Seg(len q) & m2 in Seg(len q) by A23,FINSEQ_1:3; then A24: m1 in dom(p - {x}) & m2 in dom(p - {x}) by FINSEQ_1:def 3; then p.k1 = (p - {x}).m1 & p.k2 = (p - {x}).m2 by A7,A20,A21,A22,Th41; hence thesis by A2,A6,A20,A21,A24,FUNCT_1:def 8; suppose x..p < k1 & x..p = x2; then p.x2 = x & k1 <> x..p by A1,Th29; hence thesis by A4,A6,A7,Th36; suppose A25: x..p < k1 & k2 < x..p; then k1 <> 0 by NAT_1:18; then consider m2 such that A26: k1 = m2 + 1 by NAT_1:22; k2 in Seg(len p) by A5,FINSEQ_1:def 3; then A27: 1 <= k2 by FINSEQ_1:3; x..p <= len p by A1,Th31; then k2 < len p by A25,AXIOMS:22; then k2 + 1 <= len p by NAT_1:38; then k2 <= len p - 1 by REAL_1:84; then k2 <= len q by A7,Th40; then k2 in Seg(len q) by A27,FINSEQ_1:3; then A28: k2 in dom q by FINSEQ_1:def 3; A29: x..p <= m2 by A25,A26,NAT_1:38; 1 <= x..p by A1,Th31; then A30: 1 <= m2 by A29,AXIOMS:22; k1 in Seg(len p) by A4,FINSEQ_1:def 3; then k1 <= len p by FINSEQ_1:3; then m2 <= len p - 1 by A26,REAL_1:84; then m2 <= len q by A7,Th40; then m2 in Seg(len q) by A30,FINSEQ_1:3; then A31: m2 in dom(p - {x}) by FINSEQ_1:def 3; then q.k2 = p.k2 & q.m2 = p.k1 by A7,A25,A26,A28,A29,Th41; hence thesis by A2,A6,A25,A28,A29,A31,FUNCT_1:def 8; end; hence thesis; end; theorem x in rng p & p is one-to-one implies rng(p -| x) misses rng(p |-- x) proof assume that A1: x in rng p and A2: p is one-to-one; p = (p -| x) ^ <* x *> ^ (p |-- x) by A1,Th66; then rng(p |-- x) misses rng((p -| x) ^ <* x *>) & rng(p -| x) c= rng((p -| x) ^ <* x *>) by A2,FINSEQ_1:42,FINSEQ_3:98; hence thesis by XBOOLE_1:63; end; theorem Th73: A is finite implies ex p st rng p = A & p is one-to-one proof assume A1: A is finite; defpred P[set] means ex p st rng p = $1 & p is one-to-one; now reconsider p = {} as FinSequence; take p; thus rng p = {} by FINSEQ_1:27; thus p is one-to-one; end; then A2: P[{}]; now let B,C; assume that B in A and C c= A; given p such that A3: rng p = C and A4: p is one-to-one; A5: now assume A6: B in C; take q = p; thus rng q = C \/ {B} & q is one-to-one by A3,A4,A6,ZFMISC_1:46; end; now assume A7: not B in C; take q = p ^ <* B *>; thus rng q = rng p \/ rng<* B *> by FINSEQ_1:44 .= C \/ {B} by A3,FINSEQ_1:55; thus q is one-to-one proof let x,y; assume that A8: x in dom q and A9: y in dom q and A10: q.x = q.y; x in Seg(len q) & y in Seg(len q) by A8,A9,FINSEQ_1:def 3; then reconsider k = x, l = y as Nat; A11: now assume A12: k in dom p & l in dom p; then q.k = p.k & q.l = p.l by FINSEQ_1:def 7; hence thesis by A4,A10,A12,FUNCT_1:def 8; end; A13: now assume A14: k in dom p; given n such that A15: n in dom<* B *> and A16: l = len p + n; n in {1} by A15,FINSEQ_1:4,55; then A17: n = 1 by TARSKI:def 1; <* B *>.n = q.k by A10,A15,A16,FINSEQ_1:def 7 .= p.k by A14,FINSEQ_1:def 7; then B = p.k by A17,FINSEQ_1:def 8; hence thesis by A3,A7,A14,FUNCT_1:def 5; end; A18: now assume A19: l in dom p; given n such that A20: n in dom<* B *> and A21: k = len p + n; n in {1} by A20,FINSEQ_1:4,55; then A22: n = 1 by TARSKI:def 1; <* B *>.n = q.l by A10,A20,A21,FINSEQ_1:def 7 .= p.l by A19,FINSEQ_1:def 7; then B = p.l by A22,FINSEQ_1:def 8; hence thesis by A3,A7,A19,FUNCT_1:def 5; end; now given m1 being Nat such that A23: m1 in dom<* B *> and A24: k = len p + m1; given m2 being Nat such that A25: m2 in dom<* B *> and A26: l = len p + m2; m1 in {1} & m2 in {1} by A23,A25,FINSEQ_1:4,def 8; then m1 = 1 & m2 = 1 by TARSKI:def 1; hence thesis by A24,A26; end; hence thesis by A8,A9,A11,A13,A18,FINSEQ_1:38; end; end; hence ex p st rng p = C \/ {B} & p is one-to-one by A5; end; then A27: for B,C being set st B in A & C c= A & P[C] holds P[C \/ {B}]; thus P[A] from Finite(A1,A2,A27); end; theorem Th74: rng p c= dom p & p is one-to-one implies rng p = dom p proof defpred P[Nat] means for q st len q = $1 & rng q c= dom q & q is one-to-one holds rng q = dom q; now let q; assume A1: len q = 0; assume rng q c= dom q & q is one-to-one; q = {} by A1,FINSEQ_1:25; then dom q = {} & rng q = {} by FINSEQ_1:26,27; hence rng q = dom q; end; then A2: P[0]; now let k; assume A3: for q st len q = k & rng q c= dom q & q is one-to-one holds rng q = dom q; let q; assume that A4: len q = k + 1 and A5: rng q c= dom q and A6: q is one-to-one; A7: dom q = Seg(k + 1) by A4,FINSEQ_1:def 3; dom q c= rng q proof let x; assume A8: x in dom q; then reconsider n = x as Nat by A7; per cases; suppose A9: k + 1 in rng q; now per cases; suppose n = k + 1; hence thesis by A9; suppose A10: n <> k + 1; set r = q - {k + 1}; A11: r is one-to-one by A6,FINSEQ_3:94; A12: len r = (k + 1) - 1 by A4,A6,A9,FINSEQ_3:97 .= k by XCMPLX_1:26; A13: rng r = rng q \ {k + 1} by FINSEQ_3:72; then A14: rng r c= Seg(k + 1) \ {k + 1} & dom r = Seg k by A5,A7,A12,FINSEQ_1:def 3,XBOOLE_1:33; then rng r c= dom r by RLVECT_1:104; then A15: rng r = dom r by A3,A11,A12; not x in {k + 1} by A10,TARSKI:def 1; then x in Seg(k + 1) \ {k + 1} by A7,A8,XBOOLE_0:def 4; then x in Seg k by RLVECT_1:104; hence x in rng q by A13,A14,A15,XBOOLE_0:def 4; end; hence thesis; suppose A16: not k + 1 in rng q; reconsider r = q | Seg k as FinSequence by FINSEQ_1:19; A17: len r = k by A4,FINSEQ_3:59; then A18: dom r = Seg k & rng r c= rng q by FINSEQ_1:def 3,FUNCT_1:76; A19: rng q c= Seg k proof let x; assume x in rng q; then x in Seg(k + 1) & not x in {k + 1} by A5,A7,A16,TARSKI:def 1; then x in Seg(k + 1) \ {k + 1} by XBOOLE_0:def 4; hence thesis by RLVECT_1:104; end; then A20: rng r c= dom r by A18,XBOOLE_1:1; r is one-to-one by A6,FUNCT_1:84; then A21: rng r = dom r by A3,A17,A20; A22: k + 1 in Seg(k + 1) by FINSEQ_1:6; then q.(k + 1) in rng q by A7,FUNCT_1:def 5; then consider x such that A23: x in dom r and A24: r.x = q.(k + 1) by A18,A19,A21,FUNCT_1:def 5; reconsider n = x as Nat by A18,A23; A25: dom r c= dom q by FUNCT_1:76; A26: r.x = q.x by A18,A23,FUNCT_1:72; n <= k & k < k + 1 by A18,A23,FINSEQ_1:3,REAL_1:69; hence thesis by A6,A7,A22,A23,A24,A25,A26,FUNCT_1:def 8; end; hence rng q = dom q by A5,XBOOLE_0:def 10; end; then A27: for k st P[k] holds P[k+1]; A28: for k holds P[k] from Ind(A2,A27); len p = len p; hence thesis by A28; end; theorem Th75: rng p = dom p implies p is one-to-one proof defpred P[Nat] means for p st len p = $1 & rng p = dom p holds p is one-to-one; A1: P[0] by FINSEQ_1:25; A2: now let k; assume A3: P[k]; thus P[k+1] proof let p; set q = p - {k + 1}; set x = k + 1; assume that A4: len p = k + 1 and A5: rng p = dom p; A6: dom p = Seg(k + 1) by A4,FINSEQ_1:def 3; then A7: k + 1 in rng p by A5,FINSEQ_1:6; now let l; assume that A8: l in dom p and A9: l <> (k + 1)..p and A10: p.l = k + 1; p.(x..p) = x by A7,Th29; then x..p in dom p & p.(x..p) in {k + 1} & p.l in {k + 1} by A7,A10,Th30,TARSKI:def 1; then x..p in p " {x} & l in p " {x} by A8,FUNCT_1:def 13; then A11: {x..p,l} c= p " {k + 1} by ZFMISC_1:38; card{x..p,l} = 2 & p " {x} is finite by A9,CARD_2:76; then 2 <= card(p " {k + 1}) & len q = (k + 1) - card(p " {k + 1}) by A4,A11,CARD_1:80,FINSEQ_3:66; then 2 + len q <= card(p " {x}) + ((k + 1) - card(p " {k + 1})) by AXIOMS:24; then len q + (1 + 1) <= k + 1 by XCMPLX_1:27; then len q + 1 + 1 <= k + 1 by XCMPLX_1:1; then len q + 1 <= k by REAL_1:53; then A12: len q <= k - 1 & dom q = Seg(len q) by FINSEQ_1:def 3,REAL_1:84; rng q = Seg(k + 1) \ {k + 1} by A5,A6,FINSEQ_3:72 .= Seg k by RLVECT_1:104; then A13: card(rng q) = k by FINSEQ_1:78; A14: Card(rng q) <=` Card(dom q) by CARD_1:28; reconsider B = dom q as finite set by A12; rng q is finite & card B = len q by A12,FINSEQ_1:78; then Card(len q) = Card(dom q) & Card k = Card(rng q) by A13,CARD_1:def 11; then k <= len q by A14,CARD_1:72; then k <= k - 1 by A12,AXIOMS:22; then k + 1 <= k + 0 by REAL_1:84; hence contradiction by REAL_1:53; end; then A15: p just_once_values k + 1 by A7,Th37; then A16: len q = (k + 1) - 1 by A4,Th40 .= k by XCMPLX_1:26; A17: q = (p -| (k + 1)) ^ (p |-- (k + 1)) by A15,Th69; rng q = Seg(k + 1) \ {k + 1} by A5,A6,FINSEQ_3:72 .= Seg k by RLVECT_1:104; then dom q = rng q by A16,FINSEQ_1:def 3; then q is one-to-one by A3,A16; hence p is one-to-one by A7,A17,Th71; end; end; A18: for k holds P[k] from Ind(A1,A2); len p = len p; hence thesis by A18; end; theorem rng p = rng q & len p = len q & q is one-to-one implies p is one-to-one proof assume that A1: rng p = rng q and A2: len p = len q and A3: q is one-to-one; A4: rng p = dom(q") by A1,A3,FUNCT_1:55; then A5: dom (q" * p) = dom p by RELAT_1:46 .= Seg(len p) by FINSEQ_1:def 3; then reconsider r = q" * p as FinSequence by FINSEQ_1:def 2; rng r = rng(q") by A4,RELAT_1:47 .= dom q by A3,FUNCT_1:55 .= Seg(len q) by FINSEQ_1:def 3; then r is one-to-one by A2,A5,Th75; hence thesis by A4,FUNCT_1:48; end; Lm1: for A,B being finite set, f being Function of A,B holds card A = card B & rng f = B implies f is one-to-one proof let A,B be finite set, f be Function of A,B; assume that A1: card A = card B and A2: rng f = B; consider p such that A3: rng p = A and A4: p is one-to-one by Th73; consider q such that A5: rng q = B and A6: q is one-to-one by Th73; dom p,p .: (dom p) are_equipotent & dom q,q .: (dom q) are_equipotent by A4,A6,CARD_1:60; then A7: dom p,A are_equipotent & dom q,B are_equipotent & A,B are_equipotent by A1,A3,A5,CARD_1:21,RELAT_1:146; then dom p,B are_equipotent & B,dom q are_equipotent by WELLORD2:22; then A8: dom p,dom q are_equipotent & dom q = Seg(len q) & Seg(len q) is finite by FINSEQ_1:def 3,WELLORD2:22; reconsider X = dom p as finite set by A7,CARD_1:68; card X = card(Seg(len q)) by A8,CARD_1:81 .= len q by FINSEQ_1:78; then A9: len q = card(Seg(len p)) by FINSEQ_1:def 3 .= len p by FINSEQ_1:78; now per cases; suppose B = {}; hence thesis by A2,RELAT_1:64; suppose A10: B <> {}; dom(q") = rng q by A6,FUNCT_1:55; then rng f c= dom(q") by A5,RELSET_1:12; then dom(q" * f) = dom f by RELAT_1:46; then rng p = dom(q" * f) by A3,A10,FUNCT_2:def 1; then A11: dom(q" * f * p) = dom p by RELAT_1:46 .= Seg(len p) by FINSEQ_1:def 3; then reconsider g = q" * f * p as FinSequence by FINSEQ_1:def 2; A12: g = q" * (f * p) by RELAT_1:55; rng p = dom f by A3,A10,FUNCT_2:def 1; then rng(f * p) = B by A2,RELAT_1:47 .= dom(q") by A5,A6,FUNCT_1:55; then rng g = rng(q") by A12,RELAT_1:47 .= dom q by A6,FUNCT_1:55 .= Seg(len q) by FINSEQ_1:def 3; then A13: g is one-to-one by A9,A11,Th75; q * g = q * (q " * (f * p)) by RELAT_1:55 .= q * q" * (f * p) by RELAT_1:55 .= id(rng q) * (f * p) by A6,FUNCT_1:61 .= id(rng q) * f * p by RELAT_1:55 .= f * p by A2,A5,FUNCT_1:42; then A14: q * g * p" = f * (p * p") by RELAT_1:55 .= f * id(rng p) by A4,FUNCT_1:61 .= f * id(dom f) by A3,A10,FUNCT_2:def 1 .= f by FUNCT_1:42; p" is one-to-one & q * g is one-to-one by A4,A6,A13,FUNCT_1:46,62; hence thesis by A14,FUNCT_1:46; end; hence thesis; end; theorem p is one-to-one iff card(rng p) = len p proof thus p is one-to-one implies card(rng p) = len p proof assume p is one-to-one; then dom p,p .: (dom p) are_equipotent by CARD_1:60; then dom p,rng p are_equipotent by RELAT_1:146; then Seg(len p),rng p are_equipotent & Seg(len p) is finite by FINSEQ_1:def 3; then card(Seg(len p)) = card(rng p) by CARD_1:81; hence thesis by FINSEQ_1:78; end; assume A1: card(rng p) = len p; reconsider f = p as Function of dom p, rng p by FUNCT_2:3; A2: card(rng p) = card(Seg(len p)) & Seg(len p) is finite by A1,FINSEQ_1:78; then reconsider B = dom p as finite set by FINSEQ_1:def 3; card(rng p) = card B & dom f is finite by A2,FINSEQ_1:def 3; hence thesis by Lm1; end; :: If you are looking for theorem :: rng p = rng q & p is_one-to-one & q is_one-to-one implies len p = len q, :: it is placed in RLVECT_1 under number 106. reserve f for Function of A,B; theorem for A,B being finite set, f being Function of A,B holds card A = card B & f is one-to-one implies rng f = B proof let A,B be finite set; let f be Function of A,B; assume that A1: card A = card B and A2: f is one-to-one; consider p such that A3: rng p = A and A4: p is one-to-one by Th73; consider q such that A5: rng q = B and A6: q is one-to-one by Th73; dom p,p .: (dom p) are_equipotent & dom q,q .: (dom q) are_equipotent by A4,A6,CARD_1:60; then A7: dom p,A are_equipotent & dom q,B are_equipotent & A,B are_equipotent by A1,A3,A5,CARD_1:21,RELAT_1:146; then dom p,B are_equipotent & B,dom q are_equipotent by WELLORD2:22; then A8: dom p,dom q are_equipotent & dom q = Seg(len q) & Seg(len q) is finite by FINSEQ_1:def 3,WELLORD2:22; reconsider X = dom p as finite set by A7,CARD_1:68; card X = card(Seg(len q)) by A8,CARD_1:81 .= len q by FINSEQ_1:78; then A9: len q = card(Seg(len p)) by FINSEQ_1:def 3 .= len p by FINSEQ_1:78; now per cases; suppose A10: B = {}; now assume A11: A <> {}; consider x being Element of A; {x} c= A by A11,ZFMISC_1:37; then card{x} <= card A by CARD_1:80; then 1 <= 0 by A1,A10,CARD_1:78,79; hence contradiction; end; hence thesis by A10,PARTFUN1:10,57; suppose A12: B <> {}; dom(q") = rng q by A6,FUNCT_1:55; then rng f c= dom(q") by A5,RELSET_1:12; then dom(q" * f) = dom f by RELAT_1:46; then rng p = dom(q" * f) by A3,A12,FUNCT_2:def 1; then A13: dom(q" * f * p) = dom p by RELAT_1:46 .= Seg(len p) by FINSEQ_1:def 3; then reconsider g = q" * f * p as FinSequence by FINSEQ_1:def 2; g = q" * (f * p) by RELAT_1:55; then rng g c= rng(q") by RELAT_1:45; then rng g c= dom q by A6,FUNCT_1:55; then A14: rng g c= dom g by A9,A13,FINSEQ_1:def 3; q " is one-to-one by A6,FUNCT_1:62; then q " * f is one-to-one by A2,FUNCT_1:46; then g is one-to-one by A4,FUNCT_1:46; then A15: rng g = dom g by A14,Th74; A16: rng f c= rng q by A5,RELSET_1:12; A17: q * g = q * (q " * (f * p)) by RELAT_1:55 .= q * q" * (f * p) by RELAT_1:55 .= id(rng q) * (f * p) by A6,FUNCT_1:61 .= id(rng q) * f * p by RELAT_1:55 .= f * p by A16,RELAT_1:79; rng g = dom q by A9,A13,A15,FINSEQ_1:def 3; then A18: rng(q * g) = B by A5,RELAT_1:47; rng p = dom f by A3,A12,FUNCT_2:def 1; hence thesis by A17,A18,RELAT_1:47; end; hence thesis; end; theorem for A,B being finite set, f being Function of A,B st card A = card B & rng f = B holds f is one-to-one by Lm1; theorem Card B <` Card A & B <> {} implies ex x,y st x in A & y in A & x <> y & f.x = f.y proof assume that A1: Card B <` Card A and A2: B <> {} and A3: for x,y st x in A & y in A & x <> y holds f.x <> f.y; A4: dom f = A by A2,FUNCT_2:def 1; then for x,y holds x in dom f & y in dom f & f.x = f.y implies x = y by A3; then dom f c= dom f & f is one-to-one by FUNCT_1:def 8; then dom f,f .: (dom f) are_equipotent by CARD_1:60; then dom f,rng f are_equipotent by RELAT_1:146; then Card A = Card(rng f) & rng f c= B by A4,CARD_1:21,RELSET_1:12; then Card A <=` Card B by CARD_1:27; hence contradiction by A1,CARD_1:14; end; theorem Card A <` Card B implies ex x st x in B & for y st y in A holds f.y <> x proof assume that A1: Card A <` Card B and A2: for x st x in B ex y st y in A & f.y = x; A3: dom f = A by A1,CARD_1:47,FUNCT_2:def 1; rng f = B proof thus rng f c= B by RELSET_1:12; let x; assume x in B; then ex y st y in A & f.y = x by A2; hence thesis by A3,FUNCT_1:def 5; end; then Card B <=` Card A by A3,CARD_1:28; hence thesis by A1,CARD_1:14; end;