let L be comRing; :: thesis: for b1, b2 being bag of holds poly_with_roots (b1 + b2) = (poly_with_roots b1) *' (poly_with_roots b2)
let b1, b2 be bag of ; :: thesis: poly_with_roots (b1 + b2) = (poly_with_roots b1) *' (poly_with_roots b2)
set b = b1 + b2;
consider f being FinSequence of the carrier of (Polynom-Ring L) * , s being FinSequence of L such that
A1: len f = card (support (b1 + b2)) and
A2: s = canFS (support (b1 + b2)) and
A3: for i being Element of NAT st i in dom f holds
f . i = fpoly_mult_root (s /. i),((b1 + b2) . (s /. i)) and
A4: poly_with_roots (b1 + b2) = Product (FlattenSeq f) by Def11;
consider f1 being FinSequence of the carrier of (Polynom-Ring L) * , s1 being FinSequence of L such that
A5: len f1 = card (support b1) and
A6: s1 = canFS (support b1) and
A7: for i being Element of NAT st i in dom f1 holds
f1 . i = fpoly_mult_root (s1 /. i),(b1 . (s1 /. i)) and
A8: poly_with_roots b1 = Product (FlattenSeq f1) by Def11;
consider f2 being FinSequence of the carrier of (Polynom-Ring L) * , s2 being FinSequence of L such that
A9: len f2 = card (support b2) and
A10: s2 = canFS (support b2) and
A11: for i being Element of NAT st i in dom f2 holds
f2 . i = fpoly_mult_root (s2 /. i),(b2 . (s2 /. i)) and
A12: poly_with_roots b2 = Product (FlattenSeq f2) by Def11;
set ff = FlattenSeq f;
set ff1 = FlattenSeq f1;
set ff2 = FlattenSeq f2;
set g = (FlattenSeq f1) ^ (FlattenSeq f2);
A13: support (b1 + b2) = (support b1) \/ (support b2) by POLYNOM1:42;
A14: len (FlattenSeq f) = degree (b1 + b2) by A1, A2, A3, Th64;
A15: len (FlattenSeq f2) = degree b2 by A9, A10, A11, Th64;
len ((FlattenSeq f1) ^ (FlattenSeq f2)) = (len (FlattenSeq f1)) + (len (FlattenSeq f2)) by FINSEQ_1:35
.= (degree b1) + (degree b2) by A5, A6, A7, A15, Th64
.= degree (b1 + b2) by Th17 ;
then A16: dom (FlattenSeq f) = dom ((FlattenSeq f1) ^ (FlattenSeq f2)) by A14, FINSEQ_3:31;
A17: len s = card (support (b1 + b2)) by A2, Def1;
now
let x be set ; :: thesis: card (Coim (FlattenSeq f),b1) = card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),b1)
per cases ( x in rng (FlattenSeq f) or not x in rng (FlattenSeq f) ) ;
suppose x in rng (FlattenSeq f) ; :: thesis: card (Coim (FlattenSeq f),b1) = card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),b1)
then consider k being Nat such that
A18: k in dom (FlattenSeq f) and
A19: (FlattenSeq f) . k = x by FINSEQ_2:11;
consider i, j being Element of NAT such that
A20: i in dom f and
A21: j in dom (f . i) and
k = (Sum (Card (f | (i -' 1)))) + j and
A22: (f . i) . j = (FlattenSeq f) . k by A18, POLYNOM1:32;
f . i = fpoly_mult_root (s /. i),((b1 + b2) . (s /. i)) by A3, A20;
then A23: (f . i) . j = <%(- (s /. i)),(1. L)%> by A21, Def10;
i in dom s by A1, A17, A20, FINSEQ_3:31;
then ( s . i = s /. i & s . i in rng s ) by FUNCT_1:12, PARTFUN1:def 8;
then A24: s /. i in support (b1 + b2) by A2, FUNCT_2:def 3;
A25: card (((FlattenSeq f1) ^ (FlattenSeq f2)) " {x}) = (card ((FlattenSeq f1) " {x})) + (card ((FlattenSeq f2) " {x})) by FINSEQ_3:63;
per cases ( ( s /. i in support b1 & not s /. i in support b2 ) or ( not s /. i in support b1 & s /. i in support b2 ) or ( s /. i in support b1 & s /. i in support b2 ) ) by A13, A24, XBOOLE_0:def 3;
suppose A26: ( s /. i in support b1 & not s /. i in support b2 ) ; :: thesis: card (Coim (FlattenSeq f),b1) = card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),b1)
then A27: card ((FlattenSeq f2) " {x}) = 0 by A9, A10, A11, A19, A22, A23, Th65;
thus card (Coim (FlattenSeq f),x) = (b1 + b2) . (s /. i) by A1, A2, A3, A19, A22, A23, A24, Th65
.= (b1 . (s /. i)) + (b2 . (s /. i)) by POLYNOM1:def 5
.= (b1 . (s /. i)) + 0 by A26, POLYNOM1:def 7
.= card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),x) by A5, A6, A7, A19, A22, A23, A25, A26, A27, Th65 ; :: thesis: verum
end;
suppose A28: ( not s /. i in support b1 & s /. i in support b2 ) ; :: thesis: card (Coim (FlattenSeq f),b1) = card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),b1)
then A29: card ((FlattenSeq f2) " {x}) = b2 . (s /. i) by A9, A10, A11, A19, A22, A23, Th65;
thus card (Coim (FlattenSeq f),x) = (b1 + b2) . (s /. i) by A1, A2, A3, A19, A22, A23, A24, Th65
.= (b1 . (s /. i)) + (b2 . (s /. i)) by POLYNOM1:def 5
.= 0 + (b2 . (s /. i)) by A28, POLYNOM1:def 7
.= card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),x) by A5, A6, A7, A19, A22, A23, A25, A28, A29, Th65 ; :: thesis: verum
end;
suppose A30: ( s /. i in support b1 & s /. i in support b2 ) ; :: thesis: card (Coim (FlattenSeq f),b1) = card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),b1)
then A31: card ((FlattenSeq f2) " {x}) = b2 . (s /. i) by A9, A10, A11, A19, A22, A23, Th65;
thus card (Coim (FlattenSeq f),x) = (b1 + b2) . (s /. i) by A1, A2, A3, A19, A22, A23, A24, Th65
.= (b1 . (s /. i)) + (b2 . (s /. i)) by POLYNOM1:def 5
.= card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),x) by A5, A6, A7, A19, A22, A23, A25, A30, A31, Th65 ; :: thesis: verum
end;
end;
end;
suppose A32: not x in rng (FlattenSeq f) ; :: thesis: card (Coim (FlattenSeq f),b1) = card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),b1)
now
assume x in rng ((FlattenSeq f1) ^ (FlattenSeq f2)) ; :: thesis: contradiction
then A33: x in (rng (FlattenSeq f1)) \/ (rng (FlattenSeq f2)) by FINSEQ_1:44;
per cases ( x in rng (FlattenSeq f1) or x in rng (FlattenSeq f2) ) by A33, XBOOLE_0:def 3;
suppose x in rng (FlattenSeq f1) ; :: thesis: contradiction
then consider k being Nat such that
A34: k in dom (FlattenSeq f1) and
A35: (FlattenSeq f1) . k = x by FINSEQ_2:11;
consider i, j being Element of NAT such that
A36: i in dom f1 and
A37: j in dom (f1 . i) and
k = (Sum (Card (f1 | (i -' 1)))) + j and
A38: (f1 . i) . j = (FlattenSeq f1) . k by A34, POLYNOM1:32;
f1 . i = fpoly_mult_root (s1 /. i),(b1 . (s1 /. i)) by A7, A36;
then A39: (f1 . i) . j = <%(- (s1 /. i)),(1. L)%> by A37, Def10;
len s1 = card (support b1) by A6, Def1;
then i in dom s1 by A5, A36, FINSEQ_3:31;
then ( s1 . i = s1 /. i & s1 . i in rng s1 ) by FUNCT_1:12, PARTFUN1:def 8;
then s1 /. i in support b1 by A6, FUNCT_2:def 3;
then A40: s1 /. i in support (b1 + b2) by A13, XBOOLE_0:def 3;
then s1 /. i in rng s by A2, FUNCT_2:def 3;
then consider l being Nat such that
A41: l in dom s and
A42: s . l = s1 /. i by FINSEQ_2:11;
A43: l in dom f by A1, A17, A41, FINSEQ_3:31;
then A44: f . l = fpoly_mult_root (s /. l),((b1 + b2) . (s /. l)) by A3;
A45: s . l = s /. l by A41, PARTFUN1:def 8;
(b1 + b2) . (s1 /. i) <> 0 by A40, POLYNOM1:def 7;
then A46: 0 + 1 <= (b1 + b2) . (s1 /. i) by NAT_1:13;
len (f . l) = (b1 + b2) . (s /. l) by A44, Def10;
then A47: 1 in dom (f . l) by A42, A45, A46, FINSEQ_3:27;
then ( (Sum (Card (f | (l -' 1)))) + 1 in dom (FlattenSeq f) & (f . l) . 1 = (FlattenSeq f) . ((Sum (Card (f | (l -' 1)))) + 1) ) by A43, POLYNOM1:33;
then (f . l) . 1 in rng (FlattenSeq f) by FUNCT_1:12;
hence contradiction by A32, A35, A38, A39, A42, A44, A45, A47, Def10; :: thesis: verum
end;
suppose x in rng (FlattenSeq f2) ; :: thesis: contradiction
then consider k being Nat such that
A48: k in dom (FlattenSeq f2) and
A49: (FlattenSeq f2) . k = x by FINSEQ_2:11;
consider i, j being Element of NAT such that
A50: i in dom f2 and
A51: j in dom (f2 . i) and
k = (Sum (Card (f2 | (i -' 1)))) + j and
A52: (f2 . i) . j = (FlattenSeq f2) . k by A48, POLYNOM1:32;
f2 . i = fpoly_mult_root (s2 /. i),(b2 . (s2 /. i)) by A11, A50;
then A53: (f2 . i) . j = <%(- (s2 /. i)),(1. L)%> by A51, Def10;
len s2 = card (support b2) by A10, Def1;
then i in dom s2 by A9, A50, FINSEQ_3:31;
then ( s2 . i = s2 /. i & s2 . i in rng s2 ) by FUNCT_1:12, PARTFUN1:def 8;
then s2 /. i in support b2 by A10, FUNCT_2:def 3;
then A54: s2 /. i in support (b1 + b2) by A13, XBOOLE_0:def 3;
then s2 /. i in rng s by A2, FUNCT_2:def 3;
then consider l being Nat such that
A55: l in dom s and
A56: s . l = s2 /. i by FINSEQ_2:11;
A57: l in dom f by A1, A17, A55, FINSEQ_3:31;
then A58: f . l = fpoly_mult_root (s /. l),((b1 + b2) . (s /. l)) by A3;
A59: s . l = s /. l by A55, PARTFUN1:def 8;
(b1 + b2) . (s2 /. i) <> 0 by A54, POLYNOM1:def 7;
then A60: 0 + 1 <= (b1 + b2) . (s2 /. i) by NAT_1:13;
len (f . l) = (b1 + b2) . (s /. l) by A58, Def10;
then A61: 1 in dom (f . l) by A56, A59, A60, FINSEQ_3:27;
then ( (Sum (Card (f | (l -' 1)))) + 1 in dom (FlattenSeq f) & (f . l) . 1 = (FlattenSeq f) . ((Sum (Card (f | (l -' 1)))) + 1) ) by A57, POLYNOM1:33;
then (f . l) . 1 in rng (FlattenSeq f) by FUNCT_1:12;
hence contradiction by A32, A49, A52, A53, A56, A58, A59, A61, Def10; :: thesis: verum
end;
end;
end;
then ((FlattenSeq f1) ^ (FlattenSeq f2)) " {x} = {} by FUNCT_1:142;
hence card (Coim (FlattenSeq f),x) = card (Coim ((FlattenSeq f1) ^ (FlattenSeq f2)),x) by A32, FUNCT_1:142; :: thesis: verum
end;
end;
end;
then FlattenSeq f,(FlattenSeq f1) ^ (FlattenSeq f2) are_fiberwise_equipotent by CLASSES1:def 9;
then consider p being Permutation of (dom (FlattenSeq f)) such that
A62: FlattenSeq f = ((FlattenSeq f1) ^ (FlattenSeq f2)) * p by A16, RFINSEQ:17;
thus poly_with_roots (b1 + b2) = Product ((FlattenSeq f1) ^ (FlattenSeq f2)) by A4, A16, A62, Th18
.= (Product (FlattenSeq f1)) * (Product (FlattenSeq f2)) by GROUP_4:8
.= (poly_with_roots b1) *' (poly_with_roots b2) by A8, A12, POLYNOM3:def 12 ; :: thesis: verum