let u be integer-yielding FinSequence; :: thesis: for m being CR_Sequence st len m = len u holds
for c1, c2 being CR_coefficients of m holds Sum (u (#) c1), Sum (u (#) c2) are_congruent_mod Product m
let m be CR_Sequence; :: thesis: ( len m = len u implies for c1, c2 being CR_coefficients of m holds Sum (u (#) c1), Sum (u (#) c2) are_congruent_mod Product m )
assume H0:
len u = len m
; :: thesis: for c1, c2 being CR_coefficients of m holds Sum (u (#) c1), Sum (u (#) c2) are_congruent_mod Product m
let c1, c2 be CR_coefficients of m; :: thesis: Sum (u (#) c1), Sum (u (#) c2) are_congruent_mod Product m
set s1 = (Sum (u (#) c1)) mod (Product m);
set s2 = (Sum (u (#) c2)) mod (Product m);
A:
for i being natural number st i in dom m holds
(Sum (u (#) c1)) mod (Product m),u . i are_congruent_mod m . i
proof
let i be
natural number ;
:: thesis: ( i in dom m implies (Sum (u (#) c1)) mod (Product m),u . i are_congruent_mod m . i )
assume A0:
i in dom m
;
:: thesis: (Sum (u (#) c1)) mod (Product m),u . i are_congruent_mod m . i
then
Sum (u (#) c1),
u . i are_congruent_mod m . i
by H0, congsum;
then C:
(Sum (u (#) c1)) mod (m . i) = (u . i) mod (m . i)
by INT_3:12;
m . i in rng m
by A0, FUNCT_1:12;
then D1:
m . i > 0
by PARTFUN3:def 1;
consider z being
Integer such that E:
z * (m . i) = Product m
by A0, x000;
((Sum (u (#) c1)) mod (Product m)) mod (Product m) = (Sum (u (#) c1)) mod (Product m)
by INT_3:13;
then
(Sum (u (#) c1)) mod (Product m),
Sum (u (#) c1) are_congruent_mod Product m
by INT_3:12;
then
(Sum (u (#) c1)) mod (Product m),
Sum (u (#) c1) are_congruent_mod m . i
by E, INT_1:41;
then
((Sum (u (#) c1)) mod (Product m)) mod (m . i) = (Sum (u (#) c1)) mod (m . i)
by INT_3:12;
hence
(Sum (u (#) c1)) mod (Product m),
u . i are_congruent_mod m . i
by D1, C, INT_3:12;
:: thesis: verum
end;
B:
for i being natural number st i in dom m holds
(Sum (u (#) c2)) mod (Product m),u . i are_congruent_mod m . i
proof
let i be
natural number ;
:: thesis: ( i in dom m implies (Sum (u (#) c2)) mod (Product m),u . i are_congruent_mod m . i )
assume A0:
i in dom m
;
:: thesis: (Sum (u (#) c2)) mod (Product m),u . i are_congruent_mod m . i
then
Sum (u (#) c2),
u . i are_congruent_mod m . i
by H0, congsum;
then C:
(Sum (u (#) c2)) mod (m . i) = (u . i) mod (m . i)
by INT_3:12;
m . i in rng m
by A0, FUNCT_1:12;
then D1:
m . i > 0
by PARTFUN3:def 1;
consider z being
Integer such that E:
z * (m . i) = Product m
by A0, x000;
((Sum (u (#) c2)) mod (Product m)) mod (Product m) = (Sum (u (#) c2)) mod (Product m)
by INT_3:13;
then
(Sum (u (#) c2)) mod (Product m),
Sum (u (#) c2) are_congruent_mod Product m
by INT_3:12;
then
(Sum (u (#) c2)) mod (Product m),
Sum (u (#) c2) are_congruent_mod m . i
by E, INT_1:41;
then
((Sum (u (#) c2)) mod (Product m)) mod (m . i) = (Sum (u (#) c2)) mod (m . i)
by INT_3:12;
hence
(Sum (u (#) c2)) mod (Product m),
u . i are_congruent_mod m . i
by D1, C, INT_3:12;
:: thesis: verum
end;
C:
( 0 <= (Sum (u (#) c1)) mod (Product m) & (Sum (u (#) c1)) mod (Product m) < Product m )
by INT_3:9;
( 0 <= (Sum (u (#) c2)) mod (Product m) & (Sum (u (#) c2)) mod (Product m) < Product m )
by INT_3:9;
then
(Sum (u (#) c1)) mod (Product m) = (Sum (u (#) c2)) mod (Product m)
by A, B, C, Th3;
hence
Sum (u (#) c1), Sum (u (#) c2) are_congruent_mod Product m
by INT_3:12; :: thesis: verum