let F be FinSequence of REAL ; :: thesis: ex s being Permutation of (dom F) ex n being Element of NAT st
for i being Element of NAT st i in dom F holds
( i in Seg n iff F . (s . i) <> 0 )
defpred S1[ Nat] means F . $1 <> 0 ;
defpred S2[ Nat] means F . $1 = 0 ;
deffunc H1( Nat) -> Nat = $1;
set A = { H1(i) where i is Element of NAT : ( H1(i) in dom F & S1[i] ) } ;
set B = { H1(i) where i is Element of NAT : ( H1(i) in dom F & S2[i] ) } ;
set N = len F;
A1:
{ H1(i) where i is Element of NAT : ( H1(i) in dom F & S1[i] ) } c= dom F
from FRAENKEL:sch 17();
then A2:
{ H1(i) where i is Element of NAT : ( H1(i) in dom F & S1[i] ) } c= Seg (len F)
by FINSEQ_1:def 3;
reconsider A = { H1(i) where i is Element of NAT : ( H1(i) in dom F & S1[i] ) } as finite set by A1;
A3:
{ H1(i) where i is Element of NAT : ( H1(i) in dom F & S2[i] ) } c= dom F
from FRAENKEL:sch 17();
then A4:
{ H1(i) where i is Element of NAT : ( H1(i) in dom F & S2[i] ) } c= Seg (len F)
by FINSEQ_1:def 3;
reconsider B = { H1(i) where i is Element of NAT : ( H1(i) in dom F & S2[i] ) } as finite set by A3;
A5:
( rng (Sgm A) = A & rng (Sgm B) = B )
by A2, A4, FINSEQ_1:def 13;
for x being set holds not x in A /\ B
then
A /\ B = {}
by XBOOLE_0:def 1;
then A9:
A misses B
by XBOOLE_0:def 7;
A10:
A \/ B = dom F
set s = (Sgm A) ^ (Sgm B);
A12:
len ((Sgm A) ^ (Sgm B)) = len F
set n = len (Sgm A);
A13:
for x being Element of NAT st x in dom F & not x in Seg (len (Sgm A)) holds
ex k being Element of NAT st
( x = k + (len (Sgm A)) & k in dom (Sgm B) & ((Sgm A) ^ (Sgm B)) . x = (Sgm B) . k )
( Sgm A is one-to-one & Sgm B is one-to-one )
by A2, A4, FINSEQ_3:99;
then A17:
(Sgm A) ^ (Sgm B) is one-to-one
by A5, A9, FINSEQ_3:98;
A18:
rng ((Sgm A) ^ (Sgm B)) = dom F
by A5, A10, FINSEQ_1:44;
( dom F = Seg (len F) & dom ((Sgm A) ^ (Sgm B)) = Seg (len F) )
by A12, FINSEQ_1:def 3;
then reconsider s = (Sgm A) ^ (Sgm B) as Function of (dom F),(dom F) by A18, FUNCT_2:3;
s is onto
by A18, FUNCT_2:def 3;
then reconsider s = s as Permutation of (dom F) by A17;
take
s
; :: thesis: ex n being Element of NAT st
for i being Element of NAT st i in dom F holds
( i in Seg n iff F . (s . i) <> 0 )
take
len (Sgm A)
; :: thesis: for i being Element of NAT st i in dom F holds
( i in Seg (len (Sgm A)) iff F . (s . i) <> 0 )
let i be Element of NAT ; :: thesis: ( i in dom F implies ( i in Seg (len (Sgm A)) iff F . (s . i) <> 0 ) )
assume A19:
i in dom F
; :: thesis: ( i in Seg (len (Sgm A)) iff F . (s . i) <> 0 )
thus
( i in Seg (len (Sgm A)) implies F . (s . i) <> 0 )
:: thesis: ( F . (s . i) <> 0 implies i in Seg (len (Sgm A)) )
thus
( F . (s . i) <> 0 implies i in Seg (len (Sgm A)) )
:: thesis: verum