Lem1:
for i being Integer holds i in the carrier of INT.Ring
by INT_1:def 2;
Lm19:
for A, B being set st ( for z being object st z in A holds
ex x, y being object st z = [x,y] ) & ( for z being object st z in B holds
ex x, y being object st z = [x,y] ) & ( for x, y being object holds
( [x,y] in A iff [x,y] in B ) ) holds
A = B
definition
let V be
Z_Module;
assume AS:
V is
Mult-cancelable
;
existence
ex b1 being Equivalence_Relation of [: the carrier of V,(INT \ {0}):] st
for S, T being object holds
( [S,T] in b1 iff ( S in [: the carrier of V,(INT \ {0}):] & T in [: the carrier of V,(INT \ {0}):] & ex z1, z2 being Element of V ex i1, i2 being Element of INT.Ring st
( S = [z1,i1] & T = [z2,i2] & i1 <> 0 & i2 <> 0 & i2 * z1 = i1 * z2 ) ) )
uniqueness
for b1, b2 being Equivalence_Relation of [: the carrier of V,(INT \ {0}):] st ( for S, T being object holds
( [S,T] in b1 iff ( S in [: the carrier of V,(INT \ {0}):] & T in [: the carrier of V,(INT \ {0}):] & ex z1, z2 being Element of V ex i1, i2 being Element of INT.Ring st
( S = [z1,i1] & T = [z2,i2] & i1 <> 0 & i2 <> 0 & i2 * z1 = i1 * z2 ) ) ) ) & ( for S, T being object holds
( [S,T] in b2 iff ( S in [: the carrier of V,(INT \ {0}):] & T in [: the carrier of V,(INT \ {0}):] & ex z1, z2 being Element of V ex i1, i2 being Element of INT.Ring st
( S = [z1,i1] & T = [z2,i2] & i1 <> 0 & i2 <> 0 & i2 * z1 = i1 * z2 ) ) ) ) holds
b1 = b2
end;
definition
let V be
Z_Module;
assume AS:
V is
Mult-cancelable
;
func addCoset V -> BinOp of
(Class (EQRZM V)) means :
DefaddCoset:
for
A,
B being
object st
A in Class (EQRZM V) &
B in Class (EQRZM V) holds
for
z1,
z2 being
Element of
V for
i1,
i2 being
Element of
INT.Ring st
i1 <> 0. INT.Ring &
i2 <> 0. INT.Ring &
A = Class (
(EQRZM V),
[z1,i1]) &
B = Class (
(EQRZM V),
[z2,i2]) holds
it . (
A,
B)
= Class (
(EQRZM V),
[((i2 * z1) + (i1 * z2)),(i1 * i2)]);
existence
ex b1 being BinOp of (Class (EQRZM V)) st
for A, B being object st A in Class (EQRZM V) & B in Class (EQRZM V) holds
for z1, z2 being Element of V
for i1, i2 being Element of INT.Ring st i1 <> 0. INT.Ring & i2 <> 0. INT.Ring & A = Class ((EQRZM V),[z1,i1]) & B = Class ((EQRZM V),[z2,i2]) holds
b1 . (A,B) = Class ((EQRZM V),[((i2 * z1) + (i1 * z2)),(i1 * i2)])
uniqueness
for b1, b2 being BinOp of (Class (EQRZM V)) st ( for A, B being object st A in Class (EQRZM V) & B in Class (EQRZM V) holds
for z1, z2 being Element of V
for i1, i2 being Element of INT.Ring st i1 <> 0. INT.Ring & i2 <> 0. INT.Ring & A = Class ((EQRZM V),[z1,i1]) & B = Class ((EQRZM V),[z2,i2]) holds
b1 . (A,B) = Class ((EQRZM V),[((i2 * z1) + (i1 * z2)),(i1 * i2)]) ) & ( for A, B being object st A in Class (EQRZM V) & B in Class (EQRZM V) holds
for z1, z2 being Element of V
for i1, i2 being Element of INT.Ring st i1 <> 0. INT.Ring & i2 <> 0. INT.Ring & A = Class ((EQRZM V),[z1,i1]) & B = Class ((EQRZM V),[z2,i2]) holds
b2 . (A,B) = Class ((EQRZM V),[((i2 * z1) + (i1 * z2)),(i1 * i2)]) ) holds
b1 = b2
end;
::
deftheorem DefaddCoset defines
addCoset ZMODUL04:def 2 :
for V being Z_Module st V is Mult-cancelable holds
for b2 being BinOp of (Class (EQRZM V)) holds
( b2 = addCoset V iff for A, B being object st A in Class (EQRZM V) & B in Class (EQRZM V) holds
for z1, z2 being Element of V
for i1, i2 being Element of INT.Ring st i1 <> 0. INT.Ring & i2 <> 0. INT.Ring & A = Class ((EQRZM V),[z1,i1]) & B = Class ((EQRZM V),[z2,i2]) holds
b2 . (A,B) = Class ((EQRZM V),[((i2 * z1) + (i1 * z2)),(i1 * i2)]) );
definition
let V be
Z_Module;
assume AS:
V is
Mult-cancelable
;
func lmultCoset V -> Function of
[: the carrier of F_Rat,(Class (EQRZM V)):],
(Class (EQRZM V)) means :
DeflmultCoset:
for
q,
A being
object st
q in RAT &
A in Class (EQRZM V) holds
for
m,
n,
i being
Integer for
mm being
Element of
INT.Ring for
z being
Element of
V st
m = mm &
n <> 0 &
q = m / n &
i <> 0 &
A = Class (
(EQRZM V),
[z,i]) holds
it . (
q,
A)
= Class (
(EQRZM V),
[(mm * z),(n * i)]);
existence
ex b1 being Function of [: the carrier of F_Rat,(Class (EQRZM V)):],(Class (EQRZM V)) st
for q, A being object st q in RAT & A in Class (EQRZM V) holds
for m, n, i being Integer
for mm being Element of INT.Ring
for z being Element of V st m = mm & n <> 0 & q = m / n & i <> 0 & A = Class ((EQRZM V),[z,i]) holds
b1 . (q,A) = Class ((EQRZM V),[(mm * z),(n * i)])
uniqueness
for b1, b2 being Function of [: the carrier of F_Rat,(Class (EQRZM V)):],(Class (EQRZM V)) st ( for q, A being object st q in RAT & A in Class (EQRZM V) holds
for m, n, i being Integer
for mm being Element of INT.Ring
for z being Element of V st m = mm & n <> 0 & q = m / n & i <> 0 & A = Class ((EQRZM V),[z,i]) holds
b1 . (q,A) = Class ((EQRZM V),[(mm * z),(n * i)]) ) & ( for q, A being object st q in RAT & A in Class (EQRZM V) holds
for m, n, i being Integer
for mm being Element of INT.Ring
for z being Element of V st m = mm & n <> 0 & q = m / n & i <> 0 & A = Class ((EQRZM V),[z,i]) holds
b2 . (q,A) = Class ((EQRZM V),[(mm * z),(n * i)]) ) holds
b1 = b2
end;
::
deftheorem DeflmultCoset defines
lmultCoset ZMODUL04:def 4 :
for V being Z_Module st V is Mult-cancelable holds
for b2 being Function of [: the carrier of F_Rat,(Class (EQRZM V)):],(Class (EQRZM V)) holds
( b2 = lmultCoset V iff for q, A being object st q in RAT & A in Class (EQRZM V) holds
for m, n, i being Integer
for mm being Element of INT.Ring
for z being Element of V st m = mm & n <> 0 & q = m / n & i <> 0 & A = Class ((EQRZM V),[z,i]) holds
b2 . (q,A) = Class ((EQRZM V),[(mm * z),(n * i)]) );
ThEQRZMV1:
for V being Z_Module st V is Mult-cancelable holds
ModuleStr(# (Class (EQRZM V)),(addCoset V),(zeroCoset V),(lmultCoset V) #) is VectSp of F_Rat
ThEQRZMV2:
for V being Z_Module st V is Mult-cancelable holds
ex I being Function of V,(Z_MQ_VectSp V) st
( I is one-to-one & ( for v being Element of V holds I . v = Class ((EQRZM V),[v,1]) ) & ( for v, w being Element of V holds I . (v + w) = (I . v) + (I . w) ) & ( for v being Element of V
for i being Element of INT.Ring
for q being Element of F_Rat st i = q holds
I . (i * v) = q * (I . v) ) & I . (0. V) = 0. (Z_MQ_VectSp V) )
definition
let V be
Z_Module;
assume AS:
V is
Mult-cancelable
;
existence
ex b1 being Function of V,(Z_MQ_VectSp V) st
( b1 is one-to-one & ( for v being Element of V holds b1 . v = Class ((EQRZM V),[v,1]) ) & ( for v, w being Element of V holds b1 . (v + w) = (b1 . v) + (b1 . w) ) & ( for v being Element of V
for i being Element of INT.Ring
for q being Element of F_Rat st i = q holds
b1 . (i * v) = q * (b1 . v) ) & b1 . (0. V) = 0. (Z_MQ_VectSp V) )
by ThEQRZMV2, AS;
uniqueness
for b1, b2 being Function of V,(Z_MQ_VectSp V) st b1 is one-to-one & ( for v being Element of V holds b1 . v = Class ((EQRZM V),[v,1]) ) & ( for v, w being Element of V holds b1 . (v + w) = (b1 . v) + (b1 . w) ) & ( for v being Element of V
for i being Element of INT.Ring
for q being Element of F_Rat st i = q holds
b1 . (i * v) = q * (b1 . v) ) & b1 . (0. V) = 0. (Z_MQ_VectSp V) & b2 is one-to-one & ( for v being Element of V holds b2 . v = Class ((EQRZM V),[v,1]) ) & ( for v, w being Element of V holds b2 . (v + w) = (b2 . v) + (b2 . w) ) & ( for v being Element of V
for i being Element of INT.Ring
for q being Element of F_Rat st i = q holds
b2 . (i * v) = q * (b2 . v) ) & b2 . (0. V) = 0. (Z_MQ_VectSp V) holds
b1 = b2
end;
FRX:
for V being free finite-rank Z_Module
for W being Subspace of V holds W is free
LMX2:
for p being prime Element of INT.Ring
for V being free Z_Module
for i being Element of INT.Ring
for v being Element of V holds ZMtoMQV (V,p,((i mod p) * v)) = ZMtoMQV (V,p,(i * v))
theorem ThQuotBasis5:
for
p being
prime Element of
INT.Ring for
V being
free Z_Module for
I being
Subset of
V for
IQ being
Subset of
(Z_MQ_VectSp (V,p)) st
Lin I = ModuleStr(# the
carrier of
V, the
addF of
V, the
ZeroF of
V, the
lmult of
V #) &
IQ = { (ZMtoMQV (V,p,u)) where u is Vector of V : u in I } holds
Lin IQ = ModuleStr(# the
carrier of
(Z_MQ_VectSp (V,p)), the
addF of
(Z_MQ_VectSp (V,p)), the
ZeroF of
(Z_MQ_VectSp (V,p)), the
lmult of
(Z_MQ_VectSp (V,p)) #)
RL5Th28:
for V being free finite-rank Z_Module
for W being Subspace of V holds W is finite-rank