:: MOD_2 semantic presentation
begin
Lm1: for R being Ring holds VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is strict LeftMod of R
proof
let R be Ring; ::_thesis: VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is strict LeftMod of R
set a = 0. Trivial-addLoopStr;
set G = VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #);
A1: for a, b being Element of VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #)
for x, y being Element of Trivial-addLoopStr st x = a & b = y holds
a + b = x + y ;
A2: ( VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is Abelian & VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is add-associative & VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is right_zeroed & VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is right_complementable )
proof
thus VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is Abelian ::_thesis: ( VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is add-associative & VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is right_zeroed & VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is right_complementable )
proof
let a, b be Element of VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #); :: according to RLVECT_1:def_2 ::_thesis: a + b = b + a
reconsider x = a, y = b as Element of Trivial-addLoopStr ;
thus a + b = y + x by A1
.= b + a ; ::_thesis: verum
end;
hereby :: according to RLVECT_1:def_3 ::_thesis: ( VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is right_zeroed & VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is right_complementable )
let a, b, c be Element of VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #); ::_thesis: (a + b) + c = a + (b + c)
reconsider x = a, y = b, z = c as Element of Trivial-addLoopStr ;
thus (a + b) + c = (x + y) + z
.= x + (y + z) by RLVECT_1:def_3
.= a + (b + c) ; ::_thesis: verum
end;
hereby :: according to RLVECT_1:def_4 ::_thesis: VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is right_complementable
let a be Element of VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #); ::_thesis: a + (0. VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #)) = a
reconsider x = a as Element of Trivial-addLoopStr ;
thus a + (0. VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #)) = x + (0. Trivial-addLoopStr)
.= a by RLVECT_1:4 ; ::_thesis: verum
end;
let a be Element of VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #); :: according to ALGSTR_0:def_16 ::_thesis: a is right_complementable
reconsider x = a as Element of Trivial-addLoopStr ;
consider b being Element of Trivial-addLoopStr such that
A3: x + b = 0. Trivial-addLoopStr by ALGSTR_0:def_11;
reconsider b9 = b as Element of VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) ;
take b9 ; :: according to ALGSTR_0:def_11 ::_thesis: a + b9 = 0. VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #)
thus a + b9 = 0. VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) by A3; ::_thesis: verum
end;
now__::_thesis:_for_x,_y_being_Scalar_of_R
for_v,_w_being_Vector_of_VectSpStr(#_1,op2,op0,(pr2_(_the_carrier_of_R,1))_#)_holds_
(_x_*_(v_+_w)_=_(x_*_v)_+_(x_*_w)_&_(x_+_y)_*_v_=_(x_*_v)_+_(y_*_v)_&_(x_*_y)_*_v_=_x_*_(y_*_v)_&_(1._R)_*_v_=_v_)
let x, y be Scalar of R; ::_thesis: for v, w being Vector of VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) holds
( x * (v + w) = (x * v) + (x * w) & (x + y) * v = (x * v) + (y * v) & (x * y) * v = x * (y * v) & (1. R) * v = v )
let v, w be Vector of VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #); ::_thesis: ( x * (v + w) = (x * v) + (x * w) & (x + y) * v = (x * v) + (y * v) & (x * y) * v = x * (y * v) & (1. R) * v = v )
A4: ( (x * y) * v = 0. Trivial-addLoopStr & (1. R) * v = 0. Trivial-addLoopStr ) by GRCAT_1:4;
( x * (v + w) = 0. Trivial-addLoopStr & (x + y) * v = 0. Trivial-addLoopStr ) by GRCAT_1:4;
hence ( x * (v + w) = (x * v) + (x * w) & (x + y) * v = (x * v) + (y * v) & (x * y) * v = x * (y * v) & (1. R) * v = v ) by A4, GRCAT_1:4; ::_thesis: verum
end;
hence VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is strict LeftMod of R by A2, VECTSP_1:def_14, VECTSP_1:def_15, VECTSP_1:def_16, VECTSP_1:def_17; ::_thesis: verum
end;
definition
let R be Ring;
func TrivialLMod R -> strict LeftMod of R equals :: MOD_2:def 1
VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #);
coherence
VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #) is strict LeftMod of R by Lm1;
end;
:: deftheorem defines TrivialLMod MOD_2:def_1_:_
for R being Ring holds TrivialLMod R = VectSpStr(# 1,op2,op0,(pr2 ( the carrier of R,1)) #);
theorem :: MOD_2:1
for R being Ring
for x being Vector of (TrivialLMod R) holds x = 0. (TrivialLMod R) by GRCAT_1:4;
definition
let R be non empty multMagma ;
let G, H be non empty VectSpStr over R;
let f be Function of G,H;
attrf is homogeneous means :Def2: :: MOD_2:def 2
for a being Scalar of R
for x being Vector of G holds f . (a * x) = a * (f . x);
end;
:: deftheorem Def2 defines homogeneous MOD_2:def_2_:_
for R being non empty multMagma
for G, H being non empty VectSpStr over R
for f being Function of G,H holds
( f is homogeneous iff for a being Scalar of R
for x being Vector of G holds f . (a * x) = a * (f . x) );
theorem Th2: :: MOD_2:2
for R being Ring
for G, H, S being non empty VectSpStr over R
for f being Function of G,H
for g being Function of H,S st f is homogeneous & g is homogeneous holds
g * f is homogeneous
proof
let R be Ring; ::_thesis: for G, H, S being non empty VectSpStr over R
for f being Function of G,H
for g being Function of H,S st f is homogeneous & g is homogeneous holds
g * f is homogeneous
let G, H, S be non empty VectSpStr over R; ::_thesis: for f being Function of G,H
for g being Function of H,S st f is homogeneous & g is homogeneous holds
g * f is homogeneous
let f be Function of G,H; ::_thesis: for g being Function of H,S st f is homogeneous & g is homogeneous holds
g * f is homogeneous
let g be Function of H,S; ::_thesis: ( f is homogeneous & g is homogeneous implies g * f is homogeneous )
assume that
A1: f is homogeneous and
A2: g is homogeneous ; ::_thesis: g * f is homogeneous
set h = g * f;
let a be Scalar of R; :: according to MOD_2:def_2 ::_thesis: for x being Vector of G holds (g * f) . (a * x) = a * ((g * f) . x)
let x be Vector of G; ::_thesis: (g * f) . (a * x) = a * ((g * f) . x)
thus (g * f) . (a * x) = g . (f . (a * x)) by FUNCT_2:15
.= g . (a * (f . x)) by A1, Def2
.= a * (g . (f . x)) by A2, Def2
.= a * ((g * f) . x) by FUNCT_2:15 ; ::_thesis: verum
end;
registration
let R be Ring;
let G, H be LeftMod of R;
cluster ZeroMap (G,H) -> homogeneous ;
coherence
ZeroMap (G,H) is homogeneous
proof
let a be Scalar of R; :: according to MOD_2:def_2 ::_thesis: for x being Vector of G holds (ZeroMap (G,H)) . (a * x) = a * ((ZeroMap (G,H)) . x)
let x be Vector of G; ::_thesis: (ZeroMap (G,H)) . (a * x) = a * ((ZeroMap (G,H)) . x)
set f = ZeroMap (G,H);
( (ZeroMap (G,H)) . (a * x) = 0. H & (ZeroMap (G,H)) . x = 0. H ) by FUNCOP_1:7;
hence (ZeroMap (G,H)) . (a * x) = a * ((ZeroMap (G,H)) . x) by VECTSP_1:14; ::_thesis: verum
end;
end;
definition
let R be Ring;
attrc2 is strict ;
struct LModMorphismStr over R -> ;
aggrLModMorphismStr(# Dom, Cod, Fun #) -> LModMorphismStr over R;
sel Dom c2 -> LeftMod of R;
sel Cod c2 -> LeftMod of R;
sel Fun c2 -> Function of the Dom of c2, the Cod of c2;
end;
definition
let R be Ring;
let f be LModMorphismStr over R;
func dom f -> LeftMod of R equals :: MOD_2:def 3
the Dom of f;
correctness
coherence
the Dom of f is LeftMod of R;
;
func cod f -> LeftMod of R equals :: MOD_2:def 4
the Cod of f;
correctness
coherence
the Cod of f is LeftMod of R;
;
end;
:: deftheorem defines dom MOD_2:def_3_:_
for R being Ring
for f being LModMorphismStr over R holds dom f = the Dom of f;
:: deftheorem defines cod MOD_2:def_4_:_
for R being Ring
for f being LModMorphismStr over R holds cod f = the Cod of f;
definition
let R be Ring;
let f be LModMorphismStr over R;
func fun f -> Function of (dom f),(cod f) equals :: MOD_2:def 5
the Fun of f;
coherence
the Fun of f is Function of (dom f),(cod f) ;
end;
:: deftheorem defines fun MOD_2:def_5_:_
for R being Ring
for f being LModMorphismStr over R holds fun f = the Fun of f;
theorem :: MOD_2:3
for R being Ring
for G1, G2 being LeftMod of R
for f being LModMorphismStr over R
for f0 being Function of G1,G2 st f = LModMorphismStr(# G1,G2,f0 #) holds
( dom f = G1 & cod f = G2 & fun f = f0 ) ;
definition
let R be Ring;
let G, H be LeftMod of R;
func ZERO (G,H) -> strict LModMorphismStr over R equals :: MOD_2:def 6
LModMorphismStr(# G,H,(ZeroMap (G,H)) #);
correctness
coherence
LModMorphismStr(# G,H,(ZeroMap (G,H)) #) is strict LModMorphismStr over R;
;
end;
:: deftheorem defines ZERO MOD_2:def_6_:_
for R being Ring
for G, H being LeftMod of R holds ZERO (G,H) = LModMorphismStr(# G,H,(ZeroMap (G,H)) #);
definition
let R be Ring;
let IT be LModMorphismStr over R;
attrIT is LModMorphism-like means :Def7: :: MOD_2:def 7
( fun IT is additive & fun IT is homogeneous );
end;
:: deftheorem Def7 defines LModMorphism-like MOD_2:def_7_:_
for R being Ring
for IT being LModMorphismStr over R holds
( IT is LModMorphism-like iff ( fun IT is additive & fun IT is homogeneous ) );
registration
let R be Ring;
cluster strict LModMorphism-like for LModMorphismStr over R;
existence
ex b1 being LModMorphismStr over R st
( b1 is strict & b1 is LModMorphism-like )
proof
set G = the LeftMod of R;
set z = ZERO ( the LeftMod of R, the LeftMod of R);
( fun (ZERO ( the LeftMod of R, the LeftMod of R)) is additive & fun (ZERO ( the LeftMod of R, the LeftMod of R)) is homogeneous ) ;
then ZERO ( the LeftMod of R, the LeftMod of R) is LModMorphism-like by Def7;
hence ex b1 being LModMorphismStr over R st
( b1 is strict & b1 is LModMorphism-like ) ; ::_thesis: verum
end;
end;
definition
let R be Ring;
mode LModMorphism of R is LModMorphism-like LModMorphismStr over R;
end;
theorem Th4: :: MOD_2:4
for R being Ring
for F being LModMorphism of R holds
( the Fun of F is additive & the Fun of F is homogeneous )
proof
let R be Ring; ::_thesis: for F being LModMorphism of R holds
( the Fun of F is additive & the Fun of F is homogeneous )
let F be LModMorphism of R; ::_thesis: ( the Fun of F is additive & the Fun of F is homogeneous )
the Fun of F = fun F ;
hence ( the Fun of F is additive & the Fun of F is homogeneous ) by Def7; ::_thesis: verum
end;
registration
let R be Ring;
let G, H be LeftMod of R;
cluster ZERO (G,H) -> strict LModMorphism-like ;
coherence
ZERO (G,H) is LModMorphism-like
proof
set z = ZERO (G,H);
( fun (ZERO (G,H)) is additive & fun (ZERO (G,H)) is homogeneous ) ;
hence ZERO (G,H) is LModMorphism-like by Def7; ::_thesis: verum
end;
end;
definition
let R be Ring;
let G, H be LeftMod of R;
mode Morphism of G,H -> LModMorphism of R means :Def8: :: MOD_2:def 8
( dom it = G & cod it = H );
existence
ex b1 being LModMorphism of R st
( dom b1 = G & cod b1 = H )
proof
take ZERO (G,H) ; ::_thesis: ( dom (ZERO (G,H)) = G & cod (ZERO (G,H)) = H )
thus ( dom (ZERO (G,H)) = G & cod (ZERO (G,H)) = H ) ; ::_thesis: verum
end;
end;
:: deftheorem Def8 defines Morphism MOD_2:def_8_:_
for R being Ring
for G, H being LeftMod of R
for b4 being LModMorphism of R holds
( b4 is Morphism of G,H iff ( dom b4 = G & cod b4 = H ) );
registration
let R be Ring;
let G, H be LeftMod of R;
cluster strict LModMorphism-like for Morphism of G,H;
existence
ex b1 being Morphism of G,H st b1 is strict
proof
( dom (ZERO (G,H)) = G & cod (ZERO (G,H)) = H ) ;
then reconsider z = ZERO (G,H) as Morphism of G,H by Def8;
take z ; ::_thesis: z is strict
thus z is strict ; ::_thesis: verum
end;
end;
theorem Th5: :: MOD_2:5
for R being Ring
for G, H being LeftMod of R
for f being LModMorphismStr over R st dom f = G & cod f = H & fun f is additive & fun f is homogeneous holds
f is Morphism of G,H
proof
let R be Ring; ::_thesis: for G, H being LeftMod of R
for f being LModMorphismStr over R st dom f = G & cod f = H & fun f is additive & fun f is homogeneous holds
f is Morphism of G,H
let G, H be LeftMod of R; ::_thesis: for f being LModMorphismStr over R st dom f = G & cod f = H & fun f is additive & fun f is homogeneous holds
f is Morphism of G,H
let f be LModMorphismStr over R; ::_thesis: ( dom f = G & cod f = H & fun f is additive & fun f is homogeneous implies f is Morphism of G,H )
assume that
A1: ( dom f = G & cod f = H ) and
A2: ( fun f is additive & fun f is homogeneous ) ; ::_thesis: f is Morphism of G,H
reconsider f9 = f as LModMorphism of R by A2, Def7;
f9 is Morphism of G,H by A1, Def8;
hence f is Morphism of G,H ; ::_thesis: verum
end;
theorem Th6: :: MOD_2:6
for R being Ring
for G, H being LeftMod of R
for f being Function of G,H st f is additive & f is homogeneous holds
LModMorphismStr(# G,H,f #) is strict Morphism of G,H
proof
let R be Ring; ::_thesis: for G, H being LeftMod of R
for f being Function of G,H st f is additive & f is homogeneous holds
LModMorphismStr(# G,H,f #) is strict Morphism of G,H
let G, H be LeftMod of R; ::_thesis: for f being Function of G,H st f is additive & f is homogeneous holds
LModMorphismStr(# G,H,f #) is strict Morphism of G,H
let f be Function of G,H; ::_thesis: ( f is additive & f is homogeneous implies LModMorphismStr(# G,H,f #) is strict Morphism of G,H )
assume A1: ( f is additive & f is homogeneous ) ; ::_thesis: LModMorphismStr(# G,H,f #) is strict Morphism of G,H
set F = LModMorphismStr(# G,H,f #);
fun LModMorphismStr(# G,H,f #) = f ;
hence LModMorphismStr(# G,H,f #) is strict Morphism of G,H by A1, Th5; ::_thesis: verum
end;
registration
let R be Ring;
let G be LeftMod of R;
cluster id G -> homogeneous ;
coherence
id G is homogeneous
proof
set f = id G;
let a be Scalar of R; :: according to MOD_2:def_2 ::_thesis: for x being Vector of G holds (id G) . (a * x) = a * ((id G) . x)
let x be Vector of G; ::_thesis: (id G) . (a * x) = a * ((id G) . x)
thus (id G) . (a * x) = a * x by FUNCT_1:18
.= a * ((id G) . x) by FUNCT_1:18 ; ::_thesis: verum
end;
end;
definition
let R be Ring;
let G be LeftMod of R;
func ID G -> strict Morphism of G,G equals :: MOD_2:def 9
LModMorphismStr(# G,G,(id G) #);
coherence
LModMorphismStr(# G,G,(id G) #) is strict Morphism of G,G
proof
set i = LModMorphismStr(# G,G,(id G) #);
fun LModMorphismStr(# G,G,(id G) #) = id G ;
hence LModMorphismStr(# G,G,(id G) #) is strict Morphism of G,G by Th5; ::_thesis: verum
end;
end;
:: deftheorem defines ID MOD_2:def_9_:_
for R being Ring
for G being LeftMod of R holds ID G = LModMorphismStr(# G,G,(id G) #);
definition
let R be Ring;
let G, H be LeftMod of R;
:: original: ZERO
redefine func ZERO (G,H) -> strict Morphism of G,H;
coherence
ZERO (G,H) is strict Morphism of G,H
proof
set i = ZERO (G,H);
fun (ZERO (G,H)) = ZeroMap (G,H) ;
hence ZERO (G,H) is strict Morphism of G,H by Th5; ::_thesis: verum
end;
end;
theorem Th7: :: MOD_2:7
for R being Ring
for G, H being LeftMod of R
for F being Morphism of G,H ex f being Function of G,H st
( LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
proof
let R be Ring; ::_thesis: for G, H being LeftMod of R
for F being Morphism of G,H ex f being Function of G,H st
( LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
let G, H be LeftMod of R; ::_thesis: for F being Morphism of G,H ex f being Function of G,H st
( LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
let F be Morphism of G,H; ::_thesis: ex f being Function of G,H st
( LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
A1: the Cod of F = cod F
.= H by Def8 ;
A2: the Dom of F = dom F
.= G by Def8 ;
then reconsider f = the Fun of F as Function of G,H by A1;
take f ; ::_thesis: ( LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
thus ( LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous ) by A2, A1, Th4; ::_thesis: verum
end;
theorem Th8: :: MOD_2:8
for R being Ring
for G, H being LeftMod of R
for F being strict Morphism of G,H ex f being Function of G,H st F = LModMorphismStr(# G,H,f #)
proof
let R be Ring; ::_thesis: for G, H being LeftMod of R
for F being strict Morphism of G,H ex f being Function of G,H st F = LModMorphismStr(# G,H,f #)
let G, H be LeftMod of R; ::_thesis: for F being strict Morphism of G,H ex f being Function of G,H st F = LModMorphismStr(# G,H,f #)
let F be strict Morphism of G,H; ::_thesis: ex f being Function of G,H st F = LModMorphismStr(# G,H,f #)
consider f being Function of G,H such that
A1: LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G,H,f #) and
( f is additive & f is homogeneous ) by Th7;
take f ; ::_thesis: F = LModMorphismStr(# G,H,f #)
thus F = LModMorphismStr(# G,H,f #) by A1; ::_thesis: verum
end;
theorem Th9: :: MOD_2:9
for R being Ring
for F being LModMorphism of R ex G, H being LeftMod of R st F is Morphism of G,H
proof
let R be Ring; ::_thesis: for F being LModMorphism of R ex G, H being LeftMod of R st F is Morphism of G,H
let F be LModMorphism of R; ::_thesis: ex G, H being LeftMod of R st F is Morphism of G,H
take G = the Dom of F; ::_thesis: ex H being LeftMod of R st F is Morphism of G,H
take H = the Cod of F; ::_thesis: F is Morphism of G,H
( dom F = G & cod F = H ) ;
hence F is Morphism of G,H by Def8; ::_thesis: verum
end;
theorem :: MOD_2:10
for R being Ring
for F being strict LModMorphism of R ex G, H being LeftMod of R ex f being Function of G,H st
( F is strict Morphism of G,H & F = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
proof
let R be Ring; ::_thesis: for F being strict LModMorphism of R ex G, H being LeftMod of R ex f being Function of G,H st
( F is strict Morphism of G,H & F = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
let F be strict LModMorphism of R; ::_thesis: ex G, H being LeftMod of R ex f being Function of G,H st
( F is strict Morphism of G,H & F = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
consider G, H being LeftMod of R such that
A1: F is Morphism of G,H by Th9;
reconsider F9 = F as Morphism of G,H by A1;
consider f being Function of G,H such that
A2: ( LModMorphismStr(# the Dom of F9, the Cod of F9, the Fun of F9 #) = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous ) by Th7;
take G ; ::_thesis: ex H being LeftMod of R ex f being Function of G,H st
( F is strict Morphism of G,H & F = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
take H ; ::_thesis: ex f being Function of G,H st
( F is strict Morphism of G,H & F = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
take f ; ::_thesis: ( F is strict Morphism of G,H & F = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous )
thus ( F is strict Morphism of G,H & F = LModMorphismStr(# G,H,f #) & f is additive & f is homogeneous ) by A2; ::_thesis: verum
end;
theorem Th11: :: MOD_2:11
for R being Ring
for g, f being LModMorphism of R st dom g = cod f holds
ex G1, G2, G3 being LeftMod of R st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 )
proof
let R be Ring; ::_thesis: for g, f being LModMorphism of R st dom g = cod f holds
ex G1, G2, G3 being LeftMod of R st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 )
defpred S1[ LModMorphism of R, LModMorphism of R] means dom $1 = cod $2;
let g, f be LModMorphism of R; ::_thesis: ( dom g = cod f implies ex G1, G2, G3 being LeftMod of R st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 ) )
assume A1: S1[g,f] ; ::_thesis: ex G1, G2, G3 being LeftMod of R st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 )
consider G2, G3 being LeftMod of R such that
A2: g is Morphism of G2,G3 by Th9;
A3: G2 = dom g by A2, Def8;
consider G1, G2 being LeftMod of R such that
A4: f is Morphism of G1,G2 by Th9;
G2 = cod f by A4, Def8;
hence ex G1, G2, G3 being LeftMod of R st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 ) by A1, A2, A3, A4; ::_thesis: verum
end;
definition
let R be Ring;
let G, F be LModMorphism of R;
assume A1: dom G = cod F ;
funcG * F -> strict LModMorphism of R means :Def10: :: MOD_2:def 10
for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
it = LModMorphismStr(# G1,G3,(g * f) #);
existence
ex b1 being strict LModMorphism of R st
for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
b1 = LModMorphismStr(# G1,G3,(g * f) #)
proof
consider G19, G2, G39 being LeftMod of R such that
A2: G is Morphism of G2,G39 and
A3: F is Morphism of G19,G2 by A1, Th11;
consider f9 being Function of G19,G2 such that
A4: LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G19,G2,f9 #) and
A5: ( f9 is additive & f9 is homogeneous ) by A3, Th7;
consider g9 being Function of G2,G39 such that
A6: LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G39,g9 #) and
A7: ( g9 is additive & g9 is homogeneous ) by A2, Th7;
( g9 * f9 is additive & g9 * f9 is homogeneous ) by A7, A5, Th2;
then reconsider T9 = LModMorphismStr(# G19,G39,(g9 * f9) #) as strict LModMorphism of R by Th6;
take T9 ; ::_thesis: for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
T9 = LModMorphismStr(# G1,G3,(g * f) #)
thus for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
T9 = LModMorphismStr(# G1,G3,(g * f) #) by A6, A4; ::_thesis: verum
end;
uniqueness
for b1, b2 being strict LModMorphism of R st ( for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
b1 = LModMorphismStr(# G1,G3,(g * f) #) ) & ( for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
b2 = LModMorphismStr(# G1,G3,(g * f) #) ) holds
b1 = b2
proof
consider G19, G29 being LeftMod of R such that
A8: F is Morphism of G19,G29 by Th9;
reconsider F9 = F as Morphism of G19,G29 by A8;
consider G2, G39 being LeftMod of R such that
A9: G is Morphism of G2,G39 by Th9;
G2 = dom G by A9, Def8;
then reconsider F9 = F9 as Morphism of G19,G2 by A1, Def8;
consider f9 being Function of G19,G2 such that
A10: LModMorphismStr(# the Dom of F9, the Cod of F9, the Fun of F9 #) = LModMorphismStr(# G19,G2,f9 #) and
( f9 is additive & f9 is homogeneous ) by Th7;
reconsider G9 = G as Morphism of G2,G39 by A9;
let S1, S2 be strict LModMorphism of R; ::_thesis: ( ( for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
S1 = LModMorphismStr(# G1,G3,(g * f) #) ) & ( for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
S2 = LModMorphismStr(# G1,G3,(g * f) #) ) implies S1 = S2 )
assume that
A11: for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
S1 = LModMorphismStr(# G1,G3,(g * f) #) and
A12: for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
S2 = LModMorphismStr(# G1,G3,(g * f) #) ; ::_thesis: S1 = S2
consider g9 being Function of G2,G39 such that
A13: LModMorphismStr(# the Dom of G9, the Cod of G9, the Fun of G9 #) = LModMorphismStr(# G2,G39,g9 #) and
( g9 is additive & g9 is homogeneous ) by Th7;
thus S1 = LModMorphismStr(# G19,G39,(g9 * f9) #) by A11, A13, A10
.= S2 by A12, A13, A10 ; ::_thesis: verum
end;
end;
:: deftheorem Def10 defines * MOD_2:def_10_:_
for R being Ring
for G, F being LModMorphism of R st dom G = cod F holds
for b4 being strict LModMorphism of R holds
( b4 = G * F iff for G1, G2, G3 being LeftMod of R
for g being Function of G2,G3
for f being Function of G1,G2 st LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) & LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) holds
b4 = LModMorphismStr(# G1,G3,(g * f) #) );
theorem Th12: :: MOD_2:12
for R being Ring
for G2, G3, G1 being LeftMod of R
for G being Morphism of G2,G3
for F being Morphism of G1,G2 holds G * F is strict Morphism of G1,G3
proof
let R be Ring; ::_thesis: for G2, G3, G1 being LeftMod of R
for G being Morphism of G2,G3
for F being Morphism of G1,G2 holds G * F is strict Morphism of G1,G3
let G2, G3, G1 be LeftMod of R; ::_thesis: for G being Morphism of G2,G3
for F being Morphism of G1,G2 holds G * F is strict Morphism of G1,G3
let G be Morphism of G2,G3; ::_thesis: for F being Morphism of G1,G2 holds G * F is strict Morphism of G1,G3
let F be Morphism of G1,G2; ::_thesis: G * F is strict Morphism of G1,G3
consider g being Function of G2,G3 such that
A1: LModMorphismStr(# the Dom of G, the Cod of G, the Fun of G #) = LModMorphismStr(# G2,G3,g #) and
( g is additive & g is homogeneous ) by Th7;
consider f being Function of G1,G2 such that
A2: LModMorphismStr(# the Dom of F, the Cod of F, the Fun of F #) = LModMorphismStr(# G1,G2,f #) and
( f is additive & f is homogeneous ) by Th7;
dom G = G2 by Def8
.= cod F by Def8 ;
then G * F = LModMorphismStr(# G1,G3,(g * f) #) by A1, A2, Def10;
then ( dom (G * F) = G1 & cod (G * F) = G3 ) ;
hence G * F is strict Morphism of G1,G3 by Def8; ::_thesis: verum
end;
definition
let R be Ring;
let G1, G2, G3 be LeftMod of R;
let G be Morphism of G2,G3;
let F be Morphism of G1,G2;
funcG *' F -> strict Morphism of G1,G3 equals :: MOD_2:def 11
G * F;
coherence
G * F is strict Morphism of G1,G3 by Th12;
end;
:: deftheorem defines *' MOD_2:def_11_:_
for R being Ring
for G1, G2, G3 being LeftMod of R
for G being Morphism of G2,G3
for F being Morphism of G1,G2 holds G *' F = G * F;
theorem Th13: :: MOD_2:13
for R being Ring
for G2, G3, G1 being LeftMod of R
for G being Morphism of G2,G3
for F being Morphism of G1,G2
for g being Function of G2,G3
for f being Function of G1,G2 st G = LModMorphismStr(# G2,G3,g #) & F = LModMorphismStr(# G1,G2,f #) holds
( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) )
proof
let R be Ring; ::_thesis: for G2, G3, G1 being LeftMod of R
for G being Morphism of G2,G3
for F being Morphism of G1,G2
for g being Function of G2,G3
for f being Function of G1,G2 st G = LModMorphismStr(# G2,G3,g #) & F = LModMorphismStr(# G1,G2,f #) holds
( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) )
let G2, G3, G1 be LeftMod of R; ::_thesis: for G being Morphism of G2,G3
for F being Morphism of G1,G2
for g being Function of G2,G3
for f being Function of G1,G2 st G = LModMorphismStr(# G2,G3,g #) & F = LModMorphismStr(# G1,G2,f #) holds
( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) )
let G be Morphism of G2,G3; ::_thesis: for F being Morphism of G1,G2
for g being Function of G2,G3
for f being Function of G1,G2 st G = LModMorphismStr(# G2,G3,g #) & F = LModMorphismStr(# G1,G2,f #) holds
( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) )
let F be Morphism of G1,G2; ::_thesis: for g being Function of G2,G3
for f being Function of G1,G2 st G = LModMorphismStr(# G2,G3,g #) & F = LModMorphismStr(# G1,G2,f #) holds
( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) )
let g be Function of G2,G3; ::_thesis: for f being Function of G1,G2 st G = LModMorphismStr(# G2,G3,g #) & F = LModMorphismStr(# G1,G2,f #) holds
( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) )
let f be Function of G1,G2; ::_thesis: ( G = LModMorphismStr(# G2,G3,g #) & F = LModMorphismStr(# G1,G2,f #) implies ( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) ) )
assume A1: ( G = LModMorphismStr(# G2,G3,g #) & F = LModMorphismStr(# G1,G2,f #) ) ; ::_thesis: ( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) )
dom G = G2 by Def8
.= cod F by Def8 ;
hence ( G *' F = LModMorphismStr(# G1,G3,(g * f) #) & G * F = LModMorphismStr(# G1,G3,(g * f) #) ) by A1, Def10; ::_thesis: verum
end;
theorem Th14: :: MOD_2:14
for R being Ring
for f, g being strict LModMorphism of R st dom g = cod f holds
ex G1, G2, G3 being LeftMod of R ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = LModMorphismStr(# G1,G2,f0 #) & g = LModMorphismStr(# G2,G3,g0 #) & g * f = LModMorphismStr(# G1,G3,(g0 * f0) #) )
proof
let R be Ring; ::_thesis: for f, g being strict LModMorphism of R st dom g = cod f holds
ex G1, G2, G3 being LeftMod of R ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = LModMorphismStr(# G1,G2,f0 #) & g = LModMorphismStr(# G2,G3,g0 #) & g * f = LModMorphismStr(# G1,G3,(g0 * f0) #) )
let f, g be strict LModMorphism of R; ::_thesis: ( dom g = cod f implies ex G1, G2, G3 being LeftMod of R ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = LModMorphismStr(# G1,G2,f0 #) & g = LModMorphismStr(# G2,G3,g0 #) & g * f = LModMorphismStr(# G1,G3,(g0 * f0) #) ) )
assume A1: dom g = cod f ; ::_thesis: ex G1, G2, G3 being LeftMod of R ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = LModMorphismStr(# G1,G2,f0 #) & g = LModMorphismStr(# G2,G3,g0 #) & g * f = LModMorphismStr(# G1,G3,(g0 * f0) #) )
set G1 = dom f;
set G2 = cod f;
set G3 = cod g;
reconsider f9 = f as strict Morphism of dom f, cod f by Def8;
reconsider g9 = g as strict Morphism of cod f, cod g by A1, Def8;
consider f0 being Function of (dom f),(cod f) such that
A2: f9 = LModMorphismStr(# (dom f),(cod f),f0 #) ;
consider g0 being Function of (cod f),(cod g) such that
A3: g9 = LModMorphismStr(# (cod f),(cod g),g0 #) by Th8;
take dom f ; ::_thesis: ex G2, G3 being LeftMod of R ex f0 being Function of (dom f),G2 ex g0 being Function of G2,G3 st
( f = LModMorphismStr(# (dom f),G2,f0 #) & g = LModMorphismStr(# G2,G3,g0 #) & g * f = LModMorphismStr(# (dom f),G3,(g0 * f0) #) )
take cod f ; ::_thesis: ex G3 being LeftMod of R ex f0 being Function of (dom f),(cod f) ex g0 being Function of (cod f),G3 st
( f = LModMorphismStr(# (dom f),(cod f),f0 #) & g = LModMorphismStr(# (cod f),G3,g0 #) & g * f = LModMorphismStr(# (dom f),G3,(g0 * f0) #) )
take cod g ; ::_thesis: ex f0 being Function of (dom f),(cod f) ex g0 being Function of (cod f),(cod g) st
( f = LModMorphismStr(# (dom f),(cod f),f0 #) & g = LModMorphismStr(# (cod f),(cod g),g0 #) & g * f = LModMorphismStr(# (dom f),(cod g),(g0 * f0) #) )
take f0 ; ::_thesis: ex g0 being Function of (cod f),(cod g) st
( f = LModMorphismStr(# (dom f),(cod f),f0 #) & g = LModMorphismStr(# (cod f),(cod g),g0 #) & g * f = LModMorphismStr(# (dom f),(cod g),(g0 * f0) #) )
take g0 ; ::_thesis: ( f = LModMorphismStr(# (dom f),(cod f),f0 #) & g = LModMorphismStr(# (cod f),(cod g),g0 #) & g * f = LModMorphismStr(# (dom f),(cod g),(g0 * f0) #) )
thus ( f = LModMorphismStr(# (dom f),(cod f),f0 #) & g = LModMorphismStr(# (cod f),(cod g),g0 #) & g * f = LModMorphismStr(# (dom f),(cod g),(g0 * f0) #) ) by A2, A3, Th13; ::_thesis: verum
end;
theorem :: MOD_2:15
for R being Ring
for f, g being strict LModMorphism of R st dom g = cod f holds
( dom (g * f) = dom f & cod (g * f) = cod g )
proof
let R be Ring; ::_thesis: for f, g being strict LModMorphism of R st dom g = cod f holds
( dom (g * f) = dom f & cod (g * f) = cod g )
let f, g be strict LModMorphism of R; ::_thesis: ( dom g = cod f implies ( dom (g * f) = dom f & cod (g * f) = cod g ) )
assume dom g = cod f ; ::_thesis: ( dom (g * f) = dom f & cod (g * f) = cod g )
then A1: ex G1, G2, G3 being LeftMod of R ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = LModMorphismStr(# G1,G2,f0 #) & g = LModMorphismStr(# G2,G3,g0 #) & g * f = LModMorphismStr(# G1,G3,(g0 * f0) #) ) by Th14;
hence dom (g * f) = dom f ; ::_thesis: cod (g * f) = cod g
thus cod (g * f) = cod g by A1; ::_thesis: verum
end;
theorem Th16: :: MOD_2:16
for R being Ring
for G1, G2, G3, G4 being LeftMod of R
for f being strict Morphism of G1,G2
for g being strict Morphism of G2,G3
for h being strict Morphism of G3,G4 holds h * (g * f) = (h * g) * f
proof
let R be Ring; ::_thesis: for G1, G2, G3, G4 being LeftMod of R
for f being strict Morphism of G1,G2
for g being strict Morphism of G2,G3
for h being strict Morphism of G3,G4 holds h * (g * f) = (h * g) * f
let G1, G2, G3, G4 be LeftMod of R; ::_thesis: for f being strict Morphism of G1,G2
for g being strict Morphism of G2,G3
for h being strict Morphism of G3,G4 holds h * (g * f) = (h * g) * f
let f be strict Morphism of G1,G2; ::_thesis: for g being strict Morphism of G2,G3
for h being strict Morphism of G3,G4 holds h * (g * f) = (h * g) * f
let g be strict Morphism of G2,G3; ::_thesis: for h being strict Morphism of G3,G4 holds h * (g * f) = (h * g) * f
let h be strict Morphism of G3,G4; ::_thesis: h * (g * f) = (h * g) * f
consider f0 being Function of G1,G2 such that
A1: f = LModMorphismStr(# G1,G2,f0 #) by Th8;
consider g0 being Function of G2,G3 such that
A2: g = LModMorphismStr(# G2,G3,g0 #) by Th8;
consider h0 being Function of G3,G4 such that
A3: h = LModMorphismStr(# G3,G4,h0 #) by Th8;
A4: h *' g = LModMorphismStr(# G2,G4,(h0 * g0) #) by A2, A3, Th13;
g *' f = LModMorphismStr(# G1,G3,(g0 * f0) #) by A1, A2, Th13;
then h * (g * f) = LModMorphismStr(# G1,G4,(h0 * (g0 * f0)) #) by A3, Th13
.= LModMorphismStr(# G1,G4,((h0 * g0) * f0) #) by RELAT_1:36
.= (h * g) * f by A1, A4, Th13 ;
hence h * (g * f) = (h * g) * f ; ::_thesis: verum
end;
theorem :: MOD_2:17
for R being Ring
for f, g, h being strict LModMorphism of R st dom h = cod g & dom g = cod f holds
h * (g * f) = (h * g) * f
proof
let R be Ring; ::_thesis: for f, g, h being strict LModMorphism of R st dom h = cod g & dom g = cod f holds
h * (g * f) = (h * g) * f
let f, g, h be strict LModMorphism of R; ::_thesis: ( dom h = cod g & dom g = cod f implies h * (g * f) = (h * g) * f )
assume that
A1: dom h = cod g and
A2: dom g = cod f ; ::_thesis: h * (g * f) = (h * g) * f
set G2 = cod f;
set G3 = cod g;
reconsider h9 = h as strict Morphism of cod g, cod h by A1, Def8;
reconsider g9 = g as strict Morphism of cod f, cod g by A2, Def8;
reconsider f9 = f as strict Morphism of dom f, cod f by Def8;
h9 * (g9 * f9) = (h9 * g9) * f9 by Th16;
hence h * (g * f) = (h * g) * f ; ::_thesis: verum
end;
theorem :: MOD_2:18
for R being Ring
for G being LeftMod of R holds
( dom (ID G) = G & cod (ID G) = G & ( for f being strict LModMorphism of R st cod f = G holds
(ID G) * f = f ) & ( for g being strict LModMorphism of R st dom g = G holds
g * (ID G) = g ) )
proof
let R be Ring; ::_thesis: for G being LeftMod of R holds
( dom (ID G) = G & cod (ID G) = G & ( for f being strict LModMorphism of R st cod f = G holds
(ID G) * f = f ) & ( for g being strict LModMorphism of R st dom g = G holds
g * (ID G) = g ) )
let G be LeftMod of R; ::_thesis: ( dom (ID G) = G & cod (ID G) = G & ( for f being strict LModMorphism of R st cod f = G holds
(ID G) * f = f ) & ( for g being strict LModMorphism of R st dom g = G holds
g * (ID G) = g ) )
set i = ID G;
thus dom (ID G) = G ; ::_thesis: ( cod (ID G) = G & ( for f being strict LModMorphism of R st cod f = G holds
(ID G) * f = f ) & ( for g being strict LModMorphism of R st dom g = G holds
g * (ID G) = g ) )
thus cod (ID G) = G ; ::_thesis: ( ( for f being strict LModMorphism of R st cod f = G holds
(ID G) * f = f ) & ( for g being strict LModMorphism of R st dom g = G holds
g * (ID G) = g ) )
thus for f being strict LModMorphism of R st cod f = G holds
(ID G) * f = f ::_thesis: for g being strict LModMorphism of R st dom g = G holds
g * (ID G) = g
proof
let f be strict LModMorphism of R; ::_thesis: ( cod f = G implies (ID G) * f = f )
assume A1: cod f = G ; ::_thesis: (ID G) * f = f
set H = dom f;
reconsider f9 = f as Morphism of dom f,G by A1, Def8;
consider m being Function of (dom f),G such that
A2: f9 = LModMorphismStr(# (dom f),G,m #) by Th8;
( dom (ID G) = G & (id G) * m = m ) by FUNCT_2:17;
hence (ID G) * f = f by A1, A2, Def10; ::_thesis: verum
end;
thus for g being strict LModMorphism of R st dom g = G holds
g * (ID G) = g ::_thesis: verum
proof
let f be strict LModMorphism of R; ::_thesis: ( dom f = G implies f * (ID G) = f )
assume A3: dom f = G ; ::_thesis: f * (ID G) = f
set H = cod f;
reconsider f9 = f as Morphism of G, cod f by A3, Def8;
consider m being Function of G,(cod f) such that
A4: f9 = LModMorphismStr(# G,(cod f),m #) by Th8;
( cod (ID G) = G & m * (id G) = m ) by FUNCT_2:17;
hence f * (ID G) = f by A3, A4, Def10; ::_thesis: verum
end;
end;
theorem Th19: :: MOD_2:19
for UN being Universe
for u, v, w being Element of UN holds {u,v,w} is Element of UN
proof
let UN be Universe; ::_thesis: for u, v, w being Element of UN holds {u,v,w} is Element of UN
let u, v, w be Element of UN; ::_thesis: {u,v,w} is Element of UN
{u,v,w} = {u,v} \/ {w} by ENUMSET1:3;
hence {u,v,w} is Element of UN ; ::_thesis: verum
end;
theorem Th20: :: MOD_2:20
for UN being Universe
for u being Element of UN holds succ u is Element of UN
proof
let UN be Universe; ::_thesis: for u being Element of UN holds succ u is Element of UN
let u be Element of UN; ::_thesis: succ u is Element of UN
succ u = u \/ {u} by ORDINAL1:def_1;
hence succ u is Element of UN ; ::_thesis: verum
end;
theorem Th21: :: MOD_2:21
for UN being Universe holds
( 0 is Element of UN & 1 is Element of UN & 2 is Element of UN )
proof
let UN be Universe; ::_thesis: ( 0 is Element of UN & 1 is Element of UN & 2 is Element of UN )
thus 0 is Element of UN by CLASSES2:56; ::_thesis: ( 1 is Element of UN & 2 is Element of UN )
( {} is Element of UN & 1 = succ 0 ) by CLASSES2:56;
hence A1: 1 is Element of UN by Th20; ::_thesis: 2 is Element of UN
2 = succ 1 ;
hence 2 is Element of UN by A1, Th20; ::_thesis: verum
end;
Lm2: ex c being Element of {0,1,2} st c = 0
proof
reconsider c = 0 as Element of {0,1,2} by ENUMSET1:def_1;
take c ; ::_thesis: c = 0
thus c = 0 ; ::_thesis: verum
end;
Lm3: ex c being Element of {0,1,2} st c = 1
proof
reconsider c = 1 as Element of {0,1,2} by ENUMSET1:def_1;
take c ; ::_thesis: c = 1
thus c = 1 ; ::_thesis: verum
end;
Lm4: ex c being Element of {0,1,2} st c = 2
proof
reconsider c = 2 as Element of {0,1,2} by ENUMSET1:def_1;
take c ; ::_thesis: c = 2
thus c = 2 ; ::_thesis: verum
end;
definition
let a be Element of {0,1,2};
func - a -> Element of {0,1,2} equals :Def12: :: MOD_2:def 12
0 if a = 0
2 if a = 1
1 if a = 2
;
coherence
( ( a = 0 implies 0 is Element of {0,1,2} ) & ( a = 1 implies 2 is Element of {0,1,2} ) & ( a = 2 implies 1 is Element of {0,1,2} ) ) by Lm3, Lm4;
consistency
for b1 being Element of {0,1,2} holds
( ( a = 0 & a = 1 implies ( b1 = 0 iff b1 = 2 ) ) & ( a = 0 & a = 2 implies ( b1 = 0 iff b1 = 1 ) ) & ( a = 1 & a = 2 implies ( b1 = 2 iff b1 = 1 ) ) ) ;
let b be Element of {0,1,2};
funca + b -> Element of {0,1,2} equals :Def13: :: MOD_2:def 13
b if a = 0
a if b = 0
2 if ( a = 1 & b = 1 )
0 if ( a = 1 & b = 2 )
0 if ( a = 2 & b = 1 )
1 if ( a = 2 & b = 2 )
;
coherence
( ( a = 0 implies b is Element of {0,1,2} ) & ( b = 0 implies a is Element of {0,1,2} ) & ( a = 1 & b = 1 implies 2 is Element of {0,1,2} ) & ( a = 1 & b = 2 implies 0 is Element of {0,1,2} ) & ( a = 2 & b = 1 implies 0 is Element of {0,1,2} ) & ( a = 2 & b = 2 implies 1 is Element of {0,1,2} ) ) by Lm2, Lm3, Lm4;
consistency
for b1 being Element of {0,1,2} holds
( ( a = 0 & b = 0 implies ( b1 = b iff b1 = a ) ) & ( a = 0 & a = 1 & b = 1 implies ( b1 = b iff b1 = 2 ) ) & ( a = 0 & a = 1 & b = 2 implies ( b1 = b iff b1 = 0 ) ) & ( a = 0 & a = 2 & b = 1 implies ( b1 = b iff b1 = 0 ) ) & ( a = 0 & a = 2 & b = 2 implies ( b1 = b iff b1 = 1 ) ) & ( b = 0 & a = 1 & b = 1 implies ( b1 = a iff b1 = 2 ) ) & ( b = 0 & a = 1 & b = 2 implies ( b1 = a iff b1 = 0 ) ) & ( b = 0 & a = 2 & b = 1 implies ( b1 = a iff b1 = 0 ) ) & ( b = 0 & a = 2 & b = 2 implies ( b1 = a iff b1 = 1 ) ) & ( a = 1 & b = 1 & a = 1 & b = 2 implies ( b1 = 2 iff b1 = 0 ) ) & ( a = 1 & b = 1 & a = 2 & b = 1 implies ( b1 = 2 iff b1 = 0 ) ) & ( a = 1 & b = 1 & a = 2 & b = 2 implies ( b1 = 2 iff b1 = 1 ) ) & ( a = 1 & b = 2 & a = 2 & b = 1 implies ( b1 = 0 iff b1 = 0 ) ) & ( a = 1 & b = 2 & a = 2 & b = 2 implies ( b1 = 0 iff b1 = 1 ) ) & ( a = 2 & b = 1 & a = 2 & b = 2 implies ( b1 = 0 iff b1 = 1 ) ) ) ;
funca * b -> Element of {0,1,2} equals :Def14: :: MOD_2:def 14
0 if b = 0
0 if a = 0
a if b = 1
b if a = 1
1 if ( a = 2 & b = 2 )
;
coherence
( ( b = 0 implies 0 is Element of {0,1,2} ) & ( a = 0 implies 0 is Element of {0,1,2} ) & ( b = 1 implies a is Element of {0,1,2} ) & ( a = 1 implies b is Element of {0,1,2} ) & ( a = 2 & b = 2 implies 1 is Element of {0,1,2} ) ) by Lm3;
consistency
for b1 being Element of {0,1,2} holds
( ( b = 0 & a = 0 implies ( b1 = 0 iff b1 = 0 ) ) & ( b = 0 & b = 1 implies ( b1 = 0 iff b1 = a ) ) & ( b = 0 & a = 1 implies ( b1 = 0 iff b1 = b ) ) & ( b = 0 & a = 2 & b = 2 implies ( b1 = 0 iff b1 = 1 ) ) & ( a = 0 & b = 1 implies ( b1 = 0 iff b1 = a ) ) & ( a = 0 & a = 1 implies ( b1 = 0 iff b1 = b ) ) & ( a = 0 & a = 2 & b = 2 implies ( b1 = 0 iff b1 = 1 ) ) & ( b = 1 & a = 1 implies ( b1 = a iff b1 = b ) ) & ( b = 1 & a = 2 & b = 2 implies ( b1 = a iff b1 = 1 ) ) & ( a = 1 & a = 2 & b = 2 implies ( b1 = b iff b1 = 1 ) ) ) ;
end;
:: deftheorem Def12 defines - MOD_2:def_12_:_
for a being Element of {0,1,2} holds
( ( a = 0 implies - a = 0 ) & ( a = 1 implies - a = 2 ) & ( a = 2 implies - a = 1 ) );
:: deftheorem Def13 defines + MOD_2:def_13_:_
for a, b being Element of {0,1,2} holds
( ( a = 0 implies a + b = b ) & ( b = 0 implies a + b = a ) & ( a = 1 & b = 1 implies a + b = 2 ) & ( a = 1 & b = 2 implies a + b = 0 ) & ( a = 2 & b = 1 implies a + b = 0 ) & ( a = 2 & b = 2 implies a + b = 1 ) );
:: deftheorem Def14 defines * MOD_2:def_14_:_
for a, b being Element of {0,1,2} holds
( ( b = 0 implies a * b = 0 ) & ( a = 0 implies a * b = 0 ) & ( b = 1 implies a * b = a ) & ( a = 1 implies a * b = b ) & ( a = 2 & b = 2 implies a * b = 1 ) );
definition
func add3 -> BinOp of {0,1,2} means :Def15: :: MOD_2:def 15
for a, b being Element of {0,1,2} holds it . (a,b) = a + b;
existence
ex b1 being BinOp of {0,1,2} st
for a, b being Element of {0,1,2} holds b1 . (a,b) = a + b
proof
deffunc H1( Element of {0,1,2}, Element of {0,1,2}) -> Element of {0,1,2} = $1 + $2;
ex o being BinOp of {0,1,2} st
for a, b being Element of {0,1,2} holds o . (a,b) = H1(a,b) from BINOP_1:sch_4();
hence ex b1 being BinOp of {0,1,2} st
for a, b being Element of {0,1,2} holds b1 . (a,b) = a + b ; ::_thesis: verum
end;
uniqueness
for b1, b2 being BinOp of {0,1,2} st ( for a, b being Element of {0,1,2} holds b1 . (a,b) = a + b ) & ( for a, b being Element of {0,1,2} holds b2 . (a,b) = a + b ) holds
b1 = b2
proof
let o1, o2 be BinOp of {0,1,2}; ::_thesis: ( ( for a, b being Element of {0,1,2} holds o1 . (a,b) = a + b ) & ( for a, b being Element of {0,1,2} holds o2 . (a,b) = a + b ) implies o1 = o2 )
assume that
A1: for a, b being Element of {0,1,2} holds o1 . (a,b) = a + b and
A2: for a, b being Element of {0,1,2} holds o2 . (a,b) = a + b ; ::_thesis: o1 = o2
now__::_thesis:_for_a,_b_being_Element_of_{0,1,2}_holds_o1_._(a,b)_=_o2_._(a,b)
let a, b be Element of {0,1,2}; ::_thesis: o1 . (a,b) = o2 . (a,b)
thus o1 . (a,b) = a + b by A1
.= o2 . (a,b) by A2 ; ::_thesis: verum
end;
hence o1 = o2 by BINOP_1:2; ::_thesis: verum
end;
func mult3 -> BinOp of {0,1,2} means :Def16: :: MOD_2:def 16
for a, b being Element of {0,1,2} holds it . (a,b) = a * b;
existence
ex b1 being BinOp of {0,1,2} st
for a, b being Element of {0,1,2} holds b1 . (a,b) = a * b
proof
deffunc H1( Element of {0,1,2}, Element of {0,1,2}) -> Element of {0,1,2} = $1 * $2;
ex o being BinOp of {0,1,2} st
for a, b being Element of {0,1,2} holds o . (a,b) = H1(a,b) from BINOP_1:sch_4();
hence ex b1 being BinOp of {0,1,2} st
for a, b being Element of {0,1,2} holds b1 . (a,b) = a * b ; ::_thesis: verum
end;
uniqueness
for b1, b2 being BinOp of {0,1,2} st ( for a, b being Element of {0,1,2} holds b1 . (a,b) = a * b ) & ( for a, b being Element of {0,1,2} holds b2 . (a,b) = a * b ) holds
b1 = b2
proof
let o1, o2 be BinOp of {0,1,2}; ::_thesis: ( ( for a, b being Element of {0,1,2} holds o1 . (a,b) = a * b ) & ( for a, b being Element of {0,1,2} holds o2 . (a,b) = a * b ) implies o1 = o2 )
assume that
A3: for a, b being Element of {0,1,2} holds o1 . (a,b) = a * b and
A4: for a, b being Element of {0,1,2} holds o2 . (a,b) = a * b ; ::_thesis: o1 = o2
now__::_thesis:_for_a,_b_being_Element_of_{0,1,2}_holds_o1_._(a,b)_=_o2_._(a,b)
let a, b be Element of {0,1,2}; ::_thesis: o1 . (a,b) = o2 . (a,b)
thus o1 . (a,b) = a * b by A3
.= o2 . (a,b) by A4 ; ::_thesis: verum
end;
hence o1 = o2 by BINOP_1:2; ::_thesis: verum
end;
func compl3 -> UnOp of {0,1,2} means :Def17: :: MOD_2:def 17
for a being Element of {0,1,2} holds it . a = - a;
existence
ex b1 being UnOp of {0,1,2} st
for a being Element of {0,1,2} holds b1 . a = - a
proof
deffunc H1( Element of {0,1,2}) -> Element of {0,1,2} = - $1;
ex f being UnOp of {0,1,2} st
for x being Element of {0,1,2} holds f . x = H1(x) from FUNCT_2:sch_4();
hence ex b1 being UnOp of {0,1,2} st
for a being Element of {0,1,2} holds b1 . a = - a ; ::_thesis: verum
end;
uniqueness
for b1, b2 being UnOp of {0,1,2} st ( for a being Element of {0,1,2} holds b1 . a = - a ) & ( for a being Element of {0,1,2} holds b2 . a = - a ) holds
b1 = b2
proof
let o1, o2 be UnOp of {0,1,2}; ::_thesis: ( ( for a being Element of {0,1,2} holds o1 . a = - a ) & ( for a being Element of {0,1,2} holds o2 . a = - a ) implies o1 = o2 )
assume that
A5: for a being Element of {0,1,2} holds o1 . a = - a and
A6: for a being Element of {0,1,2} holds o2 . a = - a ; ::_thesis: o1 = o2
now__::_thesis:_for_a_being_Element_of_{0,1,2}_holds_o1_._a_=_o2_._a
let a be Element of {0,1,2}; ::_thesis: o1 . a = o2 . a
thus o1 . a = - a by A5
.= o2 . a by A6 ; ::_thesis: verum
end;
hence o1 = o2 by FUNCT_2:63; ::_thesis: verum
end;
func unit3 -> Element of {0,1,2} equals :: MOD_2:def 18
1;
coherence
1 is Element of {0,1,2} by ENUMSET1:def_1;
func zero3 -> Element of {0,1,2} equals :: MOD_2:def 19
0 ;
coherence
0 is Element of {0,1,2} by ENUMSET1:def_1;
end;
:: deftheorem Def15 defines add3 MOD_2:def_15_:_
for b1 being BinOp of {0,1,2} holds
( b1 = add3 iff for a, b being Element of {0,1,2} holds b1 . (a,b) = a + b );
:: deftheorem Def16 defines mult3 MOD_2:def_16_:_
for b1 being BinOp of {0,1,2} holds
( b1 = mult3 iff for a, b being Element of {0,1,2} holds b1 . (a,b) = a * b );
:: deftheorem Def17 defines compl3 MOD_2:def_17_:_
for b1 being UnOp of {0,1,2} holds
( b1 = compl3 iff for a being Element of {0,1,2} holds b1 . a = - a );
:: deftheorem defines unit3 MOD_2:def_18_:_
unit3 = 1;
:: deftheorem defines zero3 MOD_2:def_19_:_
zero3 = 0 ;
definition
func Z_3 -> strict doubleLoopStr equals :Def20: :: MOD_2:def 20
doubleLoopStr(# {0,1,2},add3,mult3,unit3,zero3 #);
coherence
doubleLoopStr(# {0,1,2},add3,mult3,unit3,zero3 #) is strict doubleLoopStr ;
end;
:: deftheorem Def20 defines Z_3 MOD_2:def_20_:_
Z_3 = doubleLoopStr(# {0,1,2},add3,mult3,unit3,zero3 #);
registration
cluster Z_3 -> non empty strict ;
coherence
not Z_3 is empty ;
end;
Lm5: now__::_thesis:_for_h,_e_being_Element_of_Z_3_st_e_=_1_holds_
(_h_*_e_=_h_&_e_*_h_=_h_)
let h, e be Element of Z_3; ::_thesis: ( e = 1 implies ( h * e = h & e * h = h ) )
assume A1: e = 1 ; ::_thesis: ( h * e = h & e * h = h )
reconsider a = e, b = h as Element of {0,1,2} ;
thus h * e = b * a by Def16
.= h by A1, Def14 ; ::_thesis: e * h = h
thus e * h = a * b by Def16
.= h by A1, Def14 ; ::_thesis: verum
end;
registration
cluster Z_3 -> strict well-unital ;
coherence
Z_3 is well-unital
proof
let x be Element of Z_3; :: according to VECTSP_1:def_6 ::_thesis: ( x * (1. Z_3) = x & (1. Z_3) * x = x )
thus ( x * (1. Z_3) = x & (1. Z_3) * x = x ) by Lm5; ::_thesis: verum
end;
end;
theorem Th22: :: MOD_2:22
( 0. Z_3 = 0 & 1. Z_3 = 1 & 0. Z_3 is Element of {0,1,2} & 1. Z_3 is Element of {0,1,2} & the addF of Z_3 = add3 & the multF of Z_3 = mult3 ) ;
Lm6: for x, y, z being Scalar of Z_3
for X, Y, Z being Element of {0,1,2} st X = x & Y = y & Z = z holds
( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) )
proof
let x, y, z be Scalar of Z_3; ::_thesis: for X, Y, Z being Element of {0,1,2} st X = x & Y = y & Z = z holds
( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) )
let X, Y, Z be Element of {0,1,2}; ::_thesis: ( X = x & Y = y & Z = z implies ( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) ) )
assume that
A1: X = x and
A2: Y = y and
A3: Z = z ; ::_thesis: ( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) )
A4: ( x * y = X * Y & y * z = Y * Z ) by A1, A2, A3, Def16;
( x + y = X + Y & y + z = Y + Z ) by A1, A2, A3, Def15;
hence ( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) ) by A1, A3, A4, Def15, Def16; ::_thesis: verum
end;
Lm7: for x, y, z, a being Element of {0,1,2} st a = 0 holds
( x + (- x) = a & x + a = x & (x + y) + z = x + (y + z) )
proof
let x, y, z, a be Element of {0,1,2}; ::_thesis: ( a = 0 implies ( x + (- x) = a & x + a = x & (x + y) + z = x + (y + z) ) )
assume A1: a = 0 ; ::_thesis: ( x + (- x) = a & x + a = x & (x + y) + z = x + (y + z) )
thus x + (- x) = a ::_thesis: ( x + a = x & (x + y) + z = x + (y + z) )
proof
now__::_thesis:_x_+_(-_x)_=_a
percases ( x = 0 or x = 1 or x = 2 ) by ENUMSET1:def_1;
supposeA2: x = 0 ; ::_thesis: x + (- x) = a
then - x = 0 by Def12;
hence x + (- x) = a by A1, A2, Def13; ::_thesis: verum
end;
supposeA3: x = 1 ; ::_thesis: x + (- x) = a
then - x = 2 by Def12;
hence x + (- x) = a by A1, A3, Def13; ::_thesis: verum
end;
supposeA4: x = 2 ; ::_thesis: x + (- x) = a
then - x = 1 by Def12;
hence x + (- x) = a by A1, A4, Def13; ::_thesis: verum
end;
end;
end;
hence x + (- x) = a ; ::_thesis: verum
end;
thus x + a = x by A1, Def13; ::_thesis: (x + y) + z = x + (y + z)
thus (x + y) + z = x + (y + z) ::_thesis: verum
proof
now__::_thesis:_(x_+_y)_+_z_=_x_+_(y_+_z)
percases ( x = 0 or y = 0 or z = 0 or ( x = 1 & y = 1 & z = 1 ) or ( x = 1 & y = 1 & z = 2 ) or ( x = 1 & y = 2 & z = 1 ) or ( x = 1 & y = 2 & z = 2 ) or ( x = 2 & y = 1 & z = 1 ) or ( x = 2 & y = 1 & z = 2 ) or ( x = 2 & y = 2 & z = 1 ) or ( x = 2 & y = 2 & z = 2 ) ) by ENUMSET1:def_1;
supposeA5: x = 0 ; ::_thesis: (x + y) + z = x + (y + z)
hence (x + y) + z = y + z by Def13
.= x + (y + z) by A5, Def13 ;
::_thesis: verum
end;
supposeA6: y = 0 ; ::_thesis: (x + y) + z = x + (y + z)
then x + y = x by Def13;
hence (x + y) + z = x + (y + z) by A6, Def13; ::_thesis: verum
end;
supposeA7: z = 0 ; ::_thesis: (x + y) + z = x + (y + z)
then y + z = y by Def13;
hence (x + y) + z = x + (y + z) by A7, Def13; ::_thesis: verum
end;
supposeA8: ( x = 1 & y = 1 & z = 1 ) ; ::_thesis: (x + y) + z = x + (y + z)
thus (x + y) + z = 0 by A8, Def13
.= x + (y + z) by A8, Def13 ; ::_thesis: verum
end;
supposeA9: ( x = 1 & y = 1 & z = 2 ) ; ::_thesis: (x + y) + z = x + (y + z)
then A10: y + z = 0 by Def13;
x + y = 2 by A9, Def13;
hence (x + y) + z = 1 by A9, Def13
.= x + (y + z) by A9, A10, Def13 ;
::_thesis: verum
end;
supposeA11: ( x = 1 & y = 2 & z = 1 ) ; ::_thesis: (x + y) + z = x + (y + z)
then A12: y + z = 0 by Def13;
x + y = 0 by A11, Def13;
hence (x + y) + z = 1 by A11, Def13
.= x + (y + z) by A11, A12, Def13 ;
::_thesis: verum
end;
supposeA13: ( x = 1 & y = 2 & z = 2 ) ; ::_thesis: (x + y) + z = x + (y + z)
then A14: y + z = 1 by Def13;
x + y = 0 by A13, Def13;
hence (x + y) + z = 2 by A13, Def13
.= x + (y + z) by A13, A14, Def13 ;
::_thesis: verum
end;
supposeA15: ( x = 2 & y = 1 & z = 1 ) ; ::_thesis: (x + y) + z = x + (y + z)
then A16: y + z = 2 by Def13;
x + y = 0 by A15, Def13;
hence (x + y) + z = 1 by A15, Def13
.= x + (y + z) by A15, A16, Def13 ;
::_thesis: verum
end;
supposeA17: ( x = 2 & y = 1 & z = 2 ) ; ::_thesis: (x + y) + z = x + (y + z)
then A18: y + z = 0 by Def13;
x + y = 0 by A17, Def13;
hence (x + y) + z = 2 by A17, Def13
.= x + (y + z) by A17, A18, Def13 ;
::_thesis: verum
end;
supposeA19: ( x = 2 & y = 2 & z = 1 ) ; ::_thesis: (x + y) + z = x + (y + z)
then A20: y + z = 0 by Def13;
x + y = 1 by A19, Def13;
hence (x + y) + z = 2 by A19, Def13
.= x + (y + z) by A19, A20, Def13 ;
::_thesis: verum
end;
supposeA21: ( x = 2 & y = 2 & z = 2 ) ; ::_thesis: (x + y) + z = x + (y + z)
thus (x + y) + z = 0 by A21, Def13
.= x + (y + z) by A21, Def13 ; ::_thesis: verum
end;
end;
end;
hence (x + y) + z = x + (y + z) ; ::_thesis: verum
end;
end;
registration
cluster Z_3 -> right_complementable strict add-associative right_zeroed ;
coherence
( Z_3 is add-associative & Z_3 is right_zeroed & Z_3 is right_complementable )
proof
thus Z_3 is add-associative ::_thesis: ( Z_3 is right_zeroed & Z_3 is right_complementable )
proof
let x, y, z be Element of Z_3; :: according to RLVECT_1:def_3 ::_thesis: (x + y) + z = x + (y + z)
reconsider X = x, Y = y, Z = z as Element of {0,1,2} ;
thus (x + y) + z = (X + Y) + Z by Lm6
.= X + (Y + Z) by Lm7
.= x + (y + z) by Lm6 ; ::_thesis: verum
end;
thus Z_3 is right_zeroed ::_thesis: Z_3 is right_complementable
proof
let x be Element of Z_3; :: according to RLVECT_1:def_4 ::_thesis: x + (0. Z_3) = x
reconsider X = x, a = 0 as Element of {0,1,2} by Def20;
thus x + (0. Z_3) = X + a by Def15
.= x by Lm7 ; ::_thesis: verum
end;
let x be Element of Z_3; :: according to ALGSTR_0:def_16 ::_thesis: x is right_complementable
reconsider x9 = x as Element of {0,1,2} ;
reconsider y = compl3 . x9 as Element of Z_3 ;
reconsider y9 = y as Element of {0,1,2} ;
take y ; :: according to ALGSTR_0:def_11 ::_thesis: x + y = 0. Z_3
A1: y9 = - x9 by Def17;
thus x + y = 0. Z_3 ::_thesis: verum
proof
percases ( x = 0 or x = 1 or x = 2 ) by ENUMSET1:def_1;
supposeA2: x = 0 ; ::_thesis: x + y = 0. Z_3
then A3: y9 = 0 by A1, Def12;
thus x + y = x9 + y9 by Def15
.= 0. Z_3 by A2, A3, Def13 ; ::_thesis: verum
end;
supposeA4: x = 1 ; ::_thesis: x + y = 0. Z_3
then A5: y9 = 2 by A1, Def12;
thus x + y = x9 + y9 by Def15
.= 0. Z_3 by A4, A5, Def13 ; ::_thesis: verum
end;
supposeA6: x = 2 ; ::_thesis: x + y = 0. Z_3
then A7: y9 = 1 by A1, Def12;
thus x + y = x9 + y9 by Def15
.= 0. Z_3 by A6, A7, Def13 ; ::_thesis: verum
end;
end;
end;
end;
end;
theorem Th23: :: MOD_2:23
for x, y being Scalar of Z_3
for X, Y being Element of {0,1,2} st X = x & Y = y holds
( x + y = X + Y & x * y = X * Y & - x = - X )
proof
let x, y be Scalar of Z_3; ::_thesis: for X, Y being Element of {0,1,2} st X = x & Y = y holds
( x + y = X + Y & x * y = X * Y & - x = - X )
let X, Y be Element of {0,1,2}; ::_thesis: ( X = x & Y = y implies ( x + y = X + Y & x * y = X * Y & - x = - X ) )
assume that
A1: X = x and
A2: Y = y ; ::_thesis: ( x + y = X + Y & x * y = X * Y & - x = - X )
thus x + y = X + Y by A1, A2, Def15; ::_thesis: ( x * y = X * Y & - x = - X )
thus x * y = X * Y by A1, A2, Def16; ::_thesis: - x = - X
reconsider a = - X as Element of Z_3 ;
x + a = X + (- X) by A1, Def15
.= 0. Z_3 by Lm7 ;
hence - x = - X by RLVECT_1:def_10; ::_thesis: verum
end;
theorem Th24: :: MOD_2:24
for x, y, z being Scalar of Z_3
for X, Y, Z being Element of {0,1,2} st X = x & Y = y & Z = z holds
( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) )
proof
let x, y, z be Scalar of Z_3; ::_thesis: for X, Y, Z being Element of {0,1,2} st X = x & Y = y & Z = z holds
( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) )
let X, Y, Z be Element of {0,1,2}; ::_thesis: ( X = x & Y = y & Z = z implies ( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) ) )
assume that
A1: X = x and
A2: Y = y and
A3: Z = z ; ::_thesis: ( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) )
A4: ( x * y = X * Y & y * z = Y * Z ) by A1, A2, A3, Th23;
( x + y = X + Y & y + z = Y + Z ) by A1, A2, A3, Th23;
hence ( (x + y) + z = (X + Y) + Z & x + (y + z) = X + (Y + Z) & (x * y) * z = (X * Y) * Z & x * (y * z) = X * (Y * Z) ) by A1, A3, A4, Th23; ::_thesis: verum
end;
theorem Th25: :: MOD_2:25
for x, y, z, a, b being Element of {0,1,2} st a = 0 & b = 1 holds
( x + y = y + x & (x + y) + z = x + (y + z) & x + a = x & x + (- x) = a & x * y = y * x & (x * y) * z = x * (y * z) & b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
proof
let x, y, z, a, b be Element of {0,1,2}; ::_thesis: ( a = 0 & b = 1 implies ( x + y = y + x & (x + y) + z = x + (y + z) & x + a = x & x + (- x) = a & x * y = y * x & (x * y) * z = x * (y * z) & b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) ) )
assume that
A1: a = 0 and
A2: b = 1 ; ::_thesis: ( x + y = y + x & (x + y) + z = x + (y + z) & x + a = x & x + (- x) = a & x * y = y * x & (x * y) * z = x * (y * z) & b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
thus x + y = y + x ::_thesis: ( (x + y) + z = x + (y + z) & x + a = x & x + (- x) = a & x * y = y * x & (x * y) * z = x * (y * z) & b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
proof
now__::_thesis:_x_+_y_=_y_+_x
percases ( x = 0 or y = 0 or ( x = 1 & y = 1 ) or ( x = 1 & y = 2 ) or ( x = 2 & y = 1 ) or ( x = 2 & y = 2 ) ) by ENUMSET1:def_1;
supposeA3: x = 0 ; ::_thesis: x + y = y + x
hence x + y = y by Def13
.= y + x by A3, Def13 ;
::_thesis: verum
end;
supposeA4: y = 0 ; ::_thesis: x + y = y + x
hence x + y = x by Def13
.= y + x by A4, Def13 ;
::_thesis: verum
end;
suppose ( x = 1 & y = 1 ) ; ::_thesis: x + y = y + x
hence x + y = y + x ; ::_thesis: verum
end;
supposeA5: ( x = 1 & y = 2 ) ; ::_thesis: x + y = y + x
hence x + y = 0 by Def13
.= y + x by A5, Def13 ;
::_thesis: verum
end;
supposeA6: ( x = 2 & y = 1 ) ; ::_thesis: x + y = y + x
hence x + y = 0 by Def13
.= y + x by A6, Def13 ;
::_thesis: verum
end;
suppose ( x = 2 & y = 2 ) ; ::_thesis: x + y = y + x
hence x + y = y + x ; ::_thesis: verum
end;
end;
end;
hence x + y = y + x ; ::_thesis: verum
end;
thus (x + y) + z = x + (y + z) by A1, Lm7; ::_thesis: ( x + a = x & x + (- x) = a & x * y = y * x & (x * y) * z = x * (y * z) & b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
thus x + a = x by A1, Def13; ::_thesis: ( x + (- x) = a & x * y = y * x & (x * y) * z = x * (y * z) & b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
thus x + (- x) = a by A1, Lm7; ::_thesis: ( x * y = y * x & (x * y) * z = x * (y * z) & b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
thus x * y = y * x ::_thesis: ( (x * y) * z = x * (y * z) & b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
proof
now__::_thesis:_x_*_y_=_y_*_x
percases ( y = 0 or x = 0 or y = 1 or x = 1 or ( x = 2 & y = 2 ) ) by ENUMSET1:def_1;
supposeA7: y = 0 ; ::_thesis: x * y = y * x
hence x * y = 0 by Def14
.= y * x by A7, Def14 ;
::_thesis: verum
end;
supposeA8: x = 0 ; ::_thesis: x * y = y * x
hence x * y = 0 by Def14
.= y * x by A8, Def14 ;
::_thesis: verum
end;
supposeA9: y = 1 ; ::_thesis: x * y = y * x
hence x * y = x by Def14
.= y * x by A9, Def14 ;
::_thesis: verum
end;
supposeA10: x = 1 ; ::_thesis: x * y = y * x
hence x * y = y by Def14
.= y * x by A10, Def14 ;
::_thesis: verum
end;
suppose ( x = 2 & y = 2 ) ; ::_thesis: x * y = y * x
hence x * y = y * x ; ::_thesis: verum
end;
end;
end;
hence x * y = y * x ; ::_thesis: verum
end;
thus (x * y) * z = x * (y * z) ::_thesis: ( b * x = x & ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
proof
now__::_thesis:_(x_*_y)_*_z_=_x_*_(y_*_z)
percases ( z = 0 or y = 0 or x = 0 or z = 1 or y = 1 or x = 1 or ( x = 2 & y = 2 & z = 2 ) ) by ENUMSET1:def_1;
supposeA11: z = 0 ; ::_thesis: (x * y) * z = x * (y * z)
then A12: y * z = 0 by Def14;
thus (x * y) * z = 0 by A11, Def14
.= x * (y * z) by A12, Def14 ; ::_thesis: verum
end;
supposeA13: y = 0 ; ::_thesis: (x * y) * z = x * (y * z)
then A14: y * z = 0 by Def14;
x * y = 0 by A13, Def14;
hence (x * y) * z = 0 by Def14
.= x * (y * z) by A14, Def14 ;
::_thesis: verum
end;
supposeA15: x = 0 ; ::_thesis: (x * y) * z = x * (y * z)
then x * y = 0 by Def14;
hence (x * y) * z = 0 by Def14
.= x * (y * z) by A15, Def14 ;
::_thesis: verum
end;
supposeA16: z = 1 ; ::_thesis: (x * y) * z = x * (y * z)
then y * z = y by Def14;
hence (x * y) * z = x * (y * z) by A16, Def14; ::_thesis: verum
end;
supposeA17: y = 1 ; ::_thesis: (x * y) * z = x * (y * z)
then x * y = x by Def14;
hence (x * y) * z = x * (y * z) by A17, Def14; ::_thesis: verum
end;
supposeA18: x = 1 ; ::_thesis: (x * y) * z = x * (y * z)
hence (x * y) * z = y * z by Def14
.= x * (y * z) by A18, Def14 ;
::_thesis: verum
end;
supposeA19: ( x = 2 & y = 2 & z = 2 ) ; ::_thesis: (x * y) * z = x * (y * z)
then A20: y * z = 1 by Def14;
x * y = 1 by A19, Def14;
hence (x * y) * z = x by A19, Def14
.= x * (y * z) by A20, Def14 ;
::_thesis: verum
end;
end;
end;
hence (x * y) * z = x * (y * z) ; ::_thesis: verum
end;
thus b * x = x by A2, Def14; ::_thesis: ( ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) & a <> b & x * (y + z) = (x * y) + (x * z) )
thus ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) ::_thesis: ( a <> b & x * (y + z) = (x * y) + (x * z) )
proof
now__::_thesis:_(_(_x_=_0_&_(_x_<>_a_implies_ex_y_being_Element_of_{0,1,2}_st_x_*_y_=_b_)_)_or_(_x_=_1_&_ex_y_being_Element_of_{0,1,2}_st_
(_x_<>_a_implies_ex_y_being_Element_of_{0,1,2}_st_x_*_y_=_b_)_)_or_(_x_=_2_&_ex_y_being_Element_of_{0,1,2}_st_
(_x_<>_a_implies_ex_y_being_Element_of_{0,1,2}_st_x_*_y_=_b_)_)_)
percases ( x = 0 or x = 1 or x = 2 ) by ENUMSET1:def_1;
case x = 0 ; ::_thesis: ( x <> a implies ex y being Element of {0,1,2} st x * y = b )
hence ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) by A1; ::_thesis: verum
end;
caseA21: x = 1 ; ::_thesis: ex y being Element of {0,1,2} st
( x <> a implies ex y being Element of {0,1,2} st x * y = b )
reconsider y = 1 as Element of {0,1,2} by ENUMSET1:def_1;
take y = y; ::_thesis: ( x <> a implies ex y being Element of {0,1,2} st x * y = b )
x * y = 1 by A21, Def14;
hence ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) by A2; ::_thesis: verum
end;
caseA22: x = 2 ; ::_thesis: ex y being Element of {0,1,2} st
( x <> a implies ex y being Element of {0,1,2} st x * y = b )
reconsider y = 2 as Element of {0,1,2} by ENUMSET1:def_1;
take y = y; ::_thesis: ( x <> a implies ex y being Element of {0,1,2} st x * y = b )
x * y = 1 by A22, Def14;
hence ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) by A2; ::_thesis: verum
end;
end;
end;
hence ( x <> a implies ex y being Element of {0,1,2} st x * y = b ) ; ::_thesis: verum
end;
thus a <> b by A1, A2; ::_thesis: x * (y + z) = (x * y) + (x * z)
thus x * (y + z) = (x * y) + (x * z) ::_thesis: verum
proof
now__::_thesis:_x_*_(y_+_z)_=_(x_*_y)_+_(x_*_z)
percases ( x = 0 or y = 0 or z = 0 or ( x = 1 & y = 1 & z = 1 ) or ( x = 1 & y = 1 & z = 2 ) or ( x = 1 & y = 2 & z = 1 ) or ( x = 1 & y = 2 & z = 2 ) or ( x = 2 & y = 1 & z = 1 ) or ( x = 2 & y = 1 & z = 2 ) or ( x = 2 & y = 2 & z = 1 ) or ( x = 2 & y = 2 & z = 2 ) ) by ENUMSET1:def_1;
supposeA23: x = 0 ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then A24: ( x * y = 0 & x * z = 0 ) by Def14;
thus x * (y + z) = 0 by A23, Def14
.= (x * y) + (x * z) by A24, Def13 ; ::_thesis: verum
end;
suppose y = 0 ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then ( y + z = z & x * y = 0 ) by Def13, Def14;
hence x * (y + z) = (x * y) + (x * z) by Def13; ::_thesis: verum
end;
suppose z = 0 ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then ( y + z = y & x * z = 0 ) by Def13, Def14;
hence x * (y + z) = (x * y) + (x * z) by Def13; ::_thesis: verum
end;
supposeA25: ( x = 1 & y = 1 & z = 1 ) ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then x * y = 1 by Def14;
hence x * (y + z) = (x * y) + (x * z) by A25, Def14; ::_thesis: verum
end;
supposeA26: ( x = 1 & y = 1 & z = 2 ) ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then A27: ( x * y = 1 & x * z = 2 ) by Def14;
y + z = 0 by A26, Def13;
hence x * (y + z) = 0 by Def14
.= (x * y) + (x * z) by A27, Def13 ;
::_thesis: verum
end;
supposeA28: ( x = 1 & y = 2 & z = 1 ) ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then A29: ( x * y = 2 & x * z = 1 ) by Def14;
y + z = 0 by A28, Def13;
hence x * (y + z) = 0 by Def14
.= (x * y) + (x * z) by A29, Def13 ;
::_thesis: verum
end;
supposeA30: ( x = 1 & y = 2 & z = 2 ) ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then x * y = 2 by Def14;
hence x * (y + z) = (x * y) + (x * z) by A30, Def14; ::_thesis: verum
end;
supposeA31: ( x = 2 & y = 1 & z = 1 ) ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then A32: x * y = 2 by Def14;
y + z = 2 by A31, Def13;
hence x * (y + z) = 1 by A31, Def14
.= (x * y) + (x * z) by A31, A32, Def13 ;
::_thesis: verum
end;
supposeA33: ( x = 2 & y = 1 & z = 2 ) ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then A34: ( x * y = 2 & x * z = 1 ) by Def14;
y + z = 0 by A33, Def13;
hence x * (y + z) = 0 by Def14
.= (x * y) + (x * z) by A34, Def13 ;
::_thesis: verum
end;
supposeA35: ( x = 2 & y = 2 & z = 1 ) ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then A36: ( x * y = 1 & x * z = 2 ) by Def14;
y + z = 0 by A35, Def13;
hence x * (y + z) = 0 by Def14
.= (x * y) + (x * z) by A36, Def13 ;
::_thesis: verum
end;
supposeA37: ( x = 2 & y = 2 & z = 2 ) ; ::_thesis: x * (y + z) = (x * y) + (x * z)
then A38: x * y = 1 by Def14;
y + z = 1 by A37, Def13;
hence x * (y + z) = 2 by A37, Def14
.= (x * y) + (x * z) by A37, A38, Def13 ;
::_thesis: verum
end;
end;
end;
hence x * (y + z) = (x * y) + (x * z) ; ::_thesis: verum
end;
end;
theorem Th26: :: MOD_2:26
for F being non empty doubleLoopStr st ( for x, y, z being Scalar of F holds
( x + y = y + x & (x + y) + z = x + (y + z) & x + (0. F) = x & x + (- x) = 0. F & x * y = y * x & (x * y) * z = x * (y * z) & (1. F) * x = x & x * (1. F) = x & ( x <> 0. F implies ex y being Scalar of F st x * y = 1. F ) & 0. F <> 1. F & x * (y + z) = (x * y) + (x * z) ) ) holds
F is Field
proof
let F be non empty doubleLoopStr ; ::_thesis: ( ( for x, y, z being Scalar of F holds
( x + y = y + x & (x + y) + z = x + (y + z) & x + (0. F) = x & x + (- x) = 0. F & x * y = y * x & (x * y) * z = x * (y * z) & (1. F) * x = x & x * (1. F) = x & ( x <> 0. F implies ex y being Scalar of F st x * y = 1. F ) & 0. F <> 1. F & x * (y + z) = (x * y) + (x * z) ) ) implies F is Field )
assume A1: for x, y, z being Scalar of F holds
( x + y = y + x & (x + y) + z = x + (y + z) & x + (0. F) = x & x + (- x) = 0. F & x * y = y * x & (x * y) * z = x * (y * z) & (1. F) * x = x & x * (1. F) = x & ( x <> 0. F implies ex y being Scalar of F st x * y = 1. F ) & 0. F <> 1. F & x * (y + z) = (x * y) + (x * z) ) ; ::_thesis: F is Field
A2: for x being Scalar of F st x <> 0. F holds
ex y being Scalar of F st y * x = 1. F
proof
let x be Scalar of F; ::_thesis: ( x <> 0. F implies ex y being Scalar of F st y * x = 1. F )
assume x <> 0. F ; ::_thesis: ex y being Scalar of F st y * x = 1. F
then consider y being Scalar of F such that
A3: x * y = 1. F by A1;
take y ; ::_thesis: y * x = 1. F
thus y * x = 1. F by A1, A3; ::_thesis: verum
end;
A4: now__::_thesis:_for_x,_y,_z_being_Scalar_of_F_holds_
(_x_+_y_=_y_+_x_&_(x_+_y)_+_z_=_x_+_(y_+_z)_&_x_+_(0._F)_=_x_&_x_+_(-_x)_=_0._F_&_x_*_y_=_y_*_x_&_(x_*_y)_*_z_=_x_*_(y_*_z)_&_(1._F)_*_x_=_x_&_x_*_(1._F)_=_x_&_(_x_<>_0._F_implies_ex_y_being_Scalar_of_F_st_x_*_y_=_1._F_)_&_0._F_<>_1._F_&_x_*_(y_+_z)_=_(x_*_y)_+_(x_*_z)_&_(y_+_z)_*_x_=_(y_*_x)_+_(z_*_x)_)
let x, y, z be Scalar of F; ::_thesis: ( x + y = y + x & (x + y) + z = x + (y + z) & x + (0. F) = x & x + (- x) = 0. F & x * y = y * x & (x * y) * z = x * (y * z) & (1. F) * x = x & x * (1. F) = x & ( x <> 0. F implies ex y being Scalar of F st x * y = 1. F ) & 0. F <> 1. F & x * (y + z) = (x * y) + (x * z) & (y + z) * x = (y * x) + (z * x) )
thus ( x + y = y + x & (x + y) + z = x + (y + z) & x + (0. F) = x & x + (- x) = 0. F & x * y = y * x & (x * y) * z = x * (y * z) & (1. F) * x = x & x * (1. F) = x & ( x <> 0. F implies ex y being Scalar of F st x * y = 1. F ) & 0. F <> 1. F & x * (y + z) = (x * y) + (x * z) ) by A1; ::_thesis: (y + z) * x = (y * x) + (z * x)
thus (y + z) * x = x * (y + z) by A1
.= (x * y) + (x * z) by A1
.= (y * x) + (x * z) by A1
.= (y * x) + (z * x) by A1 ; ::_thesis: verum
end;
F is right_complementable
proof
let v be Element of F; :: according to ALGSTR_0:def_16 ::_thesis: v is right_complementable
take - v ; :: according to ALGSTR_0:def_11 ::_thesis: v + (- v) = 0. F
thus v + (- v) = 0. F by A4; ::_thesis: verum
end;
hence F is Field by A2, A4, GROUP_1:def_3, GROUP_1:def_12, RLVECT_1:def_2, RLVECT_1:def_3, RLVECT_1:def_4, STRUCT_0:def_8, VECTSP_1:def_6, VECTSP_1:def_7, VECTSP_1:def_9; ::_thesis: verum
end;
theorem Th27: :: MOD_2:27
Z_3 is Fanoian Field
proof
set F = Z_3 ;
reconsider a = 0. Z_3, b = 1. Z_3 as Element of {0,1,2} ;
now__::_thesis:_for_x,_y,_z_being_Scalar_of_Z_3_holds_
(_x_+_y_=_y_+_x_&_(x_+_y)_+_z_=_x_+_(y_+_z)_&_x_+_(0._Z_3)_=_x_&_x_+_(-_x)_=_0._Z_3_&_x_*_y_=_y_*_x_&_(x_*_y)_*_z_=_x_*_(y_*_z)_&_(1._Z_3)_*_x_=_x_&_x_*_(1._Z_3)_=_x_&_(_x_<>_0._Z_3_implies_ex_y_being_Scalar_of_Z_3_st_x_*_y_=_1._Z_3_)_&_0._Z_3_<>_1._Z_3_&_x_*_(y_+_z)_=_(x_*_y)_+_(x_*_z)_)
let x, y, z be Scalar of Z_3; ::_thesis: ( x + y = y + x & (x + y) + z = x + (y + z) & x + (0. Z_3) = x & x + (- x) = 0. Z_3 & x * y = y * x & (x * y) * z = x * (y * z) & (1. Z_3) * x = x & x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
thus ( x + y = y + x & (x + y) + z = x + (y + z) & x + (0. Z_3) = x & x + (- x) = 0. Z_3 & x * y = y * x & (x * y) * z = x * (y * z) & (1. Z_3) * x = x & x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) ) ::_thesis: verum
proof
reconsider X = x, Y = y, Z = z as Element of {0,1,2} ;
A1: ( x * y = X * Y & x * z = X * Z ) by Th23;
thus x + y = X + Y by Th23
.= Y + X by Th25
.= y + x by Th23 ; ::_thesis: ( (x + y) + z = x + (y + z) & x + (0. Z_3) = x & x + (- x) = 0. Z_3 & x * y = y * x & (x * y) * z = x * (y * z) & (1. Z_3) * x = x & x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
thus (x + y) + z = (X + Y) + Z by Th24
.= X + (Y + Z) by Th25
.= x + (y + z) by Th24 ; ::_thesis: ( x + (0. Z_3) = x & x + (- x) = 0. Z_3 & x * y = y * x & (x * y) * z = x * (y * z) & (1. Z_3) * x = x & x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
thus x + (0. Z_3) = X + a by Th23
.= x by Th25 ; ::_thesis: ( x + (- x) = 0. Z_3 & x * y = y * x & (x * y) * z = x * (y * z) & (1. Z_3) * x = x & x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
- x = - X by Th23;
hence x + (- x) = X + (- X) by Th23
.= 0. Z_3 by Th25 ;
::_thesis: ( x * y = y * x & (x * y) * z = x * (y * z) & (1. Z_3) * x = x & x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
thus x * y = X * Y by Th23
.= Y * X by Th25
.= y * x by Th23 ; ::_thesis: ( (x * y) * z = x * (y * z) & (1. Z_3) * x = x & x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
thus (x * y) * z = (X * Y) * Z by Th24
.= X * (Y * Z) by Th25
.= x * (y * z) by Th24 ; ::_thesis: ( (1. Z_3) * x = x & x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
thus (1. Z_3) * x = b * X by Th23
.= x by Th25 ; ::_thesis: ( x * (1. Z_3) = x & ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
thus x * (1. Z_3) = X * b by Th23
.= b * X by Th25
.= x by Th25 ; ::_thesis: ( ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) & 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
thus ( x <> 0. Z_3 implies ex y being Scalar of Z_3 st x * y = 1. Z_3 ) ::_thesis: ( 0. Z_3 <> 1. Z_3 & x * (y + z) = (x * y) + (x * z) )
proof
assume x <> 0. Z_3 ; ::_thesis: ex y being Scalar of Z_3 st x * y = 1. Z_3
then consider Y being Element of {0,1,2} such that
A2: X * Y = b by Th25;
reconsider y = Y as Scalar of Z_3 ;
take y ; ::_thesis: x * y = 1. Z_3
thus x * y = 1. Z_3 by A2, Th23; ::_thesis: verum
end;
thus 0. Z_3 <> 1. Z_3 ; ::_thesis: x * (y + z) = (x * y) + (x * z)
y + z = Y + Z by Th23;
hence x * (y + z) = X * (Y + Z) by Th23
.= (X * Y) + (X * Z) by Th25
.= (x * y) + (x * z) by A1, Th23 ;
::_thesis: verum
end;
end;
then reconsider F = Z_3 as Field by Th26;
(1. F) + (1. F) = b + b by Def15
.= 2 by Def13 ;
hence Z_3 is Fanoian Field by Th22, VECTSP_1:def_19; ::_thesis: verum
end;
registration
cluster Z_3 -> right_complementable almost_left_invertible strict associative commutative well-unital distributive Fanoian Abelian add-associative right_zeroed ;
coherence
( Z_3 is Fanoian & Z_3 is add-associative & Z_3 is right_zeroed & Z_3 is right_complementable & Z_3 is Abelian & Z_3 is commutative & Z_3 is associative & Z_3 is well-unital & Z_3 is distributive & Z_3 is almost_left_invertible ) by Th27;
end;
Lm8: for UN being Universe holds the carrier of Z_3 in UN
proof
let UN be Universe; ::_thesis: the carrier of Z_3 in UN
reconsider a = 0 , b = 1, c = 2 as Element of UN by Th21;
{a,b,c} is Element of UN by Th19;
hence the carrier of Z_3 in UN ; ::_thesis: verum
end;
theorem Th28: :: MOD_2:28
for D, D9 being non empty set
for UN being Universe
for f being Function of D,D9 st D in UN & D9 in UN holds
f in UN
proof
let D, D9 be non empty set ; ::_thesis: for UN being Universe
for f being Function of D,D9 st D in UN & D9 in UN holds
f in UN
let UN be Universe; ::_thesis: for f being Function of D,D9 st D in UN & D9 in UN holds
f in UN
let f be Function of D,D9; ::_thesis: ( D in UN & D9 in UN implies f in UN )
assume ( D in UN & D9 in UN ) ; ::_thesis: f in UN
then A1: Funcs (D,D9) in UN by CLASSES2:61;
f in Funcs (D,D9) by FUNCT_2:8;
hence f in UN by A1, ORDINAL1:10; ::_thesis: verum
end;
Lm9: for D being non empty set
for UN being Universe holds
( ( for f being BinOp of D st D in UN holds
f in UN ) & ( for f being UnOp of D st D in UN holds
f in UN ) )
proof
let D be non empty set ; ::_thesis: for UN being Universe holds
( ( for f being BinOp of D st D in UN holds
f in UN ) & ( for f being UnOp of D st D in UN holds
f in UN ) )
let UN be Universe; ::_thesis: ( ( for f being BinOp of D st D in UN holds
f in UN ) & ( for f being UnOp of D st D in UN holds
f in UN ) )
now__::_thesis:_for_f_being_BinOp_of_D_st_D_in_UN_holds_
f_in_UN
let f be BinOp of D; ::_thesis: ( D in UN implies f in UN )
assume A1: D in UN ; ::_thesis: f in UN
then [:D,D:] in UN by CLASSES2:61;
then A2: Funcs ([:D,D:],D) in UN by A1, CLASSES2:61;
f in Funcs ([:D,D:],D) by FUNCT_2:8;
hence f in UN by A2, ORDINAL1:10; ::_thesis: verum
end;
hence ( ( for f being BinOp of D st D in UN holds
f in UN ) & ( for f being UnOp of D st D in UN holds
f in UN ) ) by Th28; ::_thesis: verum
end;
theorem :: MOD_2:29
for UN being Universe holds
( the carrier of Z_3 in UN & the addF of Z_3 in UN & comp Z_3 in UN & 0. Z_3 in UN & the multF of Z_3 in UN & 1. Z_3 in UN )
proof
let UN be Universe; ::_thesis: ( the carrier of Z_3 in UN & the addF of Z_3 in UN & comp Z_3 in UN & 0. Z_3 in UN & the multF of Z_3 in UN & 1. Z_3 in UN )
thus the carrier of Z_3 in UN by Lm8; ::_thesis: ( the addF of Z_3 in UN & comp Z_3 in UN & 0. Z_3 in UN & the multF of Z_3 in UN & 1. Z_3 in UN )
hence ( the addF of Z_3 in UN & comp Z_3 in UN & 0. Z_3 in UN & the multF of Z_3 in UN & 1. Z_3 in UN ) by Lm9, ORDINAL1:10; ::_thesis: verum
end;