let I be set ; :: thesis: for p being Bags I -valued FinSequence
for i being object st i in support (Sum p) holds
ex b being bag of I st
( b in rng p & i in support b )

defpred S1[ Nat] means for p being Bags I -valued FinSequence st len p = $1 holds
for i being object st i in support (Sum p) holds
ex b being bag of I st
( b in rng p & i in support b );
A1: S1[ 0 ]
proof
let p be Bags I -valued FinSequence; :: thesis: ( len p = 0 implies for i being object st i in support (Sum p) holds
ex b being bag of I st
( b in rng p & i in support b ) )

assume A2: len p = 0 ; :: thesis: for i being object st i in support (Sum p) holds
ex b being bag of I st
( b in rng p & i in support b )

let i be object ; :: thesis: ( i in support (Sum p) implies ex b being bag of I st
( b in rng p & i in support b ) )

assume Z0: i in support (Sum p) ; :: thesis: ex b being bag of I st
( b in rng p & i in support b )

( p = {} & {} = <*> (Bags I) ) by A2;
then i in support (EmptyBag I) by Z0, Th21;
hence ex b being bag of I st
( b in rng p & i in support b ) ; :: thesis: verum
end;
A3: for j being Nat st S1[j] holds
S1[j + 1]
proof
let j be Nat; :: thesis: ( S1[j] implies S1[j + 1] )
assume A4: S1[j] ; :: thesis: S1[j + 1]
let p be Bags I -valued FinSequence; :: thesis: ( len p = j + 1 implies for i being object st i in support (Sum p) holds
ex b being bag of I st
( b in rng p & i in support b ) )

assume A2: len p = j + 1 ; :: thesis: for i being object st i in support (Sum p) holds
ex b being bag of I st
( b in rng p & i in support b )

consider w being FinSequence, x being set such that
A5: ( p = w ^ <*x*> & len w = j ) by A2, TREES_2:3;
reconsider w = w, xx = <*x*> as Bags I -valued FinSequence by A5, Lem8;
len xx = 1 by FINSEQ_1:40;
then 1 in dom xx by FINSEQ_3:25;
then ( x = xx . 1 & xx . 1 in Bags I ) by FUNCT_1:102;
then reconsider x = x as Element of Bags I ;
Sum p = (Sum w) + x by A5, Th22;
then A6: support (Sum p) = (support (Sum w)) \/ (support x) by PRE_POLY:38;
let i be object ; :: thesis: ( i in support (Sum p) implies ex b being bag of I st
( b in rng p & i in support b ) )

assume i in support (Sum p) ; :: thesis: ex b being bag of I st
( b in rng p & i in support b )

per cases then ( i in support (Sum w) or i in support x ) by A6, XBOOLE_0:def 3;
suppose i in support (Sum w) ; :: thesis: ex b being bag of I st
( b in rng p & i in support b )

then consider b being bag of I such that
A7: ( b in rng w & i in support b ) by A4, A5;
take b ; :: thesis: ( b in rng p & i in support b )
rng p = (rng w) \/ (rng xx) by A5, FINSEQ_1:31;
hence ( b in rng p & i in support b ) by A7, XBOOLE_0:def 3; :: thesis: verum
end;
suppose A8: i in support x ; :: thesis: ex b being bag of I st
( b in rng p & i in support b )

take b = x; :: thesis: ( b in rng p & i in support b )
( rng p = (rng w) \/ (rng xx) & x in {x} & {x} = rng xx ) by A5, FINSEQ_1:31, FINSEQ_1:39, TARSKI:def 1;
hence ( b in rng p & i in support b ) by A8, XBOOLE_0:def 3; :: thesis: verum
end;
end;
end;
let p be Bags I -valued FinSequence; :: thesis: for i being object st i in support (Sum p) holds
ex b being bag of I st
( b in rng p & i in support b )

for j being Nat holds S1[j] from NAT_1:sch 2(A1, A3);
then S1[ len p] ;
hence for i being object st i in support (Sum p) holds
ex b being bag of I st
( b in rng p & i in support b ) ; :: thesis: verum