let p be XFinSequence of ; :: thesis: for n being Element of NAT st rng p c= {0 ,n} holds
ex q being XFinSequence of st
( len p = len q & rng q c= {0 ,n} & ( for k being Element of NAT st k <= len p holds
(Sum (p | k)) + (Sum (q | k)) = n * k ) & ( for k being Element of NAT st k in len p holds
q . k = n - (p . k) ) )

let n be Element of NAT ; :: thesis: ( rng p c= {0 ,n} implies ex q being XFinSequence of st
( len p = len q & rng q c= {0 ,n} & ( for k being Element of NAT st k <= len p holds
(Sum (p | k)) + (Sum (q | k)) = n * k ) & ( for k being Element of NAT st k in len p holds
q . k = n - (p . k) ) ) )

assume A1: rng p c= {0 ,n} ; :: thesis: ex q being XFinSequence of st
( len p = len q & rng q c= {0 ,n} & ( for k being Element of NAT st k <= len p holds
(Sum (p | k)) + (Sum (q | k)) = n * k ) & ( for k being Element of NAT st k in len p holds
q . k = n - (p . k) ) )

defpred S1[ set , set ] means for k being Element of NAT st k = $1 holds
$2 = n - (p . k);
A2: for k being Element of NAT st k in len p holds
ex x being Element of {0 ,n} st S1[k,x]
proof
let k be Element of NAT ; :: thesis: ( k in len p implies ex x being Element of {0 ,n} st S1[k,x] )
assume A3: k in len p ; :: thesis: ex x being Element of {0 ,n} st S1[k,x]
k in dom p by A3;
then p . k in rng p by FUNCT_1:12;
then ( p . k = 0 or p . k = n ) by A1, TARSKI:def 2;
then ( n - (p . k) in {0 ,n} & S1[k,n - (p . k)] ) by TARSKI:def 2;
hence ex x being Element of {0 ,n} st S1[k,x] ; :: thesis: verum
end;
consider q being XFinSequence of such that
A4: ( dom q = len p & ( for k being Element of NAT st k in len p holds
S1[k,q . k] ) ) from STIRL2_1:sch 6(A2);
( rng q c= {0 ,n} & {0 ,n} is Subset of NAT ) by RELAT_1:def 19;
then rng q c= NAT by XBOOLE_1:1;
then reconsider q = q as XFinSequence of by RELAT_1:def 19;
take q ; :: thesis: ( len p = len q & rng q c= {0 ,n} & ( for k being Element of NAT st k <= len p holds
(Sum (p | k)) + (Sum (q | k)) = n * k ) & ( for k being Element of NAT st k in len p holds
q . k = n - (p . k) ) )

thus len p = len q by A4; :: thesis: ( rng q c= {0 ,n} & ( for k being Element of NAT st k <= len p holds
(Sum (p | k)) + (Sum (q | k)) = n * k ) & ( for k being Element of NAT st k in len p holds
q . k = n - (p . k) ) )

thus rng q c= {0 ,n} by RELAT_1:def 19; :: thesis: ( ( for k being Element of NAT st k <= len p holds
(Sum (p | k)) + (Sum (q | k)) = n * k ) & ( for k being Element of NAT st k in len p holds
q . k = n - (p . k) ) )

defpred S2[ Element of NAT ] means ( $1 <= len p implies (Sum (p | $1)) + (Sum (q | $1)) = n * $1 );
A5: S2[ 0 ]
proof
assume 0 <= len p ; :: thesis: (Sum (p | 0 )) + (Sum (q | 0 )) = n * 0
( len {} = 0 & p | 0 = {} & q | 0 = {} & the_unity_wrt addnat = 0 ) by BINOP_2:5;
then ( addnat "**" (p | 0 ) = 0 & addnat "**" (q | 0 ) = 0 ) by STIRL2_1:def 3;
hence (Sum (p | 0 )) + (Sum (q | 0 )) = n * 0 ; :: thesis: verum
end;
A6: for k being Element of NAT st S2[k] holds
S2[k + 1]
proof
let k be Element of NAT ; :: thesis: ( S2[k] implies S2[k + 1] )
assume A7: S2[k] ; :: thesis: S2[k + 1]
set k1 = k + 1;
assume A8: k + 1 <= len p ; :: thesis: (Sum (p | (k + 1))) + (Sum (q | (k + 1))) = n * (k + 1)
then ( k + 1 c= len p & len p = dom p ) by NAT_1:40;
then ( dom (p | (k + 1)) = k + 1 & dom (q | (k + 1)) = k + 1 & k < k + 1 ) by A4, NAT_1:13, RELAT_1:91;
then ( len (p | (k + 1)) = k + 1 & len (q | (k + 1)) = k + 1 & k in dom (p | (k + 1)) & k in dom (q | (k + 1)) & k c= k + 1 & k < len p ) by A8, NAT_1:40, NAT_1:45, XXREAL_0:2;
then ( p | (k + 1) = ((p | (k + 1)) | k) ^ <%((p | (k + 1)) . k)%> & (p | (k + 1)) . k = p . k & (p | (k + 1)) | k = p | k & q | (k + 1) = ((q | (k + 1)) | k) ^ <%((q | (k + 1)) . k)%> & (q | (k + 1)) . k = q . k & (q | (k + 1)) | k = q | k & k in len p ) by CARD_FIN:43, FUNCT_1:70, NAT_1:45, RELAT_1:103;
then ( Sum (p | (k + 1)) = (Sum (p | k)) + (Sum <%(p . k)%>) & q . k = n - (p . k) & Sum (q | (k + 1)) = (Sum (q | k)) + (Sum <%(q . k)%>) ) by A4, Lm4;
then ( Sum (p | (k + 1)) = (Sum (p | k)) + (p . k) & Sum (q | (k + 1)) = (Sum (q | k)) + (n - (p . k)) ) by STIRL2_1:44;
hence (Sum (p | (k + 1))) + (Sum (q | (k + 1))) = n * (k + 1) by A7, A8, NAT_1:13; :: thesis: verum
end;
for k being Element of NAT holds S2[k] from NAT_1:sch 1(A5, A6);
hence ( ( for k being Element of NAT st k <= len p holds
(Sum (p | k)) + (Sum (q | k)) = n * k ) & ( for k being Element of NAT st k in len p holds
q . k = n - (p . k) ) ) by A4; :: thesis: verum