let n be Nat; :: thesis: for L being non trivial right_complementable add-associative right_zeroed well-unital distributive doubleLoopStr
for p being Polynomial of n,L holds
( len (SgmX ((BagOrder n),(Support p))) = len (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) & ( for i being Nat st 1 <= i & i <= len (SgmX ((BagOrder n),(Support p))) holds
(SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0 ) )

let L be non trivial right_complementable add-associative right_zeroed well-unital distributive doubleLoopStr ; :: thesis: for p being Polynomial of n,L holds
( len (SgmX ((BagOrder n),(Support p))) = len (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) & ( for i being Nat st 1 <= i & i <= len (SgmX ((BagOrder n),(Support p))) holds
(SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0 ) )

let p be Polynomial of n,L; :: thesis: ( len (SgmX ((BagOrder n),(Support p))) = len (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) & ( for i being Nat st 1 <= i & i <= len (SgmX ((BagOrder n),(Support p))) holds
(SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0 ) )

set B = BagOrder n;
set B1 = BagOrder (n + 1);
set P = p extended_by_0 ;
A1: n -' 0 = n by NAT_D:40;
A2: ( BagOrder n linearly_orders Support p & BagOrder (n + 1) linearly_orders Support (p extended_by_0) ) by POLYNOM2:18;
deffunc H1( bag of n) -> Element of Bags (n + 1) = $1 bag_extend 0;
A3: for x being Element of Bags n holds H1(x) in Bags (n + 1) ;
consider f being Function of (Bags n),(Bags (n + 1)) such that
A4: for x being Element of Bags n holds f . x = H1(x) from FUNCT_2:sch 8(A3);
set F = f | (Support p);
A5: dom (f | (Support p)) = Support p by FUNCT_2:def 1;
set Sp = SgmX ((BagOrder n),(Support p));
set SP = SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)));
A6: rng (f | (Support p)) c= Support (p extended_by_0)
proof
let y be object ; :: according to TARSKI:def 3 :: thesis: ( not y in rng (f | (Support p)) or y in Support (p extended_by_0) )
assume y in rng (f | (Support p)) ; :: thesis: y in Support (p extended_by_0)
then consider x being object such that
A7: ( x in dom (f | (Support p)) & (f | (Support p)) . x = y ) by FUNCT_1:def 3;
reconsider x = x as Element of Bags n by A7, A5;
A8: f . x = (f | (Support p)) . x by A7, FUNCT_1:47;
f . x = H1(x) by A4;
hence y in Support (p extended_by_0) by A7, A8, Th8; :: thesis: verum
end;
Support (p extended_by_0) c= rng (f | (Support p))
proof
let y be object ; :: according to TARSKI:def 3 :: thesis: ( not y in Support (p extended_by_0) or y in rng (f | (Support p)) )
assume A9: y in Support (p extended_by_0) ; :: thesis: y in rng (f | (Support p))
then reconsider b = y as bag of n + 1 ;
set C = (0,n) -cut b;
A10: b . n = 0 by A9, Th7;
then A11: (0,n) -cut b in Support p by A9, Th9;
then reconsider C = (0,n) -cut b as Element of Bags n ;
( H1(C) = f . C & f . C = (f | (Support p)) . C ) by A11, A4, FUNCT_1:49;
then A12: H1(C) in rng (f | (Support p)) by A11, A5, FUNCT_1:def 3;
n -' 0 = n by NAT_D:40;
hence y in rng (f | (Support p)) by A12, A10, Th4; :: thesis: verum
end;
then A13: Support (p extended_by_0) = rng (f | (Support p)) by A6, XBOOLE_0:def 10;
f | (Support p) is one-to-one
proof
let x1, x2 be object ; :: according to FUNCT_1:def 4 :: thesis: ( not x1 in dom (f | (Support p)) or not x2 in dom (f | (Support p)) or not (f | (Support p)) . x1 = (f | (Support p)) . x2 or x1 = x2 )
assume A14: ( x1 in dom (f | (Support p)) & x2 in dom (f | (Support p)) & (f | (Support p)) . x1 = (f | (Support p)) . x2 ) ; :: thesis: x1 = x2
reconsider x1 = x1, x2 = x2 as Element of Bags n by A14, A5;
A15: ( f . x1 = (f | (Support p)) . x1 & f . x2 = (f | (Support p)) . x2 ) by A14, FUNCT_1:47;
( f . x1 = H1(x1) & f . x2 = H1(x2) ) by A4;
then ( H1(x1) = H1(x2) & x1 = H1(x1) | n ) by HILBASIS:def 1, A15, A14;
hence x1 = x2 by HILBASIS:def 1; :: thesis: verum
end;
then A16: ( len (SgmX ((BagOrder n),(Support p))) = card (Support p) & card (Support p) = card (Support (p extended_by_0)) & card (Support (p extended_by_0)) = len (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) ) by CARD_1:5, POLYNOM2:18, PRE_POLY:11, A5, A13, WELLORD2:def 4;
hence len (SgmX ((BagOrder n),(Support p))) = len (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) ; :: thesis: for i being Nat st 1 <= i & i <= len (SgmX ((BagOrder n),(Support p))) holds
(SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0

defpred S1[ Nat] means ( 1 <= $1 & $1 <= len (SgmX ((BagOrder n),(Support p))) implies for i being Nat st 1 <= i & i <= $1 holds
(SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0 );
A17: ( rng (SgmX ((BagOrder n),(Support p))) = Support p & rng (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) = Support (p extended_by_0) ) by A2, PRE_POLY:def 2;
A18: S1[ 0 ] ;
A19: for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be Nat; :: thesis: ( S1[k] implies S1[k + 1] )
set k1 = k + 1;
assume that
A20: S1[k] and
A21: ( 1 <= k + 1 & k + 1 <= len (SgmX ((BagOrder n),(Support p))) ) ; :: thesis: for i being Nat st 1 <= i & i <= k + 1 holds
(SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0

let i be Nat; :: thesis: ( 1 <= i & i <= k + 1 implies (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0 )
assume A22: ( 1 <= i & i <= k + 1 ) ; :: thesis: (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0
A23: k < len (SgmX ((BagOrder n),(Support p))) by A21, NAT_1:13;
A24: k = len ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k) by A23, A16, FINSEQ_1:59;
A25: ( rng ((SgmX ((BagOrder n),(Support p))) | (k + 1)) c= Support p & rng ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | (k + 1)) c= Support (p extended_by_0) ) by A17, RELAT_1:70;
A26: ( (SgmX ((BagOrder n),(Support p))) | (k + 1) = ((SgmX ((BagOrder n),(Support p))) | k) ^ <*((SgmX ((BagOrder n),(Support p))) . (k + 1))*> & (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | (k + 1) = ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k) ^ <*((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . (k + 1))*> ) by A16, A21, NAT_1:13, FINSEQ_5:83;
A27: ( k + 1 in dom (SgmX ((BagOrder n),(Support p))) & k + 1 in dom (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) ) by A21, A16, FINSEQ_3:25;
then A28: ( (SgmX ((BagOrder n),(Support p))) . (k + 1) in rng (SgmX ((BagOrder n),(Support p))) & (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . (k + 1) in rng (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) ) by FUNCT_1:def 3;
A29: ( (SgmX ((BagOrder n),(Support p))) . (k + 1) = (SgmX ((BagOrder n),(Support p))) /. (k + 1) & (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . (k + 1) = (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. (k + 1) ) by A27, PARTFUN1:def 6;
per cases ( k = 0 or k >= 1 ) by NAT_1:14;
suppose A30: k = 0 ; :: thesis: (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0
A31: i = 1 by A30, A22, XXREAL_0:1;
A32: ((SgmX ((BagOrder n),(Support p))) /. 1) bag_extend 0 in Support (p extended_by_0) by Th8, A30, A29, A28, A17;
for y being Element of Bags (n + 1) st y in Support (p extended_by_0) holds
[(((SgmX ((BagOrder n),(Support p))) /. 1) bag_extend 0),y] in BagOrder (n + 1)
proof
let y be Element of Bags (n + 1); :: thesis: ( y in Support (p extended_by_0) implies [(((SgmX ((BagOrder n),(Support p))) /. 1) bag_extend 0),y] in BagOrder (n + 1) )
set Y = (0,n) -cut y;
assume A33: y in Support (p extended_by_0) ; :: thesis: [(((SgmX ((BagOrder n),(Support p))) /. 1) bag_extend 0),y] in BagOrder (n + 1)
then y . n = 0 by Th7;
then (0,n) -cut y in Support p by A33, Th9;
then consider w being object such that
A34: ( w in dom (SgmX ((BagOrder n),(Support p))) & (SgmX ((BagOrder n),(Support p))) . w = (0,n) -cut y ) by FUNCT_1:def 3, A17;
y . n = 0 by Th7, A33;
then A35: y = ((0,n) -cut y) bag_extend 0 by Th4;
reconsider w = w as Nat by A34;
A36: (SgmX ((BagOrder n),(Support p))) . w = (SgmX ((BagOrder n),(Support p))) /. w by A34, PARTFUN1:def 6;
A37: 1 <= w by A34, FINSEQ_3:25;
per cases ( w = 1 or w > 1 ) by A37, XXREAL_0:1;
end;
end;
hence (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0 by A31, A32, POLYNOM2:18, PRE_POLY:20; :: thesis: verum
end;
suppose A39: k >= 1 ; :: thesis: (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0
A40: k + 1 in Seg (k + 1) by A21;
set Ck = (0,n) -cut ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. (k + 1));
reconsider Ck = (0,n) -cut ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. (k + 1)) as bag of n by A1;
A41: (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. (k + 1) in rng ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | (k + 1)) by PARTFUN2:18, A40, A27;
then A42: ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. (k + 1)) . n = 0 by Th7, A25;
then Ck in Support p by Th9, A41, A25;
then consider f being object such that
A43: ( f in dom (SgmX ((BagOrder n),(Support p))) & (SgmX ((BagOrder n),(Support p))) . f = Ck ) by FUNCT_1:def 3, A17;
reconsider f = f as Nat by A43;
A44: (SgmX ((BagOrder n),(Support p))) /. f = (SgmX ((BagOrder n),(Support p))) . f by A43, PARTFUN1:def 6;
A45: (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. (k + 1) = Ck bag_extend 0 by A1, A42, Th4;
set SpEk = ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0;
((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 in Support (p extended_by_0) by A29, A28, A17, Th8;
then consider e being object such that
A46: ( e in dom (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) & (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . e = ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 ) by FUNCT_1:def 3, A17;
reconsider e = e as Nat by A46;
A47: ( 1 <= e & e <= len (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) ) by FINSEQ_3:25, A46;
A48: (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. e = (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . e by A46, PARTFUN1:def 6;
A49: (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. k = ((SgmX ((BagOrder n),(Support p))) /. k) bag_extend 0 by A20, A39, A21, NAT_1:13;
A50: ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 in rng ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | (k + 1))
proof
assume A51: not ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 in rng ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | (k + 1)) ; :: thesis: contradiction
e > k + 1
proof
assume e <= k + 1 ; :: thesis: contradiction
then e in Seg (k + 1) by A47;
hence contradiction by A51, A48, A46, PARTFUN2:18; :: thesis: verum
end;
then A52: (SgmX ((BagOrder n),(Support p))) /. f < (SgmX ((BagOrder n),(Support p))) /. (k + 1) by A43, A44, Th14, A46, A27, A45, A48, Th16;
A53: ( k in dom (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) & k in dom (SgmX ((BagOrder n),(Support p))) ) by A23, A39, A16, FINSEQ_3:25;
A54: k < k + 1 by NAT_1:13;
A55: (SgmX ((BagOrder n),(Support p))) /. k < (SgmX ((BagOrder n),(Support p))) /. f by A43, A44, Th14, A49, A45, Th16, A27, A53, A54;
then A56: k <> f ;
end;
A57: rng ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | (k + 1)) = (rng ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k)) \/ (rng <*((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . (k + 1))*>) by A26, FINSEQ_1:31
.= (rng ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k)) \/ {((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . (k + 1))} by FINSEQ_1:38 ;
A58: ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 = (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . (k + 1)
proof
assume ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 <> (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . (k + 1) ; :: thesis: contradiction
then ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 in rng ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k) by A50, A57, ZFMISC_1:136;
then consider w being object such that
A59: ( w in dom ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k) & ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k) . w = ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 ) by FUNCT_1:def 3;
reconsider w = w as Nat by A59;
A60: ( 1 <= w & w <= k ) by A24, FINSEQ_3:25, A59;
then w < len (SgmX ((BagOrder n),(Support p))) by A23, XXREAL_0:2;
then A61: ( w in dom (SgmX ((BagOrder n),(Support p))) & w in dom (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) ) by A16, A60, FINSEQ_3:25;
A62: (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. w = ((SgmX ((BagOrder n),(Support p))) /. w) bag_extend 0 by A39, A20, A21, NAT_1:13, A60;
A63: ( (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. w = (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . w & (SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) . w = ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k) . w & ((SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) | k) . w = ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 ) by A59, A60, A61, PARTFUN1:def 6, FINSEQ_3:112;
w < k + 1 by A60, NAT_1:13;
then ((SgmX ((BagOrder n),(Support p))) /. w) bag_extend 0 < ((SgmX ((BagOrder n),(Support p))) /. (k + 1)) bag_extend 0 by A27, A61, Th14, Th16;
hence contradiction by A62, A63; :: thesis: verum
end;
per cases ( i < k + 1 or i = k + 1 ) by A22, XXREAL_0:1;
end;
end;
end;
end;
for k being Nat holds S1[k] from NAT_1:sch 2(A18, A19);
hence for i being Nat st 1 <= i & i <= len (SgmX ((BagOrder n),(Support p))) holds
(SgmX ((BagOrder (n + 1)),(Support (p extended_by_0)))) /. i = ((SgmX ((BagOrder n),(Support p))) /. i) bag_extend 0 ; :: thesis: verum