:: EXCHSORT semantic presentation begin theorem Th1: :: EXCHSORT:1 for a, b being ordinal number for x being set holds ( x in (a +^ b) \ a iff ex c being ordinal number st ( x = a +^ c & c in b ) ) proof let a, b be ordinal number ; ::_thesis: for x being set holds ( x in (a +^ b) \ a iff ex c being ordinal number st ( x = a +^ c & c in b ) ) let x be set ; ::_thesis: ( x in (a +^ b) \ a iff ex c being ordinal number st ( x = a +^ c & c in b ) ) A1: ( x in (a +^ b) \ a iff ( a c= x & x in a +^ b ) ) by ORDINAL6:5; hereby ::_thesis: ( ex c being ordinal number st ( x = a +^ c & c in b ) implies x in (a +^ b) \ a ) assume A2: x in (a +^ b) \ a ; ::_thesis: ex d being set st ( x = a +^ d & d in b ) then reconsider c = x as Ordinal ; take d = c -^ a; ::_thesis: ( x = a +^ d & d in b ) thus x = a +^ d by A1, A2, ORDINAL3:def_5; ::_thesis: d in b hence d in b by A2, ORDINAL3:22; ::_thesis: verum end; given c being ordinal number such that A3: ( x = a +^ c & c in b ) ; ::_thesis: x in (a +^ b) \ a ( a c= x & x in a +^ b ) by A3, ORDINAL2:32, ORDINAL3:24; hence x in (a +^ b) \ a by ORDINAL6:5; ::_thesis: verum end; defpred S1[ set , set , set , set ] means ( $3 <> $1 & $3 <> $2 & $4 <> $1 & $4 <> $2 ); defpred S2[ set , set , set , set ] means ( $3 in $1 & $4 = $1 ); defpred S3[ set , set , set , set ] means ( $3 in $1 & $4 = $2 ); defpred S4[ set , set , set , set ] means ( $3 = $1 & $4 in $2 ); defpred S5[ set , set , set , set ] means ( $3 = $1 & $4 = $2 ); defpred S6[ set , set , set , set ] means ( $3 = $1 & $2 in $4 ); defpred S7[ set , set , set , set ] means ( $1 in $3 & $4 = $2 ); defpred S8[ set , set , set , set ] means ( $3 = $2 & $2 in $4 ); theorem Th2: :: EXCHSORT:2 for a, b, c, d being ordinal number st a in b & c in d & not ( c <> a & c <> b & d <> a & d <> b ) & not ( c in a & d = a ) & not ( c in a & d = b ) & not ( c = a & d in b ) & not ( c = a & d = b ) & not ( c = a & b in d ) & not ( a in c & d = b ) holds ( c = b & b in d ) proof let a, b, c, d be ordinal number ; ::_thesis: ( a in b & c in d & not ( c <> a & c <> b & d <> a & d <> b ) & not ( c in a & d = a ) & not ( c in a & d = b ) & not ( c = a & d in b ) & not ( c = a & d = b ) & not ( c = a & b in d ) & not ( a in c & d = b ) implies ( c = b & b in d ) ) assume A1: ( a in b & c in d ) ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) percases ( c in a or c = a or ( a in c & c in b ) or c = b or b in c ) by ORDINAL1:14; suppose c in a ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) hence ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) by A1; ::_thesis: verum end; suppose c = a ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) hence ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) by ORDINAL1:14; ::_thesis: verum end; supposeA2: ( a in c & c in b ) ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) percases ( d in b or d = b or b in d ) by ORDINAL1:14; suppose d in b ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) hence ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) by A1; ::_thesis: verum end; suppose d = b ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) hence ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) by A2; ::_thesis: verum end; suppose b in d ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) hence ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) by A1; ::_thesis: verum end; end; end; suppose c = b ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) hence ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) by A1; ::_thesis: verum end; suppose b in c ; ::_thesis: ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) hence ( ( c <> a & c <> b & d <> a & d <> b ) or ( c in a & d = a ) or ( c in a & d = b ) or ( c = a & d in b ) or ( c = a & d = b ) or ( c = a & b in d ) or ( a in c & d = b ) or ( c = b & b in d ) ) by A1; ::_thesis: verum end; end; end; theorem :: EXCHSORT:3 for x, y being set st x nin y holds (y \/ {x}) \ y = {x} by XBOOLE_1:88, ZFMISC_1:50; theorem Th4: :: EXCHSORT:4 for x being set holds (succ x) \ x = {x} proof let x be set ; ::_thesis: (succ x) \ x = {x} ( succ x = x \/ {x} & x nin x ) ; hence (succ x) \ x = {x} by XBOOLE_1:88, ZFMISC_1:50; ::_thesis: verum end; theorem Th5: :: EXCHSORT:5 for f being Function for r being Relation for x being set holds ( x in f .: r iff ex y, z being set st ( [y,z] in r & [y,z] in dom f & f . (y,z) = x ) ) proof let f be Function; ::_thesis: for r being Relation for x being set holds ( x in f .: r iff ex y, z being set st ( [y,z] in r & [y,z] in dom f & f . (y,z) = x ) ) let r be Relation; ::_thesis: for x being set holds ( x in f .: r iff ex y, z being set st ( [y,z] in r & [y,z] in dom f & f . (y,z) = x ) ) let x be set ; ::_thesis: ( x in f .: r iff ex y, z being set st ( [y,z] in r & [y,z] in dom f & f . (y,z) = x ) ) hereby ::_thesis: ( ex y, z being set st ( [y,z] in r & [y,z] in dom f & f . (y,z) = x ) implies x in f .: r ) assume x in f .: r ; ::_thesis: ex y, z being set st ( [y,z] in r & [y,z] in dom f & f . (y,z) = x ) then consider t being set such that A1: ( t in dom f & t in r & x = f . t ) by FUNCT_1:def_6; consider y, z being set such that A2: t = [y,z] by A1, RELAT_1:def_1; f . (y,z) = f . [y,z] ; hence ex y, z being set st ( [y,z] in r & [y,z] in dom f & f . (y,z) = x ) by A1, A2; ::_thesis: verum end; thus ( ex y, z being set st ( [y,z] in r & [y,z] in dom f & f . (y,z) = x ) implies x in f .: r ) by FUNCT_1:def_6; ::_thesis: verum end; theorem Th6: :: EXCHSORT:6 for a, b being ordinal number st a \ b <> {} holds ( inf (a \ b) = b & sup (a \ b) = a & union (a \ b) = union a ) proof let a, b be ordinal number ; ::_thesis: ( a \ b <> {} implies ( inf (a \ b) = b & sup (a \ b) = a & union (a \ b) = union a ) ) assume A1: a \ b <> {} ; ::_thesis: ( inf (a \ b) = b & sup (a \ b) = a & union (a \ b) = union a ) set x = the Element of a \ b; A2: the Element of a \ b in a \ b by A1; A3: ( the Element of a \ b in a & the Element of a \ b nin b ) by A1, XBOOLE_0:def_5; then b c= the Element of a \ b by ORDINAL6:4; then ( b in a & b nin b ) by A3, ORDINAL1:12; then A4: b in a \ b by XBOOLE_0:def_5; hence inf (a \ b) c= b by ORDINAL2:14; :: according to XBOOLE_0:def_10 ::_thesis: ( b c= inf (a \ b) & sup (a \ b) = a & union (a \ b) = union a ) inf (a \ b) in a \ b by A2, ORDINAL2:17; then inf (a \ b) nin b by XBOOLE_0:def_5; hence b c= inf (a \ b) by ORDINAL6:4; ::_thesis: ( sup (a \ b) = a & union (a \ b) = union a ) A5: On (a \ b) = a \ b by ORDINAL6:2; thus sup (a \ b) c= a by A5, ORDINAL2:def_3; :: according to XBOOLE_0:def_10 ::_thesis: ( a c= sup (a \ b) & union (a \ b) = union a ) thus a c= sup (a \ b) ::_thesis: union (a \ b) = union a proof let c be ordinal number ; :: according to ORDINAL1:def_5 ::_thesis: ( not c in a or c in sup (a \ b) ) assume A6: c in a ; ::_thesis: c in sup (a \ b) A7: b in sup (a \ b) by A4, ORDINAL2:19; percases ( c in b or c nin b ) ; suppose c in b ; ::_thesis: c in sup (a \ b) hence c in sup (a \ b) by A7, ORDINAL1:10; ::_thesis: verum end; suppose c nin b ; ::_thesis: c in sup (a \ b) then c in a \ b by A6, XBOOLE_0:def_5; hence c in sup (a \ b) by ORDINAL2:19; ::_thesis: verum end; end; end; thus union (a \ b) c= union a by ZFMISC_1:77; :: according to XBOOLE_0:def_10 ::_thesis: union a c= union (a \ b) for y being set st y in union a holds y in union (a \ b) proof let y be set ; ::_thesis: ( y in union a implies y in union (a \ b) ) assume y in union a ; ::_thesis: y in union (a \ b) then consider x being set such that A8: ( y in x & x in a ) by TARSKI:def_4; reconsider x = x as Ordinal by A8; percases ( x in b or b c= x ) by ORDINAL6:4; suppose x in b ; ::_thesis: y in union (a \ b) then y in b by A8, ORDINAL1:10; hence y in union (a \ b) by A4, TARSKI:def_4; ::_thesis: verum end; suppose b c= x ; ::_thesis: y in union (a \ b) then x in a \ b by A8, ORDINAL6:5; hence y in union (a \ b) by A8, TARSKI:def_4; ::_thesis: verum end; end; end; hence union a c= union (a \ b) by TARSKI:def_3; ::_thesis: verum end; theorem Th7: :: EXCHSORT:7 for a, b being ordinal number st not a \ b is empty & a \ b is finite holds ex n being Nat st a = b +^ n proof let a, b be ordinal number ; ::_thesis: ( not a \ b is empty & a \ b is finite implies ex n being Nat st a = b +^ n ) assume A1: ( not a \ b is empty & a \ b is finite ) ; ::_thesis: ex n being Nat st a = b +^ n set x = the Element of a \ b; A2: ( the Element of a \ b in a & the Element of a \ b nin b ) by A1, XBOOLE_0:def_5; then b c= the Element of a \ b by ORDINAL6:4; then consider c being ordinal number such that A3: ( a = b +^ c & c <> {} ) by A2, ORDINAL1:12, ORDINAL3:28; deffunc H1( Ordinal) -> set = b +^ $1; consider f being T-Sequence such that A4: ( dom f = omega & ( for d being ordinal number st d in omega holds f . d = H1(d) ) ) from ORDINAL2:sch_2(); f is one-to-one proof let x be set ; :: according to FUNCT_1:def_4 ::_thesis: for b1 being set holds ( not x in proj1 f or not b1 in proj1 f or not f . x = f . b1 or x = b1 ) let y be set ; ::_thesis: ( not x in proj1 f or not y in proj1 f or not f . x = f . y or x = y ) assume A5: ( x in dom f & y in dom f & f . x = f . y & x <> y ) ; ::_thesis: contradiction then reconsider x = x, y = y as Element of omega by A4; A6: ( f . x = H1(x) & f . y = H1(y) ) by A4; ( x in y or y in x ) by A5, ORDINAL1:14; then ( b +^ x in b +^ y or b +^ y in b +^ x ) by ORDINAL2:32; hence contradiction by A5, A6; ::_thesis: verum end; then A7: omega , rng f are_equipotent by A4, WELLORD2:def_4; now__::_thesis:_not_omega_c=_c assume omega c= c ; ::_thesis: contradiction then A8: H1( omega ) c= a by A3, ORDINAL2:33; rng f c= a \ b proof let y be set ; :: according to TARSKI:def_3 ::_thesis: ( not y in rng f or y in a \ b ) assume y in rng f ; ::_thesis: y in a \ b then consider x being set such that A9: ( x in dom f & y = f . x ) by FUNCT_1:def_3; reconsider x = x as Element of omega by A4, A9; A10: y = H1(x) by A4, A9; ( b c= H1(x) & H1(x) in H1( omega ) ) by ORDINAL2:32, ORDINAL3:24; then ( y nin b & y in a ) by A8, A10, ORDINAL6:4; hence y in a \ b by XBOOLE_0:def_5; ::_thesis: verum end; hence contradiction by A1, A7, CARD_1:38; ::_thesis: verum end; then c in omega by ORDINAL6:4; hence ex n being Nat st a = b +^ n by A3; ::_thesis: verum end; begin definition let f be set ; attrf is segmental means :Def1: :: EXCHSORT:def 1 ex a, b being ordinal number st proj1 f = a \ b; end; :: deftheorem Def1 defines segmental EXCHSORT:def_1_:_ for f being set holds ( f is segmental iff ex a, b being ordinal number st proj1 f = a \ b ); theorem :: EXCHSORT:8 for f, g being Function st dom f = dom g & f is segmental holds g is segmental proof let f, g be Function; ::_thesis: ( dom f = dom g & f is segmental implies g is segmental ) assume A1: dom f = dom g ; ::_thesis: ( not f is segmental or g is segmental ) given a, b being ordinal number such that A2: dom f = a \ b ; :: according to EXCHSORT:def_1 ::_thesis: g is segmental take a ; :: according to EXCHSORT:def_1 ::_thesis: ex b being ordinal number st proj1 g = a \ b take b ; ::_thesis: proj1 g = a \ b thus proj1 g = a \ b by A1, A2; ::_thesis: verum end; theorem Th9: :: EXCHSORT:9 for f being Function st f is segmental holds for a, b, c being ordinal number st a c= b & b c= c & a in dom f & c in dom f holds b in dom f proof let f be Function; ::_thesis: ( f is segmental implies for a, b, c being ordinal number st a c= b & b c= c & a in dom f & c in dom f holds b in dom f ) given x, y being Ordinal such that A1: dom f = x \ y ; :: according to EXCHSORT:def_1 ::_thesis: for a, b, c being ordinal number st a c= b & b c= c & a in dom f & c in dom f holds b in dom f let a, b, c be ordinal number ; ::_thesis: ( a c= b & b c= c & a in dom f & c in dom f implies b in dom f ) assume A2: ( a c= b & b c= c & a in dom f & c in dom f ) ; ::_thesis: b in dom f then ( y c= a & c in x ) by A1, ORDINAL6:5; then ( y c= b & b in x ) by A2, ORDINAL1:12, XBOOLE_1:1; hence b in dom f by A1, ORDINAL6:5; ::_thesis: verum end; registration cluster T-Sequence-like Relation-like Function-like -> segmental for set ; coherence for b1 being Function st b1 is T-Sequence-like holds b1 is segmental proof let f be Function; ::_thesis: ( f is T-Sequence-like implies f is segmental ) assume f is T-Sequence-like ; ::_thesis: f is segmental then reconsider f = f as T-Sequence ; take dom f ; :: according to EXCHSORT:def_1 ::_thesis: ex b being ordinal number st proj1 f = (dom f) \ b take 0 ; ::_thesis: proj1 f = (dom f) \ 0 thus proj1 f = (dom f) \ 0 ; ::_thesis: verum end; cluster Relation-like Function-like FinSequence-like -> segmental for set ; coherence for b1 being Function st b1 is FinSequence-like holds b1 is segmental proof let f be Function; ::_thesis: ( f is FinSequence-like implies f is segmental ) assume f is FinSequence-like ; ::_thesis: f is segmental then reconsider g = f as FinSequence ; take a = succ (len g); :: according to EXCHSORT:def_1 ::_thesis: ex b being ordinal number st proj1 f = a \ b take b = 1; ::_thesis: proj1 f = a \ b reconsider c = len g as Nat ; thus dom f c= a \ b :: according to XBOOLE_0:def_10 ::_thesis: a \ b c= proj1 f proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in dom f or x in a \ b ) assume A1: x in dom f ; ::_thesis: x in a \ b then x in dom g ; then reconsider x = x as Nat ; x <= c by A1, FINSEQ_3:25; then A2: ( 1 <= x & x <= c ) by A1, FINSEQ_3:25; then ( succ 0 c= x & x c= c ) by NAT_1:39; then A3: ( 0 in x & x in a ) by ORDINAL1:21, ORDINAL1:22; not x in b by A2, CARD_1:49, TARSKI:def_1; hence x in a \ b by A3, XBOOLE_0:def_5; ::_thesis: verum end; reconsider d = a as Element of NAT by ORDINAL1:def_12; let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in a \ b or x in proj1 f ) assume A4: x in a \ b ; ::_thesis: x in proj1 f then A5: ( x in d & not x in b ) by XBOOLE_0:def_5; reconsider x = x as Nat by A4; ( x c= c & b c= x ) by A5, ORDINAL1:16, ORDINAL1:22; then ( 1 <= x & x <= c ) by NAT_1:39; hence x in proj1 f by FINSEQ_3:25; ::_thesis: verum end; end; definition let a be ordinal number ; let s be set ; attrs is a -based means :Def2: :: EXCHSORT:def 2 for b being ordinal number st b in proj1 s holds ( a in proj1 s & a c= b ); attrs is a -limited means :Def3: :: EXCHSORT:def 3 a = sup (proj1 s); end; :: deftheorem Def2 defines -based EXCHSORT:def_2_:_ for a being ordinal number for s being set holds ( s is a -based iff for b being ordinal number st b in proj1 s holds ( a in proj1 s & a c= b ) ); :: deftheorem Def3 defines -limited EXCHSORT:def_3_:_ for a being ordinal number for s being set holds ( s is a -limited iff a = sup (proj1 s) ); theorem :: EXCHSORT:10 for a being ordinal number for f being Function holds ( ( f is a -based & f is segmental ) iff ex b being ordinal number st ( dom f = b \ a & a c= b ) ) proof let a be ordinal number ; ::_thesis: for f being Function holds ( ( f is a -based & f is segmental ) iff ex b being ordinal number st ( dom f = b \ a & a c= b ) ) let f be Function; ::_thesis: ( ( f is a -based & f is segmental ) iff ex b being ordinal number st ( dom f = b \ a & a c= b ) ) thus ( f is a -based & f is segmental implies ex b being ordinal number st ( dom f = b \ a & a c= b ) ) ::_thesis: ( ex b being ordinal number st ( dom f = b \ a & a c= b ) implies ( f is a -based & f is segmental ) ) proof assume A1: for b being ordinal number st b in dom f holds ( a in dom f & a c= b ) ; :: according to EXCHSORT:def_2 ::_thesis: ( not f is segmental or ex b being ordinal number st ( dom f = b \ a & a c= b ) ) given c, d being ordinal number such that A2: dom f = c \ d ; :: according to EXCHSORT:def_1 ::_thesis: ex b being ordinal number st ( dom f = b \ a & a c= b ) set x = the Element of c \ d; percases ( dom f = {} or dom f <> {} ) ; suppose dom f = {} ; ::_thesis: ex b being ordinal number st ( dom f = b \ a & a c= b ) then a \ a = dom f by XBOOLE_1:37; hence ex b being ordinal number st ( dom f = b \ a & a c= b ) ; ::_thesis: verum end; suppose dom f <> {} ; ::_thesis: ex b being ordinal number st ( dom f = b \ a & a c= b ) then the Element of c \ d in dom f by A2; then a in dom f by A1; then A3: ( d c= a & a in c ) by A2, ORDINAL6:5; then d in c by ORDINAL1:12; then d in dom f by A2, ORDINAL6:5; then a c= d by A1; then ( a = d & a c= c ) by A3, ORDINAL1:def_2, XBOOLE_0:def_10; hence ex b being ordinal number st ( dom f = b \ a & a c= b ) by A2; ::_thesis: verum end; end; end; given b being ordinal number such that A4: ( dom f = b \ a & a c= b ) ; ::_thesis: ( f is a -based & f is segmental ) thus f is a -based ::_thesis: f is segmental proof let c be ordinal number ; :: according to EXCHSORT:def_2 ::_thesis: ( c in proj1 f implies ( a in proj1 f & a c= c ) ) assume A5: c in dom f ; ::_thesis: ( a in proj1 f & a c= c ) then ( a c= c & c in b ) by A4, ORDINAL6:5; then a in b by ORDINAL1:12; hence ( a in proj1 f & a c= c ) by A4, A5, ORDINAL6:5; ::_thesis: verum end; take b ; :: according to EXCHSORT:def_1 ::_thesis: ex b being ordinal number st proj1 f = b \ b take a ; ::_thesis: proj1 f = b \ a thus proj1 f = b \ a by A4; ::_thesis: verum end; theorem :: EXCHSORT:11 for b being ordinal number for f being Function holds ( ( f is b -limited & not f is empty & f is segmental ) iff ex a being ordinal number st ( dom f = b \ a & a in b ) ) proof let b be ordinal number ; ::_thesis: for f being Function holds ( ( f is b -limited & not f is empty & f is segmental ) iff ex a being ordinal number st ( dom f = b \ a & a in b ) ) let f be Function; ::_thesis: ( ( f is b -limited & not f is empty & f is segmental ) iff ex a being ordinal number st ( dom f = b \ a & a in b ) ) thus ( f is b -limited & not f is empty & f is segmental implies ex a being ordinal number st ( dom f = b \ a & a in b ) ) ::_thesis: ( ex a being ordinal number st ( dom f = b \ a & a in b ) implies ( f is b -limited & not f is empty & f is segmental ) ) proof assume A1: b = sup (dom f) ; :: according to EXCHSORT:def_3 ::_thesis: ( f is empty or not f is segmental or ex a being ordinal number st ( dom f = b \ a & a in b ) ) assume A2: not f is empty ; ::_thesis: ( not f is segmental or ex a being ordinal number st ( dom f = b \ a & a in b ) ) given c, d being ordinal number such that A3: dom f = c \ d ; :: according to EXCHSORT:def_1 ::_thesis: ex a being ordinal number st ( dom f = b \ a & a in b ) set x = the Element of c \ d; take a = d; ::_thesis: ( dom f = b \ a & a in b ) A4: b = c by A2, A1, A3, Th6; thus dom f = b \ a by A2, A1, A3, Th6; ::_thesis: a in b ( a c= the Element of c \ d & the Element of c \ d in b ) by A2, A3, A4, ORDINAL6:5; hence a in b by ORDINAL1:12; ::_thesis: verum end; given a being ordinal number such that A5: ( dom f = b \ a & a in b ) ; ::_thesis: ( f is b -limited & not f is empty & f is segmental ) a in dom f by A5, ORDINAL6:5; hence b = sup (dom f) by A5, Th6; :: according to EXCHSORT:def_3 ::_thesis: ( not f is empty & f is segmental ) thus not f is empty by A5, ORDINAL6:5; ::_thesis: f is segmental take b ; :: according to EXCHSORT:def_1 ::_thesis: ex b being ordinal number st proj1 f = b \ b take a ; ::_thesis: proj1 f = b \ a thus proj1 f = b \ a by A5; ::_thesis: verum end; registration cluster T-Sequence-like Relation-like Function-like -> 0 -based for set ; coherence for b1 being Function st b1 is T-Sequence-like holds b1 is 0 -based proof let f be Function; ::_thesis: ( f is T-Sequence-like implies f is 0 -based ) assume f is T-Sequence-like ; ::_thesis: f is 0 -based then reconsider g = f as T-Sequence ; let b be ordinal number ; :: according to EXCHSORT:def_2 ::_thesis: ( b in proj1 f implies ( 0 in proj1 f & 0 c= b ) ) assume b in dom f ; ::_thesis: ( 0 in proj1 f & 0 c= b ) then b in dom g ; hence ( 0 in proj1 f & 0 c= b ) by ORDINAL3:8; ::_thesis: verum end; cluster Relation-like Function-like FinSequence-like -> 1 -based for set ; coherence for b1 being Function st b1 is FinSequence-like holds b1 is 1 -based proof let f be Function; ::_thesis: ( f is FinSequence-like implies f is 1 -based ) assume f is FinSequence-like ; ::_thesis: f is 1 -based then reconsider g = f as FinSequence ; let b be ordinal number ; :: according to EXCHSORT:def_2 ::_thesis: ( b in proj1 f implies ( 1 in proj1 f & 1 c= b ) ) assume b in dom f ; ::_thesis: ( 1 in proj1 f & 1 c= b ) then A1: b in dom g ; then reconsider b = b as Nat ; A2: ( 1 <= b & b <= len g ) by A1, FINSEQ_3:25; then 1 <= len g by XXREAL_0:2; hence ( 1 in proj1 f & 1 c= b ) by A2, FINSEQ_3:25, NAT_1:39; ::_thesis: verum end; end; theorem Th12: :: EXCHSORT:12 for f being Function holds f is inf (dom f) -based proof let f be Function; ::_thesis: f is inf (dom f) -based set b = inf (dom f); let c be ordinal number ; :: according to EXCHSORT:def_2 ::_thesis: ( c in proj1 f implies ( inf (dom f) in proj1 f & inf (dom f) c= c ) ) assume c in dom f ; ::_thesis: ( inf (dom f) in proj1 f & inf (dom f) c= c ) hence ( inf (dom f) in dom f & inf (dom f) c= c ) by ORDINAL2:14, ORDINAL2:17; ::_thesis: verum end; theorem :: EXCHSORT:13 for f being Function holds f is sup (dom f) -limited by Def3; theorem :: EXCHSORT:14 for b, a being ordinal number for f being Function st f is b -limited & a in dom f holds a in b proof let b, a be ordinal number ; ::_thesis: for f being Function st f is b -limited & a in dom f holds a in b let f be Function; ::_thesis: ( f is b -limited & a in dom f implies a in b ) assume b = sup (dom f) ; :: according to EXCHSORT:def_3 ::_thesis: ( not a in dom f or a in b ) hence ( not a in dom f or a in b ) by ORDINAL2:19; ::_thesis: verum end; definition let f be Function; func base- f -> ordinal number means :Def4: :: EXCHSORT:def 4 f is it -based if ex a being ordinal number st a in dom f otherwise it = 0 ; existence ( ( ex a being ordinal number st a in dom f implies ex b1 being ordinal number st f is b1 -based ) & ( ( for a being ordinal number holds not a in dom f ) implies ex b1 being ordinal number st b1 = 0 ) ) proof set b = inf (dom f); hereby ::_thesis: ( ( for a being ordinal number holds not a in dom f ) implies ex b1 being ordinal number st b1 = 0 ) given a being ordinal number such that a in dom f ; ::_thesis: ex b being set st f is b -based take b = inf (dom f); ::_thesis: f is b -based thus f is b -based by Th12; ::_thesis: verum end; assume for a being ordinal number holds not a in dom f ; ::_thesis: ex b1 being ordinal number st b1 = 0 take 0 ; ::_thesis: 0 = 0 thus 0 = 0 ; ::_thesis: verum end; uniqueness for b1, b2 being ordinal number holds ( ( ex a being ordinal number st a in dom f & f is b1 -based & f is b2 -based implies b1 = b2 ) & ( ( for a being ordinal number holds not a in dom f ) & b1 = 0 & b2 = 0 implies b1 = b2 ) ) proof let b, c be ordinal number ; ::_thesis: ( ( ex a being ordinal number st a in dom f & f is b -based & f is c -based implies b = c ) & ( ( for a being ordinal number holds not a in dom f ) & b = 0 & c = 0 implies b = c ) ) hereby ::_thesis: ( ( for a being ordinal number holds not a in dom f ) & b = 0 & c = 0 implies b = c ) given a being ordinal number such that A1: a in dom f ; ::_thesis: ( f is b -based & f is c -based implies b = c ) assume A2: ( f is b -based & f is c -based ) ; ::_thesis: b = c thus b = c ::_thesis: verum proof c in dom f by A1, A2, Def2; hence b c= c by A2, Def2; :: according to XBOOLE_0:def_10 ::_thesis: c c= b b in dom f by A1, A2, Def2; hence c c= b by A2, Def2; ::_thesis: verum end; end; thus ( ( for a being ordinal number holds not a in dom f ) & b = 0 & c = 0 implies b = c ) ; ::_thesis: verum end; consistency for b1 being ordinal number holds verum ; func limit- f -> ordinal number means :Def5: :: EXCHSORT:def 5 f is it -limited if ex a being ordinal number st a in dom f otherwise it = 0 ; existence ( ( ex a being ordinal number st a in dom f implies ex b1 being ordinal number st f is b1 -limited ) & ( ( for a being ordinal number holds not a in dom f ) implies ex b1 being ordinal number st b1 = 0 ) ) proof set b = sup (dom f); hereby ::_thesis: ( ( for a being ordinal number holds not a in dom f ) implies ex b1 being ordinal number st b1 = 0 ) given a being ordinal number such that a in dom f ; ::_thesis: ex b being set st f is b -limited take b = sup (dom f); ::_thesis: f is b -limited thus f is b -limited by Def3; ::_thesis: verum end; assume for a being ordinal number holds not a in dom f ; ::_thesis: ex b1 being ordinal number st b1 = 0 take 0 ; ::_thesis: 0 = 0 thus 0 = 0 ; ::_thesis: verum end; uniqueness for b1, b2 being ordinal number holds ( ( ex a being ordinal number st a in dom f & f is b1 -limited & f is b2 -limited implies b1 = b2 ) & ( ( for a being ordinal number holds not a in dom f ) & b1 = 0 & b2 = 0 implies b1 = b2 ) ) proof let b, c be ordinal number ; ::_thesis: ( ( ex a being ordinal number st a in dom f & f is b -limited & f is c -limited implies b = c ) & ( ( for a being ordinal number holds not a in dom f ) & b = 0 & c = 0 implies b = c ) ) hereby ::_thesis: ( ( for a being ordinal number holds not a in dom f ) & b = 0 & c = 0 implies b = c ) given a being ordinal number such that a in dom f ; ::_thesis: ( f is b -limited & f is c -limited implies b = c ) assume A3: ( f is b -limited & f is c -limited ) ; ::_thesis: b = c thus b = sup (dom f) by A3, Def3 .= c by A3, Def3 ; ::_thesis: verum end; thus ( ( for a being ordinal number holds not a in dom f ) & b = 0 & c = 0 implies b = c ) ; ::_thesis: verum end; consistency for b1 being ordinal number holds verum ; end; :: deftheorem Def4 defines base- EXCHSORT:def_4_:_ for f being Function for b2 being ordinal number holds ( ( ex a being ordinal number st a in dom f implies ( b2 = base- f iff f is b2 -based ) ) & ( ( for a being ordinal number holds not a in dom f ) implies ( b2 = base- f iff b2 = 0 ) ) ); :: deftheorem Def5 defines limit- EXCHSORT:def_5_:_ for f being Function for b2 being ordinal number holds ( ( ex a being ordinal number st a in dom f implies ( b2 = limit- f iff f is b2 -limited ) ) & ( ( for a being ordinal number holds not a in dom f ) implies ( b2 = limit- f iff b2 = 0 ) ) ); definition let f be Function; func len- f -> ordinal number equals :: EXCHSORT:def 6 (limit- f) -^ (base- f); coherence (limit- f) -^ (base- f) is ordinal number ; end; :: deftheorem defines len- EXCHSORT:def_6_:_ for f being Function holds len- f = (limit- f) -^ (base- f); theorem Th15: :: EXCHSORT:15 ( base- {} = 0 & limit- {} = 0 & len- {} = 0 ) proof for a being ordinal number holds not a in dom {} ; hence ( base- {} = 0 & limit- {} = 0 ) by Def4, Def5; ::_thesis: len- {} = 0 hence len- {} = 0 by ORDINAL3:56; ::_thesis: verum end; theorem Th16: :: EXCHSORT:16 for f being Function holds limit- f = sup (dom f) proof let f be Function; ::_thesis: limit- f = sup (dom f) percases ( for a being ordinal number holds a nin dom f or ex a being ordinal number st a in dom f ) ; supposeA1: for a being ordinal number holds a nin dom f ; ::_thesis: limit- f = sup (dom f) On (dom f) c= 0 proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in On (dom f) or x in 0 ) assume x in On (dom f) ; ::_thesis: x in 0 then ( x in dom f & x is ordinal ) by ORDINAL1:def_9; hence x in 0 by A1; ::_thesis: verum end; then sup (dom f) c= 0 by ORDINAL2:def_3; then sup (dom f) = 0 ; hence limit- f = sup (dom f) by A1, Def5; ::_thesis: verum end; supposeA2: ex a being ordinal number st a in dom f ; ::_thesis: limit- f = sup (dom f) f is sup (dom f) -limited by Def3; hence limit- f = sup (dom f) by A2, Def5; ::_thesis: verum end; end; end; theorem :: EXCHSORT:17 for f being Function holds f is limit- f -limited proof let f be Function; ::_thesis: f is limit- f -limited limit- f = sup (dom f) by Th16; hence f is limit- f -limited by Def3; ::_thesis: verum end; theorem Th18: :: EXCHSORT:18 for a being ordinal number for A being empty set holds A is a -based proof let a be ordinal number ; ::_thesis: for A being empty set holds A is a -based let A be empty set ; ::_thesis: A is a -based let b be ordinal number ; :: according to EXCHSORT:def_2 ::_thesis: ( b in proj1 A implies ( a in proj1 A & a c= b ) ) thus ( b in proj1 A implies ( a in proj1 A & a c= b ) ) ; ::_thesis: verum end; registration let a be ordinal number ; let X, Y be set ; cluster empty T-Sequence-like Relation-like Y -defined X -valued Function-like finite segmental a -based 0 -based for set ; existence ex b1 being T-Sequence st ( b1 is Y -defined & b1 is X -valued & b1 is a -based & b1 is segmental & b1 is finite & b1 is empty ) proof take A = {} [:Y,X:]; ::_thesis: ( A is Y -defined & A is X -valued & A is a -based & A is segmental & A is finite & A is empty ) thus ( A is Y -defined & A is X -valued & A is a -based & A is segmental & A is finite & A is empty ) by Th18; ::_thesis: verum end; end; definition mode array is segmental Function; end; registration let A be array; cluster proj1 A -> ordinal-membered ; coherence dom A is ordinal-membered proof consider a, b being ordinal number such that A1: dom A = a \ b by Def1; take a ; :: according to ORDINAL6:def_1 ::_thesis: dom A c= a thus dom A c= a by A1; ::_thesis: verum end; end; theorem :: EXCHSORT:19 for f being array holds ( f is 0 -limited iff f is empty ) proof let f be array; ::_thesis: ( f is 0 -limited iff f is empty ) thus ( f is 0 -limited implies f is empty ) ::_thesis: ( f is empty implies f is 0 -limited ) proof assume sup (dom f) = 0 ; :: according to EXCHSORT:def_3 ::_thesis: f is empty then dom f c= 0 by ORDINAL6:3; hence f is empty ; ::_thesis: verum end; assume f is empty ; ::_thesis: f is 0 -limited hence sup (dom f) = 0 by ORDINAL2:18; :: according to EXCHSORT:def_3 ::_thesis: verum end; registration cluster Relation-like Function-like segmental 0 -based -> T-Sequence-like for set ; coherence for b1 being array st b1 is 0 -based holds b1 is T-Sequence-like proof let s be array; ::_thesis: ( s is 0 -based implies s is T-Sequence-like ) assume A1: for b being ordinal number st b in proj1 s holds ( 0 in proj1 s & 0 c= b ) ; :: according to EXCHSORT:def_2 ::_thesis: s is T-Sequence-like consider c, a being ordinal number such that A2: dom s = c \ a by Def1; set x = the Element of c \ a; now__::_thesis:_(_c_\_a_<>_{}_implies_dom_s_=_c_) assume A3: c \ a <> {} ; ::_thesis: dom s = c then the Element of c \ a in c by XBOOLE_0:def_5; then 0 in dom s by A1, A2, A3; then 0 nin a by A2, XBOOLE_0:def_5; then a c= 0 by ORDINAL6:4; then a = 0 ; hence dom s = c by A2; ::_thesis: verum end; hence dom s is ordinal by A2; :: according to ORDINAL1:def_7 ::_thesis: verum end; end; definition let X be set ; mode array of X is X -valued array; end; definition let X be 1-sorted ; mode array of X is array of the carrier of X; end; definition let a be ordinal number ; let X be set ; mode array of a,X is a -defined array of X; end; theorem Th20: :: EXCHSORT:20 for f being Function holds base- f = inf (dom f) proof let f be Function; ::_thesis: base- f = inf (dom f) set A = f; set b = inf (dom f); A1: f is inf (dom f) -based by Th12; percases ( ex a being ordinal number st a in dom f or for a being ordinal number holds not a in dom f ) ; suppose ex a being ordinal number st a in dom f ; ::_thesis: base- f = inf (dom f) hence base- f = inf (dom f) by A1, Def4; ::_thesis: verum end; supposeA2: for a being ordinal number holds not a in dom f ; ::_thesis: base- f = inf (dom f) set x = the Element of On (dom f); now__::_thesis:_not_On_(dom_f)_<>_{} assume On (dom f) <> {} ; ::_thesis: contradiction then the Element of On (dom f) in dom f by ORDINAL1:def_9; hence contradiction by A2; ::_thesis: verum end; then inf (dom f) = 0 by SETFAM_1:def_1; hence base- f = inf (dom f) by A2, Def4; ::_thesis: verum end; end; end; theorem :: EXCHSORT:21 for f being Function holds f is base- f -based proof let f be Function; ::_thesis: f is base- f -based base- f = inf (dom f) by Th20; hence f is base- f -based by Th12; ::_thesis: verum end; theorem :: EXCHSORT:22 for A being array holds dom A = (limit- A) \ (base- A) proof let A be array; ::_thesis: dom A = (limit- A) \ (base- A) consider a, b being ordinal number such that A1: dom A = a \ b by Def1; A2: limit- A = sup (dom A) by Th16; A3: base- A = inf (dom A) by Th20; thus dom A c= (limit- A) \ (base- A) :: according to XBOOLE_0:def_10 ::_thesis: (limit- A) \ (base- A) c= dom A proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in dom A or x in (limit- A) \ (base- A) ) assume x in dom A ; ::_thesis: x in (limit- A) \ (base- A) then A4: ( base- A c= x & x in limit- A ) by A2, A3, ORDINAL2:14, ORDINAL2:19; then ( x in base- A implies x in x ) ; hence x in (limit- A) \ (base- A) by A4, XBOOLE_0:def_5; ::_thesis: verum end; let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in (limit- A) \ (base- A) or x in dom A ) assume A5: x in (limit- A) \ (base- A) ; ::_thesis: x in dom A then reconsider x = x as Ordinal ; ex c being ordinal number st ( c in dom A & x c= c ) by A2, A5, ORDINAL2:21; then ( a = limit- A & b = base- A ) by A1, A2, A3, Th6; hence x in dom A by A1, A5; ::_thesis: verum end; theorem Th23: :: EXCHSORT:23 for a, b being ordinal number for A being array st dom A = a \ b & not A is empty holds ( base- A = b & limit- A = a ) proof let a, b be ordinal number ; ::_thesis: for A being array st dom A = a \ b & not A is empty holds ( base- A = b & limit- A = a ) let A be array; ::_thesis: ( dom A = a \ b & not A is empty implies ( base- A = b & limit- A = a ) ) assume A1: ( dom A = a \ b & not A is empty ) ; ::_thesis: ( base- A = b & limit- A = a ) set x = the Element of dom A; dom A <> {} by A1; then A2: the Element of dom A in a \ b by A1; ( b c= the Element of dom A & the Element of dom A in a ) by A1, ORDINAL6:5; then A3: ( b in a & b nin b ) by ORDINAL1:12; then b in a \ b by XBOOLE_0:def_5; then A4: b in sup (dom A) by A1, ORDINAL2:19; A is b -based proof let c be ordinal number ; :: according to EXCHSORT:def_2 ::_thesis: ( c in proj1 A implies ( b in proj1 A & b c= c ) ) thus ( c in proj1 A implies ( b in proj1 A & b c= c ) ) by A1, A3, ORDINAL6:5; ::_thesis: verum end; hence base- A = b by Def4, A1, A2; ::_thesis: limit- A = a A5: a c= sup (dom A) proof let x be Ordinal; :: according to ORDINAL1:def_5 ::_thesis: ( not x in a or x in sup (dom A) ) assume A6: x in a ; ::_thesis: x in sup (dom A) percases ( x in b or x nin b ) ; suppose x in b ; ::_thesis: x in sup (dom A) hence x in sup (dom A) by A4, ORDINAL1:10; ::_thesis: verum end; suppose x nin b ; ::_thesis: x in sup (dom A) then x in a \ b by A6, XBOOLE_0:def_5; hence x in sup (dom A) by A1, ORDINAL2:19; ::_thesis: verum end; end; end; sup (dom A) c= sup a by A1, ORDINAL2:22; then sup (dom A) c= a by ORDINAL2:18; then a = sup (dom A) by A5, XBOOLE_0:def_10; hence limit- A = a by Th16; ::_thesis: verum end; theorem Th24: :: EXCHSORT:24 for f being T-Sequence holds ( base- f = 0 & limit- f = dom f & len- f = dom f ) proof let f be T-Sequence; ::_thesis: ( base- f = 0 & limit- f = dom f & len- f = dom f ) percases ( f = {} or f <> {} ) ; suppose f = {} ; ::_thesis: ( base- f = 0 & limit- f = dom f & len- f = dom f ) hence ( base- f = 0 & limit- f = dom f & len- f = dom f ) by Th15; ::_thesis: verum end; supposeA1: f <> {} ; ::_thesis: ( base- f = 0 & limit- f = dom f & len- f = dom f ) (dom f) \ 0 = dom f ; hence ( base- f = 0 & limit- f = dom f ) by A1, Th23; ::_thesis: len- f = dom f hence len- f = dom f by ORDINAL3:56; ::_thesis: verum end; end; end; registration let a, b be ordinal number ; let X be set ; cluster Relation-like a -defined X -valued INT -valued Function-like complex-valued real-valued natural-valued finite segmental b -based for set ; existence ex b1 being array of a,X st ( b1 is b -based & b1 is natural-valued & b1 is INT -valued & b1 is real-valued & b1 is complex-valued & b1 is finite ) proof set A = the empty array of a,X; take the empty array of a,X ; ::_thesis: ( the empty array of a,X is b -based & the empty array of a,X is natural-valued & the empty array of a,X is INT -valued & the empty array of a,X is real-valued & the empty array of a,X is complex-valued & the empty array of a,X is finite ) thus ( the empty array of a,X is b -based & the empty array of a,X is natural-valued & the empty array of a,X is INT -valued & the empty array of a,X is real-valued & the empty array of a,X is complex-valued & the empty array of a,X is finite ) by Th18; ::_thesis: verum end; end; registration let a be ordinal number ; let x be set ; cluster{[a,x]} -> segmental ; coherence {[a,x]} is segmental proof take succ a ; :: according to EXCHSORT:def_1 ::_thesis: ex b being ordinal number st proj1 {[a,x]} = (succ a) \ b take a ; ::_thesis: proj1 {[a,x]} = (succ a) \ a thus dom {[a,x]} = {a} by FUNCT_5:12 .= (succ a) \ a by Th4 ; ::_thesis: verum end; end; registration let a be ordinal number ; let x be Nat; cluster{[a,x]} -> natural-valued for array; coherence for b1 being array st b1 = {[a,x]} holds b1 is natural-valued proof let A be array; ::_thesis: ( A = {[a,x]} implies A is natural-valued ) assume A = {[a,x]} ; ::_thesis: A is natural-valued then rng A = {x} by FUNCT_5:12; then rng A c= NAT by MEMBERED:6; hence A is natural-valued by VALUED_0:def_6; ::_thesis: verum end; end; registration let a be ordinal number ; let x be real number ; cluster{[a,x]} -> real-valued for array; coherence for b1 being array st b1 = {[a,x]} holds b1 is real-valued proof let A be array; ::_thesis: ( A = {[a,x]} implies A is real-valued ) assume A = {[a,x]} ; ::_thesis: A is real-valued then rng A = {x} by FUNCT_5:12; then rng A c= REAL by MEMBERED:3; hence A is real-valued by VALUED_0:def_3; ::_thesis: verum end; end; registration let a be ordinal number ; let X be non empty set ; let x be Element of X; cluster{[a,x]} -> X -valued for array; coherence for b1 being array st b1 = {[a,x]} holds b1 is X -valued proof let A be array; ::_thesis: ( A = {[a,x]} implies A is X -valued ) assume A = {[a,x]} ; ::_thesis: A is X -valued then rng A = {x} by FUNCT_5:12; hence rng A c= X by ZFMISC_1:31; :: according to RELAT_1:def_19 ::_thesis: verum end; end; registration let a be ordinal number ; let x be set ; cluster{[a,x]} -> a -based succ a -limited for array; coherence for b1 being array st b1 = {[a,x]} holds ( b1 is a -based & b1 is succ a -limited ) proof let s be array; ::_thesis: ( s = {[a,x]} implies ( s is a -based & s is succ a -limited ) ) assume A1: s = {[a,x]} ; ::_thesis: ( s is a -based & s is succ a -limited ) A2: dom s = {a} by A1, FUNCT_5:12; thus s is a -based ::_thesis: s is succ a -limited proof let b be ordinal number ; :: according to EXCHSORT:def_2 ::_thesis: ( b in proj1 s implies ( a in proj1 s & a c= b ) ) assume A3: b in proj1 s ; ::_thesis: ( a in proj1 s & a c= b ) thus ( a in proj1 s & a c= b ) by A3, A2, TARSKI:def_1; ::_thesis: verum end; sup (dom s) = succ a by A2, ORDINAL2:23; hence s is succ a -limited by Def3; ::_thesis: verum end; end; registration let b be ordinal number ; cluster non empty Relation-like INT -valued Function-like complex-valued real-valued natural-valued finite segmental b -based for set ; existence ex b1 being array st ( not b1 is empty & b1 is b -based & b1 is natural-valued & b1 is INT -valued & b1 is real-valued & b1 is complex-valued & b1 is finite ) proof set x = the Nat; reconsider A = {[b, the Nat]} as natural-valued array ; take A ; ::_thesis: ( not A is empty & A is b -based & A is natural-valued & A is INT -valued & A is real-valued & A is complex-valued & A is finite ) thus ( not A is empty & A is b -based & A is natural-valued & A is INT -valued & A is real-valued & A is complex-valued & A is finite ) ; ::_thesis: verum end; let X be non empty set ; cluster non empty Relation-like X -valued Function-like finite segmental b -based for set ; existence ex b1 being array st ( not b1 is empty & b1 is b -based & b1 is finite & b1 is X -valued ) proof set x = the Element of X; reconsider A = {[b, the Element of X]} as array of X ; take A ; ::_thesis: ( not A is empty & A is b -based & A is finite & A is X -valued ) thus ( not A is empty & A is b -based & A is finite & A is X -valued ) ; ::_thesis: verum end; end; notation let s be T-Sequence; synonym s last for last s; end; definition let A be array; func last A -> set equals :: EXCHSORT:def 7 A . (union (dom A)); coherence A . (union (dom A)) is set ; end; :: deftheorem defines last EXCHSORT:def_7_:_ for A being array holds last A = A . (union (dom A)); registration let A be T-Sequence; identifyA last with last A; compatibility A last = last A ; end; begin definition let f be Function; attrf is descending means :Def8: :: EXCHSORT:def 8 for a, b being ordinal number st a in dom f & b in dom f & a in b holds f . b c< f . a; end; :: deftheorem Def8 defines descending EXCHSORT:def_8_:_ for f being Function holds ( f is descending iff for a, b being ordinal number st a in dom f & b in dom f & a in b holds f . b c< f . a ); theorem :: EXCHSORT:25 for f being finite array st ( for a being ordinal number st a in dom f & succ a in dom f holds f . (succ a) c< f . a ) holds f is descending proof let f be finite array; ::_thesis: ( ( for a being ordinal number st a in dom f & succ a in dom f holds f . (succ a) c< f . a ) implies f is descending ) assume A1: for a being ordinal number st a in dom f & succ a in dom f holds f . (succ a) c< f . a ; ::_thesis: f is descending let a be ordinal number ; :: according to EXCHSORT:def_8 ::_thesis: for b being ordinal number st a in dom f & b in dom f & a in b holds f . b c< f . a let b be ordinal number ; ::_thesis: ( a in dom f & b in dom f & a in b implies f . b c< f . a ) assume A2: ( a in dom f & b in dom f & a in b ) ; ::_thesis: f . b c< f . a consider c, d being ordinal number such that A3: dom f = c \ d by Def1; consider n being Nat such that A4: c = d +^ n by A2, A3, Th7; consider e1 being Ordinal such that A5: ( a = d +^ e1 & e1 in n ) by A2, A3, A4, Th1; consider e2 being Ordinal such that A6: ( b = d +^ e2 & e2 in n ) by A2, A3, A4, Th1; reconsider e1 = e1, e2 = e2 as Nat by A5, A6; reconsider se1 = succ e1 as Element of NAT by ORDINAL1:def_12; A7: succ a = d +^ (succ e1) by A5, ORDINAL2:28; e1 in e2 by A2, A5, A6, ORDINAL3:22; then succ e1 c= e2 by ORDINAL1:21; then succ e1 <= e2 by NAT_1:39; then consider k being Nat such that A8: e2 = se1 + k by NAT_1:10; reconsider k = k as Element of NAT by ORDINAL1:def_12; deffunc H1( Ordinal) -> set = (succ a) +^ $1; defpred S9[ Nat] means ( H1($1) in dom f implies f . H1($1) c< f . a ); H1( 0 ) = succ a by ORDINAL2:27; then A9: S9[ 0 ] by A1, A2; A10: for k being Nat st S9[k] holds S9[k + 1] proof let k be Nat; ::_thesis: ( S9[k] implies S9[k + 1] ) k + 1 = succ k by NAT_1:38; then A11: H1(k + 1) = succ H1(k) by ORDINAL2:28; then A12: ( H1(k) in H1(k + 1) & a in succ a ) by ORDINAL1:6; then A13: ( H1(k) c= H1(k + 1) & a c= succ a ) by ORDINAL1:def_2; succ a c= H1(k) by ORDINAL3:24; then A14: a c= H1(k) by A12, ORDINAL1:def_2; assume A15: ( S9[k] & H1(k + 1) in dom f ) ; ::_thesis: f . H1(k + 1) c< f . a then H1(k) in dom f by A2, A13, A14, Th9; then ( f . H1(k) c< f . a & f . H1(k + 1) c< f . H1(k) ) by A1, A11, A15; hence f . H1(k + 1) c< f . a by XBOOLE_1:56; ::_thesis: verum end; A16: for k being Nat holds S9[k] from NAT_1:sch_2(A9, A10); b = d +^ (se1 +^ k) by A6, A8, CARD_2:36 .= (succ a) +^ k by A7, ORDINAL3:30 ; hence f . b c< f . a by A2, A16; ::_thesis: verum end; theorem Th26: :: EXCHSORT:26 for f being array st len- f = omega & ( for a being ordinal number st a in dom f & succ a in dom f holds f . (succ a) c< f . a ) holds f is descending proof let f be array; ::_thesis: ( len- f = omega & ( for a being ordinal number st a in dom f & succ a in dom f holds f . (succ a) c< f . a ) implies f is descending ) assume A1: len- f = omega ; ::_thesis: ( ex a being ordinal number st ( a in dom f & succ a in dom f & not f . (succ a) c< f . a ) or f is descending ) assume A2: for a being ordinal number st a in dom f & succ a in dom f holds f . (succ a) c< f . a ; ::_thesis: f is descending let a be ordinal number ; :: according to EXCHSORT:def_8 ::_thesis: for b being ordinal number st a in dom f & b in dom f & a in b holds f . b c< f . a let b be ordinal number ; ::_thesis: ( a in dom f & b in dom f & a in b implies f . b c< f . a ) assume A3: ( a in dom f & b in dom f & a in b ) ; ::_thesis: f . b c< f . a consider c, d being ordinal number such that A4: dom f = c \ d by Def1; not f is empty by A3; then A5: ( base- f = d & limit- f = c ) by A4, Th23; ( d c= a & a in c ) by A3, A4, ORDINAL6:5; then d in c by ORDINAL1:12; then d c= c by ORDINAL1:def_2; then A6: c = d +^ omega by A5, A1, ORDINAL3:def_5; consider e1 being Ordinal such that A7: ( a = d +^ e1 & e1 in omega ) by A3, A4, A6, Th1; consider e2 being Ordinal such that A8: ( b = d +^ e2 & e2 in omega ) by A3, A4, A6, Th1; reconsider e1 = e1, e2 = e2 as Nat by A7, A8; reconsider se1 = succ e1 as Element of NAT by ORDINAL1:def_12; A9: succ a = d +^ (succ e1) by A7, ORDINAL2:28; e1 in e2 by A3, A7, A8, ORDINAL3:22; then succ e1 c= e2 by ORDINAL1:21; then succ e1 <= e2 by NAT_1:39; then consider k being Nat such that A10: e2 = se1 + k by NAT_1:10; reconsider k = k as Element of NAT by ORDINAL1:def_12; deffunc H1( Ordinal) -> set = (succ a) +^ $1; defpred S9[ Nat] means ( H1($1) in dom f implies f . H1($1) c< f . a ); H1( 0 ) = succ a by ORDINAL2:27; then A11: S9[ 0 ] by A2, A3; A12: for k being Nat st S9[k] holds S9[k + 1] proof let k be Nat; ::_thesis: ( S9[k] implies S9[k + 1] ) k + 1 = succ k by NAT_1:38; then A13: H1(k + 1) = succ H1(k) by ORDINAL2:28; then A14: ( H1(k) in H1(k + 1) & a in succ a ) by ORDINAL1:6; then A15: ( H1(k) c= H1(k + 1) & a c= succ a ) by ORDINAL1:def_2; succ a c= H1(k) by ORDINAL3:24; then A16: a c= H1(k) by A14, ORDINAL1:def_2; assume A17: ( S9[k] & H1(k + 1) in dom f ) ; ::_thesis: f . H1(k + 1) c< f . a then H1(k) in dom f by A3, A15, A16, Th9; then ( f . H1(k) c< f . a & f . H1(k + 1) c< f . H1(k) ) by A2, A13, A17; hence f . H1(k + 1) c< f . a by XBOOLE_1:56; ::_thesis: verum end; A18: for k being Nat holds S9[k] from NAT_1:sch_2(A11, A12); b = d +^ (se1 +^ k) by A8, A10, CARD_2:36 .= (succ a) +^ k by A9, ORDINAL3:30 ; hence f . b c< f . a by A3, A18; ::_thesis: verum end; theorem Th27: :: EXCHSORT:27 for f being T-Sequence st f is descending & f . 0 is finite holds f is finite proof let f be T-Sequence; ::_thesis: ( f is descending & f . 0 is finite implies f is finite ) assume A1: f is descending ; ::_thesis: ( not f . 0 is finite or f is finite ) assume A2: f . 0 is finite ; ::_thesis: f is finite deffunc H1( set ) -> set = card (f . $1); consider g being T-Sequence such that A3: ( dom g = dom f & ( for a being ordinal number st a in dom f holds g . a = H1(a) ) ) from ORDINAL2:sch_2(); defpred S9[ set ] means f . $1 is finite ; A4: S9[ {} ] by A2; A5: for a being ordinal number st S9[a] holds S9[ succ a] proof let a be ordinal number ; ::_thesis: ( S9[a] implies S9[ succ a] ) percases ( succ a nin dom f or succ a in dom f ) ; suppose succ a nin dom f ; ::_thesis: ( S9[a] implies S9[ succ a] ) hence ( S9[a] implies S9[ succ a] ) by FUNCT_1:def_2; ::_thesis: verum end; supposeA6: succ a in dom f ; ::_thesis: ( S9[a] implies S9[ succ a] ) A7: a in succ a by ORDINAL1:6; then a in dom f by A6, ORDINAL1:10; then f . (succ a) c< f . a by A1, A6, A7, Def8; then f . (succ a) c= f . a by XBOOLE_0:def_8; hence ( S9[a] implies S9[ succ a] ) ; ::_thesis: verum end; end; end; A8: for a being ordinal number st a <> {} & a is limit_ordinal & ( for b being ordinal number st b in a holds S9[b] ) holds S9[a] proof let a be ordinal number ; ::_thesis: ( a <> {} & a is limit_ordinal & ( for b being ordinal number st b in a holds S9[b] ) implies S9[a] ) assume a <> {} ; ::_thesis: ( not a is limit_ordinal or ex b being ordinal number st ( b in a & not S9[b] ) or S9[a] ) then A9: 0 in a by ORDINAL3:8; percases ( a in dom f or a nin dom f ) ; suppose a in dom f ; ::_thesis: ( not a is limit_ordinal or ex b being ordinal number st ( b in a & not S9[b] ) or S9[a] ) then ( 0 in dom f & a in dom f ) by ORDINAL3:8; then f . a c< f . 0 by A1, A9, Def8; then f . a c= f . 0 by XBOOLE_0:def_8; hence ( not a is limit_ordinal or ex b being ordinal number st ( b in a & not S9[b] ) or S9[a] ) by A2; ::_thesis: verum end; suppose a nin dom f ; ::_thesis: ( not a is limit_ordinal or ex b being ordinal number st ( b in a & not S9[b] ) or S9[a] ) hence ( not a is limit_ordinal or ex b being ordinal number st ( b in a & not S9[b] ) or S9[a] ) by FUNCT_1:def_2; ::_thesis: verum end; end; end; A10: for a being ordinal number holds S9[a] from ORDINAL2:sch_1(A4, A5, A8); g is decreasing proof let a be ordinal number ; :: according to ORDINAL5:def_1 ::_thesis: for b1 being set holds ( not a in b1 or not b1 in proj1 g or g . b1 in g . a ) let b be ordinal number ; ::_thesis: ( not a in b or not b in proj1 g or g . b in g . a ) assume A11: ( a in b & b in dom g ) ; ::_thesis: g . b in g . a then a in dom f by A3, ORDINAL1:10; then ( g . a = H1(a) & f . a is finite & f . b c< f . a & g . b = H1(b) & f . b is finite ) by A1, A3, A11, A10, Def8; hence g . b in g . a by CARD_2:48; ::_thesis: verum end; hence f is finite by A3, FINSET_1:10; ::_thesis: verum end; theorem :: EXCHSORT:28 for f being T-Sequence st f is descending & f . 0 is finite & ( for a being ordinal number st f . a <> {} holds succ a in dom f ) holds last f = {} proof let f be T-Sequence; ::_thesis: ( f is descending & f . 0 is finite & ( for a being ordinal number st f . a <> {} holds succ a in dom f ) implies last f = {} ) assume that A1: ( f is descending & f . 0 is finite ) and A2: for a being ordinal number st f . a <> {} holds succ a in dom f ; ::_thesis: last f = {} f is finite by A1, Th27; then reconsider d = dom f as finite Ordinal ; set u = union d; percases ( d = 0 or d <> 0 ) ; suppose d = 0 ; ::_thesis: last f = {} hence last f = {} by FUNCT_1:def_2; ::_thesis: verum end; suppose d <> 0 ; ::_thesis: last f = {} then consider n being Nat such that A3: d = n + 1 by NAT_1:6; A4: d = succ n by A3, NAT_1:38; then A5: union d = n by ORDINAL2:2; ( f . (union d) <> 0 implies d in d ) by A2, A4, A5; hence last f = {} ; ::_thesis: verum end; end; end; scheme :: EXCHSORT:sch 1 A{ F1() -> T-Sequence, F2( set ) -> set } : F1() is finite provided A1: F2((F1() . 0)) is finite and A2: for a being ordinal number st succ a in dom F1() & F2((F1() . a)) is finite holds F2((F1() . (succ a))) c< F2((F1() . a)) proof deffunc H1( set ) -> set = F2((F1() . $1)); consider F being T-Sequence such that A3: ( dom F = dom F1() & ( for a being ordinal number st a in dom F1() holds F . a = H1(a) ) ) from ORDINAL2:sch_2(); percases ( dom F in omega or omega c= dom F ) by ORDINAL6:4; suppose dom F in omega ; ::_thesis: F1() is finite hence F1() is finite by A3, FINSET_1:10; ::_thesis: verum end; supposeA4: omega c= dom F ; ::_thesis: F1() is finite set f = F | omega; A5: dom (F | omega) = omega by A4, RELAT_1:62; A6: len- (F | omega) = dom (F | omega) by Th24; A7: 0 in omega by ORDINAL1:def_11; A8: (F | omega) . 0 = F . 0 by A7, A5, FUNCT_1:47 .= H1( 0 ) by A3, A7, A4 ; defpred S9[ Nat] means (F | omega) . $1 is finite ; A9: S9[ 0 ] by A1, A8; A10: for n being Nat st S9[n] holds S9[n + 1] proof let n be Nat; ::_thesis: ( S9[n] implies S9[n + 1] ) set a = n; assume A11: S9[n] ; ::_thesis: S9[n + 1] A12: ( n in omega & succ n in omega ) by ORDINAL1:def_12; then A13: ( n in dom F & succ n in dom F & (F | omega) . n = F . n & (F | omega) . (succ n) = F . (succ n) ) by A4, A5, FUNCT_1:47; ( F . n = H1(n) & F . (succ n) = H1( succ n) ) by A3, A4, A12; then (F | omega) . (succ n) c< (F | omega) . n by A2, A3, A11, A13; then (F | omega) . (succ n) c= (F | omega) . n by XBOOLE_0:def_8; hence S9[n + 1] by A11, NAT_1:38; ::_thesis: verum end; A14: for n being Nat holds S9[n] from NAT_1:sch_2(A9, A10); for a being ordinal number st a in dom (F | omega) & succ a in dom (F | omega) holds (F | omega) . (succ a) c< (F | omega) . a proof let a be ordinal number ; ::_thesis: ( a in dom (F | omega) & succ a in dom (F | omega) implies (F | omega) . (succ a) c< (F | omega) . a ) assume A15: ( a in dom (F | omega) & succ a in dom (F | omega) ) ; ::_thesis: (F | omega) . (succ a) c< (F | omega) . a then reconsider n = a as Nat by A5; A16: ( S9[n] & (F | omega) . a = F . a & (F | omega) . (succ a) = F . (succ a) ) by A15, A14, FUNCT_1:47; ( F . a = H1(a) & F . (succ a) = H1( succ a) ) by A3, A15, A4, A5; hence (F | omega) . (succ a) c< (F | omega) . a by A2, A3, A16, A15, A4, A5; ::_thesis: verum end; then F | omega is descending by A6, Th26, A4, RELAT_1:62; then F | omega is finite by A1, A8, Th27; hence F1() is finite by A5; ::_thesis: verum end; end; end; begin registration let X be set ; let f be X -defined Function; let a, b be set ; cluster Swap (f,a,b) -> X -defined ; coherence Swap (f,a,b) is X -defined proof dom (Swap (f,a,b)) = dom f by FUNCT_7:99; hence dom (Swap (f,a,b)) c= X ; :: according to RELAT_1:def_18 ::_thesis: verum end; end; registration let X be set ; let f be X -valued Function; let x, y be set ; cluster Swap (f,x,y) -> X -valued ; coherence Swap (f,x,y) is X -valued proof rng (Swap (f,x,y)) = rng f by FUNCT_7:103; hence rng (Swap (f,x,y)) c= X by RELAT_1:def_19; :: according to RELAT_1:def_19 ::_thesis: verum end; end; theorem Th29: :: EXCHSORT:29 for x, y being set for f being Function st x in dom f & y in dom f holds (Swap (f,x,y)) . x = f . y proof let x, y be set ; ::_thesis: for f being Function st x in dom f & y in dom f holds (Swap (f,x,y)) . x = f . y let f be Function; ::_thesis: ( x in dom f & y in dom f implies (Swap (f,x,y)) . x = f . y ) assume A1: ( x in dom f & y in dom f ) ; ::_thesis: (Swap (f,x,y)) . x = f . y then A2: Swap (f,x,y) = (f +* (x,(f . y))) +* (y,(f . x)) by FUNCT_7:def_12; A3: dom f = dom (f +* (x,(f . y))) by FUNCT_7:30; now__::_thesis:_(_x_<>_y_implies_(Swap_(f,x,y))_._x_=_f_._y_) assume x <> y ; ::_thesis: (Swap (f,x,y)) . x = f . y then (Swap (f,x,y)) . x = (f +* (x,(f . y))) . x by A2, FUNCT_7:32; hence (Swap (f,x,y)) . x = f . y by A1, FUNCT_7:31; ::_thesis: verum end; hence (Swap (f,x,y)) . x = f . y by A3, A1, A2, FUNCT_7:31; ::_thesis: verum end; theorem Th30: :: EXCHSORT:30 for X, x, y being set for f being array of X st x in dom f & y in dom f holds (Swap (f,x,y)) /. x = f /. y proof let X, x, y be set ; ::_thesis: for f being array of X st x in dom f & y in dom f holds (Swap (f,x,y)) /. x = f /. y let f be array of X; ::_thesis: ( x in dom f & y in dom f implies (Swap (f,x,y)) /. x = f /. y ) assume A1: ( x in dom f & y in dom f ) ; ::_thesis: (Swap (f,x,y)) /. x = f /. y dom (Swap (f,x,y)) = dom f by FUNCT_7:99; hence (Swap (f,x,y)) /. x = (Swap (f,x,y)) . x by A1, PARTFUN1:def_6 .= f . y by A1, Th29 .= f /. y by A1, PARTFUN1:def_6 ; ::_thesis: verum end; theorem Th31: :: EXCHSORT:31 for x, y being set for f being Function st x in dom f & y in dom f holds (Swap (f,x,y)) . y = f . x proof let x, y be set ; ::_thesis: for f being Function st x in dom f & y in dom f holds (Swap (f,x,y)) . y = f . x let f be Function; ::_thesis: ( x in dom f & y in dom f implies (Swap (f,x,y)) . y = f . x ) assume A1: ( x in dom f & y in dom f ) ; ::_thesis: (Swap (f,x,y)) . y = f . x then A2: Swap (f,x,y) = (f +* (x,(f . y))) +* (y,(f . x)) by FUNCT_7:def_12; dom f = dom (f +* (x,(f . y))) by FUNCT_7:30; hence (Swap (f,x,y)) . y = f . x by A1, A2, FUNCT_7:31; ::_thesis: verum end; theorem Th32: :: EXCHSORT:32 for X, x, y being set for f being array of X st x in dom f & y in dom f holds (Swap (f,x,y)) /. y = f /. x proof let X, x, y be set ; ::_thesis: for f being array of X st x in dom f & y in dom f holds (Swap (f,x,y)) /. y = f /. x let f be array of X; ::_thesis: ( x in dom f & y in dom f implies (Swap (f,x,y)) /. y = f /. x ) assume A1: ( x in dom f & y in dom f ) ; ::_thesis: (Swap (f,x,y)) /. y = f /. x dom (Swap (f,x,y)) = dom f by FUNCT_7:99; hence (Swap (f,x,y)) /. y = (Swap (f,x,y)) . y by A1, PARTFUN1:def_6 .= f . x by A1, Th31 .= f /. x by A1, PARTFUN1:def_6 ; ::_thesis: verum end; theorem Th33: :: EXCHSORT:33 for z, x, y being set for f being Function st z <> x & z <> y holds (Swap (f,x,y)) . z = f . z proof let z, x, y be set ; ::_thesis: for f being Function st z <> x & z <> y holds (Swap (f,x,y)) . z = f . z let f be Function; ::_thesis: ( z <> x & z <> y implies (Swap (f,x,y)) . z = f . z ) assume A1: ( z <> x & z <> y ) ; ::_thesis: (Swap (f,x,y)) . z = f . z percases ( ( x in dom f & y in dom f ) or not x in dom f or not y in dom f ) ; suppose ( x in dom f & y in dom f ) ; ::_thesis: (Swap (f,x,y)) . z = f . z then Swap (f,x,y) = (f +* (x,(f . y))) +* (y,(f . x)) by FUNCT_7:def_12; hence (Swap (f,x,y)) . z = (f +* (x,(f . y))) . z by A1, FUNCT_7:32 .= f . z by A1, FUNCT_7:32 ; ::_thesis: verum end; suppose ( not x in dom f or not y in dom f ) ; ::_thesis: (Swap (f,x,y)) . z = f . z hence (Swap (f,x,y)) . z = f . z by FUNCT_7:def_12; ::_thesis: verum end; end; end; theorem Th34: :: EXCHSORT:34 for X, z, x, y being set for f being array of X st z in dom f & z <> x & z <> y holds (Swap (f,x,y)) /. z = f /. z proof let X, z, x, y be set ; ::_thesis: for f being array of X st z in dom f & z <> x & z <> y holds (Swap (f,x,y)) /. z = f /. z let f be array of X; ::_thesis: ( z in dom f & z <> x & z <> y implies (Swap (f,x,y)) /. z = f /. z ) assume A1: ( z in dom f & z <> x & z <> y ) ; ::_thesis: (Swap (f,x,y)) /. z = f /. z dom (Swap (f,x,y)) = dom f by FUNCT_7:99; hence (Swap (f,x,y)) /. z = (Swap (f,x,y)) . z by A1, PARTFUN1:def_6 .= f . z by A1, Th33 .= f /. z by A1, PARTFUN1:def_6 ; ::_thesis: verum end; theorem :: EXCHSORT:35 for x, y being set for f being Function st x in dom f & y in dom f holds Swap (f,x,y) = Swap (f,y,x) proof let x, y be set ; ::_thesis: for f being Function st x in dom f & y in dom f holds Swap (f,x,y) = Swap (f,y,x) let f be Function; ::_thesis: ( x in dom f & y in dom f implies Swap (f,x,y) = Swap (f,y,x) ) assume A1: ( x in dom f & y in dom f ) ; ::_thesis: Swap (f,x,y) = Swap (f,y,x) A2: ( dom (Swap (f,x,y)) = dom f & dom (Swap (f,y,x)) = dom f ) by FUNCT_7:99; now__::_thesis:_for_z_being_set_st_z_in_dom_f_holds_ (Swap_(f,x,y))_._z_=_(Swap_(f,y,x))_._z let z be set ; ::_thesis: ( z in dom f implies (Swap (f,x,y)) . b1 = (Swap (f,y,x)) . b1 ) assume z in dom f ; ::_thesis: (Swap (f,x,y)) . b1 = (Swap (f,y,x)) . b1 percases ( ( z = x & z = y ) or ( z = x & z <> y ) or ( z <> x & z = y ) or ( z <> x & z <> y ) ) ; suppose ( z = x & z = y ) ; ::_thesis: (Swap (f,x,y)) . b1 = (Swap (f,y,x)) . b1 hence (Swap (f,x,y)) . z = (Swap (f,y,x)) . z ; ::_thesis: verum end; suppose ( z = x & z <> y ) ; ::_thesis: (Swap (f,x,y)) . b1 = (Swap (f,y,x)) . b1 then ( (Swap (f,x,y)) . z = f . y & (Swap (f,y,x)) . z = f . y ) by A1, Th29, Th31; hence (Swap (f,x,y)) . z = (Swap (f,y,x)) . z ; ::_thesis: verum end; suppose ( z <> x & z = y ) ; ::_thesis: (Swap (f,x,y)) . b1 = (Swap (f,y,x)) . b1 then ( (Swap (f,x,y)) . z = f . x & (Swap (f,y,x)) . z = f . x ) by A1, Th29, Th31; hence (Swap (f,x,y)) . z = (Swap (f,y,x)) . z ; ::_thesis: verum end; suppose ( z <> x & z <> y ) ; ::_thesis: (Swap (f,x,y)) . b1 = (Swap (f,y,x)) . b1 then ( (Swap (f,x,y)) . z = f . z & (Swap (f,y,x)) . z = f . z ) by Th33; hence (Swap (f,x,y)) . z = (Swap (f,y,x)) . z ; ::_thesis: verum end; end; end; hence Swap (f,x,y) = Swap (f,y,x) by A2, FUNCT_1:2; ::_thesis: verum end; registration let X be non empty set ; cluster non empty Relation-like X -valued Function-like onto for set ; existence ex b1 being non empty X -valued Function st b1 is onto proof take id X ; ::_thesis: id X is onto thus id X is onto ; ::_thesis: verum end; end; registration let X be non empty set ; let f be non empty X -valued onto Function; let x, y be Element of dom f; cluster Swap (f,x,y) -> onto ; coherence Swap (f,x,y) is onto proof rng (Swap (f,x,y)) = rng f by FUNCT_7:103; hence rng (Swap (f,x,y)) = X by FUNCT_2:def_3; :: according to FUNCT_2:def_3 ::_thesis: verum end; end; registration let A be array; let x, y be set ; cluster Swap (A,x,y) -> segmental ; coherence Swap (A,x,y) is segmental proof consider a1, a2 being ordinal number such that A1: dom A = a1 \ a2 by Def1; take a1 ; :: according to EXCHSORT:def_1 ::_thesis: ex b being ordinal number st proj1 (Swap (A,x,y)) = a1 \ b take a2 ; ::_thesis: proj1 (Swap (A,x,y)) = a1 \ a2 thus proj1 (Swap (A,x,y)) = a1 \ a2 by A1, FUNCT_7:99; ::_thesis: verum end; end; theorem :: EXCHSORT:36 for x, y being set for A being array st x in dom A & y in dom A holds Swap ((Swap (A,x,y)),x,y) = A proof let x, y be set ; ::_thesis: for A being array st x in dom A & y in dom A holds Swap ((Swap (A,x,y)),x,y) = A let A be array; ::_thesis: ( x in dom A & y in dom A implies Swap ((Swap (A,x,y)),x,y) = A ) assume A1: ( x in dom A & y in dom A ) ; ::_thesis: Swap ((Swap (A,x,y)),x,y) = A set B = Swap (A,x,y); set C = Swap ((Swap (A,x,y)),x,y); A2: ( dom (Swap ((Swap (A,x,y)),x,y)) = dom (Swap (A,x,y)) & dom (Swap (A,x,y)) = dom A ) by FUNCT_7:99; now__::_thesis:_for_z_being_set_st_z_in_dom_(Swap_(A,x,y))_holds_ (Swap_((Swap_(A,x,y)),x,y))_._z_=_A_._z let z be set ; ::_thesis: ( z in dom (Swap (A,x,y)) implies (Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1 ) assume z in dom (Swap (A,x,y)) ; ::_thesis: (Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1 percases ( ( z <> x & z <> y ) or z = x or z = y ) ; supposeA3: ( z <> x & z <> y ) ; ::_thesis: (Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1 hence (Swap ((Swap (A,x,y)),x,y)) . z = (Swap (A,x,y)) . z by Th33 .= A . z by A3, Th33 ; ::_thesis: verum end; supposeA4: z = x ; ::_thesis: (Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1 hence (Swap ((Swap (A,x,y)),x,y)) . z = (Swap (A,x,y)) . y by A1, A2, Th29 .= A . z by A1, A4, Th31 ; ::_thesis: verum end; supposeA5: z = y ; ::_thesis: (Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1 hence (Swap ((Swap (A,x,y)),x,y)) . z = (Swap (A,x,y)) . x by A1, A2, Th31 .= A . z by A1, A5, Th29 ; ::_thesis: verum end; end; end; hence Swap ((Swap (A,x,y)),x,y) = A by A2, FUNCT_1:2; ::_thesis: verum end; registration let A be real-valued array; let x, y be set ; cluster Swap (A,x,y) -> real-valued for array; coherence for b1 being array st b1 = Swap (A,x,y) holds b1 is real-valued proof let B be array; ::_thesis: ( B = Swap (A,x,y) implies B is real-valued ) assume A1: B = Swap (A,x,y) ; ::_thesis: B is real-valued let z be set ; :: according to VALUED_0:def_9 ::_thesis: ( not z in proj1 B or B . z is real ) assume z in dom B ; ::_thesis: B . z is real then A2: ( z in dom A & ( x = z or x <> z ) & ( y = z or y <> z ) ) by A1, FUNCT_7:99; ( ( not x in dom A or not y in dom A ) implies B = A ) by A1, FUNCT_7:def_12; then ( B . z = A . y or B . z = A . x or B . z = A . z ) by A1, A2, Th29, Th31, Th33; hence B . z is real ; ::_thesis: verum end; end; begin definition let A be array; mode permutation of A -> array means :Def9: :: EXCHSORT:def 9 ex f being Permutation of (dom A) st it = A * f; existence ex b1 being array ex f being Permutation of (dom A) st b1 = A * f proof take A ; ::_thesis: ex f being Permutation of (dom A) st A = A * f take id (dom A) ; ::_thesis: A = A * (id (dom A)) thus A = A * (id (dom A)) by RELAT_1:51; ::_thesis: verum end; end; :: deftheorem Def9 defines permutation EXCHSORT:def_9_:_ for A, b2 being array holds ( b2 is permutation of A iff ex f being Permutation of (dom A) st b2 = A * f ); theorem Th37: :: EXCHSORT:37 for A being array for B being permutation of A holds ( dom B = dom A & rng B = rng A ) proof let A be array; ::_thesis: for B being permutation of A holds ( dom B = dom A & rng B = rng A ) let B be permutation of A; ::_thesis: ( dom B = dom A & rng B = rng A ) consider f being Permutation of (dom A) such that A1: B = A * f by Def9; ( dom A <> {} implies dom A <> {} ) ; then ( rng f = dom A & dom f = dom A ) by FUNCT_2:def_1, FUNCT_2:def_3; hence ( dom B = dom A & rng B = rng A ) by A1, RELAT_1:27, RELAT_1:28; ::_thesis: verum end; theorem Th38: :: EXCHSORT:38 for A being array holds A is permutation of A proof let A be array; ::_thesis: A is permutation of A take id (dom A) ; :: according to EXCHSORT:def_9 ::_thesis: A = A * (id (dom A)) thus A = A * (id (dom A)) by RELAT_1:51; ::_thesis: verum end; theorem Th39: :: EXCHSORT:39 for A, B being array st A is permutation of B holds B is permutation of A proof let A, B be array; ::_thesis: ( A is permutation of B implies B is permutation of A ) assume A1: A is permutation of B ; ::_thesis: B is permutation of A then A2: dom A = dom B by Th37; consider f being Permutation of (dom B) such that A3: A = B * f by A1, Def9; reconsider g = f " as Permutation of (dom A) by A2; take g ; :: according to EXCHSORT:def_9 ::_thesis: B = A * g thus B = B * (id (dom B)) by RELAT_1:52 .= B * (f * g) by FUNCT_2:61 .= A * g by A3, RELAT_1:36 ; ::_thesis: verum end; theorem Th40: :: EXCHSORT:40 for A, B, C being array st A is permutation of B & B is permutation of C holds A is permutation of C proof let A, B, C be array; ::_thesis: ( A is permutation of B & B is permutation of C implies A is permutation of C ) assume A1: ( A is permutation of B & B is permutation of C ) ; ::_thesis: A is permutation of C then A2: dom C = dom B by Th37; consider f being Permutation of (dom B) such that A3: A = B * f by A1, Def9; consider g being Permutation of (dom C) such that A4: B = C * g by A1, Def9; reconsider h = g * f as Permutation of (dom C) by A2; take h ; :: according to EXCHSORT:def_9 ::_thesis: A = C * h thus A = C * h by A3, A4, RELAT_1:36; ::_thesis: verum end; theorem Th41: :: EXCHSORT:41 for X, x, y being set holds Swap ((id X),x,y) is one-to-one proof let X, x, y be set ; ::_thesis: Swap ((id X),x,y) is one-to-one A1: dom (id X) = X ; percases ( ( x in X & y in X ) or not x in X or not y in X ) ; supposeA2: ( x in X & y in X ) ; ::_thesis: Swap ((id X),x,y) is one-to-one set g = id X; set f = Swap ((id X),x,y); let z be set ; :: according to FUNCT_1:def_4 ::_thesis: for b1 being set holds ( not z in proj1 (Swap ((id X),x,y)) or not b1 in proj1 (Swap ((id X),x,y)) or not (Swap ((id X),x,y)) . z = (Swap ((id X),x,y)) . b1 or z = b1 ) let t be set ; ::_thesis: ( not z in proj1 (Swap ((id X),x,y)) or not t in proj1 (Swap ((id X),x,y)) or not (Swap ((id X),x,y)) . z = (Swap ((id X),x,y)) . t or z = t ) assume A3: ( z in dom (Swap ((id X),x,y)) & t in dom (Swap ((id X),x,y)) & (Swap ((id X),x,y)) . z = (Swap ((id X),x,y)) . t ) ; ::_thesis: z = t A4: ( (id X) . z = z & (id X) . t = t & (id X) . x = x & (id X) . y = y ) by A2, A3, FUNCT_1:17; then A5: ( ( z = x implies (Swap ((id X),x,y)) . z = y ) & ( z = y implies (Swap ((id X),x,y)) . z = x ) & ( z <> x & z <> y implies (Swap ((id X),x,y)) . z = z ) ) by A2, A1, Th29, Th31, Th33; ( ( t = x implies (Swap ((id X),x,y)) . t = y ) & ( t = y implies (Swap ((id X),x,y)) . t = x ) & ( t <> x & t <> y implies (Swap ((id X),x,y)) . t = t ) ) by A2, A1, A4, Th29, Th31, Th33; hence z = t by A3, A5; ::_thesis: verum end; suppose ( not x in X or not y in X ) ; ::_thesis: Swap ((id X),x,y) is one-to-one hence Swap ((id X),x,y) is one-to-one by A1, FUNCT_7:def_12; ::_thesis: verum end; end; end; registration let X be non empty set ; let x, y be Element of X; cluster Swap ((id X),x,y) -> X -defined X -valued one-to-one ; coherence ( Swap ((id X),x,y) is one-to-one & Swap ((id X),x,y) is X -valued & Swap ((id X),x,y) is X -defined ) by Th41; end; registration let X be non empty set ; let x, y be Element of X; cluster Swap ((id X),x,y) -> total onto ; coherence ( Swap ((id X),x,y) is onto & Swap ((id X),x,y) is total ) proof A1: dom (id X) = X ; reconsider a = x, b = y as Element of dom (id X) ; Swap ((id X),a,b) is onto ; hence Swap ((id X),x,y) is onto ; ::_thesis: Swap ((id X),x,y) is total thus dom (Swap ((id X),x,y)) = X by A1, FUNCT_7:99; :: according to PARTFUN1:def_2 ::_thesis: verum end; end; definition let X, Y be non empty set ; let f be Function of X,Y; let x, y be Element of X; :: original: Swap redefine func Swap (f,x,y) -> Function of X,Y; coherence Swap (f,x,y) is Function of X,Y proof set g = Swap (f,x,y); A1: dom f = X by FUNCT_2:def_1; A2: ( dom (Swap (f,x,y)) = dom f & rng (Swap (f,x,y)) = rng f ) by FUNCT_7:99, FUNCT_7:103; rng f c= Y by RELAT_1:def_19; hence Swap (f,x,y) is Function of X,Y by A1, A2, FUNCT_2:2; ::_thesis: verum end; end; theorem Th42: :: EXCHSORT:42 for x, X, y being set for f being Function for A being array st x in X & y in X & f = Swap ((id X),x,y) & X = dom A holds Swap (A,x,y) = A * f proof let x, X, y be set ; ::_thesis: for f being Function for A being array st x in X & y in X & f = Swap ((id X),x,y) & X = dom A holds Swap (A,x,y) = A * f let f be Function; ::_thesis: for A being array st x in X & y in X & f = Swap ((id X),x,y) & X = dom A holds Swap (A,x,y) = A * f let A be array; ::_thesis: ( x in X & y in X & f = Swap ((id X),x,y) & X = dom A implies Swap (A,x,y) = A * f ) assume that A1: ( x in X & y in X ) and A2: ( f = Swap ((id X),x,y) & X = dom A ) ; ::_thesis: Swap (A,x,y) = A * f set g = id X; set s = Swap (A,x,y); A3: ( dom (id X) = X & rng (id X) = X ) ; then A4: ( dom f = X & rng f = X ) by A2, FUNCT_7:99, FUNCT_7:103; A5: dom (Swap (A,x,y)) = dom A by FUNCT_7:99; A6: dom (A * f) = dom f by A2, A4, RELAT_1:27; now__::_thesis:_for_z_being_set_st_z_in_X_holds_ (Swap_(A,x,y))_._z_=_(A_*_f)_._z let z be set ; ::_thesis: ( z in X implies (Swap (A,x,y)) . z = (A * f) . z ) assume A7: z in X ; ::_thesis: (Swap (A,x,y)) . z = (A * f) . z A8: ( (id X) . x = x & (id X) . y = y & (id X) . z = z ) by A1, A7, FUNCT_1:17; ( z = x or z = y or ( z <> x & z <> y ) ) ; then ( ( (Swap (A,x,y)) . z = A . y & f . z = (id X) . y ) or ( (Swap (A,x,y)) . z = A . x & f . z = (id X) . x ) or ( (Swap (A,x,y)) . z = A . z & f . z = (id X) . z ) ) by A1, A2, A3, Th29, Th31, Th33; hence (Swap (A,x,y)) . z = (A * f) . z by A7, A8, A4, FUNCT_1:13; ::_thesis: verum end; hence Swap (A,x,y) = A * f by A2, A4, A5, A6, FUNCT_1:2; ::_thesis: verum end; theorem Th43: :: EXCHSORT:43 for x, y being set for A being array st x in dom A & y in dom A holds ( Swap (A,x,y) is permutation of A & A is permutation of Swap (A,x,y) ) proof let x, y be set ; ::_thesis: for A being array st x in dom A & y in dom A holds ( Swap (A,x,y) is permutation of A & A is permutation of Swap (A,x,y) ) let A be array; ::_thesis: ( x in dom A & y in dom A implies ( Swap (A,x,y) is permutation of A & A is permutation of Swap (A,x,y) ) ) set X = dom A; assume A1: ( x in dom A & y in dom A ) ; ::_thesis: ( Swap (A,x,y) is permutation of A & A is permutation of Swap (A,x,y) ) thus Swap (A,x,y) is permutation of A ::_thesis: A is permutation of Swap (A,x,y) proof reconsider X = dom A as non empty set by A1; reconsider x = x, y = y as Element of X by A1; reconsider f = Swap ((id X),x,y) as Permutation of (dom A) ; take f ; :: according to EXCHSORT:def_9 ::_thesis: Swap (A,x,y) = A * f thus Swap (A,x,y) = A * f by Th42; ::_thesis: verum end; hence A is permutation of Swap (A,x,y) by Th39; ::_thesis: verum end; theorem :: EXCHSORT:44 for x, y being set for A, B being array st x in dom A & y in dom A & A is permutation of B holds ( Swap (A,x,y) is permutation of B & A is permutation of Swap (B,x,y) ) proof let x, y be set ; ::_thesis: for A, B being array st x in dom A & y in dom A & A is permutation of B holds ( Swap (A,x,y) is permutation of B & A is permutation of Swap (B,x,y) ) let A, B be array; ::_thesis: ( x in dom A & y in dom A & A is permutation of B implies ( Swap (A,x,y) is permutation of B & A is permutation of Swap (B,x,y) ) ) set X = dom A; assume A1: ( x in dom A & y in dom A & A is permutation of B ) ; ::_thesis: ( Swap (A,x,y) is permutation of B & A is permutation of Swap (B,x,y) ) then dom A = dom B by Th37; then ( Swap (A,x,y) is permutation of A & B is permutation of Swap (B,x,y) ) by A1, Th43; hence ( Swap (A,x,y) is permutation of B & A is permutation of Swap (B,x,y) ) by A1, Th40; ::_thesis: verum end; begin definition let O be RelStr ; let A be array of O; attrA is ascending means :: EXCHSORT:def 10 for a, b being ordinal number st a in dom A & b in dom A & a in b holds A /. a <= A /. b; func inversions A -> set equals :: EXCHSORT:def 11 { [a,b] where a, b is Element of dom A : ( a in b & not A /. a <= A /. b ) } ; coherence { [a,b] where a, b is Element of dom A : ( a in b & not A /. a <= A /. b ) } is set ; end; :: deftheorem defines ascending EXCHSORT:def_10_:_ for O being RelStr for A being array of O holds ( A is ascending iff for a, b being ordinal number st a in dom A & b in dom A & a in b holds A /. a <= A /. b ); :: deftheorem defines inversions EXCHSORT:def_11_:_ for O being RelStr for A being array of O holds inversions A = { [a,b] where a, b is Element of dom A : ( a in b & not A /. a <= A /. b ) } ; registration let O be RelStr ; cluster empty Relation-like the carrier of O -valued Function-like segmental -> empty ascending for set ; coherence for b1 being empty array of O holds b1 is ascending proof let R be empty array of O; ::_thesis: R is ascending let a be ordinal number ; :: according to EXCHSORT:def_10 ::_thesis: for b being ordinal number st a in dom R & b in dom R & a in b holds R /. a <= R /. b thus for b being ordinal number st a in dom R & b in dom R & a in b holds R /. a <= R /. b ; ::_thesis: verum end; let A be empty array of O; cluster inversions A -> empty ; coherence inversions A is empty proof set w = the Element of inversions A; assume not inversions A is empty ; ::_thesis: contradiction then the Element of inversions A in inversions A ; then consider a, b being Element of dom A such that A1: ( the Element of inversions A = [a,b] & a in b & not A /. a <= A /. b ) ; thus contradiction by A1, SUBSET_1:def_1; ::_thesis: verum end; end; theorem Th45: :: EXCHSORT:45 for O being non empty connected Poset for x, y being Element of O holds ( x > y iff not x <= y ) proof let O be non empty connected Poset; ::_thesis: for x, y being Element of O holds ( x > y iff not x <= y ) let x, y be Element of O; ::_thesis: ( x > y iff not x <= y ) A1: ( x <= y & y <= x implies x = y ) by YELLOW_0:def_3; ( ( x <= y or x >= y ) & x <= x ) by WAYBEL_0:def_29; hence ( x > y iff not x <= y ) by A1, ORDERS_2:def_6; ::_thesis: verum end; definition let O be non empty connected Poset; let R be array of O; redefine func inversions R equals :: EXCHSORT:def 12 { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } ; compatibility for b1 being set holds ( b1 = inversions R iff b1 = { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } ) proof set N = { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } ; inversions R = { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } proof thus inversions R c= { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } :: according to XBOOLE_0:def_10 ::_thesis: { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } c= inversions R proof let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in inversions R or x in { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } ) assume x in inversions R ; ::_thesis: x in { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } then consider a, b being Element of dom R such that A1: ( x = [a,b] & a in b & not R /. a <= R /. b ) ; R /. a > R /. b by A1, Th45; hence x in { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } by A1; ::_thesis: verum end; let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } or x in inversions R ) assume x in { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } ; ::_thesis: x in inversions R then consider a, b being Element of dom R such that A2: ( x = [a,b] & a in b & R /. a > R /. b ) ; not R /. a <= R /. b by A2, Th45; hence x in inversions R by A2; ::_thesis: verum end; hence for b1 being set holds ( b1 = inversions R iff b1 = { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } ) ; ::_thesis: verum end; end; :: deftheorem defines inversions EXCHSORT:def_12_:_ for O being non empty connected Poset for R being array of O holds inversions R = { [a,b] where a, b is Element of dom R : ( a in b & R /. a > R /. b ) } ; theorem Th46: :: EXCHSORT:46 for x, y being set for O being non empty connected Poset for R being array of O holds ( [x,y] in inversions R iff ( x in dom R & y in dom R & x in y & R /. x > R /. y ) ) proof let x, y be set ; ::_thesis: for O being non empty connected Poset for R being array of O holds ( [x,y] in inversions R iff ( x in dom R & y in dom R & x in y & R /. x > R /. y ) ) let O be non empty connected Poset; ::_thesis: for R being array of O holds ( [x,y] in inversions R iff ( x in dom R & y in dom R & x in y & R /. x > R /. y ) ) let R be array of O; ::_thesis: ( [x,y] in inversions R iff ( x in dom R & y in dom R & x in y & R /. x > R /. y ) ) hereby ::_thesis: ( x in dom R & y in dom R & x in y & R /. x > R /. y implies [x,y] in inversions R ) assume A1: [x,y] in inversions R ; ::_thesis: ( x in dom R & y in dom R & x in y & R /. x > R /. y ) then reconsider R1 = R as non empty Function ; consider a, b being Element of dom R1 such that A2: ( [x,y] = [a,b] & a in b & not R /. a <= R /. b ) by A1; ( x = a & y = b ) by A2, XTUPLE_0:1; hence ( x in dom R & y in dom R & x in y & R /. x > R /. y ) by A2, Th45; ::_thesis: verum end; thus ( x in dom R & y in dom R & x in y & R /. x > R /. y implies [x,y] in inversions R ) ; ::_thesis: verum end; theorem Th47: :: EXCHSORT:47 for O being non empty connected Poset for R being array of O holds inversions R c= [:(dom R),(dom R):] proof let O be non empty connected Poset; ::_thesis: for R being array of O holds inversions R c= [:(dom R),(dom R):] let R be array of O; ::_thesis: inversions R c= [:(dom R),(dom R):] let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in inversions R or x in [:(dom R),(dom R):] ) assume A1: x in inversions R ; ::_thesis: x in [:(dom R),(dom R):] then consider a, b being Element of dom R such that A2: ( x = [a,b] & a in b & R /. a > R /. b ) ; ( a in dom R & b in dom R ) by A2, A1, Th46; hence x in [:(dom R),(dom R):] by A2, ZFMISC_1:def_2; ::_thesis: verum end; registration let O be non empty connected Poset; let R be finite array of O; cluster inversions R -> finite ; coherence inversions R is finite proof inversions R c= [:(dom R),(dom R):] by Th47; hence inversions R is finite ; ::_thesis: verum end; end; theorem Th48: :: EXCHSORT:48 for O being non empty connected Poset for R being array of O holds ( R is ascending iff inversions R = {} ) proof let O be non empty connected Poset; ::_thesis: for R being array of O holds ( R is ascending iff inversions R = {} ) let R be array of O; ::_thesis: ( R is ascending iff inversions R = {} ) thus ( R is ascending implies inversions R = {} ) ::_thesis: ( inversions R = {} implies R is ascending ) proof assume A1: for a, b being ordinal number st a in dom R & b in dom R & a in b holds R /. a <= R /. b ; :: according to EXCHSORT:def_10 ::_thesis: inversions R = {} set x = the Element of inversions R; assume A2: inversions R <> {} ; ::_thesis: contradiction then the Element of inversions R in inversions R ; then consider a, b being Element of dom R such that A3: ( the Element of inversions R = [a,b] & a in b & R /. a > R /. b ) ; R <> {} by A2; then R /. a <= R /. b by A1, A3; hence contradiction by A3, Th45; ::_thesis: verum end; assume A4: inversions R = {} ; ::_thesis: R is ascending let a be ordinal number ; :: according to EXCHSORT:def_10 ::_thesis: for b being ordinal number st a in dom R & b in dom R & a in b holds R /. a <= R /. b let b be ordinal number ; ::_thesis: ( a in dom R & b in dom R & a in b implies R /. a <= R /. b ) assume ( a in dom R & b in dom R & a in b ) ; ::_thesis: R /. a <= R /. b then ( R /. a > R /. b implies [a,b] in inversions R ) ; hence R /. a <= R /. b by A4, Th45; ::_thesis: verum end; theorem Th49: :: EXCHSORT:49 for x, y being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds [y,x] nin inversions R proof let x, y be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds [y,x] nin inversions R let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R holds [y,x] nin inversions R let R be array of O; ::_thesis: ( [x,y] in inversions R implies [y,x] nin inversions R ) assume [x,y] in inversions R ; ::_thesis: [y,x] nin inversions R then y nin x by Th46; hence [y,x] nin inversions R by Th46; ::_thesis: verum end; theorem Th50: :: EXCHSORT:50 for x, y, z being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R & [y,z] in inversions R holds [x,z] in inversions R proof let x, y, z be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R & [y,z] in inversions R holds [x,z] in inversions R let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R & [y,z] in inversions R holds [x,z] in inversions R let R be array of O; ::_thesis: ( [x,y] in inversions R & [y,z] in inversions R implies [x,z] in inversions R ) assume A1: ( [x,y] in inversions R & [y,z] in inversions R ) ; ::_thesis: [x,z] in inversions R then reconsider x = x, y = y, z = z as Element of dom R by Th46; ( x in y & R /. x > R /. y & y in z & R /. y > R /. z ) by A1, Th46; then ( x in z & R /. x > R /. z ) by ORDERS_2:5, ORDINAL1:10; hence [x,z] in inversions R ; ::_thesis: verum end; registration let O be non empty connected Poset; let R be array of O; cluster inversions R -> Relation-like ; coherence inversions R is Relation-like proof inversions R c= [:(dom R),(dom R):] by Th47; hence inversions R is Relation-like ; ::_thesis: verum end; end; registration let O be non empty connected Poset; let R be array of O; cluster inversions R -> asymmetric transitive for Relation; coherence for b1 being Relation st b1 = inversions R holds ( b1 is asymmetric & b1 is transitive ) proof let r be Relation; ::_thesis: ( r = inversions R implies ( r is asymmetric & r is transitive ) ) assume A1: r = inversions R ; ::_thesis: ( r is asymmetric & r is transitive ) thus r is asymmetric ::_thesis: r is transitive proof let x be set ; :: according to RELAT_2:def_5,RELAT_2:def_13 ::_thesis: for b1 being set holds ( not x in field r or not b1 in field r or not [x,b1] in r or not [b1,x] in r ) let y be set ; ::_thesis: ( not x in field r or not y in field r or not [x,y] in r or not [y,x] in r ) thus ( not x in field r or not y in field r or not [x,y] in r or not [y,x] in r ) by A1, Th49; ::_thesis: verum end; let x be set ; :: according to RELAT_2:def_8,RELAT_2:def_16 ::_thesis: for b1, b2 being set holds ( not x in field r or not b1 in field r or not b2 in field r or not [x,b1] in r or not [b1,b2] in r or [x,b2] in r ) let y be set ; ::_thesis: for b1 being set holds ( not x in field r or not y in field r or not b1 in field r or not [x,y] in r or not [y,b1] in r or [x,b1] in r ) thus for b1 being set holds ( not x in field r or not y in field r or not b1 in field r or not [x,y] in r or not [y,b1] in r or [x,b1] in r ) by A1, Th50; ::_thesis: verum end; end; definition let O be non empty connected Poset; let a, b be Element of O; :: original: < redefine preda < b; asymmetry for a, b being Element of O st R71(O,b1,b2) holds not R71(O,b2,b1) by ORDERS_2:5; end; theorem Th51: :: EXCHSORT:51 for x, y being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds [x,y] nin inversions (Swap (R,x,y)) proof let x, y be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds [x,y] nin inversions (Swap (R,x,y)) let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R holds [x,y] nin inversions (Swap (R,x,y)) let R be array of O; ::_thesis: ( [x,y] in inversions R implies [x,y] nin inversions (Swap (R,x,y)) ) assume A1: [x,y] in inversions R ; ::_thesis: [x,y] nin inversions (Swap (R,x,y)) then A2: ( x in dom R & y in dom R & R /. x > R /. y ) by Th46; A3: not R /. x < R /. y by A1, Th46; ( (Swap (R,x,y)) /. x = R /. y & (Swap (R,x,y)) /. y = R /. x ) by A2, Th30, Th32; hence [x,y] nin inversions (Swap (R,x,y)) by A3, Th46; ::_thesis: verum end; theorem Th52: :: EXCHSORT:52 for x, y, z, t being set for O being non empty connected Poset for R being array of O st x in dom R & y in dom R & z <> x & z <> y & t <> x & t <> y holds ( [z,t] in inversions R iff [z,t] in inversions (Swap (R,x,y)) ) proof let x, y, z, t be set ; ::_thesis: for O being non empty connected Poset for R being array of O st x in dom R & y in dom R & z <> x & z <> y & t <> x & t <> y holds ( [z,t] in inversions R iff [z,t] in inversions (Swap (R,x,y)) ) let O be non empty connected Poset; ::_thesis: for R being array of O st x in dom R & y in dom R & z <> x & z <> y & t <> x & t <> y holds ( [z,t] in inversions R iff [z,t] in inversions (Swap (R,x,y)) ) let R be array of O; ::_thesis: ( x in dom R & y in dom R & z <> x & z <> y & t <> x & t <> y implies ( [z,t] in inversions R iff [z,t] in inversions (Swap (R,x,y)) ) ) set s = Swap (R,x,y); assume ( x in dom R & y in dom R & z <> x & z <> y & t <> x & t <> y ) ; ::_thesis: ( [z,t] in inversions R iff [z,t] in inversions (Swap (R,x,y)) ) then A1: ( ( z in dom R implies (Swap (R,x,y)) /. z = R /. z ) & ( t in dom R implies (Swap (R,x,y)) /. t = R /. t ) & dom (Swap (R,x,y)) = dom R ) by Th34, FUNCT_7:99; hereby ::_thesis: ( [z,t] in inversions (Swap (R,x,y)) implies [z,t] in inversions R ) assume [z,t] in inversions R ; ::_thesis: [z,t] in inversions (Swap (R,x,y)) then ( z in dom R & t in dom R & z in t & R /. z > R /. t ) by Th46; hence [z,t] in inversions (Swap (R,x,y)) by A1; ::_thesis: verum end; assume [z,t] in inversions (Swap (R,x,y)) ; ::_thesis: [z,t] in inversions R then ( z in dom R & t in dom R & z in t & (Swap (R,x,y)) /. z > (Swap (R,x,y)) /. t ) by A1, Th46; hence [z,t] in inversions R by A1; ::_thesis: verum end; theorem Th53: :: EXCHSORT:53 for x, y, z being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds ( ( [z,y] in inversions R & z in x ) iff [z,x] in inversions (Swap (R,x,y)) ) proof let x, y, z be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds ( ( [z,y] in inversions R & z in x ) iff [z,x] in inversions (Swap (R,x,y)) ) let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R holds ( ( [z,y] in inversions R & z in x ) iff [z,x] in inversions (Swap (R,x,y)) ) let R be array of O; ::_thesis: ( [x,y] in inversions R implies ( ( [z,y] in inversions R & z in x ) iff [z,x] in inversions (Swap (R,x,y)) ) ) set s = Swap (R,x,y); assume [x,y] in inversions R ; ::_thesis: ( ( [z,y] in inversions R & z in x ) iff [z,x] in inversions (Swap (R,x,y)) ) then A1: ( x in dom R & y in dom R & x in y & R /. x > R /. y ) by Th46; then A2: ( (Swap (R,x,y)) /. x = R /. y & (Swap (R,x,y)) /. y = R /. x & dom (Swap (R,x,y)) = dom R ) by Th30, Th32, FUNCT_7:99; hereby ::_thesis: ( [z,x] in inversions (Swap (R,x,y)) implies ( [z,y] in inversions R & z in x ) ) assume A3: ( [z,y] in inversions R & z in x ) ; ::_thesis: [z,x] in inversions (Swap (R,x,y)) then A4: ( z in dom R & z in y & R /. z > R /. y ) by Th46; then ( x <> z & y <> z ) by A3; then (Swap (R,x,y)) /. z = R /. z by A4, Th34; hence [z,x] in inversions (Swap (R,x,y)) by A3, A1, A2, A4; ::_thesis: verum end; assume [z,x] in inversions (Swap (R,x,y)) ; ::_thesis: ( [z,y] in inversions R & z in x ) then A5: ( z in dom R & z in x & (Swap (R,x,y)) /. z > (Swap (R,x,y)) /. x ) by A2, Th46; then A6: z in y by A1, ORDINAL1:10; (Swap (R,x,y)) /. z = R /. z by A1, A5, Th34; hence ( [z,y] in inversions R & z in x ) by A1, A2, A5, A6; ::_thesis: verum end; theorem Th54: :: EXCHSORT:54 for x, y, z being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds ( [z,x] in inversions R iff ( z in x & [z,y] in inversions (Swap (R,x,y)) ) ) proof let x, y, z be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds ( [z,x] in inversions R iff ( z in x & [z,y] in inversions (Swap (R,x,y)) ) ) let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R holds ( [z,x] in inversions R iff ( z in x & [z,y] in inversions (Swap (R,x,y)) ) ) let R be array of O; ::_thesis: ( [x,y] in inversions R implies ( [z,x] in inversions R iff ( z in x & [z,y] in inversions (Swap (R,x,y)) ) ) ) assume [x,y] in inversions R ; ::_thesis: ( [z,x] in inversions R iff ( z in x & [z,y] in inversions (Swap (R,x,y)) ) ) then A1: ( x in dom R & y in dom R & x in y & R /. x > R /. y ) by Th46; A2: dom (Swap (R,x,y)) = dom R by FUNCT_7:99; hereby ::_thesis: ( z in x & [z,y] in inversions (Swap (R,x,y)) implies [z,x] in inversions R ) assume [z,x] in inversions R ; ::_thesis: ( z in x & [z,y] in inversions (Swap (R,x,y)) ) then A3: ( z in dom R & z in x & R /. z > R /. x ) by Th46; then A4: z in y by A1, ORDINAL1:10; ( (Swap (R,x,y)) /. y = R /. x & (Swap (R,x,y)) /. z = R /. z ) by A1, A3, Th32, Th34; hence ( z in x & [z,y] in inversions (Swap (R,x,y)) ) by A1, A2, A3, A4; ::_thesis: verum end; assume A5: ( z in x & [z,y] in inversions (Swap (R,x,y)) ) ; ::_thesis: [z,x] in inversions R then A6: ( z in dom R & z in y & (Swap (R,x,y)) /. z > (Swap (R,x,y)) /. y ) by A2, Th46; then ( z <> x & z <> y ) by A5; then ( (Swap (R,x,y)) /. y = R /. x & (Swap (R,x,y)) /. z = R /. z ) by A1, A6, Th32, Th34; hence [z,x] in inversions R by A1, A6, A5; ::_thesis: verum end; theorem Th55: :: EXCHSORT:55 for x, y, z being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R & z in y & [x,z] in inversions (Swap (R,x,y)) holds [x,z] in inversions R proof let x, y, z be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R & z in y & [x,z] in inversions (Swap (R,x,y)) holds [x,z] in inversions R let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R & z in y & [x,z] in inversions (Swap (R,x,y)) holds [x,z] in inversions R let R be array of O; ::_thesis: ( [x,y] in inversions R & z in y & [x,z] in inversions (Swap (R,x,y)) implies [x,z] in inversions R ) assume [x,y] in inversions R ; ::_thesis: ( not z in y or not [x,z] in inversions (Swap (R,x,y)) or [x,z] in inversions R ) then A1: ( x in dom R & y in dom R & x in y & R /. x > R /. y ) by Th46; A2: dom (Swap (R,x,y)) = dom R by FUNCT_7:99; assume A3: z in y ; ::_thesis: ( not [x,z] in inversions (Swap (R,x,y)) or [x,z] in inversions R ) assume [x,z] in inversions (Swap (R,x,y)) ; ::_thesis: [x,z] in inversions R then A4: ( z in dom R & x in z & (Swap (R,x,y)) /. x > (Swap (R,x,y)) /. z ) by A2, Th46; then ( z <> x & z <> y ) by A3; then ( (Swap (R,x,y)) /. x = R /. y & (Swap (R,x,y)) /. z = R /. z ) by A1, A4, Th30, Th34; then R /. x > R /. z by A1, A4, ORDERS_2:5; hence [x,z] in inversions R by A1, A4; ::_thesis: verum end; theorem Th56: :: EXCHSORT:56 for x, y, z being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R & x in z & [z,y] in inversions (Swap (R,x,y)) holds [z,y] in inversions R proof let x, y, z be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R & x in z & [z,y] in inversions (Swap (R,x,y)) holds [z,y] in inversions R let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R & x in z & [z,y] in inversions (Swap (R,x,y)) holds [z,y] in inversions R let R be array of O; ::_thesis: ( [x,y] in inversions R & x in z & [z,y] in inversions (Swap (R,x,y)) implies [z,y] in inversions R ) assume [x,y] in inversions R ; ::_thesis: ( not x in z or not [z,y] in inversions (Swap (R,x,y)) or [z,y] in inversions R ) then A1: ( x in dom R & y in dom R & x in y & R /. x > R /. y ) by Th46; A2: dom (Swap (R,x,y)) = dom R by FUNCT_7:99; assume A3: x in z ; ::_thesis: ( not [z,y] in inversions (Swap (R,x,y)) or [z,y] in inversions R ) assume [z,y] in inversions (Swap (R,x,y)) ; ::_thesis: [z,y] in inversions R then A4: ( z in dom R & z in y & (Swap (R,x,y)) /. z > (Swap (R,x,y)) /. y ) by A2, Th46; then ( z <> x & z <> y ) by A3; then ( (Swap (R,x,y)) /. y = R /. x & (Swap (R,x,y)) /. z = R /. z ) by A1, A4, Th32, Th34; then R /. z > R /. y by A1, A4, ORDERS_2:5; hence [z,y] in inversions R by A1, A4; ::_thesis: verum end; theorem Th57: :: EXCHSORT:57 for x, y, z being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R & y in z & [x,z] in inversions (Swap (R,x,y)) holds [y,z] in inversions R proof let x, y, z be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R & y in z & [x,z] in inversions (Swap (R,x,y)) holds [y,z] in inversions R let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R & y in z & [x,z] in inversions (Swap (R,x,y)) holds [y,z] in inversions R let R be array of O; ::_thesis: ( [x,y] in inversions R & y in z & [x,z] in inversions (Swap (R,x,y)) implies [y,z] in inversions R ) assume [x,y] in inversions R ; ::_thesis: ( not y in z or not [x,z] in inversions (Swap (R,x,y)) or [y,z] in inversions R ) then A1: ( x in dom R & y in dom R & x in y & R /. x > R /. y ) by Th46; A2: dom (Swap (R,x,y)) = dom R by FUNCT_7:99; assume A3: y in z ; ::_thesis: ( not [x,z] in inversions (Swap (R,x,y)) or [y,z] in inversions R ) assume [x,z] in inversions (Swap (R,x,y)) ; ::_thesis: [y,z] in inversions R then A4: ( z in dom R & x in z & (Swap (R,x,y)) /. x > (Swap (R,x,y)) /. z ) by A2, Th46; then ( z <> x & z <> y ) by A3; then ( (Swap (R,x,y)) /. x = R /. y & (Swap (R,x,y)) /. z = R /. z ) by A1, A4, Th30, Th34; hence [y,z] in inversions R by A1, A4, A3; ::_thesis: verum end; theorem Th58: :: EXCHSORT:58 for x, y, z being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds ( ( y in z & [x,z] in inversions R ) iff [y,z] in inversions (Swap (R,x,y)) ) proof let x, y, z be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds ( ( y in z & [x,z] in inversions R ) iff [y,z] in inversions (Swap (R,x,y)) ) let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R holds ( ( y in z & [x,z] in inversions R ) iff [y,z] in inversions (Swap (R,x,y)) ) let R be array of O; ::_thesis: ( [x,y] in inversions R implies ( ( y in z & [x,z] in inversions R ) iff [y,z] in inversions (Swap (R,x,y)) ) ) assume [x,y] in inversions R ; ::_thesis: ( ( y in z & [x,z] in inversions R ) iff [y,z] in inversions (Swap (R,x,y)) ) then A1: ( x in dom R & y in dom R & x in y & R /. x > R /. y ) by Th46; A2: dom (Swap (R,x,y)) = dom R by FUNCT_7:99; hereby ::_thesis: ( [y,z] in inversions (Swap (R,x,y)) implies ( y in z & [x,z] in inversions R ) ) assume A3: ( y in z & [x,z] in inversions R ) ; ::_thesis: [y,z] in inversions (Swap (R,x,y)) then A4: ( z in dom R & x in z & R /. z < R /. x ) by Th46; then ( z <> x & z <> y ) by A3; then ( (Swap (R,x,y)) /. y = R /. x & (Swap (R,x,y)) /. z = R /. z ) by A1, A4, Th32, Th34; hence [y,z] in inversions (Swap (R,x,y)) by A1, A2, A4, A3; ::_thesis: verum end; assume [y,z] in inversions (Swap (R,x,y)) ; ::_thesis: ( y in z & [x,z] in inversions R ) then A5: ( z in dom R & y in z & (Swap (R,x,y)) /. y > (Swap (R,x,y)) /. z ) by A2, Th46; then A6: x in z by A1, ORDINAL1:10; ( (Swap (R,x,y)) /. y = R /. x & (Swap (R,x,y)) /. z = R /. z ) by A1, Th32, Th34, A5; hence ( y in z & [x,z] in inversions R ) by A1, A5, A6; ::_thesis: verum end; definition let O be non empty connected Poset; let R be array of O; let x, y be set ; func(R,x,y) incl -> Function equals :: EXCHSORT:def 13 [:(Swap ((id (dom R)),x,y)),(Swap ((id (dom R)),x,y)):] +* (id ([:{x},((succ y) \ x):] \/ [:((succ y) \ x),{y}:])); coherence [:(Swap ((id (dom R)),x,y)),(Swap ((id (dom R)),x,y)):] +* (id ([:{x},((succ y) \ x):] \/ [:((succ y) \ x),{y}:])) is Function ; end; :: deftheorem defines incl EXCHSORT:def_13_:_ for O being non empty connected Poset for R being array of O for x, y being set holds (R,x,y) incl = [:(Swap ((id (dom R)),x,y)),(Swap ((id (dom R)),x,y)):] +* (id ([:{x},((succ y) \ x):] \/ [:((succ y) \ x),{y}:])); theorem Th59: :: EXCHSORT:59 for c, b, a being ordinal number holds ( c in (succ b) \ a iff ( a c= c & c c= b ) ) proof let c, b, a be ordinal number ; ::_thesis: ( c in (succ b) \ a iff ( a c= c & c c= b ) ) ( a c= c iff c nin a ) by ORDINAL6:4; then ( c in (succ b) \ a iff ( c in succ b & a c= c ) ) by XBOOLE_0:def_5; hence ( c in (succ b) \ a iff ( a c= c & c c= b ) ) by ORDINAL1:22; ::_thesis: verum end; theorem Th60: :: EXCHSORT:60 for O being non empty connected Poset for T being non empty array of O for q, p being Element of dom T holds (succ q) \ p c= dom T proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for q, p being Element of dom T holds (succ q) \ p c= dom T let T be non empty array of O; ::_thesis: for q, p being Element of dom T holds (succ q) \ p c= dom T let q, p be Element of dom T; ::_thesis: (succ q) \ p c= dom T let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in (succ q) \ p or x in dom T ) assume A1: x in (succ q) \ p ; ::_thesis: x in dom T A2: ( p c= x & x c= q ) by A1, Th59; consider a, b being ordinal number such that A3: dom T = a \ b by Def1; ( q in a & p nin b ) by A3, XBOOLE_0:def_5; then ( x in a & x nin b ) by A1, A2, ORDINAL1:12; hence x in dom T by A3, XBOOLE_0:def_5; ::_thesis: verum end; theorem Th61: :: EXCHSORT:61 for O being non empty connected Poset for T being non empty array of O for p, q being Element of dom T holds ( dom ((T,p,q) incl) = [:(dom T),(dom T):] & rng ((T,p,q) incl) c= [:(dom T),(dom T):] ) proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for p, q being Element of dom T holds ( dom ((T,p,q) incl) = [:(dom T),(dom T):] & rng ((T,p,q) incl) c= [:(dom T),(dom T):] ) let T be non empty array of O; ::_thesis: for p, q being Element of dom T holds ( dom ((T,p,q) incl) = [:(dom T),(dom T):] & rng ((T,p,q) incl) c= [:(dom T),(dom T):] ) let p, q be Element of dom T; ::_thesis: ( dom ((T,p,q) incl) = [:(dom T),(dom T):] & rng ((T,p,q) incl) c= [:(dom T),(dom T):] ) set X = dom T; set i = id (dom T); set s = Swap ((id (dom T)),p,q); set f = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]; set Y = (succ q) \ p; set Z1 = [:{p},((succ q) \ p):]; set Z2 = [:((succ q) \ p),{q}:]; set g = id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]); dom (id (dom T)) = dom T ; then A1: dom (Swap ((id (dom T)),p,q)) = dom T by FUNCT_7:99; A2: ( {p} c= dom T & {q} c= dom T & (succ q) \ p c= dom T ) by Th60, ZFMISC_1:31; A3: [:(dom T),(dom T):] \/ ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]) = ([:(dom T),(dom T):] \/ [:{p},((succ q) \ p):]) \/ [:((succ q) \ p),{q}:] by XBOOLE_1:4 .= [:(dom T),(dom T):] \/ [:((succ q) \ p),{q}:] by A2, XBOOLE_1:12, ZFMISC_1:96 .= [:(dom T),(dom T):] by A2, XBOOLE_1:12, ZFMISC_1:96 ; thus dom ((T,p,q) incl) = (dom [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]) \/ (dom (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]))) by FUNCT_4:def_1 .= (dom [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]) \/ ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]) .= [:(dom T),(dom T):] by A1, A3, FUNCT_3:def_8 ; ::_thesis: rng ((T,p,q) incl) c= [:(dom T),(dom T):] A4: ( rng (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) = [:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:] & rng (id (dom T)) = dom T ) ; rng (Swap ((id (dom T)),p,q)) = dom T by A4, FUNCT_7:103; then rng [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):] = [:(dom T),(dom T):] by FUNCT_3:67; hence rng ((T,p,q) incl) c= [:(dom T),(dom T):] by A3, A4, FUNCT_4:17; ::_thesis: verum end; theorem Th62: :: EXCHSORT:62 for O being non empty connected Poset for T being non empty array of O for p, r, q being Element of dom T st p c= r & r c= q holds ( ((T,p,q) incl) . (p,r) = [p,r] & ((T,p,q) incl) . (r,q) = [r,q] ) proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for p, r, q being Element of dom T st p c= r & r c= q holds ( ((T,p,q) incl) . (p,r) = [p,r] & ((T,p,q) incl) . (r,q) = [r,q] ) let T be non empty array of O; ::_thesis: for p, r, q being Element of dom T st p c= r & r c= q holds ( ((T,p,q) incl) . (p,r) = [p,r] & ((T,p,q) incl) . (r,q) = [r,q] ) let p, r, q be Element of dom T; ::_thesis: ( p c= r & r c= q implies ( ((T,p,q) incl) . (p,r) = [p,r] & ((T,p,q) incl) . (r,q) = [r,q] ) ) assume A1: ( p c= r & r c= q ) ; ::_thesis: ( ((T,p,q) incl) . (p,r) = [p,r] & ((T,p,q) incl) . (r,q) = [r,q] ) set Y = (succ q) \ p; set Z1 = [:{p},((succ q) \ p):]; set Z2 = [:((succ q) \ p),{q}:]; set g = id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]); ( p in {p} & q in {q} & r in (succ q) \ p ) by A1, Th59, TARSKI:def_1; then ( [p,r] in [:{p},((succ q) \ p):] & [r,q] in [:((succ q) \ p),{q}:] ) by ZFMISC_1:def_2; then A2: ( [p,r] in [:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:] & [r,q] in [:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:] ) by XBOOLE_0:def_3; A3: dom (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) = [:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:] ; hence ((T,p,q) incl) . (p,r) = (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) . (p,r) by A2, FUNCT_4:13 .= [p,r] by A2, FUNCT_1:17 ; ::_thesis: ((T,p,q) incl) . (r,q) = [r,q] thus ((T,p,q) incl) . (r,q) = (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) . (r,q) by A2, A3, FUNCT_4:13 .= [r,q] by A2, FUNCT_1:17 ; ::_thesis: verum end; theorem Th63: :: EXCHSORT:63 for f being Function for O being non empty connected Poset for T being non empty array of O for r, p, s, q being Element of dom T st r <> p & s <> q & f = Swap ((id (dom T)),p,q) holds ((T,p,q) incl) . (r,s) = [(f . r),(f . s)] proof let f be Function; ::_thesis: for O being non empty connected Poset for T being non empty array of O for r, p, s, q being Element of dom T st r <> p & s <> q & f = Swap ((id (dom T)),p,q) holds ((T,p,q) incl) . (r,s) = [(f . r),(f . s)] let O be non empty connected Poset; ::_thesis: for T being non empty array of O for r, p, s, q being Element of dom T st r <> p & s <> q & f = Swap ((id (dom T)),p,q) holds ((T,p,q) incl) . (r,s) = [(f . r),(f . s)] let T be non empty array of O; ::_thesis: for r, p, s, q being Element of dom T st r <> p & s <> q & f = Swap ((id (dom T)),p,q) holds ((T,p,q) incl) . (r,s) = [(f . r),(f . s)] let r, p, s, q be Element of dom T; ::_thesis: ( r <> p & s <> q & f = Swap ((id (dom T)),p,q) implies ((T,p,q) incl) . (r,s) = [(f . r),(f . s)] ) assume that A1: ( r <> p & s <> q ) and A2: f = Swap ((id (dom T)),p,q) ; ::_thesis: ((T,p,q) incl) . (r,s) = [(f . r),(f . s)] set Y = (succ q) \ p; set Z1 = [:{p},((succ q) \ p):]; set Z2 = [:((succ q) \ p),{q}:]; set g = id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]); A3: dom f = dom (id (dom T)) by A2, FUNCT_7:99 .= dom T ; ( r nin {p} & s nin {q} ) by A1, TARSKI:def_1; then ( [r,s] nin [:{p},((succ q) \ p):] & [r,s] nin [:((succ q) \ p),{q}:] ) by ZFMISC_1:87; then [r,s] nin dom (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) by XBOOLE_0:def_3; hence ((T,p,q) incl) . (r,s) = [:f,f:] . (r,s) by A2, FUNCT_4:11 .= [(f . r),(f . s)] by A3, FUNCT_3:def_8 ; ::_thesis: verum end; theorem Th64: :: EXCHSORT:64 for f being Function for O being non empty connected Poset for T being non empty array of O for r, p, q being Element of dom T st r in p & f = Swap ((id (dom T)),p,q) holds ( ((T,p,q) incl) . (r,q) = [(f . r),(f . q)] & ((T,p,q) incl) . (r,p) = [(f . r),(f . p)] ) proof let f be Function; ::_thesis: for O being non empty connected Poset for T being non empty array of O for r, p, q being Element of dom T st r in p & f = Swap ((id (dom T)),p,q) holds ( ((T,p,q) incl) . (r,q) = [(f . r),(f . q)] & ((T,p,q) incl) . (r,p) = [(f . r),(f . p)] ) let O be non empty connected Poset; ::_thesis: for T being non empty array of O for r, p, q being Element of dom T st r in p & f = Swap ((id (dom T)),p,q) holds ( ((T,p,q) incl) . (r,q) = [(f . r),(f . q)] & ((T,p,q) incl) . (r,p) = [(f . r),(f . p)] ) let T be non empty array of O; ::_thesis: for r, p, q being Element of dom T st r in p & f = Swap ((id (dom T)),p,q) holds ( ((T,p,q) incl) . (r,q) = [(f . r),(f . q)] & ((T,p,q) incl) . (r,p) = [(f . r),(f . p)] ) let r, p, q be Element of dom T; ::_thesis: ( r in p & f = Swap ((id (dom T)),p,q) implies ( ((T,p,q) incl) . (r,q) = [(f . r),(f . q)] & ((T,p,q) incl) . (r,p) = [(f . r),(f . p)] ) ) assume that A1: r in p and A2: f = Swap ((id (dom T)),p,q) ; ::_thesis: ( ((T,p,q) incl) . (r,q) = [(f . r),(f . q)] & ((T,p,q) incl) . (r,p) = [(f . r),(f . p)] ) set X = dom T; set i = id (dom T); set s = Swap ((id (dom T)),p,q); set h = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]; set Y = (succ q) \ p; set Z1 = [:{p},((succ q) \ p):]; set Z2 = [:((succ q) \ p),{q}:]; set g = id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]); dom (id (dom T)) = dom T ; then A3: dom (Swap ((id (dom T)),p,q)) = dom T by FUNCT_7:99; not p c= r by A1, ORDINAL6:4; then ( r nin {p} & r nin (succ q) \ p ) by Th59, TARSKI:def_1; then ( [r,p] nin [:{p},((succ q) \ p):] & [r,p] nin [:((succ q) \ p),{q}:] & [r,q] nin [:{p},((succ q) \ p):] & [r,q] nin [:((succ q) \ p),{q}:] ) by ZFMISC_1:87; then A4: ( [r,q] nin dom (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) & [r,p] nin dom (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) ) by XBOOLE_0:def_3; hence ((T,p,q) incl) . (r,q) = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):] . (r,q) by FUNCT_4:11 .= [(f . r),(f . q)] by A2, A3, FUNCT_3:def_8 ; ::_thesis: ((T,p,q) incl) . (r,p) = [(f . r),(f . p)] thus ((T,p,q) incl) . (r,p) = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):] . (r,p) by A4, FUNCT_4:11 .= [(f . r),(f . p)] by A2, A3, FUNCT_3:def_8 ; ::_thesis: verum end; theorem Th65: :: EXCHSORT:65 for f being Function for O being non empty connected Poset for T being non empty array of O for q, r, p being Element of dom T st q in r & f = Swap ((id (dom T)),p,q) holds ( ((T,p,q) incl) . (p,r) = [(f . p),(f . r)] & ((T,p,q) incl) . (q,r) = [(f . q),(f . r)] ) proof let f be Function; ::_thesis: for O being non empty connected Poset for T being non empty array of O for q, r, p being Element of dom T st q in r & f = Swap ((id (dom T)),p,q) holds ( ((T,p,q) incl) . (p,r) = [(f . p),(f . r)] & ((T,p,q) incl) . (q,r) = [(f . q),(f . r)] ) let O be non empty connected Poset; ::_thesis: for T being non empty array of O for q, r, p being Element of dom T st q in r & f = Swap ((id (dom T)),p,q) holds ( ((T,p,q) incl) . (p,r) = [(f . p),(f . r)] & ((T,p,q) incl) . (q,r) = [(f . q),(f . r)] ) let T be non empty array of O; ::_thesis: for q, r, p being Element of dom T st q in r & f = Swap ((id (dom T)),p,q) holds ( ((T,p,q) incl) . (p,r) = [(f . p),(f . r)] & ((T,p,q) incl) . (q,r) = [(f . q),(f . r)] ) let q, r, p be Element of dom T; ::_thesis: ( q in r & f = Swap ((id (dom T)),p,q) implies ( ((T,p,q) incl) . (p,r) = [(f . p),(f . r)] & ((T,p,q) incl) . (q,r) = [(f . q),(f . r)] ) ) assume that A1: q in r and A2: f = Swap ((id (dom T)),p,q) ; ::_thesis: ( ((T,p,q) incl) . (p,r) = [(f . p),(f . r)] & ((T,p,q) incl) . (q,r) = [(f . q),(f . r)] ) set X = dom T; set i = id (dom T); set s = Swap ((id (dom T)),p,q); set h = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]; set Y = (succ q) \ p; set Z1 = [:{p},((succ q) \ p):]; set Z2 = [:((succ q) \ p),{q}:]; set g = id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]); dom (id (dom T)) = dom T ; then A3: dom (Swap ((id (dom T)),p,q)) = dom T by FUNCT_7:99; not r c= q by A1, ORDINAL6:4; then ( r nin {q} & r nin (succ q) \ p ) by Th59, TARSKI:def_1; then ( [p,r] nin [:{p},((succ q) \ p):] & [p,r] nin [:((succ q) \ p),{q}:] & [q,r] nin [:{p},((succ q) \ p):] & [q,r] nin [:((succ q) \ p),{q}:] ) by ZFMISC_1:87; then A4: ( [p,r] nin dom (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) & [q,r] nin dom (id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:])) ) by XBOOLE_0:def_3; hence ((T,p,q) incl) . (p,r) = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):] . (p,r) by FUNCT_4:11 .= [(f . p),(f . r)] by A2, A3, FUNCT_3:def_8 ; ::_thesis: ((T,p,q) incl) . (q,r) = [(f . q),(f . r)] thus ((T,p,q) incl) . (q,r) = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):] . (q,r) by A4, FUNCT_4:11 .= [(f . q),(f . r)] by A2, A3, FUNCT_3:def_8 ; ::_thesis: verum end; theorem Th66: :: EXCHSORT:66 for O being non empty connected Poset for T being non empty array of O for p, q being Element of dom T st p in q holds ((T,p,q) incl) . (p,q) = [p,q] proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for p, q being Element of dom T st p in q holds ((T,p,q) incl) . (p,q) = [p,q] let T be non empty array of O; ::_thesis: for p, q being Element of dom T st p in q holds ((T,p,q) incl) . (p,q) = [p,q] let p, q be Element of dom T; ::_thesis: ( p in q implies ((T,p,q) incl) . (p,q) = [p,q] ) assume p in q ; ::_thesis: ((T,p,q) incl) . (p,q) = [p,q] then p c= q by ORDINAL1:def_2; hence ((T,p,q) incl) . (p,q) = [p,q] by Th62; ::_thesis: verum end; theorem Th67: :: EXCHSORT:67 for O being non empty connected Poset for T being non empty array of O for p, q, r, s being Element of dom T st p in q & r <> p & r <> q & s <> p & s <> q holds ((T,p,q) incl) . (r,s) = [r,s] proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for p, q, r, s being Element of dom T st p in q & r <> p & r <> q & s <> p & s <> q holds ((T,p,q) incl) . (r,s) = [r,s] let T be non empty array of O; ::_thesis: for p, q, r, s being Element of dom T st p in q & r <> p & r <> q & s <> p & s <> q holds ((T,p,q) incl) . (r,s) = [r,s] let p, q, r, s be Element of dom T; ::_thesis: ( p in q & r <> p & r <> q & s <> p & s <> q implies ((T,p,q) incl) . (r,s) = [r,s] ) assume A1: ( p in q & r <> p & r <> q & s <> p & s <> q ) ; ::_thesis: ((T,p,q) incl) . (r,s) = [r,s] set X = dom T; set i = id (dom T); set f = Swap ((id (dom T)),p,q); set h = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]; set Y = (succ q) \ p; thus ((T,p,q) incl) . (r,s) = [((Swap ((id (dom T)),p,q)) . r),((Swap ((id (dom T)),p,q)) . s)] by A1, Th63 .= [((id (dom T)) . r),((Swap ((id (dom T)),p,q)) . s)] by A1, Th33 .= [((id (dom T)) . r),((id (dom T)) . s)] by A1, Th33 .= [r,((id (dom T)) . s)] by FUNCT_1:17 .= [r,s] by FUNCT_1:17 ; ::_thesis: verum end; theorem Th68: :: EXCHSORT:68 for O being non empty connected Poset for T being non empty array of O for r, p, q being Element of dom T st r in p & p in q holds ( ((T,p,q) incl) . (r,p) = [r,q] & ((T,p,q) incl) . (r,q) = [r,p] ) proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for r, p, q being Element of dom T st r in p & p in q holds ( ((T,p,q) incl) . (r,p) = [r,q] & ((T,p,q) incl) . (r,q) = [r,p] ) let T be non empty array of O; ::_thesis: for r, p, q being Element of dom T st r in p & p in q holds ( ((T,p,q) incl) . (r,p) = [r,q] & ((T,p,q) incl) . (r,q) = [r,p] ) let r, p, q be Element of dom T; ::_thesis: ( r in p & p in q implies ( ((T,p,q) incl) . (r,p) = [r,q] & ((T,p,q) incl) . (r,q) = [r,p] ) ) assume A1: ( r in p & p in q ) ; ::_thesis: ( ((T,p,q) incl) . (r,p) = [r,q] & ((T,p,q) incl) . (r,q) = [r,p] ) set X = dom T; set i = id (dom T); set f = Swap ((id (dom T)),p,q); set h = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]; set Y = (succ q) \ p; A2: dom (id (dom T)) = dom T ; A3: ( r <> p & r <> q ) by A1; thus ((T,p,q) incl) . (r,p) = [((Swap ((id (dom T)),p,q)) . r),((Swap ((id (dom T)),p,q)) . p)] by A1, Th64 .= [((id (dom T)) . r),((Swap ((id (dom T)),p,q)) . p)] by A3, Th33 .= [r,((Swap ((id (dom T)),p,q)) . p)] by FUNCT_1:17 .= [r,((id (dom T)) . q)] by A2, Th29 .= [r,q] by FUNCT_1:17 ; ::_thesis: ((T,p,q) incl) . (r,q) = [r,p] thus ((T,p,q) incl) . (r,q) = [((Swap ((id (dom T)),p,q)) . r),((Swap ((id (dom T)),p,q)) . q)] by A1, Th64 .= [((id (dom T)) . r),((Swap ((id (dom T)),p,q)) . q)] by A3, Th33 .= [r,((Swap ((id (dom T)),p,q)) . q)] by FUNCT_1:17 .= [r,((id (dom T)) . p)] by A2, Th31 .= [r,p] by FUNCT_1:17 ; ::_thesis: verum end; theorem Th69: :: EXCHSORT:69 for O being non empty connected Poset for T being non empty array of O for p, s, q being Element of dom T st p in s & s in q holds ( ((T,p,q) incl) . (p,s) = [p,s] & ((T,p,q) incl) . (s,q) = [s,q] ) proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for p, s, q being Element of dom T st p in s & s in q holds ( ((T,p,q) incl) . (p,s) = [p,s] & ((T,p,q) incl) . (s,q) = [s,q] ) let T be non empty array of O; ::_thesis: for p, s, q being Element of dom T st p in s & s in q holds ( ((T,p,q) incl) . (p,s) = [p,s] & ((T,p,q) incl) . (s,q) = [s,q] ) let p, s, q be Element of dom T; ::_thesis: ( p in s & s in q implies ( ((T,p,q) incl) . (p,s) = [p,s] & ((T,p,q) incl) . (s,q) = [s,q] ) ) assume ( p in s & s in q ) ; ::_thesis: ( ((T,p,q) incl) . (p,s) = [p,s] & ((T,p,q) incl) . (s,q) = [s,q] ) then ( p c= s & s c= q ) by ORDINAL1:def_2; hence ( ((T,p,q) incl) . (p,s) = [p,s] & ((T,p,q) incl) . (s,q) = [s,q] ) by Th62; ::_thesis: verum end; theorem Th70: :: EXCHSORT:70 for O being non empty connected Poset for T being non empty array of O for p, q, s being Element of dom T st p in q & q in s holds ( ((T,p,q) incl) . (p,s) = [q,s] & ((T,p,q) incl) . (q,s) = [p,s] ) proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for p, q, s being Element of dom T st p in q & q in s holds ( ((T,p,q) incl) . (p,s) = [q,s] & ((T,p,q) incl) . (q,s) = [p,s] ) let T be non empty array of O; ::_thesis: for p, q, s being Element of dom T st p in q & q in s holds ( ((T,p,q) incl) . (p,s) = [q,s] & ((T,p,q) incl) . (q,s) = [p,s] ) let p, q, s be Element of dom T; ::_thesis: ( p in q & q in s implies ( ((T,p,q) incl) . (p,s) = [q,s] & ((T,p,q) incl) . (q,s) = [p,s] ) ) assume A1: ( p in q & q in s ) ; ::_thesis: ( ((T,p,q) incl) . (p,s) = [q,s] & ((T,p,q) incl) . (q,s) = [p,s] ) set X = dom T; set i = id (dom T); set f = Swap ((id (dom T)),p,q); set h = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]; set Y = (succ q) \ p; A2: dom (id (dom T)) = dom T ; A3: ( s <> p & s <> q ) by A1; thus ((T,p,q) incl) . (p,s) = [((Swap ((id (dom T)),p,q)) . p),((Swap ((id (dom T)),p,q)) . s)] by A1, Th65 .= [((Swap ((id (dom T)),p,q)) . p),((id (dom T)) . s)] by A3, Th33 .= [((Swap ((id (dom T)),p,q)) . p),s] by FUNCT_1:17 .= [((id (dom T)) . q),s] by A2, Th29 .= [q,s] by FUNCT_1:17 ; ::_thesis: ((T,p,q) incl) . (q,s) = [p,s] thus ((T,p,q) incl) . (q,s) = [((Swap ((id (dom T)),p,q)) . q),((Swap ((id (dom T)),p,q)) . s)] by A1, Th65 .= [((Swap ((id (dom T)),p,q)) . q),((id (dom T)) . s)] by A3, Th33 .= [((Swap ((id (dom T)),p,q)) . q),s] by FUNCT_1:17 .= [((id (dom T)) . p),s] by A2, Th31 .= [p,s] by FUNCT_1:17 ; ::_thesis: verum end; Lm1: for f being Function for O being non empty connected Poset for T being non empty array of O for p, q being Element of dom T st p in q & f = (T,p,q) incl holds for x1, x2, y1, y2 being Element of dom T st x1 in y1 & x2 in y2 & f . (x1,y1) = f . (x2,y2) holds ( x1 = x2 & y1 = y2 ) proof let f be Function; ::_thesis: for O being non empty connected Poset for T being non empty array of O for p, q being Element of dom T st p in q & f = (T,p,q) incl holds for x1, x2, y1, y2 being Element of dom T st x1 in y1 & x2 in y2 & f . (x1,y1) = f . (x2,y2) holds ( x1 = x2 & y1 = y2 ) let O be non empty connected Poset; ::_thesis: for T being non empty array of O for p, q being Element of dom T st p in q & f = (T,p,q) incl holds for x1, x2, y1, y2 being Element of dom T st x1 in y1 & x2 in y2 & f . (x1,y1) = f . (x2,y2) holds ( x1 = x2 & y1 = y2 ) let T be non empty array of O; ::_thesis: for p, q being Element of dom T st p in q & f = (T,p,q) incl holds for x1, x2, y1, y2 being Element of dom T st x1 in y1 & x2 in y2 & f . (x1,y1) = f . (x2,y2) holds ( x1 = x2 & y1 = y2 ) let p, q be Element of dom T; ::_thesis: ( p in q & f = (T,p,q) incl implies for x1, x2, y1, y2 being Element of dom T st x1 in y1 & x2 in y2 & f . (x1,y1) = f . (x2,y2) holds ( x1 = x2 & y1 = y2 ) ) assume A1: ( p in q & f = (T,p,q) incl ) ; ::_thesis: for x1, x2, y1, y2 being Element of dom T st x1 in y1 & x2 in y2 & f . (x1,y1) = f . (x2,y2) holds ( x1 = x2 & y1 = y2 ) then A2: p <> q ; let x1, x2, y1, y2 be Element of dom T; ::_thesis: ( x1 in y1 & x2 in y2 & f . (x1,y1) = f . (x2,y2) implies ( x1 = x2 & y1 = y2 ) ) assume that A3: ( x1 in y1 & x2 in y2 ) and A4: f . (x1,y1) = f . (x2,y2) ; ::_thesis: ( x1 = x2 & y1 = y2 ) set X = dom T; set i = id (dom T); set s = Swap ((id (dom T)),p,q); set h = [:(Swap ((id (dom T)),p,q)),(Swap ((id (dom T)),p,q)):]; set Y = (succ q) \ p; set Z1 = [:{p},((succ q) \ p):]; set Z2 = [:((succ q) \ p),{q}:]; set g = id ([:{p},((succ q) \ p):] \/ [:((succ q) \ p),{q}:]); percases ( ( x1 <> p & x1 <> q & y1 <> p & y1 <> q ) or ( x1 = p & y1 in q ) or ( x1 = p & y1 = q ) or ( p in x1 & y1 = q ) or ( x1 in p & y1 = p ) or ( x1 in p & y1 = q ) or ( x1 = p & q in y1 ) or ( x1 = q & q in y1 ) ) by A1, A3, Th2; supposeA5: ( x1 <> p & x1 <> q & y1 <> p & y1 <> q ) ; ::_thesis: ( x1 = x2 & y1 = y2 ) then A6: f . (x1,y1) = [x1,y1] by A1, Th67; percases ( S1[p,q,x2,y2] or S2[p,q,x2,y2] or S3[p,q,x2,y2] or S4[p,q,x2,y2] or S5[p,q,x2,y2] or S6[p,q,x2,y2] or S7[p,q,x2,y2] or S8[p,q,x2,y2] ) by A1, A3, Th2; suppose S1[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th67; hence ( x1 = x2 & y1 = y2 ) by A4, A6, XTUPLE_0:1; ::_thesis: verum end; suppose S2[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,q] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A5, A4, A6, XTUPLE_0:1; ::_thesis: verum end; suppose S3[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,p] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A5, A4, A6, XTUPLE_0:1; ::_thesis: verum end; suppose S4[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A6, XTUPLE_0:1; ::_thesis: verum end; suppose S5[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th66; hence ( x1 = x2 & y1 = y2 ) by A4, A6, XTUPLE_0:1; ::_thesis: verum end; suppose S6[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [q,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A5, A4, A6, XTUPLE_0:1; ::_thesis: verum end; suppose S7[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A6, XTUPLE_0:1; ::_thesis: verum end; suppose S8[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [p,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A5, A4, A6, XTUPLE_0:1; ::_thesis: verum end; end; end; supposeA7: ( x1 = p & y1 in q ) ; ::_thesis: ( x1 = x2 & y1 = y2 ) then A8: f . (x1,y1) = [x1,y1] by A1, A3, Th69; percases ( S1[p,q,x2,y2] or S2[p,q,x2,y2] or S3[p,q,x2,y2] or S4[p,q,x2,y2] or S5[p,q,x2,y2] or S6[p,q,x2,y2] or S7[p,q,x2,y2] or S8[p,q,x2,y2] ) by A1, A3, Th2; suppose S1[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th67; hence ( x1 = x2 & y1 = y2 ) by A4, A8, XTUPLE_0:1; ::_thesis: verum end; suppose S2[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,q] & x2 <> p ) by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A7, A4, A8, XTUPLE_0:1; ::_thesis: verum end; suppose S3[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,p] & x2 <> p ) by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A7, A4, A8, XTUPLE_0:1; ::_thesis: verum end; suppose S4[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A8, XTUPLE_0:1; ::_thesis: verum end; suppose S5[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th66; hence ( x1 = x2 & y1 = y2 ) by A4, A8, XTUPLE_0:1; ::_thesis: verum end; suppose S6[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [q,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A2, A7, A4, A8, XTUPLE_0:1; ::_thesis: verum end; suppose S7[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A8, XTUPLE_0:1; ::_thesis: verum end; supposeA9: S8[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [p,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A7, A9, A4, A8, XTUPLE_0:1; ::_thesis: verum end; end; end; supposeA10: ( x1 = p & y1 = q ) ; ::_thesis: ( x1 = x2 & y1 = y2 ) then A11: f . (x1,y1) = [x1,y1] by A1, Th66; percases ( S1[p,q,x2,y2] or S2[p,q,x2,y2] or S3[p,q,x2,y2] or S4[p,q,x2,y2] or S5[p,q,x2,y2] or S6[p,q,x2,y2] or S7[p,q,x2,y2] or S8[p,q,x2,y2] ) by A1, A3, Th2; suppose S1[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th67; hence ( x1 = x2 & y1 = y2 ) by A4, A11, XTUPLE_0:1; ::_thesis: verum end; suppose S2[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,q] & x2 <> p ) by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A10, A4, A11, XTUPLE_0:1; ::_thesis: verum end; suppose S3[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,p] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A2, A10, A4, A11, XTUPLE_0:1; ::_thesis: verum end; suppose S4[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A11, XTUPLE_0:1; ::_thesis: verum end; suppose S5[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th66; hence ( x1 = x2 & y1 = y2 ) by A4, A11, XTUPLE_0:1; ::_thesis: verum end; suppose S6[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [q,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A2, A10, A4, A11, XTUPLE_0:1; ::_thesis: verum end; suppose S7[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A11, XTUPLE_0:1; ::_thesis: verum end; suppose S8[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [p,y2] & y2 <> q ) by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A10, A4, A11, XTUPLE_0:1; ::_thesis: verum end; end; end; supposeA12: ( p in x1 & y1 = q ) ; ::_thesis: ( x1 = x2 & y1 = y2 ) then A13: f . (x1,y1) = [x1,y1] by A1, A3, Th69; percases ( S1[p,q,x2,y2] or S2[p,q,x2,y2] or S3[p,q,x2,y2] or S4[p,q,x2,y2] or S5[p,q,x2,y2] or S6[p,q,x2,y2] or S7[p,q,x2,y2] or S8[p,q,x2,y2] ) by A1, A3, Th2; suppose S1[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th67; hence ( x1 = x2 & y1 = y2 ) by A4, A13, XTUPLE_0:1; ::_thesis: verum end; supposeA14: S2[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,q] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A14, A12, A4, A13, XTUPLE_0:1; ::_thesis: verum end; supposeA15: S3[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,p] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A15, A12, A4, A13, XTUPLE_0:1; ::_thesis: verum end; suppose S4[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A13, XTUPLE_0:1; ::_thesis: verum end; suppose S5[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th66; hence ( x1 = x2 & y1 = y2 ) by A4, A13, XTUPLE_0:1; ::_thesis: verum end; suppose S6[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [q,y2] & y2 <> q ) by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A12, A4, A13, XTUPLE_0:1; ::_thesis: verum end; suppose S7[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A13, XTUPLE_0:1; ::_thesis: verum end; suppose S8[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [p,y2] & y2 <> q ) by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A12, A4, A13, XTUPLE_0:1; ::_thesis: verum end; end; end; supposeA16: ( x1 in p & y1 = p ) ; ::_thesis: ( x1 = x2 & y1 = y2 ) then A17: f . (x1,y1) = [x1,q] by A1, Th68; percases ( S1[p,q,x2,y2] or S2[p,q,x2,y2] or S3[p,q,x2,y2] or S4[p,q,x2,y2] or S5[p,q,x2,y2] or S6[p,q,x2,y2] or S7[p,q,x2,y2] or S8[p,q,x2,y2] ) by A1, A3, Th2; supposeA18: S1[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th67; hence ( x1 = x2 & y1 = y2 ) by A18, A4, A17, XTUPLE_0:1; ::_thesis: verum end; supposeA19: S2[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,q] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A19, A16, A4, A17, XTUPLE_0:1; ::_thesis: verum end; suppose S3[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,p] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A2, A4, A17, XTUPLE_0:1; ::_thesis: verum end; suppose S4[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,y2] & x2 <> x1 ) by A16, A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A17, XTUPLE_0:1; ::_thesis: verum end; suppose S5[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,y2] & x2 <> x1 ) by A16, A1, Th66; hence ( x1 = x2 & y1 = y2 ) by A4, A17, XTUPLE_0:1; ::_thesis: verum end; suppose S6[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [q,y2] & y2 <> q ) by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A4, A17, XTUPLE_0:1; ::_thesis: verum end; supposeA20: S7[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A16, A20, A4, A17, XTUPLE_0:1; ::_thesis: verum end; suppose S8[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [p,y2] & x1 <> p ) by A16, A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A4, A17, XTUPLE_0:1; ::_thesis: verum end; end; end; supposeA21: ( x1 in p & y1 = q ) ; ::_thesis: ( x1 = x2 & y1 = y2 ) then A22: f . (x1,y1) = [x1,p] by A1, Th68; percases ( S1[p,q,x2,y2] or S2[p,q,x2,y2] or S3[p,q,x2,y2] or S4[p,q,x2,y2] or S5[p,q,x2,y2] or S6[p,q,x2,y2] or S7[p,q,x2,y2] or S8[p,q,x2,y2] ) by A1, A3, Th2; supposeA23: S1[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th67; hence ( x1 = x2 & y1 = y2 ) by A23, A4, A22, XTUPLE_0:1; ::_thesis: verum end; suppose S2[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,q] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A2, A4, A22, XTUPLE_0:1; ::_thesis: verum end; supposeA24: S3[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,p] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A24, A21, A4, A22, XTUPLE_0:1; ::_thesis: verum end; supposeA25: S4[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,y2] & x1 <> p ) by A21, A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A25, A4, A22, XTUPLE_0:1; ::_thesis: verum end; supposeA26: S5[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th66; hence ( x1 = x2 & y1 = y2 ) by A26, A2, A4, A22, XTUPLE_0:1; ::_thesis: verum end; suppose S6[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [q,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A1, A21, A4, A22, XTUPLE_0:1; ::_thesis: verum end; supposeA27: S7[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A2, A27, A4, A22, XTUPLE_0:1; ::_thesis: verum end; suppose S8[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [p,y2] & x1 <> p ) by A21, A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A4, A22, XTUPLE_0:1; ::_thesis: verum end; end; end; supposeA28: ( x1 = p & q in y1 ) ; ::_thesis: ( x1 = x2 & y1 = y2 ) then A29: f . (x1,y1) = [q,y1] by A1, Th70; percases ( S1[p,q,x2,y2] or S2[p,q,x2,y2] or S3[p,q,x2,y2] or S4[p,q,x2,y2] or S5[p,q,x2,y2] or S6[p,q,x2,y2] or S7[p,q,x2,y2] or S8[p,q,x2,y2] ) by A1, A3, Th2; supposeA30: S1[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th67; hence ( x1 = x2 & y1 = y2 ) by A30, A4, A29, XTUPLE_0:1; ::_thesis: verum end; supposeA31: S2[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,q] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A1, A31, A4, A29, XTUPLE_0:1; ::_thesis: verum end; suppose S3[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,p] by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A1, A28, A4, A29, XTUPLE_0:1; ::_thesis: verum end; suppose S4[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,y2] & x2 <> q ) by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A29, XTUPLE_0:1; ::_thesis: verum end; supposeA32: S5[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th66; hence ( x1 = x2 & y1 = y2 ) by A2, A32, A4, A29, XTUPLE_0:1; ::_thesis: verum end; supposeA33: S6[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [q,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A33, A28, A4, A29, XTUPLE_0:1; ::_thesis: verum end; suppose S7[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,y2] & x2 <> q ) by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A29, XTUPLE_0:1; ::_thesis: verum end; suppose S8[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [p,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A2, A4, A29, XTUPLE_0:1; ::_thesis: verum end; end; end; supposeA34: ( x1 = q & q in y1 ) ; ::_thesis: ( x1 = x2 & y1 = y2 ) then A35: f . (x1,y1) = [p,y1] by A1, Th70; percases ( S1[p,q,x2,y2] or S2[p,q,x2,y2] or S3[p,q,x2,y2] or S4[p,q,x2,y2] or S5[p,q,x2,y2] or S6[p,q,x2,y2] or S7[p,q,x2,y2] or S8[p,q,x2,y2] ) by A1, A3, Th2; supposeA36: S1[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, Th67; hence ( x1 = x2 & y1 = y2 ) by A36, A4, A35, XTUPLE_0:1; ::_thesis: verum end; suppose S2[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,q] & p <> x2 ) by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A4, A35, XTUPLE_0:1; ::_thesis: verum end; suppose S3[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,p] & p <> x2 ) by A1, Th68; hence ( x1 = x2 & y1 = y2 ) by A4, A35, XTUPLE_0:1; ::_thesis: verum end; supposeA37: S4[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [x2,y2] by A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A34, A37, A4, A35, XTUPLE_0:1; ::_thesis: verum end; suppose S5[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,y2] & y1 <> y2 ) by A34, A1, Th66; hence ( x1 = x2 & y1 = y2 ) by A4, A35, XTUPLE_0:1; ::_thesis: verum end; suppose S6[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [q,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A2, A4, A35, XTUPLE_0:1; ::_thesis: verum end; suppose S7[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then ( f . (x2,y2) = [x2,y2] & y2 <> y1 ) by A34, A1, A3, Th69; hence ( x1 = x2 & y1 = y2 ) by A4, A35, XTUPLE_0:1; ::_thesis: verum end; supposeA38: S8[p,q,x2,y2] ; ::_thesis: ( x1 = x2 & y1 = y2 ) then f . (x2,y2) = [p,y2] by A1, Th70; hence ( x1 = x2 & y1 = y2 ) by A38, A34, A4, A35, XTUPLE_0:1; ::_thesis: verum end; end; end; end; end; theorem Th71: :: EXCHSORT:71 for O being non empty connected Poset for T being non empty array of O for p, q being Element of dom T st p in q holds ((T,p,q) incl) | (inversions (Swap (T,p,q))) is one-to-one proof let O be non empty connected Poset; ::_thesis: for T being non empty array of O for p, q being Element of dom T st p in q holds ((T,p,q) incl) | (inversions (Swap (T,p,q))) is one-to-one let T be non empty array of O; ::_thesis: for p, q being Element of dom T st p in q holds ((T,p,q) incl) | (inversions (Swap (T,p,q))) is one-to-one let p, q be Element of dom T; ::_thesis: ( p in q implies ((T,p,q) incl) | (inversions (Swap (T,p,q))) is one-to-one ) assume A1: p in q ; ::_thesis: ((T,p,q) incl) | (inversions (Swap (T,p,q))) is one-to-one set f = (T,p,q) incl ; set s = Swap (T,p,q); set w = inversions (Swap (T,p,q)); set fw = ((T,p,q) incl) | (inversions (Swap (T,p,q))); A2: dom (Swap (T,p,q)) = dom T by FUNCT_7:99; let x be set ; :: according to FUNCT_1:def_4 ::_thesis: for b1 being set holds ( not x in proj1 (((T,p,q) incl) | (inversions (Swap (T,p,q)))) or not b1 in proj1 (((T,p,q) incl) | (inversions (Swap (T,p,q)))) or not (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . x = (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . b1 or x = b1 ) let y be set ; ::_thesis: ( not x in proj1 (((T,p,q) incl) | (inversions (Swap (T,p,q)))) or not y in proj1 (((T,p,q) incl) | (inversions (Swap (T,p,q)))) or not (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . x = (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . y or x = y ) assume ( x in dom (((T,p,q) incl) | (inversions (Swap (T,p,q)))) & y in dom (((T,p,q) incl) | (inversions (Swap (T,p,q)))) ) ; ::_thesis: ( not (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . x = (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . y or x = y ) then A3: ( x in inversions (Swap (T,p,q)) & y in inversions (Swap (T,p,q)) ) by RELAT_1:57; then consider x1, y1 being Element of dom T such that A4: ( x = [x1,y1] & x1 in y1 & (Swap (T,p,q)) /. x1 > (Swap (T,p,q)) /. y1 ) by A2; consider x2, y2 being Element of dom T such that A5: ( y = [x2,y2] & x2 in y2 & (Swap (T,p,q)) /. x2 > (Swap (T,p,q)) /. y2 ) by A2, A3; assume (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . x = (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . y ; ::_thesis: x = y then ((T,p,q) incl) . (x1,y1) = (((T,p,q) incl) | (inversions (Swap (T,p,q)))) . y by A4, A3, FUNCT_1:49 .= ((T,p,q) incl) . (x2,y2) by A5, A3, FUNCT_1:49 ; then ( x1 = x2 & y1 = y2 ) by A1, A4, A5, Lm1; hence x = y by A4, A5; ::_thesis: verum end; registration let O be non empty connected Poset; let R be array of O; let x, y, z be set ; cluster((R,x,y) incl) .: z -> Relation-like ; coherence ((R,x,y) incl) .: z is Relation-like proof set X = dom R; set i = id (dom R); set s = Swap ((id (dom R)),x,y); set h = [:(Swap ((id (dom R)),x,y)),(Swap ((id (dom R)),x,y)):]; set Y = (succ y) \ x; set Z1 = [:{x},((succ y) \ x):]; set Z2 = [:((succ y) \ x),{y}:]; set g = id ([:{x},((succ y) \ x):] \/ [:((succ y) \ x),{y}:]); A1: ((R,x,y) incl) .: z c= rng ((R,x,y) incl) by RELAT_1:111; A2: rng [:(Swap ((id (dom R)),x,y)),(Swap ((id (dom R)),x,y)):] = [:(rng (Swap ((id (dom R)),x,y))),(rng (Swap ((id (dom R)),x,y))):] by FUNCT_3:67; rng ((R,x,y) incl) c= (rng [:(Swap ((id (dom R)),x,y)),(Swap ((id (dom R)),x,y)):]) \/ (rng (id ([:{x},((succ y) \ x):] \/ [:((succ y) \ x),{y}:]))) by FUNCT_4:17; hence ((R,x,y) incl) .: z is Relation-like by A1, A2; ::_thesis: verum end; end; begin theorem Th72: :: EXCHSORT:72 for x, y being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds ((R,x,y) incl) .: (inversions (Swap (R,x,y))) c< inversions R proof let x, y be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R holds ((R,x,y) incl) .: (inversions (Swap (R,x,y))) c< inversions R let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R holds ((R,x,y) incl) .: (inversions (Swap (R,x,y))) c< inversions R let R be array of O; ::_thesis: ( [x,y] in inversions R implies ((R,x,y) incl) .: (inversions (Swap (R,x,y))) c< inversions R ) assume A1: [x,y] in inversions R ; ::_thesis: ((R,x,y) incl) .: (inversions (Swap (R,x,y))) c< inversions R then A2: ( x in dom R & y in dom R & x in y & R /. x > R /. y ) by Th46; reconsider T = R as non empty array of O by A1; reconsider p = x, q = y as Element of dom T by A1, Th46; set j = (R,x,y) incl ; set k = (T,p,q) incl ; set s = Swap (R,x,y); set t = Swap (T,p,q); set ws = inversions (Swap (R,x,y)); set w = inversions R; A3: dom (Swap (T,p,q)) = dom T by FUNCT_7:99; thus ((R,x,y) incl) .: (inversions (Swap (R,x,y))) c= inversions R :: according to XBOOLE_0:def_8 ::_thesis: not ((R,x,y) incl) .: (inversions (Swap (R,x,y))) = inversions R proof let z be set ; :: according to RELAT_1:def_3 ::_thesis: for b1 being set holds ( not [z,b1] in ((R,x,y) incl) .: (inversions (Swap (R,x,y))) or [z,b1] in inversions R ) let t be set ; ::_thesis: ( not [z,t] in ((R,x,y) incl) .: (inversions (Swap (R,x,y))) or [z,t] in inversions R ) assume [z,t] in ((R,x,y) incl) .: (inversions (Swap (R,x,y))) ; ::_thesis: [z,t] in inversions R then consider a, b being set such that A4: ( [a,b] in inversions (Swap (R,x,y)) & [a,b] in dom ((R,x,y) incl) & [z,t] = ((R,x,y) incl) . (a,b) ) by Th5; A5: ( a in b & a in dom T & b in dom T ) by A4, A3, Th46; reconsider a = a, b = b as Element of dom T by A4, A3, Th46; percases ( ( a <> p & a <> q & b <> p & b <> q ) or ( a in p & b = p ) or ( a in p & b = q ) or ( a = p & b in q ) or ( a = p & b = q ) or ( a = p & q in b ) or ( a = q & q in b ) or ( p in a & q = b ) ) by A2, A5, Th2; supposeA6: ( a <> p & a <> q & b <> p & b <> q ) ; ::_thesis: [z,t] in inversions R then [z,t] = [a,b] by A4, A2, Th67; hence [z,t] in inversions R by A4, A6, Th52; ::_thesis: verum end; supposeA7: ( a in p & b = p ) ; ::_thesis: [z,t] in inversions R then [z,t] = [a,q] by A4, A2, Th68; hence [z,t] in inversions R by A1, A4, A7, Th53; ::_thesis: verum end; supposeA8: ( a in p & b = q ) ; ::_thesis: [z,t] in inversions R then [z,t] = [a,p] by A4, A2, Th68; hence [z,t] in inversions R by A1, A4, A8, Th54; ::_thesis: verum end; supposeA9: ( a = p & b in q ) ; ::_thesis: [z,t] in inversions R then [z,t] = [a,b] by A5, A4, Th69; hence [z,t] in inversions R by A1, A4, A9, Th55; ::_thesis: verum end; suppose ( a = p & b = q ) ; ::_thesis: [z,t] in inversions R hence [z,t] in inversions R by A1, A4, A2, Th66; ::_thesis: verum end; supposeA10: ( a = p & q in b ) ; ::_thesis: [z,t] in inversions R then [z,t] = [q,b] by A4, A2, Th70; hence [z,t] in inversions R by A1, A4, A10, Th57; ::_thesis: verum end; supposeA11: ( a = q & q in b ) ; ::_thesis: [z,t] in inversions R then [z,t] = [p,b] by A4, A2, Th70; hence [z,t] in inversions R by A1, A4, A11, Th58; ::_thesis: verum end; supposeA12: ( p in a & q = b ) ; ::_thesis: [z,t] in inversions R then [z,t] = [a,b] by A4, A5, Th69; hence [z,t] in inversions R by A1, A4, A12, Th56; ::_thesis: verum end; end; end; now__::_thesis:_(_[x,y]_in_((R,x,y)_incl)_.:_(inversions_(Swap_(R,x,y)))_implies_[x,y]_in_inversions_(Swap_(R,x,y))_) assume [x,y] in ((R,x,y) incl) .: (inversions (Swap (R,x,y))) ; ::_thesis: [x,y] in inversions (Swap (R,x,y)) then consider a, b being set such that A13: ( [a,b] in inversions (Swap (R,x,y)) & [a,b] in dom ((R,x,y) incl) & [x,y] = ((R,x,y) incl) . (a,b) ) by Th5; A14: ((R,x,y) incl) . (p,q) = [p,q] by A2, Th66; A15: ( a in b & a in dom T & b in dom T ) by A13, A3, Th46; reconsider a = a, b = b as Element of dom T by A13, A3, Th46; ( a = p & b = q ) by A2, A13, A14, A15, Lm1; hence [x,y] in inversions (Swap (R,x,y)) by A13; ::_thesis: verum end; hence not ((R,x,y) incl) .: (inversions (Swap (R,x,y))) = inversions R by A1, Th51; ::_thesis: verum end; registration let R be finite Function; let x, y be set ; cluster Swap (R,x,y) -> finite ; coherence Swap (R,x,y) is finite proof dom (Swap (R,x,y)) = dom R by FUNCT_7:99; hence Swap (R,x,y) is finite by FINSET_1:10; ::_thesis: verum end; end; theorem Th73: :: EXCHSORT:73 for x, y being set for O being non empty connected Poset for R being array of O st [x,y] in inversions R & inversions R is finite holds card (inversions (Swap (R,x,y))) in card (inversions R) proof let x, y be set ; ::_thesis: for O being non empty connected Poset for R being array of O st [x,y] in inversions R & inversions R is finite holds card (inversions (Swap (R,x,y))) in card (inversions R) let O be non empty connected Poset; ::_thesis: for R being array of O st [x,y] in inversions R & inversions R is finite holds card (inversions (Swap (R,x,y))) in card (inversions R) let R be array of O; ::_thesis: ( [x,y] in inversions R & inversions R is finite implies card (inversions (Swap (R,x,y))) in card (inversions R) ) set s = Swap (R,x,y); set h = (R,x,y) incl ; set ws = inversions (Swap (R,x,y)); assume A1: ( [x,y] in inversions R & inversions R is finite ) ; ::_thesis: card (inversions (Swap (R,x,y))) in card (inversions R) then reconsider w = inversions R as finite set ; ((R,x,y) incl) .: (inversions (Swap (R,x,y))) c< inversions R by A1, Th72; then ((R,x,y) incl) .: (inversions (Swap (R,x,y))) c= w by XBOOLE_0:def_8; then reconsider hws = ((R,x,y) incl) .: (inversions (Swap (R,x,y))) as finite set ; card hws < card w by A1, Th72, TREES_1:6; then A2: card hws in card w by NAT_1:44; A3: ( x in dom R & y in dom R & x in y ) by A1, Th46; A4: not R is empty by A1; inversions (Swap (R,x,y)),((R,x,y) incl) .: (inversions (Swap (R,x,y))) are_equipotent proof take hw = ((R,x,y) incl) | (inversions (Swap (R,x,y))); :: according to WELLORD2:def_4 ::_thesis: ( hw is one-to-one & proj1 hw = inversions (Swap (R,x,y)) & proj2 hw = ((R,x,y) incl) .: (inversions (Swap (R,x,y))) ) thus hw is one-to-one by A3, A4, Th71; ::_thesis: ( proj1 hw = inversions (Swap (R,x,y)) & proj2 hw = ((R,x,y) incl) .: (inversions (Swap (R,x,y))) ) dom (Swap (R,x,y)) = dom R by FUNCT_7:99; then inversions (Swap (R,x,y)) c= [:(dom R),(dom R):] by Th47; then inversions (Swap (R,x,y)) c= dom ((R,x,y) incl) by A3, A4, Th61; hence dom hw = inversions (Swap (R,x,y)) by RELAT_1:62; ::_thesis: proj2 hw = ((R,x,y) incl) .: (inversions (Swap (R,x,y))) thus proj2 hw = ((R,x,y) incl) .: (inversions (Swap (R,x,y))) by RELAT_1:115; ::_thesis: verum end; hence card (inversions (Swap (R,x,y))) in card (inversions R) by A2, CARD_1:5; ::_thesis: verum end; theorem :: EXCHSORT:74 for x, y being set for O being non empty connected Poset for R being finite array of O st [x,y] in inversions R holds card (inversions (Swap (R,x,y))) < card (inversions R) proof let x, y be set ; ::_thesis: for O being non empty connected Poset for R being finite array of O st [x,y] in inversions R holds card (inversions (Swap (R,x,y))) < card (inversions R) let O be non empty connected Poset; ::_thesis: for R being finite array of O st [x,y] in inversions R holds card (inversions (Swap (R,x,y))) < card (inversions R) let R be finite array of O; ::_thesis: ( [x,y] in inversions R implies card (inversions (Swap (R,x,y))) < card (inversions R) ) assume [x,y] in inversions R ; ::_thesis: card (inversions (Swap (R,x,y))) < card (inversions R) then card (inversions (Swap (R,x,y))) in card (inversions R) by Th73; hence card (inversions (Swap (R,x,y))) < card (inversions R) by NAT_1:44; ::_thesis: verum end; definition let O be non empty connected Poset; let R be array of O; mode arr_computation of R -> non empty array means :Def14: :: EXCHSORT:def 14 ( it . (base- it) = R & ( for a being ordinal number st a in dom it holds it . a is array of O ) & ( for a being ordinal number st a in dom it & succ a in dom it holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & it . a = R & it . (succ a) = Swap (R,x,y) ) ) ); existence ex b1 being non empty array st ( b1 . (base- b1) = R & ( for a being ordinal number st a in dom b1 holds b1 . a is array of O ) & ( for a being ordinal number st a in dom b1 & succ a in dom b1 holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & b1 . a = R & b1 . (succ a) = Swap (R,x,y) ) ) ) proof reconsider C = <%R%> as non empty 0 -based array ; take C ; ::_thesis: ( C . (base- C) = R & ( for a being ordinal number st a in dom C holds C . a is array of O ) & ( for a being ordinal number st a in dom C & succ a in dom C holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) ) ) A1: ( dom C = 1 & 0 in 1 ) by AFINSQ_1:def_4, NAT_1:44; then base- C = 0 by Def4; hence C . (base- C) = R by AFINSQ_1:def_4; ::_thesis: ( ( for a being ordinal number st a in dom C holds C . a is array of O ) & ( for a being ordinal number st a in dom C & succ a in dom C holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) ) ) hereby ::_thesis: for a being ordinal number st a in dom C & succ a in dom C holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) let a be ordinal number ; ::_thesis: ( a in dom C implies C . a is array of O ) assume a in dom C ; ::_thesis: C . a is array of O then a = 0 by A1, ORDINAL3:15, TARSKI:def_1; hence C . a is array of O by AFINSQ_1:def_4; ::_thesis: verum end; let a be ordinal number ; ::_thesis: ( a in dom C & succ a in dom C implies ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) ) assume ( a in dom C & succ a in dom C ) ; ::_thesis: ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) hence ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) by A1, ORDINAL3:15, TARSKI:def_1; ::_thesis: verum end; end; :: deftheorem Def14 defines arr_computation EXCHSORT:def_14_:_ for O being non empty connected Poset for R being array of O for b3 being non empty array holds ( b3 is arr_computation of R iff ( b3 . (base- b3) = R & ( for a being ordinal number st a in dom b3 holds b3 . a is array of O ) & ( for a being ordinal number st a in dom b3 & succ a in dom b3 holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & b3 . a = R & b3 . (succ a) = Swap (R,x,y) ) ) ) ); theorem Th75: :: EXCHSORT:75 for a being ordinal number for O being non empty connected Poset for R being array of O holds {[a,R]} is arr_computation of R proof let a be ordinal number ; ::_thesis: for O being non empty connected Poset for R being array of O holds {[a,R]} is arr_computation of R let O be non empty connected Poset; ::_thesis: for R being array of O holds {[a,R]} is arr_computation of R let R be array of O; ::_thesis: {[a,R]} is arr_computation of R reconsider C = {[a,R]} as non empty a -based array ; C is arr_computation of R proof A1: ( dom C = {a} & a in {a} ) by FUNCT_5:12, TARSKI:def_1; then base- C = a by Def4; hence C . (base- C) = R by GRFUNC_1:6; :: according to EXCHSORT:def_14 ::_thesis: ( ( for a being ordinal number st a in dom C holds C . a is array of O ) & ( for a being ordinal number st a in dom C & succ a in dom C holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) ) ) hereby ::_thesis: for a being ordinal number st a in dom C & succ a in dom C holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) let b be ordinal number ; ::_thesis: ( b in dom C implies C . b is array of O ) assume b in dom C ; ::_thesis: C . b is array of O then a = b by A1, TARSKI:def_1; hence C . b is array of O by GRFUNC_1:6; ::_thesis: verum end; let b be ordinal number ; ::_thesis: ( b in dom C & succ b in dom C implies ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . b = R & C . (succ b) = Swap (R,x,y) ) ) assume ( b in dom C & succ b in dom C ) ; ::_thesis: ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . b = R & C . (succ b) = Swap (R,x,y) ) then ( a = b & a = succ b ) by A1, TARSKI:def_1; then a in a by ORDINAL1:6; hence ex R being array of O ex x, y being set st ( [x,y] in inversions R & C . b = R & C . (succ b) = Swap (R,x,y) ) ; ::_thesis: verum end; hence {[a,R]} is arr_computation of R ; ::_thesis: verum end; registration let O be non empty connected Poset; let R be array of O; let a be ordinal number ; cluster non empty Relation-like Function-like finite segmental a -based for arr_computation of R; existence ex b1 being arr_computation of R st ( b1 is a -based & b1 is finite ) proof reconsider C = {[a,R]} as non empty finite a -based array ; C is arr_computation of R by Th75; hence ex b1 being arr_computation of R st ( b1 is a -based & b1 is finite ) ; ::_thesis: verum end; end; registration let O be non empty connected Poset; let R be array of O; let C be arr_computation of R; let x be set ; clusterC . x -> Relation-like Function-like segmental ; coherence ( C . x is segmental & C . x is Function-like & C . x is Relation-like ) proof percases ( x nin dom C or x in dom C ) ; suppose x nin dom C ; ::_thesis: ( C . x is segmental & C . x is Function-like & C . x is Relation-like ) hence ( C . x is segmental & C . x is Function-like & C . x is Relation-like ) by FUNCT_1:def_2; ::_thesis: verum end; suppose x in dom C ; ::_thesis: ( C . x is segmental & C . x is Function-like & C . x is Relation-like ) hence ( C . x is segmental & C . x is Function-like & C . x is Relation-like ) by Def14; ::_thesis: verum end; end; end; end; registration let O be non empty connected Poset; let R be array of O; let C be arr_computation of R; let x be set ; clusterC . x -> the carrier of O -valued ; coherence C . x is the carrier of O -valued proof percases ( x nin dom C or x in dom C ) ; suppose x nin dom C ; ::_thesis: C . x is the carrier of O -valued then C . x = {} by FUNCT_1:def_2; then rng (C . x) = {} ; hence rng (C . x) c= the carrier of O by XBOOLE_1:2; :: according to RELAT_1:def_19 ::_thesis: verum end; suppose x in dom C ; ::_thesis: C . x is the carrier of O -valued hence C . x is the carrier of O -valued by Def14; ::_thesis: verum end; end; end; end; registration let O be non empty connected Poset; let R be array of O; let C be arr_computation of R; cluster last C -> Relation-like Function-like segmental ; coherence ( last C is segmental & last C is Relation-like & last C is Function-like ) ; end; registration let O be non empty connected Poset; let R be array of O; let C be arr_computation of R; cluster last C -> the carrier of O -valued ; coherence last C is the carrier of O -valued ; end; definition let O be non empty connected Poset; let R be array of O; let C be arr_computation of R; attrC is complete means :Def15: :: EXCHSORT:def 15 last C is ascending ; end; :: deftheorem Def15 defines complete EXCHSORT:def_15_:_ for O being non empty connected Poset for R being array of O for C being arr_computation of R holds ( C is complete iff last C is ascending ); theorem Th76: :: EXCHSORT:76 for O being non empty connected Poset for R being array of O for C being 0 -based arr_computation of R st R is finite array of O holds C is finite proof let O be non empty connected Poset; ::_thesis: for R being array of O for C being 0 -based arr_computation of R st R is finite array of O holds C is finite let R be array of O; ::_thesis: for C being 0 -based arr_computation of R st R is finite array of O holds C is finite let C be 0 -based arr_computation of R; ::_thesis: ( R is finite array of O implies C is finite ) assume R is finite array of O ; ::_thesis: C is finite then reconsider R = R as finite array of O ; A1: C . (base- C) = R by Def14; deffunc H1( array of O) -> set = card (inversions $1); base- C = 0 by Th24; then A2: H1(C . 0) is finite by A1; A3: for a being ordinal number st succ a in dom C & H1(C . a) is finite holds H1(C . (succ a)) c< H1(C . a) proof let a be ordinal number ; ::_thesis: ( succ a in dom C & H1(C . a) is finite implies H1(C . (succ a)) c< H1(C . a) ) assume A4: ( succ a in dom C & H1(C . a) is finite ) ; ::_thesis: H1(C . (succ a)) c< H1(C . a) a in succ a by ORDINAL1:6; then a in dom C by A4, ORDINAL1:10; then consider R being array of O, x, y being set such that A5: ( [x,y] in inversions R & C . a = R & C . (succ a) = Swap (R,x,y) ) by A4, Def14; inversions R is finite by A4, A5; then H1(C . (succ a)) in H1(C . a) by A5, Th73; then ( H1(C . (succ a)) c= H1(C . a) & H1(C . (succ a)) <> H1(C . a) ) by ORDINAL1:def_2; hence H1(C . (succ a)) c< H1(C . a) by XBOOLE_0:def_8; ::_thesis: verum end; thus C is finite from EXCHSORT:sch_1(A2, A3); ::_thesis: verum end; theorem :: EXCHSORT:77 for O being non empty connected Poset for R being array of O for C being 0 -based arr_computation of R st R is finite array of O & ( for a being ordinal number st inversions (C . a) <> {} holds succ a in dom C ) holds C is complete proof let O be non empty connected Poset; ::_thesis: for R being array of O for C being 0 -based arr_computation of R st R is finite array of O & ( for a being ordinal number st inversions (C . a) <> {} holds succ a in dom C ) holds C is complete let R be array of O; ::_thesis: for C being 0 -based arr_computation of R st R is finite array of O & ( for a being ordinal number st inversions (C . a) <> {} holds succ a in dom C ) holds C is complete let C be 0 -based arr_computation of R; ::_thesis: ( R is finite array of O & ( for a being ordinal number st inversions (C . a) <> {} holds succ a in dom C ) implies C is complete ) assume R is finite array of O ; ::_thesis: ( ex a being ordinal number st ( inversions (C . a) <> {} & not succ a in dom C ) or C is complete ) then C is finite by Th76; then reconsider d = dom C as non empty finite Ordinal ; assume A1: for a being ordinal number st inversions (C . a) <> {} holds succ a in dom C ; ::_thesis: C is complete set u = union d; consider n being Nat such that A2: d = n + 1 by NAT_1:6; A3: d = succ n by A2, NAT_1:38; then A4: union d = n by ORDINAL2:2; ( inversions (C . (union d)) <> 0 implies d in d ) by A1, A3, A4; hence last C is ascending by Th48; :: according to EXCHSORT:def_15 ::_thesis: verum end; theorem Th78: :: EXCHSORT:78 for O being non empty connected Poset for R being array of O for C being finite arr_computation of R holds ( last C is permutation of R & ( for a being ordinal number st a in dom C holds C . a is permutation of R ) ) proof let O be non empty connected Poset; ::_thesis: for R being array of O for C being finite arr_computation of R holds ( last C is permutation of R & ( for a being ordinal number st a in dom C holds C . a is permutation of R ) ) let R be array of O; ::_thesis: for C being finite arr_computation of R holds ( last C is permutation of R & ( for a being ordinal number st a in dom C holds C . a is permutation of R ) ) let C be finite arr_computation of R; ::_thesis: ( last C is permutation of R & ( for a being ordinal number st a in dom C holds C . a is permutation of R ) ) consider a, b being ordinal number such that A1: dom C = a \ b by Def1; consider n being Nat such that A2: a = b +^ n by A1, Th7; defpred S9[ Nat] means ( b +^ $1 in dom C implies C . (b +^ $1) is permutation of R ); A3: b +^ 0 = b by ORDINAL2:27; then n <> 0 by A1, A2, XBOOLE_1:37; then consider m being Nat such that A4: n = m + 1 by NAT_1:6; A5: a = b +^ (succ m) by A2, A4, NAT_1:38 .= succ (b +^ m) by ORDINAL2:28 ; then A6: b +^ m = union a by ORDINAL2:2 .= union (a \ b) by A1, Th6 ; C . (base- C) = R by Def14; then C . b = R by A1, Th23; then A7: S9[ 0 ] by A3, Th38; A8: for k being Nat st S9[k] holds S9[k + 1] proof let k be Nat; ::_thesis: ( S9[k] implies S9[k + 1] ) assume A9: ( S9[k] & b +^ (k + 1) in dom C ) ; ::_thesis: C . (b +^ (k + 1)) is permutation of R k + 1 = succ k by NAT_1:38; then A10: b +^ (k + 1) = succ (b +^ k) by ORDINAL2:28; then ( b +^ k in b +^ (k + 1) & b +^ (k + 1) in a ) by A1, A9, ORDINAL1:6; then A11: ( b c= b +^ k & b +^ k in a ) by ORDINAL1:10, ORDINAL3:24; then b +^ k in dom C by A1, ORDINAL6:5; then consider Q being array of O, x, y being set such that A12: ( [x,y] in inversions Q & C . (b +^ k) = Q & C . (b +^ (k + 1)) = Swap (Q,x,y) ) by A9, A10, Def14; ( x in dom Q & y in dom Q ) by A12, Th46; then Swap (Q,x,y) is permutation of Q by Th43; hence C . (b +^ (k + 1)) is permutation of R by A9, A1, A11, A12, Th40, ORDINAL6:5; ::_thesis: verum end; A13: for k being Nat holds S9[k] from NAT_1:sch_2(A7, A8); ( b c= b +^ m & b +^ m in a ) by A5, ORDINAL1:6, ORDINAL3:24; then ( S9[m] & b +^ m in dom C ) by A1, A13, ORDINAL6:5; hence last C is permutation of R by A1, A6; ::_thesis: for a being ordinal number st a in dom C holds C . a is permutation of R let c be ordinal number ; ::_thesis: ( c in dom C implies C . c is permutation of R ) assume A14: c in dom C ; ::_thesis: C . c is permutation of R then A15: ( b c= c & c in a ) by A1, ORDINAL6:5; then c = b +^ (c -^ b) by ORDINAL3:def_5; then c -^ b in n by A2, A14, A1, ORDINAL3:22; then reconsider k = c -^ b as Nat ; S9[k] by A13; hence C . c is permutation of R by A14, A15, ORDINAL3:def_5; ::_thesis: verum end; begin theorem Th79: :: EXCHSORT:79 for X being set for A being finite 0 -based array of X st A <> {} holds last A in X proof let X be set ; ::_thesis: for A being finite 0 -based array of X st A <> {} holds last A in X let A be finite 0 -based array of X; ::_thesis: ( A <> {} implies last A in X ) assume A <> {} ; ::_thesis: last A in X then consider n being Nat such that A1: dom A = n + 1 by NAT_1:6; n + 1 = succ n by NAT_1:38; then ( n in dom A & union (dom A) = n ) by A1, ORDINAL1:6, ORDINAL2:2; hence last A in X by FUNCT_1:102; ::_thesis: verum end; theorem Th80: :: EXCHSORT:80 for x being set holds last <%x%> = x proof let x be set ; ::_thesis: last <%x%> = x dom <%x%> = succ 0 by AFINSQ_1:def_4; then union (dom <%x%>) = 0 by ORDINAL2:2; hence last <%x%> = x by AFINSQ_1:def_4; ::_thesis: verum end; theorem Th81: :: EXCHSORT:81 for x being set for A being finite 0 -based array holds last (A ^ <%x%>) = x proof let x be set ; ::_thesis: for A being finite 0 -based array holds last (A ^ <%x%>) = x let A be finite 0 -based array; ::_thesis: last (A ^ <%x%>) = x dom <%x%> = 1 by AFINSQ_1:def_4; then dom (A ^ <%x%>) = (dom A) +^ 1 by ORDINAL4:def_1 .= succ (dom A) by ORDINAL2:31 ; then union (dom (A ^ <%x%>)) = len A by ORDINAL2:2; hence last (A ^ <%x%>) = x by AFINSQ_1:36; ::_thesis: verum end; registration let X be set ; cluster -> X -valued for Element of X ^omega ; coherence for b1 being Element of X ^omega holds b1 is X -valued by AFINSQ_1:42; end; scheme :: EXCHSORT:sch 2 A{ F1( set ) -> set , F2() -> non empty set , P1[ set , set ], F3() -> set } : ex f being non empty finite 0 -based array ex k being Element of F2() st ( k = last f & F1(k) = {} & f . 0 = F3() & ( for a being ordinal number st succ a in dom f holds ex x, y being Element of F2() st ( x = f . a & y = f . (succ a) & P1[x,y] ) ) ) provided A1: F3() in F2() and A2: F1(F3()) is finite and A3: for x being Element of F2() st F1(x) <> {} holds ex y being Element of F2() st ( P1[x,y] & F1(y) c< F1(x) ) proof set D = F2() ^omega ; reconsider s0 = F3() as Element of F2() by A1; reconsider f0 = <%s0%> as Element of F2() ^omega by AFINSQ_1:42; defpred S9[ set , Element of F2() ^omega , Element of F2() ^omega ] means ( ( ( $2 = {} or F1((last $2)) = {} ) implies $2 = $3 ) & ( $2 <> {} & F1((last $2)) <> {} implies ex y being Element of F2() st ( P1[ last $2,y] & F1(y) c< F1((last $2)) & $2 ^ <%y%> = $3 ) ) ); A4: for a being Element of NAT for x being Element of F2() ^omega ex y being Element of F2() ^omega st S9[a,x,y] proof let a be Element of NAT ; ::_thesis: for x being Element of F2() ^omega ex y being Element of F2() ^omega st S9[a,x,y] let x be Element of F2() ^omega ; ::_thesis: ex y being Element of F2() ^omega st S9[a,x,y] percases ( x = {} or F1((last x)) = {} or ( x <> {} & F1((last x)) <> {} ) ) ; supposeA5: ( x = {} or F1((last x)) = {} ) ; ::_thesis: ex y being Element of F2() ^omega st S9[a,x,y] take y = x; ::_thesis: S9[a,x,y] thus S9[a,x,y] by A5; ::_thesis: verum end; supposeA6: ( x <> {} & F1((last x)) <> {} ) ; ::_thesis: ex y being Element of F2() ^omega st S9[a,x,y] then last x in F2() by Th79; then consider y being Element of F2() such that A7: ( P1[ last x,y] & F1(y) c< F1((last x)) ) by A3, A6; reconsider z = x ^ <%y%> as Element of F2() ^omega by AFINSQ_1:42; take z ; ::_thesis: S9[a,x,z] thus S9[a,x,z] by A6, A7; ::_thesis: verum end; end; end; consider F being Function of NAT,(F2() ^omega) such that A8: ( F . 0 = f0 & ( for a being Element of NAT holds S9[a,F . a,F . (a + 1)] ) ) from RECDEF_1:sch_2(A4); defpred S10[ Nat] means F . $1 <> {} ; A9: S10[ 0 ] by A8; A10: for m being Nat st S10[m] holds S10[m + 1] proof let m be Nat; ::_thesis: ( S10[m] implies S10[m + 1] ) assume S10[m] ; ::_thesis: S10[m + 1] then reconsider f = F . m as non empty T-Sequence ; m in NAT by ORDINAL1:def_12; then S9[m,F . m,F . (m + 1)] by A8; then ( F . (m + 1) = f or ex x being set st F . (m + 1) = f ^ <%x%> ) ; hence S10[m + 1] ; ::_thesis: verum end; A11: for m being Nat holds S10[m] from NAT_1:sch_2(A9, A10); defpred S11[ Function] means ( $1 . 0 = F3() & ( for a being ordinal number st succ a in dom $1 holds ex x, y being Element of F2() st ( x = $1 . a & y = $1 . (succ a) & P1[x,y] ) ) ); defpred S12[ Nat] means S11[F . $1]; A12: S12[ 0 ] proof thus (F . 0) . 0 = F3() by A8, AFINSQ_1:def_4; ::_thesis: for a being ordinal number st succ a in dom (F . 0) holds ex x, y being Element of F2() st ( x = (F . 0) . a & y = (F . 0) . (succ a) & P1[x,y] ) let a be ordinal number ; ::_thesis: ( succ a in dom (F . 0) implies ex x, y being Element of F2() st ( x = (F . 0) . a & y = (F . 0) . (succ a) & P1[x,y] ) ) assume succ a in dom (F . 0) ; ::_thesis: ex x, y being Element of F2() st ( x = (F . 0) . a & y = (F . 0) . (succ a) & P1[x,y] ) then succ a in 1 by A8, AFINSQ_1:def_4; hence ex x, y being Element of F2() st ( x = (F . 0) . a & y = (F . 0) . (succ a) & P1[x,y] ) by CARD_1:49, TARSKI:def_1; ::_thesis: verum end; A13: for m being Nat st S12[m] holds S12[m + 1] proof let m be Nat; ::_thesis: ( S12[m] implies S12[m + 1] ) assume A14: S12[m] ; ::_thesis: S12[m + 1] A15: m in NAT by ORDINAL1:def_12; then A16: S9[m,F . m,F . (m + 1)] by A8; percases ( F . m = {} or F1((last (F . m))) = {} or ( F . m <> {} & F1((last (F . m))) <> {} ) ) ; suppose ( F . m = {} or F1((last (F . m))) = {} ) ; ::_thesis: S12[m + 1] hence S12[m + 1] by A14, A16; ::_thesis: verum end; supposeA17: ( F . m <> {} & F1((last (F . m))) <> {} ) ; ::_thesis: S12[m + 1] reconsider fm = F . m as non empty finite T-Sequence of by A17; reconsider fm1 = F . (m + 1) as finite T-Sequence of ; consider y being Element of F2() such that A18: ( P1[ last fm,y] & F1(y) c< F1((last fm)) & fm ^ <%y%> = F . (m + 1) ) by A8, A15, A17; 0 in dom fm by ORDINAL3:8; hence (F . (m + 1)) . 0 = F3() by A14, A18, ORDINAL4:def_1; ::_thesis: for a being ordinal number st succ a in dom (F . (m + 1)) holds ex x, y being Element of F2() st ( x = (F . (m + 1)) . a & y = (F . (m + 1)) . (succ a) & P1[x,y] ) let a be ordinal number ; ::_thesis: ( succ a in dom (F . (m + 1)) implies ex x, y being Element of F2() st ( x = (F . (m + 1)) . a & y = (F . (m + 1)) . (succ a) & P1[x,y] ) ) assume A19: succ a in dom (F . (m + 1)) ; ::_thesis: ex x, y being Element of F2() st ( x = (F . (m + 1)) . a & y = (F . (m + 1)) . (succ a) & P1[x,y] ) A20: a in succ a by ORDINAL1:6; then A21: a in dom fm1 by A19, ORDINAL1:10; reconsider n = a as Nat by A19, A20; reconsider x = fm1 . a, z = fm1 . (succ a) as Element of F2() by A19, A21, FUNCT_1:102; A22: dom <%y%> = 1 by AFINSQ_1:def_4; then dom fm1 = (dom fm) +^ 1 by A18, ORDINAL4:def_1 .= succ (dom fm) by ORDINAL2:31 ; then A23: a in dom fm by A19, ORDINAL3:3; take x ; ::_thesis: ex y being Element of F2() st ( x = (F . (m + 1)) . a & y = (F . (m + 1)) . (succ a) & P1[x,y] ) take z ; ::_thesis: ( x = (F . (m + 1)) . a & z = (F . (m + 1)) . (succ a) & P1[x,z] ) thus ( x = (F . (m + 1)) . a & z = (F . (m + 1)) . (succ a) ) ; ::_thesis: P1[x,z] percases ( succ a in dom fm or dom fm c= succ a ) by ORDINAL6:4; supposeA24: succ a in dom fm ; ::_thesis: P1[x,z] then a in dom fm by A20, ORDINAL1:10; then A25: ( x = fm . a & z = fm . (succ a) ) by A18, A24, ORDINAL4:def_1; ex x, y being Element of F2() st ( x = fm . a & y = fm . (succ a) & P1[x,y] ) by A14, A24; hence P1[x,z] by A25; ::_thesis: verum end; supposeA26: dom fm c= succ a ; ::_thesis: P1[x,z] succ a c= dom fm by A23, ORDINAL1:21; then A27: dom fm = succ a by A26, XBOOLE_0:def_10; then union (dom fm) = a by ORDINAL2:2; then A28: last fm = fm1 . a by A18, A23, ORDINAL4:def_1; ( 0 in 1 & (succ a) +^ 0 = succ a ) by NAT_1:44, ORDINAL2:27; then z = <%y%> . 0 by A22, A18, A27, ORDINAL4:def_1; hence P1[x,z] by A18, A28, AFINSQ_1:def_4; ::_thesis: verum end; end; end; end; end; A29: for m being Nat holds S12[m] from NAT_1:sch_2(A12, A13); defpred S13[ Nat] means ex n being Nat st card F1((last (F . n))) = $1; A30: ex n being Nat st S13[n] proof last f0 = s0 by Th80; then reconsider n = card F1((last (F . 0))) as Nat by A2, A8; take n ; ::_thesis: S13[n] thus S13[n] ; ::_thesis: verum end; A31: for n being Nat st n <> 0 & S13[n] holds ex m being Nat st ( m < n & S13[m] ) proof let n be Nat; ::_thesis: ( n <> 0 & S13[n] implies ex m being Nat st ( m < n & S13[m] ) ) assume A32: n <> 0 ; ::_thesis: ( not S13[n] or ex m being Nat st ( m < n & S13[m] ) ) given k being Nat such that A33: card F1((last (F . k))) = n ; ::_thesis: ex m being Nat st ( m < n & S13[m] ) reconsider fk = F . k, fk1 = F . (k + 1) as Element of F2() ^omega ; k in NAT by ORDINAL1:def_12; then ( S9[k,fk,fk1] & fk <> {} ) by A11, A8; then consider y being Element of F2() such that A34: ( P1[ last fk,y] & F1(y) c< F1((last fk)) & fk ^ <%y%> = fk1 ) by A32, A33; A35: ( F1((last fk)) is finite & F1(y) c= F1((last fk)) ) by A33, A34, XBOOLE_0:def_8; A36: last fk1 = y by A34, Th81; then reconsider m = card F1((last fk1)) as Nat by A35; take m ; ::_thesis: ( m < n & S13[m] ) thus m < n by A33, A34, A35, A36, TREES_1:6; ::_thesis: S13[m] thus S13[m] ; ::_thesis: verum end; S13[ 0 ] from NAT_1:sch_7(A30, A31); then consider n being Nat such that A37: card F1((last (F . n))) = 0 ; reconsider f = F . n as non empty XFinSequence of by A11; take f ; ::_thesis: ex k being Element of F2() st ( k = last f & F1(k) = {} & f . 0 = F3() & ( for a being ordinal number st succ a in dom f holds ex x, y being Element of F2() st ( x = f . a & y = f . (succ a) & P1[x,y] ) ) ) reconsider k = last f as Element of F2() by Th79; take k ; ::_thesis: ( k = last f & F1(k) = {} & f . 0 = F3() & ( for a being ordinal number st succ a in dom f holds ex x, y being Element of F2() st ( x = f . a & y = f . (succ a) & P1[x,y] ) ) ) thus ( k = last f & F1(k) = {} ) by A37; ::_thesis: ( f . 0 = F3() & ( for a being ordinal number st succ a in dom f holds ex x, y being Element of F2() st ( x = f . a & y = f . (succ a) & P1[x,y] ) ) ) thus S11[f] by A29; ::_thesis: verum end; theorem Th82: :: EXCHSORT:82 for A being array for B being permutation of A holds B in Funcs ((dom A),(rng A)) proof let A be array; ::_thesis: for B being permutation of A holds B in Funcs ((dom A),(rng A)) let B be permutation of A; ::_thesis: B in Funcs ((dom A),(rng A)) ( dom B = dom A & rng B = rng A ) by Th37; hence B in Funcs ((dom A),(rng A)) by FUNCT_2:def_2; ::_thesis: verum end; registration let A be real-valued array; cluster -> real-valued for permutation of A; coherence for b1 being permutation of A holds b1 is real-valued proof let B be permutation of A; ::_thesis: B is real-valued ex f being Permutation of (dom A) st B = A * f by Def9; hence B is real-valued ; ::_thesis: verum end; end; registration let a be ordinal number ; let X be non empty set ; cluster -> T-Sequence-like for Element of Funcs (a,X); coherence for b1 being Element of Funcs (a,X) holds b1 is T-Sequence-like proof let x be Element of Funcs (a,X); ::_thesis: x is T-Sequence-like dom x = a by FUNCT_2:92; hence x is T-Sequence-like by ORDINAL1:def_7; ::_thesis: verum end; end; registration let X be set ; let Y be real-membered non empty set ; cluster -> real-valued for Element of Funcs (X,Y); coherence for b1 being Element of Funcs (X,Y) holds b1 is real-valued ; end; registration let X be set ; let A be array of X; cluster -> X -valued for permutation of A; coherence for b1 being permutation of A holds b1 is X -valued proof let B be permutation of A; ::_thesis: B is X -valued ex f being Permutation of (dom A) st B = A * f by Def9; hence B is X -valued ; ::_thesis: verum end; end; registration let X, Z be set ; let Y be Subset of Z; cluster -> Z -valued for Element of Funcs (X,Y); coherence for b1 being Element of Funcs (X,Y) holds b1 is Z -valued proof let f be Element of Funcs (X,Y); ::_thesis: f is Z -valued percases ( f = {} or Funcs (X,Y) <> {} ) by SUBSET_1:def_1; suppose f = {} ; ::_thesis: f is Z -valued then rng f = {} ; hence rng f c= Z by XBOOLE_1:2; :: according to RELAT_1:def_19 ::_thesis: verum end; suppose Funcs (X,Y) <> {} ; ::_thesis: f is Z -valued then rng f c= Y by FUNCT_2:92; hence rng f c= Z by XBOOLE_1:1; :: according to RELAT_1:def_19 ::_thesis: verum end; end; end; end; theorem :: EXCHSORT:83 for X, Y being set for r being b1 -defined b2 -valued Relation holds r is Relation of X,Y proof let X, Y be set ; ::_thesis: for r being X -defined Y -valued Relation holds r is Relation of X,Y let r be X -defined Y -valued Relation; ::_thesis: r is Relation of X,Y ( [:(dom r),(rng r):] c= [:X,Y:] & r c= [:(dom r),(rng r):] ) by RELAT_1:7, ZFMISC_1:96; hence r is Relation of X,Y by XBOOLE_1:1; ::_thesis: verum end; theorem Th84: :: EXCHSORT:84 for a being finite Ordinal for x being set holds ( not x in a or x = 0 or ex b being ordinal number st x = succ b ) proof let a be finite Ordinal; ::_thesis: for x being set holds ( not x in a or x = 0 or ex b being ordinal number st x = succ b ) let x be set ; ::_thesis: ( not x in a or x = 0 or ex b being ordinal number st x = succ b ) assume A1: ( x in a & x <> 0 ) ; ::_thesis: ex b being ordinal number st x = succ b then A2: {} in x by ORDINAL3:8; now__::_thesis:_not_x_is_limit_ordinal assume x is limit_ordinal ; ::_thesis: contradiction then ( omega c= x & x c= a ) by A1, A2, ORDINAL1:def_2, ORDINAL1:def_11; hence contradiction ; ::_thesis: verum end; hence ex b being ordinal number st x = succ b by A1, ORDINAL1:29; ::_thesis: verum end; theorem Th85: :: EXCHSORT:85 for O being non empty connected Poset for A being non empty finite 0 -based array of O ex C being 0 -based arr_computation of A st C is complete proof let O be non empty connected Poset; ::_thesis: for A being non empty finite 0 -based array of O ex C being 0 -based arr_computation of A st C is complete let A be non empty finite 0 -based array of O; ::_thesis: ex C being 0 -based arr_computation of A st C is complete reconsider rA = rng A as non empty Subset of O by RELAT_1:def_19; reconsider a = dom A as Ordinal ; set X = Funcs (a,rA); deffunc H1( array of O) -> set = card (inversions $1); defpred S9[ Element of Funcs (a,rA), Element of Funcs (a,rA)] means ex p, q being Element of dom A st ( [p,q] in inversions $1 & $2 = Swap ($1,p,q) ); A is permutation of A by Th38; then A1: A in Funcs (a,rA) by Th82; A2: H1(A) is finite ; A3: for x being Element of Funcs (a,rA) st H1(x) <> {} holds ex y being Element of Funcs (a,rA) st ( S9[x,y] & H1(y) c< H1(x) ) proof let x be Element of Funcs (a,rA); ::_thesis: ( H1(x) <> {} implies ex y being Element of Funcs (a,rA) st ( S9[x,y] & H1(y) c< H1(x) ) ) reconsider c = x as array of O ; set z = the Element of inversions c; set Fx = H1(x); assume H1(x) <> {} ; ::_thesis: ex y being Element of Funcs (a,rA) st ( S9[x,y] & H1(y) c< H1(x) ) then A4: inversions c <> {} ; then ( the Element of inversions c in inversions c & inversions c is Relation of (dom x),(dom x) ) by Th47; then consider p, q being set such that A5: ( the Element of inversions c = [p,q] & p in dom x & q in dom x ) by RELSET_1:2; set y = Swap (x,p,q); A6: ( dom (Swap (x,p,q)) = dom x & rng (Swap (x,p,q)) = rng x ) by FUNCT_7:99, FUNCT_7:103; ( dom x = dom A & rng x c= rng A ) by FUNCT_2:92; then reconsider y = Swap (x,p,q) as Element of Funcs (a,rA) by A6, FUNCT_2:def_2; reconsider b = y as array of O ; set Fy = H1(y); take y ; ::_thesis: ( S9[x,y] & H1(y) c< H1(x) ) thus S9[x,y] by A4, A5; ::_thesis: H1(y) c< H1(x) H1(b) in H1(c) by A4, A5, Th73; hence ( H1(y) c= H1(x) & H1(y) <> H1(x) ) by ORDINAL1:def_2; :: according to XBOOLE_0:def_8 ::_thesis: verum end; consider f being non empty finite 0 -based array, k being Element of Funcs (a,rA) such that A7: ( k = last f & H1(k) = {} & f . 0 = A ) and A8: for a being ordinal number st succ a in dom f holds ex x, y being Element of Funcs (a,rA) st ( x = f . a & y = f . (succ a) & S9[x,y] ) from EXCHSORT:sch_2(A1, A2, A3); f is arr_computation of A proof thus f . (base- f) = A by A7, Th24; :: according to EXCHSORT:def_14 ::_thesis: ( ( for a being ordinal number st a in dom f holds f . a is array of O ) & ( for a being ordinal number st a in dom f & succ a in dom f holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & f . a = R & f . (succ a) = Swap (R,x,y) ) ) ) thus for a being ordinal number st a in dom f holds f . a is array of O ::_thesis: for a being ordinal number st a in dom f & succ a in dom f holds ex R being array of O ex x, y being set st ( [x,y] in inversions R & f . a = R & f . (succ a) = Swap (R,x,y) ) proof let a be ordinal number ; ::_thesis: ( a in dom f implies f . a is array of O ) assume A9: a in dom f ; ::_thesis: f . a is array of O percases ( a = 0 or ex b being ordinal number st a = succ b ) by A9, Th84; suppose a = 0 ; ::_thesis: f . a is array of O hence f . a is array of O by A7; ::_thesis: verum end; suppose ex b being ordinal number st a = succ b ; ::_thesis: f . a is array of O then consider b being ordinal number such that A10: a = succ b ; ex x, y being Element of Funcs (a,rA) st ( x = f . b & y = f . a & S9[x,y] ) by A8, A9, A10; hence f . a is array of O ; ::_thesis: verum end; end; end; let a be ordinal number ; ::_thesis: ( a in dom f & succ a in dom f implies ex R being array of O ex x, y being set st ( [x,y] in inversions R & f . a = R & f . (succ a) = Swap (R,x,y) ) ) assume ( a in dom f & succ a in dom f ) ; ::_thesis: ex R being array of O ex x, y being set st ( [x,y] in inversions R & f . a = R & f . (succ a) = Swap (R,x,y) ) then ex x, y being Element of Funcs (a,rA) st ( x = f . a & y = f . (succ a) & S9[x,y] ) by A8; hence ex R being array of O ex x, y being set st ( [x,y] in inversions R & f . a = R & f . (succ a) = Swap (R,x,y) ) ; ::_thesis: verum end; then reconsider f = f as 0 -based arr_computation of A ; take f ; ::_thesis: f is complete inversions (last f) = {} by A7; hence last f is ascending by Th48; :: according to EXCHSORT:def_15 ::_thesis: verum end; theorem Th86: :: EXCHSORT:86 for O being non empty connected Poset for A being non empty finite 0 -based array of O ex B being permutation of A st B is ascending proof let O be non empty connected Poset; ::_thesis: for A being non empty finite 0 -based array of O ex B being permutation of A st B is ascending let A be non empty finite 0 -based array of O; ::_thesis: ex B being permutation of A st B is ascending consider C being 0 -based arr_computation of A such that A1: C is complete by Th85; C is finite by Th76; then reconsider B = last C as permutation of A by Th78; take B ; ::_thesis: B is ascending thus B is ascending by A1, Def15; ::_thesis: verum end; registration let O be non empty connected Poset; let A be finite 0 -based array of O; cluster Relation-like the carrier of O -valued Function-like segmental ascending for permutation of A; existence ex b1 being permutation of A st b1 is ascending proof A1: A is permutation of A by Th38; ( A is empty implies A is ascending ) ; hence ex b1 being permutation of A st b1 is ascending by A1, Th86; ::_thesis: verum end; end;