let D be set ; :: thesis: for p1, p2 being FinSequence of D st p1 is one-to-one & p2 is one-to-one & rng p1 = rng p2 holds
( dom p1 = dom p2 & ex P being Permutation of (dom p1) st
( p2 = p1 * P & dom P = dom p1 & rng P = dom p1 ) )

let p1, p2 be FinSequence of D; :: thesis: ( p1 is one-to-one & p2 is one-to-one & rng p1 = rng p2 implies ( dom p1 = dom p2 & ex P being Permutation of (dom p1) st
( p2 = p1 * P & dom P = dom p1 & rng P = dom p1 ) ) )

assume that
A1: p1 is one-to-one and
A2: p2 is one-to-one and
A3: rng p1 = rng p2 ; :: thesis: ( dom p1 = dom p2 & ex P being Permutation of (dom p1) st
( p2 = p1 * P & dom P = dom p1 & rng P = dom p1 ) )

set P = (p1 ") * p2;
len p1 = card (rng p2) by A1, A3, FINSEQ_4:62
.= len p2 by A2, FINSEQ_4:62 ;
then A4: dom p1 = Seg (len p2) by FINSEQ_1:def 3
.= dom p2 by FINSEQ_1:def 3 ;
A5: now :: thesis: for xd being object holds
( xd in dom ((p1 ") * p2) iff xd in dom p2 )
let xd be object ; :: thesis: ( xd in dom ((p1 ") * p2) iff xd in dom p2 )
dom (p1 ") = rng p1 by A1, FUNCT_1:33;
then ( xd in dom p2 implies p2 . xd in dom (p1 ") ) by A3, FUNCT_1:3;
hence ( xd in dom ((p1 ") * p2) iff xd in dom p2 ) by FUNCT_1:11; :: thesis: verum
end;
then A6: dom ((p1 ") * p2) = dom p2 by TARSKI:2;
A7: rng (p1 ") = dom p1 by A1, FUNCT_1:33;
A8: rng ((p1 ") * p2) c= dom p1 by A7, FUNCT_1:14;
A9: dom p1 c= rng ((p1 ") * p2)
proof
let xd be object ; :: according to TARSKI:def 3 :: thesis: ( not xd in dom p1 or xd in rng ((p1 ") * p2) )
assume xd in dom p1 ; :: thesis: xd in rng ((p1 ") * p2)
then xd in rng (p1 ") by A1, FUNCT_1:33;
then consider yd being object such that
A10: yd in dom (p1 ") and
A11: xd = (p1 ") . yd by FUNCT_1:def 3;
yd in rng p2 by A1, A3, A10, FUNCT_1:33;
then consider z being object such that
A12: z in dom p2 and
A13: yd = p2 . z by FUNCT_1:def 3;
xd = ((p1 ") * p2) . z by A11, A12, A13, FUNCT_1:13;
hence xd in rng ((p1 ") * p2) by A6, A12, FUNCT_1:def 3; :: thesis: verum
end;
A14: dom ((p1 ") * p2) = dom p1 by A4, A5, TARSKI:2;
A15: rng ((p1 ") * p2) = dom p1 by A8, A9, XBOOLE_0:def 10;
then (p1 ") * p2 is Function of (dom p1),(dom p1) by A14, FUNCT_2:1;
then A16: (p1 ") * p2 is Permutation of (dom p1) by A1, A2, A15, FUNCT_2:57;
now :: thesis: for xd being object holds
( xd in dom (p1 * ((p1 ") * p2)) iff xd in dom p1 )
let xd be object ; :: thesis: ( xd in dom (p1 * ((p1 ") * p2)) iff xd in dom p1 )
( xd in dom ((p1 ") * p2) implies ((p1 ") * p2) . xd in dom p1 ) by A15, FUNCT_1:3;
hence ( xd in dom (p1 * ((p1 ") * p2)) iff xd in dom p1 ) by A14, FUNCT_1:11; :: thesis: verum
end;
then A17: dom p2 = dom (p1 * ((p1 ") * p2)) by A4, TARSKI:2;
for xd being object st xd in dom p2 holds
p2 . xd = (p1 * ((p1 ") * p2)) . xd
proof
let xd be object ; :: thesis: ( xd in dom p2 implies p2 . xd = (p1 * ((p1 ") * p2)) . xd )
assume A18: xd in dom p2 ; :: thesis: p2 . xd = (p1 * ((p1 ") * p2)) . xd
then A19: p2 . xd in rng p1 by A3, FUNCT_1:3;
(p1 * ((p1 ") * p2)) . xd = p1 . (((p1 ") * p2) . xd) by A4, A14, A18, FUNCT_1:13
.= p1 . ((p1 ") . (p2 . xd)) by A18, FUNCT_1:13
.= p2 . xd by A1, A19, FUNCT_1:35 ;
hence p2 . xd = (p1 * ((p1 ") * p2)) . xd ; :: thesis: verum
end;
hence ( dom p1 = dom p2 & ex P being Permutation of (dom p1) st
( p2 = p1 * P & dom P = dom p1 & rng P = dom p1 ) ) by A4, A14, A15, A16, A17, FUNCT_1:2; :: thesis: verum