:: GRCAT_1 semantic presentation
begin
theorem Th1: :: GRCAT_1:1
for UN being Universe
for u1, u2, u3, u4 being Element of UN holds
( [u1,u2,u3] in UN & [u1,u2,u3,u4] in UN )
proof
let UN be Universe; ::_thesis: for u1, u2, u3, u4 being Element of UN holds
( [u1,u2,u3] in UN & [u1,u2,u3,u4] in UN )
let u1, u2, u3, u4 be Element of UN; ::_thesis: ( [u1,u2,u3] in UN & [u1,u2,u3,u4] in UN )
( [u1,u2,u3] = [[u1,u2],u3] & [u1,u2,u3,u4] = [[u1,u2,u3],u4] ) ;
hence ( [u1,u2,u3] in UN & [u1,u2,u3,u4] in UN ) by CLASSES2:58; ::_thesis: verum
end;
theorem Th2: :: GRCAT_1:2
( op2 . ({},{}) = {} & op1 . {} = {} & op0 = {} )
proof
[{},{}] in [:{{}},{{}}:] by ZFMISC_1:28;
hence op2 . ({},{}) = {} by CARD_1:49, FUNCT_2:50; ::_thesis: ( op1 . {} = {} & op0 = {} )
{} in {{}} by TARSKI:def_1;
hence op1 . {} = {} by CARD_1:49, FUNCT_2:50; ::_thesis: op0 = {}
thus op0 = {} ; ::_thesis: verum
end;
theorem Th3: :: GRCAT_1:3
for UN being Universe holds
( {{}} in UN & [{{}},{{}}] in UN & [:{{}},{{}}:] in UN & op2 in UN & op1 in UN )
proof
let UN be Universe; ::_thesis: ( {{}} in UN & [{{}},{{}}] in UN & [:{{}},{{}}:] in UN & op2 in UN & op1 in UN )
set D = {{}};
thus A1: {{}} in UN by CLASSES2:56, CLASSES2:57; ::_thesis: ( [{{}},{{}}] in UN & [:{{}},{{}}:] in UN & op2 in UN & op1 in UN )
hence [{{}},{{}}] in UN by CLASSES2:58; ::_thesis: ( [:{{}},{{}}:] in UN & op2 in UN & op1 in UN )
A2: op2 in Funcs ([:{{}},{{}}:],{{}}) by CARD_1:49, FUNCT_2:8;
thus [:{{}},{{}}:] in UN by A1, CLASSES2:61; ::_thesis: ( op2 in UN & op1 in UN )
then Funcs ([:{{}},{{}}:],{{}}) in UN by A1, CLASSES2:61;
hence op2 in UN by A2, ORDINAL1:10; ::_thesis: op1 in UN
A3: op1 in Funcs ({{}},{{}}) by CARD_1:49, FUNCT_2:8;
Funcs ({{}},{{}}) in UN by A1, CLASSES2:61;
hence op1 in UN by A3, ORDINAL1:10; ::_thesis: verum
end;
registration
cluster Trivial-addLoopStr -> midpoint_operator ;
coherence
Trivial-addLoopStr is midpoint_operator
proof
set G = Trivial-addLoopStr ;
A1: for a being Element of Trivial-addLoopStr ex x being Element of Trivial-addLoopStr st Double x = a
proof
set x = the Element of Trivial-addLoopStr;
let a be Element of Trivial-addLoopStr; ::_thesis: ex x being Element of Trivial-addLoopStr st Double x = a
take the Element of Trivial-addLoopStr ; ::_thesis: Double the Element of Trivial-addLoopStr = a
thus Double the Element of Trivial-addLoopStr = {} by CARD_1:49, TARSKI:def_1
.= a by CARD_1:49, TARSKI:def_1 ; ::_thesis: verum
end;
for a being Element of Trivial-addLoopStr st Double a = 0. Trivial-addLoopStr holds
a = 0. Trivial-addLoopStr by CARD_1:49, TARSKI:def_1;
hence Trivial-addLoopStr is midpoint_operator by A1, MIDSP_2:def_5; ::_thesis: verum
end;
end;
theorem :: GRCAT_1:4
( ( for x being Element of Trivial-addLoopStr holds x = {} ) & ( for x, y being Element of Trivial-addLoopStr holds x + y = {} ) & ( for x being Element of Trivial-addLoopStr holds - x = {} ) & 0. Trivial-addLoopStr = {} ) by CARD_1:49, TARSKI:def_1;
definition
let C be Category;
let O be non empty Subset of the carrier of C;
func Morphs O -> Subset of the carrier' of C equals :: GRCAT_1:def 1
union { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } ;
coherence
union { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } is Subset of the carrier' of C by CAT_2:19;
end;
:: deftheorem defines Morphs GRCAT_1:def_1_:_
for C being Category
for O being non empty Subset of the carrier of C holds Morphs O = union { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } ;
registration
let C be Category;
let O be non empty Subset of the carrier of C;
cluster Morphs O -> non empty ;
coherence
not Morphs O is empty by CAT_2:19;
end;
definition
let C be Category;
let O be non empty Subset of the carrier of C;
func dom O -> Function of (Morphs O),O equals :: GRCAT_1:def 2
the Source of C | (Morphs O);
coherence
the Source of C | (Morphs O) is Function of (Morphs O),O by CAT_2:20;
func cod O -> Function of (Morphs O),O equals :: GRCAT_1:def 3
the Target of C | (Morphs O);
coherence
the Target of C | (Morphs O) is Function of (Morphs O),O by CAT_2:20;
func comp O -> PartFunc of [:(Morphs O),(Morphs O):],(Morphs O) equals :: GRCAT_1:def 4
the Comp of C || (Morphs O);
coherence
the Comp of C || (Morphs O) is PartFunc of [:(Morphs O),(Morphs O):],(Morphs O) by CAT_2:20;
canceled;
end;
:: deftheorem defines dom GRCAT_1:def_2_:_
for C being Category
for O being non empty Subset of the carrier of C holds dom O = the Source of C | (Morphs O);
:: deftheorem defines cod GRCAT_1:def_3_:_
for C being Category
for O being non empty Subset of the carrier of C holds cod O = the Target of C | (Morphs O);
:: deftheorem defines comp GRCAT_1:def_4_:_
for C being Category
for O being non empty Subset of the carrier of C holds comp O = the Comp of C || (Morphs O);
:: deftheorem GRCAT_1:def_5_:_
canceled;
definition
let C be Category;
let O be non empty Subset of the carrier of C;
func cat O -> Subcategory of C equals :: GRCAT_1:def 6
CatStr(# O,(Morphs O),(dom O),(cod O),(comp O) #);
coherence
CatStr(# O,(Morphs O),(dom O),(cod O),(comp O) #) is Subcategory of C
proof
CatStr(# O,(Morphs O),(dom O),(cod O),(comp O) #) is full Subcategory of C by CAT_2:21;
hence CatStr(# O,(Morphs O),(dom O),(cod O),(comp O) #) is Subcategory of C ; ::_thesis: verum
end;
end;
:: deftheorem defines cat GRCAT_1:def_6_:_
for C being Category
for O being non empty Subset of the carrier of C holds cat O = CatStr(# O,(Morphs O),(dom O),(cod O),(comp O) #);
registration
let C be Category;
let O be non empty Subset of the carrier of C;
cluster cat O -> strict ;
coherence
cat O is strict ;
end;
theorem :: GRCAT_1:5
for C being Category
for O being non empty Subset of the carrier of C holds the carrier of (cat O) = O ;
definition
let G be non empty 1-sorted ;
let H be non empty ZeroStr ;
func ZeroMap (G,H) -> Function of G,H equals :: GRCAT_1:def 7
the carrier of G --> (0. H);
coherence
the carrier of G --> (0. H) is Function of G,H ;
end;
:: deftheorem defines ZeroMap GRCAT_1:def_7_:_
for G being non empty 1-sorted
for H being non empty ZeroStr holds ZeroMap (G,H) = the carrier of G --> (0. H);
theorem Th6: :: GRCAT_1:6
comp Trivial-addLoopStr = op1
proof
reconsider f = comp Trivial-addLoopStr as Function of {{}},{{}} by CARD_1:49;
for x being set st x in {{}} holds
op1 . x = f . x
proof
let x be set ; ::_thesis: ( x in {{}} implies op1 . x = f . x )
assume x in {{}} ; ::_thesis: op1 . x = f . x
then reconsider x = x as Element of Trivial-addLoopStr by CARD_1:49;
x = {} by CARD_1:49, TARSKI:def_1;
then op1 . x = - x by Th2, CARD_1:49, TARSKI:def_1
.= f . x by VECTSP_1:def_13 ;
hence op1 . x = f . x ; ::_thesis: verum
end;
hence comp Trivial-addLoopStr = op1 by CARD_1:49, FUNCT_2:12; ::_thesis: verum
end;
registration
let G be non empty addMagma ;
let H be non empty right_zeroed addLoopStr ;
cluster ZeroMap (G,H) -> additive ;
coherence
ZeroMap (G,H) is additive
proof
set f = ZeroMap (G,H);
let x, y be Element of G; :: according to VECTSP_1:def_20 ::_thesis: (ZeroMap (G,H)) . (x + y) = ((ZeroMap (G,H)) . x) + ((ZeroMap (G,H)) . y)
A1: (ZeroMap (G,H)) . y = 0. H by FUNCOP_1:7;
( (ZeroMap (G,H)) . (x + y) = 0. H & (ZeroMap (G,H)) . x = 0. H ) by FUNCOP_1:7;
hence (ZeroMap (G,H)) . (x + y) = ((ZeroMap (G,H)) . x) + ((ZeroMap (G,H)) . y) by A1, RLVECT_1:def_4; ::_thesis: verum
end;
end;
registration
let G be non empty addMagma ;
let H be non empty right_zeroed addLoopStr ;
cluster Relation-like the carrier of G -defined the carrier of H -valued Function-like non empty total quasi_total additive for Element of bool [: the carrier of G, the carrier of H:];
existence
ex b1 being Function of G,H st b1 is additive
proof
take ZeroMap (G,H) ; ::_thesis: ZeroMap (G,H) is additive
thus ZeroMap (G,H) is additive ; ::_thesis: verum
end;
end;
theorem Th7: :: GRCAT_1:7
for G1, G2, G3 being non empty addMagma
for f being Function of G1,G2
for g being Function of G2,G3 st f is additive & g is additive holds
g * f is additive
proof
let G1, G2, G3 be non empty addMagma ; ::_thesis: for f being Function of G1,G2
for g being Function of G2,G3 st f is additive & g is additive holds
g * f is additive
let f be Function of G1,G2; ::_thesis: for g being Function of G2,G3 st f is additive & g is additive holds
g * f is additive
let g be Function of G2,G3; ::_thesis: ( f is additive & g is additive implies g * f is additive )
assume that
A1: f is additive and
A2: g is additive ; ::_thesis: g * f is additive
set h = g * f;
now__::_thesis:_for_x,_y_being_Element_of_G1_holds_(g_*_f)_._(x_+_y)_=_((g_*_f)_._x)_+_((g_*_f)_._y)
let x, y be Element of G1; ::_thesis: (g * f) . (x + y) = ((g * f) . x) + ((g * f) . y)
A3: ( g . (f . x) = (g * f) . x & g . (f . y) = (g * f) . y ) by FUNCT_2:15;
thus (g * f) . (x + y) = g . (f . (x + y)) by FUNCT_2:15
.= g . ((f . x) + (f . y)) by A1, VECTSP_1:def_20
.= ((g * f) . x) + ((g * f) . y) by A2, A3, VECTSP_1:def_20 ; ::_thesis: verum
end;
hence g * f is additive by VECTSP_1:def_20; ::_thesis: verum
end;
registration
let G1 be non empty addMagma ;
let G2, G3 be non empty right_zeroed addLoopStr ;
let f be additive Function of G1,G2;
let g be additive Function of G2,G3;
clusterf * g -> additive for Function of G1,G3;
coherence
for b1 being Function of G1,G3 st b1 = g * f holds
b1 is additive by Th7;
end;
definition
attrc1 is strict ;
struct GroupMorphismStr -> ;
aggrGroupMorphismStr(# Source, Target, Fun #) -> GroupMorphismStr ;
sel Source c1 -> AddGroup;
sel Target c1 -> AddGroup;
sel Fun c1 -> Function of the Source of c1, the Target of c1;
end;
definition
canceled;
let f be GroupMorphismStr ;
func dom f -> AddGroup equals :: GRCAT_1:def 9
the Source of f;
coherence
the Source of f is AddGroup ;
func cod f -> AddGroup equals :: GRCAT_1:def 10
the Target of f;
coherence
the Target of f is AddGroup ;
end;
:: deftheorem GRCAT_1:def_8_:_
canceled;
:: deftheorem defines dom GRCAT_1:def_9_:_
for f being GroupMorphismStr holds dom f = the Source of f;
:: deftheorem defines cod GRCAT_1:def_10_:_
for f being GroupMorphismStr holds cod f = the Target of f;
definition
let f be GroupMorphismStr ;
func fun f -> Function of (dom f),(cod f) equals :: GRCAT_1:def 11
the Fun of f;
coherence
the Fun of f is Function of (dom f),(cod f) ;
end;
:: deftheorem defines fun GRCAT_1:def_11_:_
for f being GroupMorphismStr holds fun f = the Fun of f;
theorem :: GRCAT_1:8
for f being GroupMorphismStr
for G1, G2 being AddGroup
for f0 being Function of G1,G2 st f = GroupMorphismStr(# G1,G2,f0 #) holds
( dom f = G1 & cod f = G2 & fun f = f0 ) ;
definition
let G, H be AddGroup;
func ZERO (G,H) -> GroupMorphismStr equals :: GRCAT_1:def 12
GroupMorphismStr(# G,H,(ZeroMap (G,H)) #);
coherence
GroupMorphismStr(# G,H,(ZeroMap (G,H)) #) is GroupMorphismStr ;
end;
:: deftheorem defines ZERO GRCAT_1:def_12_:_
for G, H being AddGroup holds ZERO (G,H) = GroupMorphismStr(# G,H,(ZeroMap (G,H)) #);
registration
let G, H be AddGroup;
cluster ZERO (G,H) -> strict ;
coherence
ZERO (G,H) is strict ;
end;
definition
let IT be GroupMorphismStr ;
attrIT is GroupMorphism-like means :Def13: :: GRCAT_1:def 13
fun IT is additive ;
end;
:: deftheorem Def13 defines GroupMorphism-like GRCAT_1:def_13_:_
for IT being GroupMorphismStr holds
( IT is GroupMorphism-like iff fun IT is additive );
registration
cluster strict GroupMorphism-like for GroupMorphismStr ;
existence
ex b1 being GroupMorphismStr st
( b1 is strict & b1 is GroupMorphism-like )
proof
set G = the AddGroup;
set z = ZERO ( the AddGroup, the AddGroup);
fun (ZERO ( the AddGroup, the AddGroup)) is additive ;
then ZERO ( the AddGroup, the AddGroup) is GroupMorphism-like by Def13;
hence ex b1 being GroupMorphismStr st
( b1 is strict & b1 is GroupMorphism-like ) ; ::_thesis: verum
end;
end;
definition
mode GroupMorphism is GroupMorphism-like GroupMorphismStr ;
end;
theorem Th9: :: GRCAT_1:9
for F being GroupMorphism holds the Fun of F is additive
proof
let F be GroupMorphism; ::_thesis: the Fun of F is additive
the Fun of F = fun F ;
hence the Fun of F is additive by Def13; ::_thesis: verum
end;
registration
let G, H be AddGroup;
cluster ZERO (G,H) -> GroupMorphism-like ;
coherence
ZERO (G,H) is GroupMorphism-like
proof
set z = ZERO (G,H);
fun (ZERO (G,H)) is additive ;
hence ZERO (G,H) is GroupMorphism-like by Def13; ::_thesis: verum
end;
end;
definition
let G, H be AddGroup;
mode Morphism of G,H -> GroupMorphism means :Def14: :: GRCAT_1:def 14
( dom it = G & cod it = H );
existence
ex b1 being GroupMorphism 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 Def14 defines Morphism GRCAT_1:def_14_:_
for G, H being AddGroup
for b3 being GroupMorphism holds
( b3 is Morphism of G,H iff ( dom b3 = G & cod b3 = H ) );
registration
let G, H be AddGroup;
cluster strict GroupMorphism-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 ZERO (G,H) is Morphism of G,H by Def14;
hence ex b1 being Morphism of G,H st b1 is strict ; ::_thesis: verum
end;
end;
theorem Th10: :: GRCAT_1:10
for G, H being AddGroup
for f being strict GroupMorphismStr st dom f = G & cod f = H & fun f is additive holds
f is strict Morphism of G,H
proof
let G, H be AddGroup; ::_thesis: for f being strict GroupMorphismStr st dom f = G & cod f = H & fun f is additive holds
f is strict Morphism of G,H
let f be strict GroupMorphismStr ; ::_thesis: ( dom f = G & cod f = H & fun f is additive implies f is strict Morphism of G,H )
assume that
A1: ( dom f = G & cod f = H ) and
A2: fun f is additive ; ::_thesis: f is strict Morphism of G,H
reconsider f9 = f as strict GroupMorphism by A2, Def13;
f9 is strict Morphism of G,H by A1, Def14;
hence f is strict Morphism of G,H ; ::_thesis: verum
end;
theorem Th11: :: GRCAT_1:11
for G, H being AddGroup
for f being Function of G,H st f is additive holds
GroupMorphismStr(# G,H,f #) is strict Morphism of G,H
proof
let G, H be AddGroup; ::_thesis: for f being Function of G,H st f is additive holds
GroupMorphismStr(# G,H,f #) is strict Morphism of G,H
let f be Function of G,H; ::_thesis: ( f is additive implies GroupMorphismStr(# G,H,f #) is strict Morphism of G,H )
assume A1: f is additive ; ::_thesis: GroupMorphismStr(# G,H,f #) is strict Morphism of G,H
set F = GroupMorphismStr(# G,H,f #);
fun GroupMorphismStr(# G,H,f #) = f ;
hence GroupMorphismStr(# G,H,f #) is strict Morphism of G,H by A1, Th10; ::_thesis: verum
end;
registration
let G be non empty addMagma ;
cluster id G -> additive ;
coherence
id G is additive
proof
set f = id G;
let x, y be Element of G; :: according to VECTSP_1:def_20 ::_thesis: (id G) . (x + y) = ((id G) . x) + ((id G) . y)
( (id G) . (x + y) = x + y & (id G) . x = x ) by FUNCT_1:18;
hence (id G) . (x + y) = ((id G) . x) + ((id G) . y) by FUNCT_1:18; ::_thesis: verum
end;
end;
definition
let G be AddGroup;
func ID G -> Morphism of G,G equals :: GRCAT_1:def 15
GroupMorphismStr(# G,G,(id G) #);
coherence
GroupMorphismStr(# G,G,(id G) #) is Morphism of G,G
proof
set i = GroupMorphismStr(# G,G,(id G) #);
fun GroupMorphismStr(# G,G,(id G) #) = id G ;
hence GroupMorphismStr(# G,G,(id G) #) is Morphism of G,G by Th10; ::_thesis: verum
end;
end;
:: deftheorem defines ID GRCAT_1:def_15_:_
for G being AddGroup holds ID G = GroupMorphismStr(# G,G,(id G) #);
registration
let G be AddGroup;
cluster ID G -> strict ;
coherence
ID G is strict ;
end;
definition
let G, H be AddGroup;
:: 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 Th10; ::_thesis: verum
end;
end;
theorem Th12: :: GRCAT_1:12
for G, H being AddGroup
for F being Morphism of G,H ex f being Function of G,H st
( GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G,H,f #) & f is additive )
proof
let G, H be AddGroup; ::_thesis: for F being Morphism of G,H ex f being Function of G,H st
( GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G,H,f #) & f is additive )
let F be Morphism of G,H; ::_thesis: ex f being Function of G,H st
( GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G,H,f #) & f is additive )
A1: the Target of F = cod F
.= H by Def14 ;
A2: the Source of F = dom F
.= G by Def14 ;
then reconsider f = the Fun of F as Function of G,H by A1;
take f ; ::_thesis: ( GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G,H,f #) & f is additive )
thus ( GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G,H,f #) & f is additive ) by A2, A1, Th9; ::_thesis: verum
end;
theorem Th13: :: GRCAT_1:13
for G, H being AddGroup
for F being strict Morphism of G,H ex f being Function of G,H st F = GroupMorphismStr(# G,H,f #)
proof
let G, H be AddGroup; ::_thesis: for F being strict Morphism of G,H ex f being Function of G,H st F = GroupMorphismStr(# G,H,f #)
let F be strict Morphism of G,H; ::_thesis: ex f being Function of G,H st F = GroupMorphismStr(# G,H,f #)
consider f being Function of G,H such that
A1: F = GroupMorphismStr(# G,H,f #) and
f is additive by Th12;
take f ; ::_thesis: F = GroupMorphismStr(# G,H,f #)
thus F = GroupMorphismStr(# G,H,f #) by A1; ::_thesis: verum
end;
theorem Th14: :: GRCAT_1:14
for F being GroupMorphism ex G, H being AddGroup st F is Morphism of G,H
proof
let F be GroupMorphism; ::_thesis: ex G, H being AddGroup st F is Morphism of G,H
take G = the Source of F; ::_thesis: ex H being AddGroup st F is Morphism of G,H
take H = the Target of F; ::_thesis: F is Morphism of G,H
( dom F = G & cod F = H ) ;
hence F is Morphism of G,H by Def14; ::_thesis: verum
end;
theorem :: GRCAT_1:15
for F being strict GroupMorphism ex G, H being AddGroup ex f being Function of G,H st
( F is Morphism of G,H & F = GroupMorphismStr(# G,H,f #) & f is additive )
proof
let F be strict GroupMorphism; ::_thesis: ex G, H being AddGroup ex f being Function of G,H st
( F is Morphism of G,H & F = GroupMorphismStr(# G,H,f #) & f is additive )
consider G, H being AddGroup such that
A1: F is Morphism of G,H by Th14;
reconsider F9 = F as Morphism of G,H by A1;
consider f being Function of G,H such that
A2: ( F9 = GroupMorphismStr(# G,H,f #) & f is additive ) by Th12;
take G ; ::_thesis: ex H being AddGroup ex f being Function of G,H st
( F is Morphism of G,H & F = GroupMorphismStr(# G,H,f #) & f is additive )
take H ; ::_thesis: ex f being Function of G,H st
( F is Morphism of G,H & F = GroupMorphismStr(# G,H,f #) & f is additive )
take f ; ::_thesis: ( F is Morphism of G,H & F = GroupMorphismStr(# G,H,f #) & f is additive )
thus ( F is Morphism of G,H & F = GroupMorphismStr(# G,H,f #) & f is additive ) by A2; ::_thesis: verum
end;
theorem Th16: :: GRCAT_1:16
for g, f being GroupMorphism st dom g = cod f holds
ex G1, G2, G3 being AddGroup st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 )
proof
defpred S1[ GroupMorphism, GroupMorphism] means dom $1 = cod $2;
let g, f be GroupMorphism; ::_thesis: ( dom g = cod f implies ex G1, G2, G3 being AddGroup st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 ) )
assume A1: S1[g,f] ; ::_thesis: ex G1, G2, G3 being AddGroup st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 )
consider G2, G3 being AddGroup such that
A2: g is Morphism of G2,G3 by Th14;
consider G1, G29 being AddGroup such that
A3: f is Morphism of G1,G29 by Th14;
A4: G29 = cod f by A3, Def14;
G2 = dom g by A2, Def14;
hence ex G1, G2, G3 being AddGroup st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 ) by A1, A2, A3, A4; ::_thesis: verum
end;
definition
let G, F be GroupMorphism;
assume A1: dom G = cod F ;
funcG * F -> strict GroupMorphism means :Def16: :: GRCAT_1:def 16
for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
it = GroupMorphismStr(# G1,G3,(g * f) #);
existence
ex b1 being strict GroupMorphism st
for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
b1 = GroupMorphismStr(# G1,G3,(g * f) #)
proof
consider G19, G29, G39 being AddGroup such that
A2: G is Morphism of G29,G39 and
A3: F is Morphism of G19,G29 by A1, Th16;
consider f9 being Function of G19,G29 such that
A4: GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G19,G29,f9 #) and
A5: f9 is additive by A3, Th12;
consider g9 being Function of G29,G39 such that
A6: GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G29,G39,g9 #) and
A7: g9 is additive by A2, Th12;
g9 * f9 is additive by A7, A5;
then reconsider T9 = GroupMorphismStr(# G19,G39,(g9 * f9) #) as strict GroupMorphism by Th11;
take T9 ; ::_thesis: for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
T9 = GroupMorphismStr(# G1,G3,(g * f) #)
thus for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
T9 = GroupMorphismStr(# G1,G3,(g * f) #) by A6, A4; ::_thesis: verum
end;
uniqueness
for b1, b2 being strict GroupMorphism st ( for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
b1 = GroupMorphismStr(# G1,G3,(g * f) #) ) & ( for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
b2 = GroupMorphismStr(# G1,G3,(g * f) #) ) holds
b1 = b2
proof
consider G19, G299 being AddGroup such that
A8: F is Morphism of G19,G299 by Th14;
reconsider F9 = F as Morphism of G19,G299 by A8;
consider G29, G39 being AddGroup such that
A9: G is Morphism of G29,G39 by Th14;
G29 = dom G by A9, Def14;
then reconsider F9 = F9 as Morphism of G19,G29 by A1, Def14;
consider f9 being Function of G19,G29 such that
A10: GroupMorphismStr(# the Source of F9, the Target of F9, the Fun of F9 #) = GroupMorphismStr(# G19,G29,f9 #) and
f9 is additive by Th12;
reconsider G9 = G as Morphism of G29,G39 by A9;
let S1, S2 be strict GroupMorphism; ::_thesis: ( ( for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
S1 = GroupMorphismStr(# G1,G3,(g * f) #) ) & ( for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
S2 = GroupMorphismStr(# G1,G3,(g * f) #) ) implies S1 = S2 )
assume that
A11: for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
S1 = GroupMorphismStr(# G1,G3,(g * f) #) and
A12: for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
S2 = GroupMorphismStr(# G1,G3,(g * f) #) ; ::_thesis: S1 = S2
consider g9 being Function of G29,G39 such that
A13: GroupMorphismStr(# the Source of G9, the Target of G9, the Fun of G9 #) = GroupMorphismStr(# G29,G39,g9 #) and
g9 is additive by Th12;
thus S1 = GroupMorphismStr(# G19,G39,(g9 * f9) #) by A11, A13, A10
.= S2 by A12, A13, A10 ; ::_thesis: verum
end;
end;
:: deftheorem Def16 defines * GRCAT_1:def_16_:_
for G, F being GroupMorphism st dom G = cod F holds
for b3 being strict GroupMorphism holds
( b3 = G * F iff for G1, G2, G3 being AddGroup
for g being Function of G2,G3
for f being Function of G1,G2 st GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) & GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) holds
b3 = GroupMorphismStr(# G1,G3,(g * f) #) );
theorem Th17: :: GRCAT_1:17
for G1, G2, G3 being AddGroup
for G being Morphism of G2,G3
for F being Morphism of G1,G2 holds G * F is Morphism of G1,G3
proof
let G1, G2, G3 be AddGroup; ::_thesis: for G being Morphism of G2,G3
for F being Morphism of G1,G2 holds G * F is Morphism of G1,G3
let G be Morphism of G2,G3; ::_thesis: for F being Morphism of G1,G2 holds G * F is Morphism of G1,G3
let F be Morphism of G1,G2; ::_thesis: G * F is Morphism of G1,G3
consider g being Function of G2,G3 such that
A1: GroupMorphismStr(# the Source of G, the Target of G, the Fun of G #) = GroupMorphismStr(# G2,G3,g #) and
g is additive by Th12;
consider f being Function of G1,G2 such that
A2: GroupMorphismStr(# the Source of F, the Target of F, the Fun of F #) = GroupMorphismStr(# G1,G2,f #) and
f is additive by Th12;
dom G = G2 by Def14
.= cod F by Def14 ;
then G * F = GroupMorphismStr(# G1,G3,(g * f) #) by A1, A2, Def16;
then ( dom (G * F) = G1 & cod (G * F) = G3 ) ;
hence G * F is Morphism of G1,G3 by Def14; ::_thesis: verum
end;
definition
let G1, G2, G3 be AddGroup;
let G be Morphism of G2,G3;
let F be Morphism of G1,G2;
:: original: *
redefine funcG * F -> strict Morphism of G1,G3;
coherence
G * F is strict Morphism of G1,G3 by Th17;
end;
theorem Th18: :: GRCAT_1:18
for G1, G2, G3 being AddGroup
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 = GroupMorphismStr(# G2,G3,g #) & F = GroupMorphismStr(# G1,G2,f #) holds
G * F = GroupMorphismStr(# G1,G3,(g * f) #)
proof
let G1, G2, G3 be AddGroup; ::_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 = GroupMorphismStr(# G2,G3,g #) & F = GroupMorphismStr(# G1,G2,f #) holds
G * F = GroupMorphismStr(# 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 = GroupMorphismStr(# G2,G3,g #) & F = GroupMorphismStr(# G1,G2,f #) holds
G * F = GroupMorphismStr(# 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 = GroupMorphismStr(# G2,G3,g #) & F = GroupMorphismStr(# G1,G2,f #) holds
G * F = GroupMorphismStr(# G1,G3,(g * f) #)
let g be Function of G2,G3; ::_thesis: for f being Function of G1,G2 st G = GroupMorphismStr(# G2,G3,g #) & F = GroupMorphismStr(# G1,G2,f #) holds
G * F = GroupMorphismStr(# G1,G3,(g * f) #)
let f be Function of G1,G2; ::_thesis: ( G = GroupMorphismStr(# G2,G3,g #) & F = GroupMorphismStr(# G1,G2,f #) implies G * F = GroupMorphismStr(# G1,G3,(g * f) #) )
assume A1: ( G = GroupMorphismStr(# G2,G3,g #) & F = GroupMorphismStr(# G1,G2,f #) ) ; ::_thesis: G * F = GroupMorphismStr(# G1,G3,(g * f) #)
dom G = G2 by Def14
.= cod F by Def14 ;
hence G * F = GroupMorphismStr(# G1,G3,(g * f) #) by A1, Def16; ::_thesis: verum
end;
theorem Th19: :: GRCAT_1:19
for f, g being strict GroupMorphism st dom g = cod f holds
ex G1, G2, G3 being AddGroup ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = GroupMorphismStr(# G1,G2,f0 #) & g = GroupMorphismStr(# G2,G3,g0 #) & g * f = GroupMorphismStr(# G1,G3,(g0 * f0) #) )
proof
let f, g be strict GroupMorphism; ::_thesis: ( dom g = cod f implies ex G1, G2, G3 being AddGroup ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = GroupMorphismStr(# G1,G2,f0 #) & g = GroupMorphismStr(# G2,G3,g0 #) & g * f = GroupMorphismStr(# G1,G3,(g0 * f0) #) ) )
assume A1: dom g = cod f ; ::_thesis: ex G1, G2, G3 being AddGroup ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = GroupMorphismStr(# G1,G2,f0 #) & g = GroupMorphismStr(# G2,G3,g0 #) & g * f = GroupMorphismStr(# 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 Def14;
reconsider g9 = g as strict Morphism of cod f, cod g by A1, Def14;
consider f0 being Function of (dom f),(cod f) such that
A2: f9 = GroupMorphismStr(# (dom f),(cod f),f0 #) ;
consider g0 being Function of (cod f),(cod g) such that
A3: g9 = GroupMorphismStr(# (cod f),(cod g),g0 #) by Th13;
take dom f ; ::_thesis: ex G2, G3 being AddGroup ex f0 being Function of (dom f),G2 ex g0 being Function of G2,G3 st
( f = GroupMorphismStr(# (dom f),G2,f0 #) & g = GroupMorphismStr(# G2,G3,g0 #) & g * f = GroupMorphismStr(# (dom f),G3,(g0 * f0) #) )
take cod f ; ::_thesis: ex G3 being AddGroup ex f0 being Function of (dom f),(cod f) ex g0 being Function of (cod f),G3 st
( f = GroupMorphismStr(# (dom f),(cod f),f0 #) & g = GroupMorphismStr(# (cod f),G3,g0 #) & g * f = GroupMorphismStr(# (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 = GroupMorphismStr(# (dom f),(cod f),f0 #) & g = GroupMorphismStr(# (cod f),(cod g),g0 #) & g * f = GroupMorphismStr(# (dom f),(cod g),(g0 * f0) #) )
take f0 ; ::_thesis: ex g0 being Function of (cod f),(cod g) st
( f = GroupMorphismStr(# (dom f),(cod f),f0 #) & g = GroupMorphismStr(# (cod f),(cod g),g0 #) & g * f = GroupMorphismStr(# (dom f),(cod g),(g0 * f0) #) )
take g0 ; ::_thesis: ( f = GroupMorphismStr(# (dom f),(cod f),f0 #) & g = GroupMorphismStr(# (cod f),(cod g),g0 #) & g * f = GroupMorphismStr(# (dom f),(cod g),(g0 * f0) #) )
thus ( f = GroupMorphismStr(# (dom f),(cod f),f0 #) & g = GroupMorphismStr(# (cod f),(cod g),g0 #) & g * f = GroupMorphismStr(# (dom f),(cod g),(g0 * f0) #) ) by A2, A3, Th18; ::_thesis: verum
end;
theorem Th20: :: GRCAT_1:20
for f, g being strict GroupMorphism st dom g = cod f holds
( dom (g * f) = dom f & cod (g * f) = cod g )
proof
let f, g be strict GroupMorphism; ::_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 AddGroup ex f0 being Function of G1,G2 ex g0 being Function of G2,G3 st
( f = GroupMorphismStr(# G1,G2,f0 #) & g = GroupMorphismStr(# G2,G3,g0 #) & g * f = GroupMorphismStr(# G1,G3,(g0 * f0) #) ) by Th19;
hence dom (g * f) = dom f ; ::_thesis: cod (g * f) = cod g
thus cod (g * f) = cod g by A1; ::_thesis: verum
end;
theorem Th21: :: GRCAT_1:21
for G1, G2, G3, G4 being AddGroup
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 G1, G2, G3, G4 be AddGroup; ::_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 = GroupMorphismStr(# G1,G2,f0 #) by Th13;
consider g0 being Function of G2,G3 such that
A2: g = GroupMorphismStr(# G2,G3,g0 #) by Th13;
consider h0 being Function of G3,G4 such that
A3: h = GroupMorphismStr(# G3,G4,h0 #) by Th13;
A4: h * g = GroupMorphismStr(# G2,G4,(h0 * g0) #) by A2, A3, Th18;
g * f = GroupMorphismStr(# G1,G3,(g0 * f0) #) by A1, A2, Th18;
then h * (g * f) = GroupMorphismStr(# G1,G4,(h0 * (g0 * f0)) #) by A3, Th18
.= GroupMorphismStr(# G1,G4,((h0 * g0) * f0) #) by RELAT_1:36
.= (h * g) * f by A1, A4, Th18 ;
hence h * (g * f) = (h * g) * f ; ::_thesis: verum
end;
theorem Th22: :: GRCAT_1:22
for f, g, h being strict GroupMorphism st dom h = cod g & dom g = cod f holds
h * (g * f) = (h * g) * f
proof
let f, g, h be strict GroupMorphism; ::_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 Morphism of cod g, cod h by A1, Def14;
reconsider g9 = g as Morphism of cod f, cod g by A2, Def14;
reconsider f9 = f as Morphism of dom f, cod f by Def14;
h9 * (g9 * f9) = (h9 * g9) * f9 by Th21;
hence h * (g * f) = (h * g) * f ; ::_thesis: verum
end;
theorem :: GRCAT_1:23
for G being AddGroup holds
( dom (ID G) = G & cod (ID G) = G & ( for f being strict GroupMorphism st cod f = G holds
(ID G) * f = f ) & ( for g being strict GroupMorphism st dom g = G holds
g * (ID G) = g ) )
proof
let G be AddGroup; ::_thesis: ( dom (ID G) = G & cod (ID G) = G & ( for f being strict GroupMorphism st cod f = G holds
(ID G) * f = f ) & ( for g being strict GroupMorphism 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 GroupMorphism st cod f = G holds
(ID G) * f = f ) & ( for g being strict GroupMorphism st dom g = G holds
g * (ID G) = g ) )
thus cod (ID G) = G ; ::_thesis: ( ( for f being strict GroupMorphism st cod f = G holds
(ID G) * f = f ) & ( for g being strict GroupMorphism st dom g = G holds
g * (ID G) = g ) )
thus for f being strict GroupMorphism st cod f = G holds
(ID G) * f = f ::_thesis: for g being strict GroupMorphism st dom g = G holds
g * (ID G) = g
proof
let f be strict GroupMorphism; ::_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, Def14;
consider m being Function of (dom f),G such that
A2: f9 = GroupMorphismStr(# (dom f),G,m #) by Th13;
( dom (ID G) = G & (id G) * m = m ) by FUNCT_2:17;
hence (ID G) * f = f by A1, A2, Def16; ::_thesis: verum
end;
thus for g being strict GroupMorphism st dom g = G holds
g * (ID G) = g ::_thesis: verum
proof
let f be strict GroupMorphism; ::_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, Def14;
consider m being Function of G,(cod f) such that
A4: f9 = GroupMorphismStr(# G,(cod f),m #) by Th13;
( cod (ID G) = G & m * (id G) = m ) by FUNCT_2:17;
hence f * (ID G) = f by A3, A4, Def16; ::_thesis: verum
end;
end;
definition
let IT be set ;
attrIT is Group_DOMAIN-like means :Def17: :: GRCAT_1:def 17
for x being set st x in IT holds
x is strict AddGroup;
end;
:: deftheorem Def17 defines Group_DOMAIN-like GRCAT_1:def_17_:_
for IT being set holds
( IT is Group_DOMAIN-like iff for x being set st x in IT holds
x is strict AddGroup );
registration
cluster non empty Group_DOMAIN-like for set ;
existence
ex b1 being set st
( b1 is Group_DOMAIN-like & not b1 is empty )
proof
set D = {Trivial-addLoopStr};
take {Trivial-addLoopStr} ; ::_thesis: ( {Trivial-addLoopStr} is Group_DOMAIN-like & not {Trivial-addLoopStr} is empty )
for x being set st x in {Trivial-addLoopStr} holds
x is strict AddGroup by TARSKI:def_1;
hence ( {Trivial-addLoopStr} is Group_DOMAIN-like & not {Trivial-addLoopStr} is empty ) by Def17; ::_thesis: verum
end;
end;
definition
mode Group_DOMAIN is non empty Group_DOMAIN-like set ;
end;
definition
let V be Group_DOMAIN;
:: original: Element
redefine mode Element of V -> AddGroup;
coherence
for b1 being Element of V holds b1 is AddGroup by Def17;
end;
registration
let V be Group_DOMAIN;
cluster non empty left_add-cancelable right_add-cancelable add-cancelable strict right_complementable add-associative right_zeroed left_zeroed add-left-invertible add-right-invertible Loop-like for Element of V;
existence
ex b1 being Element of V st b1 is strict
proof
set v = the Element of V;
the Element of V is strict AddGroup by Def17;
hence ex b1 being Element of V st b1 is strict ; ::_thesis: verum
end;
end;
definition
let IT be set ;
attrIT is GroupMorphism_DOMAIN-like means :Def18: :: GRCAT_1:def 18
for x being set st x in IT holds
x is strict GroupMorphism;
end;
:: deftheorem Def18 defines GroupMorphism_DOMAIN-like GRCAT_1:def_18_:_
for IT being set holds
( IT is GroupMorphism_DOMAIN-like iff for x being set st x in IT holds
x is strict GroupMorphism );
registration
cluster non empty GroupMorphism_DOMAIN-like for set ;
existence
ex b1 being set st
( b1 is GroupMorphism_DOMAIN-like & not b1 is empty )
proof
set G = the AddGroup;
take {(ID the AddGroup)} ; ::_thesis: ( {(ID the AddGroup)} is GroupMorphism_DOMAIN-like & not {(ID the AddGroup)} is empty )
for x being set st x in {(ID the AddGroup)} holds
x is strict GroupMorphism by TARSKI:def_1;
hence ( {(ID the AddGroup)} is GroupMorphism_DOMAIN-like & not {(ID the AddGroup)} is empty ) by Def18; ::_thesis: verum
end;
end;
definition
mode GroupMorphism_DOMAIN is non empty GroupMorphism_DOMAIN-like set ;
end;
definition
let M be GroupMorphism_DOMAIN;
:: original: Element
redefine mode Element of M -> GroupMorphism;
coherence
for b1 being Element of M holds b1 is GroupMorphism by Def18;
end;
registration
let M be GroupMorphism_DOMAIN;
cluster strict GroupMorphism-like for Element of M;
existence
ex b1 being Element of M st b1 is strict
proof
set m = the Element of M;
the Element of M is strict GroupMorphism by Def18;
hence ex b1 being Element of M st b1 is strict ; ::_thesis: verum
end;
end;
theorem Th24: :: GRCAT_1:24
for f being strict GroupMorphism holds {f} is GroupMorphism_DOMAIN
proof
let f be strict GroupMorphism; ::_thesis: {f} is GroupMorphism_DOMAIN
for x being set st x in {f} holds
x is strict GroupMorphism by TARSKI:def_1;
hence {f} is GroupMorphism_DOMAIN by Def18; ::_thesis: verum
end;
definition
let G, H be AddGroup;
mode GroupMorphism_DOMAIN of G,H -> GroupMorphism_DOMAIN means :Def19: :: GRCAT_1:def 19
for x being Element of it holds x is strict Morphism of G,H;
existence
ex b1 being GroupMorphism_DOMAIN st
for x being Element of b1 holds x is strict Morphism of G,H
proof
reconsider D = {(ZERO (G,H))} as GroupMorphism_DOMAIN by Th24;
take D ; ::_thesis: for x being Element of D holds x is strict Morphism of G,H
thus for x being Element of D holds x is strict Morphism of G,H by TARSKI:def_1; ::_thesis: verum
end;
end;
:: deftheorem Def19 defines GroupMorphism_DOMAIN GRCAT_1:def_19_:_
for G, H being AddGroup
for b3 being GroupMorphism_DOMAIN holds
( b3 is GroupMorphism_DOMAIN of G,H iff for x being Element of b3 holds x is strict Morphism of G,H );
theorem Th25: :: GRCAT_1:25
for D being non empty set
for G, H being AddGroup holds
( D is GroupMorphism_DOMAIN of G,H iff for x being Element of D holds x is strict Morphism of G,H )
proof
let D be non empty set ; ::_thesis: for G, H being AddGroup holds
( D is GroupMorphism_DOMAIN of G,H iff for x being Element of D holds x is strict Morphism of G,H )
let G, H be AddGroup; ::_thesis: ( D is GroupMorphism_DOMAIN of G,H iff for x being Element of D holds x is strict Morphism of G,H )
thus ( D is GroupMorphism_DOMAIN of G,H implies for x being Element of D holds x is strict Morphism of G,H ) by Def19; ::_thesis: ( ( for x being Element of D holds x is strict Morphism of G,H ) implies D is GroupMorphism_DOMAIN of G,H )
thus ( ( for x being Element of D holds x is strict Morphism of G,H ) implies D is GroupMorphism_DOMAIN of G,H ) ::_thesis: verum
proof
assume A1: for x being Element of D holds x is strict Morphism of G,H ; ::_thesis: D is GroupMorphism_DOMAIN of G,H
then for x being set st x in D holds
x is strict GroupMorphism ;
then reconsider D9 = D as GroupMorphism_DOMAIN by Def18;
for x being Element of D9 holds x is strict Morphism of G,H by A1;
hence D is GroupMorphism_DOMAIN of G,H by Def19; ::_thesis: verum
end;
end;
theorem :: GRCAT_1:26
for G, H being AddGroup
for f being strict Morphism of G,H holds {f} is GroupMorphism_DOMAIN of G,H
proof
let G, H be AddGroup; ::_thesis: for f being strict Morphism of G,H holds {f} is GroupMorphism_DOMAIN of G,H
let f be strict Morphism of G,H; ::_thesis: {f} is GroupMorphism_DOMAIN of G,H
for x being Element of {f} holds x is strict Morphism of G,H by TARSKI:def_1;
hence {f} is GroupMorphism_DOMAIN of G,H by Th25; ::_thesis: verum
end;
definition
let G, H be 1-sorted ;
mode MapsSet of G,H -> set means :Def20: :: GRCAT_1:def 20
for x being set st x in it holds
x is Function of G,H;
existence
ex b1 being set st
for x being set st x in b1 holds
x is Function of G,H
proof
take {} ; ::_thesis: for x being set st x in {} holds
x is Function of G,H
thus for x being set st x in {} holds
x is Function of G,H ; ::_thesis: verum
end;
end;
:: deftheorem Def20 defines MapsSet GRCAT_1:def_20_:_
for G, H being 1-sorted
for b3 being set holds
( b3 is MapsSet of G,H iff for x being set st x in b3 holds
x is Function of G,H );
definition
let G, H be 1-sorted ;
func Maps (G,H) -> MapsSet of G,H equals :: GRCAT_1:def 21
Funcs ( the carrier of G, the carrier of H);
coherence
Funcs ( the carrier of G, the carrier of H) is MapsSet of G,H
proof
let x be set ; :: according to GRCAT_1:def_20 ::_thesis: ( x in Funcs ( the carrier of G, the carrier of H) implies x is Function of G,H )
assume x in Funcs ( the carrier of G, the carrier of H) ; ::_thesis: x is Function of G,H
hence x is Function of G,H by FUNCT_2:66; ::_thesis: verum
end;
end;
:: deftheorem defines Maps GRCAT_1:def_21_:_
for G, H being 1-sorted holds Maps (G,H) = Funcs ( the carrier of G, the carrier of H);
registration
let G be 1-sorted ;
let H be non empty 1-sorted ;
cluster Maps (G,H) -> non empty ;
coherence
not Maps (G,H) is empty ;
end;
registration
let G be 1-sorted ;
let H be non empty 1-sorted ;
cluster non empty for MapsSet of G,H;
existence
not for b1 being MapsSet of G,H holds b1 is empty
proof
not Maps (G,H) is empty ;
hence not for b1 being MapsSet of G,H holds b1 is empty ; ::_thesis: verum
end;
end;
definition
let G be 1-sorted ;
let H be non empty 1-sorted ;
let M be non empty MapsSet of G,H;
:: original: Element
redefine mode Element of M -> Function of G,H;
coherence
for b1 being Element of M holds b1 is Function of G,H by Def20;
end;
definition
let G, H be AddGroup;
func Morphs (G,H) -> GroupMorphism_DOMAIN of G,H means :Def22: :: GRCAT_1:def 22
for x being set holds
( x in it iff x is strict Morphism of G,H );
existence
ex b1 being GroupMorphism_DOMAIN of G,H st
for x being set holds
( x in b1 iff x is strict Morphism of G,H )
proof
reconsider f0 = ZeroMap (G,H) as Element of Maps (G,H) by FUNCT_2:8;
set D = { GroupMorphismStr(# G,H,f #) where f is Element of Maps (G,H) : f is additive } ;
GroupMorphismStr(# G,H,f0 #) in { GroupMorphismStr(# G,H,f #) where f is Element of Maps (G,H) : f is additive } ;
then reconsider D = { GroupMorphismStr(# G,H,f #) where f is Element of Maps (G,H) : f is additive } as non empty set ;
A1: for x being set st x in D holds
x is strict Morphism of G,H
proof
let x be set ; ::_thesis: ( x in D implies x is strict Morphism of G,H )
assume x in D ; ::_thesis: x is strict Morphism of G,H
then ex f being Element of Maps (G,H) st
( x = GroupMorphismStr(# G,H,f #) & f is additive ) ;
hence x is strict Morphism of G,H by Th11; ::_thesis: verum
end;
then A2: for x being Element of D holds x is strict Morphism of G,H ;
A3: for x being set st x is strict Morphism of G,H holds
x in D
proof
let x be set ; ::_thesis: ( x is strict Morphism of G,H implies x in D )
assume x is strict Morphism of G,H ; ::_thesis: x in D
then reconsider x = x as strict Morphism of G,H ;
A4: ( dom x = G & cod x = H ) by Def14;
then reconsider f = the Fun of x as Function of G,H ;
reconsider g = f as Element of Maps (G,H) by FUNCT_2:8;
A5: x = GroupMorphismStr(# G,H,g #) by A4;
the Fun of x is additive by Th9;
hence x in D by A5; ::_thesis: verum
end;
reconsider D = D as GroupMorphism_DOMAIN of G,H by A2, Th25;
take D ; ::_thesis: for x being set holds
( x in D iff x is strict Morphism of G,H )
thus for x being set holds
( x in D iff x is strict Morphism of G,H ) by A1, A3; ::_thesis: verum
end;
uniqueness
for b1, b2 being GroupMorphism_DOMAIN of G,H st ( for x being set holds
( x in b1 iff x is strict Morphism of G,H ) ) & ( for x being set holds
( x in b2 iff x is strict Morphism of G,H ) ) holds
b1 = b2
proof
let D1, D2 be GroupMorphism_DOMAIN of G,H; ::_thesis: ( ( for x being set holds
( x in D1 iff x is strict Morphism of G,H ) ) & ( for x being set holds
( x in D2 iff x is strict Morphism of G,H ) ) implies D1 = D2 )
assume that
A6: for x being set holds
( x in D1 iff x is strict Morphism of G,H ) and
A7: for x being set holds
( x in D2 iff x is strict Morphism of G,H ) ; ::_thesis: D1 = D2
for x being set holds
( x in D1 iff x in D2 )
proof
let x be set ; ::_thesis: ( x in D1 iff x in D2 )
thus ( x in D1 implies x in D2 ) ::_thesis: ( x in D2 implies x in D1 )
proof
assume x in D1 ; ::_thesis: x in D2
then x is strict Morphism of G,H by A6;
hence x in D2 by A7; ::_thesis: verum
end;
thus ( x in D2 implies x in D1 ) ::_thesis: verum
proof
assume x in D2 ; ::_thesis: x in D1
then x is strict Morphism of G,H by A7;
hence x in D1 by A6; ::_thesis: verum
end;
end;
hence D1 = D2 by TARSKI:1; ::_thesis: verum
end;
end;
:: deftheorem Def22 defines Morphs GRCAT_1:def_22_:_
for G, H being AddGroup
for b3 being GroupMorphism_DOMAIN of G,H holds
( b3 = Morphs (G,H) iff for x being set holds
( x in b3 iff x is strict Morphism of G,H ) );
definition
let G, H be AddGroup;
let M be GroupMorphism_DOMAIN of G,H;
:: original: Element
redefine mode Element of M -> Morphism of G,H;
coherence
for b1 being Element of M holds b1 is Morphism of G,H by Def19;
end;
registration
let G, H be AddGroup;
let M be GroupMorphism_DOMAIN of G,H;
cluster strict GroupMorphism-like for Element of M;
existence
ex b1 being Element of M st b1 is strict
proof
set m = the Element of M;
the Element of M is strict Morphism of G,H by Def19;
hence ex b1 being Element of M st b1 is strict ; ::_thesis: verum
end;
end;
definition
let x, y be set ;
pred GO x,y means :Def23: :: GRCAT_1:def 23
ex x1, x2, x3, x4 being set st
( x = [x1,x2,x3,x4] & ex G being strict AddGroup st
( y = G & x1 = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G ) );
end;
:: deftheorem Def23 defines GO GRCAT_1:def_23_:_
for x, y being set holds
( GO x,y iff ex x1, x2, x3, x4 being set st
( x = [x1,x2,x3,x4] & ex G being strict AddGroup st
( y = G & x1 = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G ) ) );
theorem Th27: :: GRCAT_1:27
for x, y1, y2 being set st GO x,y1 & GO x,y2 holds
y1 = y2
proof
let x, y1, y2 be set ; ::_thesis: ( GO x,y1 & GO x,y2 implies y1 = y2 )
assume that
A1: GO x,y1 and
A2: GO x,y2 ; ::_thesis: y1 = y2
consider a1, a2, a3, a4 being set such that
A3: x = [a1,a2,a3,a4] and
A4: ex G being strict AddGroup st
( y1 = G & a1 = the carrier of G & a2 = the addF of G & a3 = comp G & a4 = 0. G ) by A1, Def23;
consider G1 being strict AddGroup such that
A5: y1 = G1 and
A6: ( a1 = the carrier of G1 & a2 = the addF of G1 ) and
a3 = comp G1 and
A7: a4 = 0. G1 by A4;
consider b1, b2, b3, b4 being set such that
A8: x = [b1,b2,b3,b4] and
A9: ex G being strict AddGroup st
( y2 = G & b1 = the carrier of G & b2 = the addF of G & b3 = comp G & b4 = 0. G ) by A2, Def23;
consider G2 being strict AddGroup such that
A10: y2 = G2 and
A11: ( b1 = the carrier of G2 & b2 = the addF of G2 ) and
b3 = comp G2 and
A12: b4 = 0. G2 by A9;
( the carrier of G1 = the carrier of G2 & the addF of G1 = the addF of G2 ) by A3, A8, A6, A11, XTUPLE_0:5;
hence y1 = y2 by A3, A8, A5, A7, A10, A12, XTUPLE_0:5; ::_thesis: verum
end;
theorem Th28: :: GRCAT_1:28
for UN being Universe ex x being set st
( x in UN & GO x, Trivial-addLoopStr )
proof
let UN be Universe; ::_thesis: ex x being set st
( x in UN & GO x, Trivial-addLoopStr )
reconsider x2 = op2 as Element of UN by Th3;
reconsider x3 = comp Trivial-addLoopStr as Element of UN by Th3, Th6;
reconsider u = {} as Element of UN by CLASSES2:56;
set x1 = {u};
Extract {} = u ;
then reconsider x4 = Extract {} as Element of UN ;
take x = [{u},x2,x3,x4]; ::_thesis: ( x in UN & GO x, Trivial-addLoopStr )
thus x in UN by Th1; ::_thesis: GO x, Trivial-addLoopStr
take {u} ; :: according to GRCAT_1:def_23 ::_thesis: ex x2, x3, x4 being set st
( x = [{u},x2,x3,x4] & ex G being strict AddGroup st
( Trivial-addLoopStr = G & {u} = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G ) )
take x2 ; ::_thesis: ex x3, x4 being set st
( x = [{u},x2,x3,x4] & ex G being strict AddGroup st
( Trivial-addLoopStr = G & {u} = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G ) )
take x3 ; ::_thesis: ex x4 being set st
( x = [{u},x2,x3,x4] & ex G being strict AddGroup st
( Trivial-addLoopStr = G & {u} = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G ) )
take x4 ; ::_thesis: ( x = [{u},x2,x3,x4] & ex G being strict AddGroup st
( Trivial-addLoopStr = G & {u} = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G ) )
thus x = [{u},x2,x3,x4] ; ::_thesis: ex G being strict AddGroup st
( Trivial-addLoopStr = G & {u} = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G )
take Trivial-addLoopStr ; ::_thesis: ( Trivial-addLoopStr = Trivial-addLoopStr & {u} = the carrier of Trivial-addLoopStr & x2 = the addF of Trivial-addLoopStr & x3 = comp Trivial-addLoopStr & x4 = 0. Trivial-addLoopStr )
thus ( Trivial-addLoopStr = Trivial-addLoopStr & {u} = the carrier of Trivial-addLoopStr & x2 = the addF of Trivial-addLoopStr & x3 = comp Trivial-addLoopStr & x4 = 0. Trivial-addLoopStr ) by CARD_1:49; ::_thesis: verum
end;
definition
let UN be Universe;
func GroupObjects UN -> set means :Def24: :: GRCAT_1:def 24
for y being set holds
( y in it iff ex x being set st
( x in UN & GO x,y ) );
existence
ex b1 being set st
for y being set holds
( y in b1 iff ex x being set st
( x in UN & GO x,y ) )
proof
defpred S1[ set , set ] means GO $1,$2;
A1: for x, y1, y2 being set st S1[x,y1] & S1[x,y2] holds
y1 = y2 by Th27;
consider Y being set such that
A2: for y being set holds
( y in Y iff ex x being set st
( x in UN & S1[x,y] ) ) from TARSKI:sch_1(A1);
take Y ; ::_thesis: for y being set holds
( y in Y iff ex x being set st
( x in UN & GO x,y ) )
thus for y being set holds
( y in Y iff ex x being set st
( x in UN & GO x,y ) ) by A2; ::_thesis: verum
end;
uniqueness
for b1, b2 being set st ( for y being set holds
( y in b1 iff ex x being set st
( x in UN & GO x,y ) ) ) & ( for y being set holds
( y in b2 iff ex x being set st
( x in UN & GO x,y ) ) ) holds
b1 = b2
proof
defpred S1[ set ] means ex x being set st
( x in UN & GO x,$1 );
for X1, X2 being set st ( for x being set holds
( x in X1 iff S1[x] ) ) & ( for x being set holds
( x in X2 iff S1[x] ) ) holds
X1 = X2 from XBOOLE_0:sch_3();
hence for b1, b2 being set st ( for y being set holds
( y in b1 iff ex x being set st
( x in UN & GO x,y ) ) ) & ( for y being set holds
( y in b2 iff ex x being set st
( x in UN & GO x,y ) ) ) holds
b1 = b2 ; ::_thesis: verum
end;
end;
:: deftheorem Def24 defines GroupObjects GRCAT_1:def_24_:_
for UN being Universe
for b2 being set holds
( b2 = GroupObjects UN iff for y being set holds
( y in b2 iff ex x being set st
( x in UN & GO x,y ) ) );
theorem Th29: :: GRCAT_1:29
for UN being Universe holds Trivial-addLoopStr in GroupObjects UN
proof
let UN be Universe; ::_thesis: Trivial-addLoopStr in GroupObjects UN
ex x being set st
( x in UN & GO x, Trivial-addLoopStr ) by Th28;
hence Trivial-addLoopStr in GroupObjects UN by Def24; ::_thesis: verum
end;
registration
let UN be Universe;
cluster GroupObjects UN -> non empty ;
coherence
not GroupObjects UN is empty by Th29;
end;
theorem Th30: :: GRCAT_1:30
for UN being Universe
for x being Element of GroupObjects UN holds x is strict AddGroup
proof
let UN be Universe; ::_thesis: for x being Element of GroupObjects UN holds x is strict AddGroup
let x be Element of GroupObjects UN; ::_thesis: x is strict AddGroup
consider u being set such that
u in UN and
A1: GO u,x by Def24;
ex x1, x2, x3, x4 being set st
( u = [x1,x2,x3,x4] & ex G being strict AddGroup st
( x = G & x1 = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G ) ) by A1, Def23;
hence x is strict AddGroup ; ::_thesis: verum
end;
registration
let UN be Universe;
cluster GroupObjects UN -> Group_DOMAIN-like ;
coherence
GroupObjects UN is Group_DOMAIN-like
proof
let x be set ; :: according to GRCAT_1:def_17 ::_thesis: ( x in GroupObjects UN implies x is strict AddGroup )
thus ( x in GroupObjects UN implies x is strict AddGroup ) by Th30; ::_thesis: verum
end;
end;
definition
let V be Group_DOMAIN;
func Morphs V -> GroupMorphism_DOMAIN means :Def25: :: GRCAT_1:def 25
for x being set holds
( x in it iff ex G, H being strict Element of V st x is strict Morphism of G,H );
existence
ex b1 being GroupMorphism_DOMAIN st
for x being set holds
( x in b1 iff ex G, H being strict Element of V st x is strict Morphism of G,H )
proof
set G0 = the strict Element of V;
set M = Morphs ( the strict Element of V, the strict Element of V);
set S = { (Morphs (G,H)) where G, H is strict Element of V : verum } ;
( ZERO ( the strict Element of V, the strict Element of V) is Element of Morphs ( the strict Element of V, the strict Element of V) & Morphs ( the strict Element of V, the strict Element of V) in { (Morphs (G,H)) where G, H is strict Element of V : verum } ) by Def22;
then reconsider T = union { (Morphs (G,H)) where G, H is strict Element of V : verum } as non empty set by TARSKI:def_4;
A1: for x being set holds
( x in T iff ex G, H being strict Element of V st x is strict Morphism of G,H )
proof
let x be set ; ::_thesis: ( x in T iff ex G, H being strict Element of V st x is strict Morphism of G,H )
thus ( x in T implies ex G, H being strict Element of V st x is strict Morphism of G,H ) ::_thesis: ( ex G, H being strict Element of V st x is strict Morphism of G,H implies x in T )
proof
assume x in T ; ::_thesis: ex G, H being strict Element of V st x is strict Morphism of G,H
then consider Y being set such that
A2: x in Y and
A3: Y in { (Morphs (G,H)) where G, H is strict Element of V : verum } by TARSKI:def_4;
consider G, H being strict Element of V such that
A4: Y = Morphs (G,H) by A3;
take G ; ::_thesis: ex H being strict Element of V st x is strict Morphism of G,H
take H ; ::_thesis: x is strict Morphism of G,H
thus x is strict Morphism of G,H by A2, A4, Def22; ::_thesis: verum
end;
thus ( ex G, H being strict Element of V st x is strict Morphism of G,H implies x in T ) ::_thesis: verum
proof
given G, H being strict Element of V such that A5: x is strict Morphism of G,H ; ::_thesis: x in T
set M = Morphs (G,H);
A6: Morphs (G,H) in { (Morphs (G,H)) where G, H is strict Element of V : verum } ;
x in Morphs (G,H) by A5, Def22;
hence x in T by A6, TARSKI:def_4; ::_thesis: verum
end;
end;
now__::_thesis:_for_x_being_set_st_x_in_T_holds_
x_is_strict_GroupMorphism
let x be set ; ::_thesis: ( x in T implies x is strict GroupMorphism )
assume x in T ; ::_thesis: x is strict GroupMorphism
then ex G, H being strict Element of V st x is strict Morphism of G,H by A1;
hence x is strict GroupMorphism ; ::_thesis: verum
end;
then reconsider T9 = T as GroupMorphism_DOMAIN by Def18;
take T9 ; ::_thesis: for x being set holds
( x in T9 iff ex G, H being strict Element of V st x is strict Morphism of G,H )
thus for x being set holds
( x in T9 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) by A1; ::_thesis: verum
end;
uniqueness
for b1, b2 being GroupMorphism_DOMAIN st ( for x being set holds
( x in b1 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) ) & ( for x being set holds
( x in b2 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) ) holds
b1 = b2
proof
let D1, D2 be GroupMorphism_DOMAIN; ::_thesis: ( ( for x being set holds
( x in D1 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) ) & ( for x being set holds
( x in D2 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) ) implies D1 = D2 )
assume that
A7: for x being set holds
( x in D1 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) and
A8: for x being set holds
( x in D2 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) ; ::_thesis: D1 = D2
now__::_thesis:_for_x_being_set_holds_
(_x_in_D1_iff_x_in_D2_)
let x be set ; ::_thesis: ( x in D1 iff x in D2 )
( x in D1 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) by A7;
hence ( x in D1 iff x in D2 ) by A8; ::_thesis: verum
end;
hence D1 = D2 by TARSKI:1; ::_thesis: verum
end;
end;
:: deftheorem Def25 defines Morphs GRCAT_1:def_25_:_
for V being Group_DOMAIN
for b2 being GroupMorphism_DOMAIN holds
( b2 = Morphs V iff for x being set holds
( x in b2 iff ex G, H being strict Element of V st x is strict Morphism of G,H ) );
definition
let V be Group_DOMAIN;
let F be Element of Morphs V;
:: original: dom
redefine func dom F -> strict Element of V;
coherence
dom F is strict Element of V
proof
consider G, H being strict Element of V such that
A1: F is strict Morphism of G,H by Def25;
reconsider F9 = F as Morphism of G,H by A1;
dom F9 = G by Def14;
hence dom F is strict Element of V ; ::_thesis: verum
end;
:: original: cod
redefine func cod F -> strict Element of V;
coherence
cod F is strict Element of V
proof
consider G, H being strict Element of V such that
A2: F is strict Morphism of G,H by Def25;
reconsider F9 = F as Morphism of G,H by A2;
cod F9 = H by Def14;
hence cod F is strict Element of V ; ::_thesis: verum
end;
end;
definition
let V be Group_DOMAIN;
let G be Element of V;
func ID G -> strict Element of Morphs V equals :: GRCAT_1:def 26
ID G;
coherence
ID G is strict Element of Morphs V
proof
reconsider G9 = G as strict Element of V by Def17;
ID G9 is strict Element of Morphs V by Def25;
hence ID G is strict Element of Morphs V ; ::_thesis: verum
end;
end;
:: deftheorem defines ID GRCAT_1:def_26_:_
for V being Group_DOMAIN
for G being Element of V holds ID G = ID G;
definition
let V be Group_DOMAIN;
func dom V -> Function of (Morphs V),V means :Def27: :: GRCAT_1:def 27
for f being Element of Morphs V holds it . f = dom f;
existence
ex b1 being Function of (Morphs V),V st
for f being Element of Morphs V holds b1 . f = dom f
proof
deffunc H1( Element of Morphs V) -> strict Element of V = dom $1;
consider F being Function of (Morphs V),V such that
A1: for f being Element of Morphs V holds F . f = H1(f) from FUNCT_2:sch_4();
take F ; ::_thesis: for f being Element of Morphs V holds F . f = dom f
thus for f being Element of Morphs V holds F . f = dom f by A1; ::_thesis: verum
end;
uniqueness
for b1, b2 being Function of (Morphs V),V st ( for f being Element of Morphs V holds b1 . f = dom f ) & ( for f being Element of Morphs V holds b2 . f = dom f ) holds
b1 = b2
proof
let F1, F2 be Function of (Morphs V),V; ::_thesis: ( ( for f being Element of Morphs V holds F1 . f = dom f ) & ( for f being Element of Morphs V holds F2 . f = dom f ) implies F1 = F2 )
assume that
A2: for f being Element of Morphs V holds F1 . f = dom f and
A3: for f being Element of Morphs V holds F2 . f = dom f ; ::_thesis: F1 = F2
now__::_thesis:_for_f_being_Element_of_Morphs_V_holds_F1_._f_=_F2_._f
let f be Element of Morphs V; ::_thesis: F1 . f = F2 . f
F1 . f = dom f by A2;
hence F1 . f = F2 . f by A3; ::_thesis: verum
end;
hence F1 = F2 by FUNCT_2:63; ::_thesis: verum
end;
func cod V -> Function of (Morphs V),V means :Def28: :: GRCAT_1:def 28
for f being Element of Morphs V holds it . f = cod f;
existence
ex b1 being Function of (Morphs V),V st
for f being Element of Morphs V holds b1 . f = cod f
proof
deffunc H1( Element of Morphs V) -> strict Element of V = cod $1;
consider F being Function of (Morphs V),V such that
A4: for f being Element of Morphs V holds F . f = H1(f) from FUNCT_2:sch_4();
take F ; ::_thesis: for f being Element of Morphs V holds F . f = cod f
thus for f being Element of Morphs V holds F . f = cod f by A4; ::_thesis: verum
end;
uniqueness
for b1, b2 being Function of (Morphs V),V st ( for f being Element of Morphs V holds b1 . f = cod f ) & ( for f being Element of Morphs V holds b2 . f = cod f ) holds
b1 = b2
proof
let F1, F2 be Function of (Morphs V),V; ::_thesis: ( ( for f being Element of Morphs V holds F1 . f = cod f ) & ( for f being Element of Morphs V holds F2 . f = cod f ) implies F1 = F2 )
assume that
A5: for f being Element of Morphs V holds F1 . f = cod f and
A6: for f being Element of Morphs V holds F2 . f = cod f ; ::_thesis: F1 = F2
now__::_thesis:_for_f_being_Element_of_Morphs_V_holds_F1_._f_=_F2_._f
let f be Element of Morphs V; ::_thesis: F1 . f = F2 . f
F1 . f = cod f by A5;
hence F1 . f = F2 . f by A6; ::_thesis: verum
end;
hence F1 = F2 by FUNCT_2:63; ::_thesis: verum
end;
end;
:: deftheorem Def27 defines dom GRCAT_1:def_27_:_
for V being Group_DOMAIN
for b2 being Function of (Morphs V),V holds
( b2 = dom V iff for f being Element of Morphs V holds b2 . f = dom f );
:: deftheorem Def28 defines cod GRCAT_1:def_28_:_
for V being Group_DOMAIN
for b2 being Function of (Morphs V),V holds
( b2 = cod V iff for f being Element of Morphs V holds b2 . f = cod f );
theorem Th31: :: GRCAT_1:31
for V being Group_DOMAIN
for g, f being Element of Morphs V st dom g = cod f holds
ex G1, G2, G3 being strict Element of V st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 )
proof
let V be Group_DOMAIN; ::_thesis: for g, f being Element of Morphs V st dom g = cod f holds
ex G1, G2, G3 being strict Element of V st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 )
set X = Morphs V;
defpred S1[ Element of Morphs V, Element of Morphs V] means dom $1 = cod $2;
let g, f be Element of Morphs V; ::_thesis: ( dom g = cod f implies ex G1, G2, G3 being strict Element of V st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 ) )
assume A1: S1[g,f] ; ::_thesis: ex G1, G2, G3 being strict Element of V st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 )
consider G2, G3 being strict Element of V such that
A2: g is strict Morphism of G2,G3 by Def25;
consider G1, G29 being strict Element of V such that
A3: f is strict Morphism of G1,G29 by Def25;
A4: G29 = cod f by A3, Def14;
G2 = dom g by A2, Def14;
hence ex G1, G2, G3 being strict Element of V st
( g is Morphism of G2,G3 & f is Morphism of G1,G2 ) by A1, A2, A3, A4; ::_thesis: verum
end;
theorem Th32: :: GRCAT_1:32
for V being Group_DOMAIN
for g, f being Element of Morphs V st dom g = cod f holds
g * f in Morphs V
proof
let V be Group_DOMAIN; ::_thesis: for g, f being Element of Morphs V st dom g = cod f holds
g * f in Morphs V
set X = Morphs V;
defpred S1[ Element of Morphs V, Element of Morphs V] means dom $1 = cod $2;
let g, f be Element of Morphs V; ::_thesis: ( dom g = cod f implies g * f in Morphs V )
assume S1[g,f] ; ::_thesis: g * f in Morphs V
then consider G1, G2, G3 being strict Element of V such that
A1: g is Morphism of G2,G3 and
A2: f is Morphism of G1,G2 by Th31;
reconsider f9 = f as Morphism of G1,G2 by A2;
reconsider g9 = g as Morphism of G2,G3 by A1;
g9 * f9 is Morphism of G1,G3 ;
hence g * f in Morphs V by Def25; ::_thesis: verum
end;
definition
let V be Group_DOMAIN;
func comp V -> PartFunc of [:(Morphs V),(Morphs V):],(Morphs V) means :Def30: :: GRCAT_1:def 29
( ( for g, f being Element of Morphs V holds
( [g,f] in dom it iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom it holds
it . (g,f) = g * f ) );
existence
ex b1 being PartFunc of [:(Morphs V),(Morphs V):],(Morphs V) st
( ( for g, f being Element of Morphs V holds
( [g,f] in dom b1 iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom b1 holds
b1 . (g,f) = g * f ) )
proof
set X = Morphs V;
defpred S1[ Element of Morphs V, Element of Morphs V] means dom $1 = cod $2;
deffunc H1( Element of Morphs V, Element of Morphs V) -> strict GroupMorphism = $1 * $2;
A1: for g, f being Element of Morphs V st S1[g,f] holds
H1(g,f) in Morphs V by Th32;
consider c being PartFunc of [:(Morphs V),(Morphs V):],(Morphs V) such that
A2: ( ( for g, f being Element of Morphs V holds
( [g,f] in dom c iff S1[g,f] ) ) & ( for g, f being Element of Morphs V st [g,f] in dom c holds
c . (g,f) = H1(g,f) ) ) from BINOP_1:sch_8(A1);
take c ; ::_thesis: ( ( for g, f being Element of Morphs V holds
( [g,f] in dom c iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom c holds
c . (g,f) = g * f ) )
thus ( ( for g, f being Element of Morphs V holds
( [g,f] in dom c iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom c holds
c . (g,f) = g * f ) ) by A2; ::_thesis: verum
end;
uniqueness
for b1, b2 being PartFunc of [:(Morphs V),(Morphs V):],(Morphs V) st ( for g, f being Element of Morphs V holds
( [g,f] in dom b1 iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom b1 holds
b1 . (g,f) = g * f ) & ( for g, f being Element of Morphs V holds
( [g,f] in dom b2 iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom b2 holds
b2 . (g,f) = g * f ) holds
b1 = b2
proof
set X = Morphs V;
defpred S1[ Element of Morphs V, Element of Morphs V] means dom $1 = cod $2;
let c1, c2 be PartFunc of [:(Morphs V),(Morphs V):],(Morphs V); ::_thesis: ( ( for g, f being Element of Morphs V holds
( [g,f] in dom c1 iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom c1 holds
c1 . (g,f) = g * f ) & ( for g, f being Element of Morphs V holds
( [g,f] in dom c2 iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom c2 holds
c2 . (g,f) = g * f ) implies c1 = c2 )
assume that
A3: for g, f being Element of Morphs V holds
( [g,f] in dom c1 iff S1[g,f] ) and
A4: for g, f being Element of Morphs V st [g,f] in dom c1 holds
c1 . (g,f) = g * f and
A5: for g, f being Element of Morphs V holds
( [g,f] in dom c2 iff S1[g,f] ) and
A6: for g, f being Element of Morphs V st [g,f] in dom c2 holds
c2 . (g,f) = g * f ; ::_thesis: c1 = c2
set V9 = dom c1;
A7: dom c1 c= [:(Morphs V),(Morphs V):] by RELAT_1:def_18;
now__::_thesis:_for_x_being_set_st_x_in_dom_c1_holds_
x_in_dom_c2
let x be set ; ::_thesis: ( x in dom c1 implies x in dom c2 )
assume A8: x in dom c1 ; ::_thesis: x in dom c2
then consider g, f being Element of Morphs V such that
A9: x = [g,f] by A7, SUBSET_1:43;
S1[g,f] by A3, A8, A9;
hence x in dom c2 by A5, A9; ::_thesis: verum
end;
then A10: dom c1 c= dom c2 by TARSKI:def_3;
A11: for x, y being set st [x,y] in dom c1 holds
c1 . (x,y) = c2 . (x,y)
proof
let x, y be set ; ::_thesis: ( [x,y] in dom c1 implies c1 . (x,y) = c2 . (x,y) )
assume A12: [x,y] in dom c1 ; ::_thesis: c1 . (x,y) = c2 . (x,y)
then reconsider x = x, y = y as Element of Morphs V by A7, ZFMISC_1:87;
c1 . (x,y) = x * y by A4, A12;
hence c1 . (x,y) = c2 . (x,y) by A6, A10, A12; ::_thesis: verum
end;
now__::_thesis:_for_x_being_set_st_x_in_dom_c2_holds_
x_in_dom_c1
let x be set ; ::_thesis: ( x in dom c2 implies x in dom c1 )
assume A13: x in dom c2 ; ::_thesis: x in dom c1
dom c2 c= [:(Morphs V),(Morphs V):] by RELAT_1:def_18;
then consider g, f being Element of Morphs V such that
A14: x = [g,f] by A13, SUBSET_1:43;
S1[g,f] by A5, A13, A14;
hence x in dom c1 by A3, A14; ::_thesis: verum
end;
then dom c2 c= dom c1 by TARSKI:def_3;
then dom c1 = dom c2 by A10, XBOOLE_0:def_10;
hence c1 = c2 by A11, BINOP_1:20; ::_thesis: verum
end;
end;
:: deftheorem Def30 defines comp GRCAT_1:def_29_:_
for V being Group_DOMAIN
for b2 being PartFunc of [:(Morphs V),(Morphs V):],(Morphs V) holds
( b2 = comp V iff ( ( for g, f being Element of Morphs V holds
( [g,f] in dom b2 iff dom g = cod f ) ) & ( for g, f being Element of Morphs V st [g,f] in dom b2 holds
b2 . (g,f) = g * f ) ) );
definition
let UN be Universe;
func GroupCat UN -> non empty non void strict CatStr equals :: GRCAT_1:def 30
CatStr(# (GroupObjects UN),(Morphs (GroupObjects UN)),(dom (GroupObjects UN)),(cod (GroupObjects UN)),(comp (GroupObjects UN)) #);
coherence
CatStr(# (GroupObjects UN),(Morphs (GroupObjects UN)),(dom (GroupObjects UN)),(cod (GroupObjects UN)),(comp (GroupObjects UN)) #) is non empty non void strict CatStr ;
end;
:: deftheorem defines GroupCat GRCAT_1:def_30_:_
for UN being Universe holds GroupCat UN = CatStr(# (GroupObjects UN),(Morphs (GroupObjects UN)),(dom (GroupObjects UN)),(cod (GroupObjects UN)),(comp (GroupObjects UN)) #);
registration
let UN be Universe;
cluster GroupCat UN -> non empty non void strict ;
coherence
( GroupCat UN is strict & not GroupCat UN is void & not GroupCat UN is empty ) ;
end;
theorem Th33: :: GRCAT_1:33
for UN being Universe
for f, g being Morphism of (GroupCat UN) holds
( [g,f] in dom the Comp of (GroupCat UN) iff dom g = cod f )
proof
let UN be Universe; ::_thesis: for f, g being Morphism of (GroupCat UN) holds
( [g,f] in dom the Comp of (GroupCat UN) iff dom g = cod f )
set C = GroupCat UN;
set V = GroupObjects UN;
let f, g be Morphism of (GroupCat UN); ::_thesis: ( [g,f] in dom the Comp of (GroupCat UN) iff dom g = cod f )
reconsider f9 = f as Element of Morphs (GroupObjects UN) ;
reconsider g9 = g as Element of Morphs (GroupObjects UN) ;
( dom g = dom g9 & cod f = cod f9 ) by Def27, Def28;
hence ( [g,f] in dom the Comp of (GroupCat UN) iff dom g = cod f ) by Def30; ::_thesis: verum
end;
theorem Th34: :: GRCAT_1:34
for UN being Universe
for f being Morphism of (GroupCat UN)
for f9 being Element of Morphs (GroupObjects UN)
for b being Object of (GroupCat UN)
for b9 being Element of GroupObjects UN holds
( f is strict Element of Morphs (GroupObjects UN) & f9 is Morphism of (GroupCat UN) & b is strict Element of GroupObjects UN & b9 is Object of (GroupCat UN) )
proof
let UN be Universe; ::_thesis: for f being Morphism of (GroupCat UN)
for f9 being Element of Morphs (GroupObjects UN)
for b being Object of (GroupCat UN)
for b9 being Element of GroupObjects UN holds
( f is strict Element of Morphs (GroupObjects UN) & f9 is Morphism of (GroupCat UN) & b is strict Element of GroupObjects UN & b9 is Object of (GroupCat UN) )
set C = GroupCat UN;
set V = GroupObjects UN;
set X = Morphs (GroupObjects UN);
let f be Morphism of (GroupCat UN); ::_thesis: for f9 being Element of Morphs (GroupObjects UN)
for b being Object of (GroupCat UN)
for b9 being Element of GroupObjects UN holds
( f is strict Element of Morphs (GroupObjects UN) & f9 is Morphism of (GroupCat UN) & b is strict Element of GroupObjects UN & b9 is Object of (GroupCat UN) )
let f9 be Element of Morphs (GroupObjects UN); ::_thesis: for b being Object of (GroupCat UN)
for b9 being Element of GroupObjects UN holds
( f is strict Element of Morphs (GroupObjects UN) & f9 is Morphism of (GroupCat UN) & b is strict Element of GroupObjects UN & b9 is Object of (GroupCat UN) )
let b be Object of (GroupCat UN); ::_thesis: for b9 being Element of GroupObjects UN holds
( f is strict Element of Morphs (GroupObjects UN) & f9 is Morphism of (GroupCat UN) & b is strict Element of GroupObjects UN & b9 is Object of (GroupCat UN) )
let b9 be Element of GroupObjects UN; ::_thesis: ( f is strict Element of Morphs (GroupObjects UN) & f9 is Morphism of (GroupCat UN) & b is strict Element of GroupObjects UN & b9 is Object of (GroupCat UN) )
consider x being set such that
x in UN and
A1: GO x,b by Def24;
ex G, H being strict Element of GroupObjects UN st f is strict Morphism of G,H by Def25;
hence f is strict Element of Morphs (GroupObjects UN) ; ::_thesis: ( f9 is Morphism of (GroupCat UN) & b is strict Element of GroupObjects UN & b9 is Object of (GroupCat UN) )
thus f9 is Morphism of (GroupCat UN) ; ::_thesis: ( b is strict Element of GroupObjects UN & b9 is Object of (GroupCat UN) )
ex x1, x2, x3, x4 being set st
( x = [x1,x2,x3,x4] & ex G being strict AddGroup st
( b = G & x1 = the carrier of G & x2 = the addF of G & x3 = comp G & x4 = 0. G ) ) by A1, Def23;
hence b is strict Element of GroupObjects UN ; ::_thesis: b9 is Object of (GroupCat UN)
thus b9 is Object of (GroupCat UN) ; ::_thesis: verum
end;
theorem :: GRCAT_1:35
canceled;
theorem Th36: :: GRCAT_1:36
for UN being Universe
for f, g being Morphism of (GroupCat UN)
for f9, g9 being Element of Morphs (GroupObjects UN) st f = f9 & g = g9 holds
( ( dom g = cod f implies dom g9 = cod f9 ) & ( dom g9 = cod f9 implies dom g = cod f ) & ( dom g = cod f implies [g9,f9] in dom (comp (GroupObjects UN)) ) & ( [g9,f9] in dom (comp (GroupObjects UN)) implies dom g = cod f ) & ( dom g = cod f implies g (*) f = g9 * f9 ) & ( dom f = dom g implies dom f9 = dom g9 ) & ( dom f9 = dom g9 implies dom f = dom g ) & ( cod f = cod g implies cod f9 = cod g9 ) & ( cod f9 = cod g9 implies cod f = cod g ) )
proof
let UN be Universe; ::_thesis: for f, g being Morphism of (GroupCat UN)
for f9, g9 being Element of Morphs (GroupObjects UN) st f = f9 & g = g9 holds
( ( dom g = cod f implies dom g9 = cod f9 ) & ( dom g9 = cod f9 implies dom g = cod f ) & ( dom g = cod f implies [g9,f9] in dom (comp (GroupObjects UN)) ) & ( [g9,f9] in dom (comp (GroupObjects UN)) implies dom g = cod f ) & ( dom g = cod f implies g (*) f = g9 * f9 ) & ( dom f = dom g implies dom f9 = dom g9 ) & ( dom f9 = dom g9 implies dom f = dom g ) & ( cod f = cod g implies cod f9 = cod g9 ) & ( cod f9 = cod g9 implies cod f = cod g ) )
set C = GroupCat UN;
set V = GroupObjects UN;
set X = Morphs (GroupObjects UN);
let f, g be Morphism of (GroupCat UN); ::_thesis: for f9, g9 being Element of Morphs (GroupObjects UN) st f = f9 & g = g9 holds
( ( dom g = cod f implies dom g9 = cod f9 ) & ( dom g9 = cod f9 implies dom g = cod f ) & ( dom g = cod f implies [g9,f9] in dom (comp (GroupObjects UN)) ) & ( [g9,f9] in dom (comp (GroupObjects UN)) implies dom g = cod f ) & ( dom g = cod f implies g (*) f = g9 * f9 ) & ( dom f = dom g implies dom f9 = dom g9 ) & ( dom f9 = dom g9 implies dom f = dom g ) & ( cod f = cod g implies cod f9 = cod g9 ) & ( cod f9 = cod g9 implies cod f = cod g ) )
let f9, g9 be Element of Morphs (GroupObjects UN); ::_thesis: ( f = f9 & g = g9 implies ( ( dom g = cod f implies dom g9 = cod f9 ) & ( dom g9 = cod f9 implies dom g = cod f ) & ( dom g = cod f implies [g9,f9] in dom (comp (GroupObjects UN)) ) & ( [g9,f9] in dom (comp (GroupObjects UN)) implies dom g = cod f ) & ( dom g = cod f implies g (*) f = g9 * f9 ) & ( dom f = dom g implies dom f9 = dom g9 ) & ( dom f9 = dom g9 implies dom f = dom g ) & ( cod f = cod g implies cod f9 = cod g9 ) & ( cod f9 = cod g9 implies cod f = cod g ) ) )
assume that
A1: f = f9 and
A2: g = g9 ; ::_thesis: ( ( dom g = cod f implies dom g9 = cod f9 ) & ( dom g9 = cod f9 implies dom g = cod f ) & ( dom g = cod f implies [g9,f9] in dom (comp (GroupObjects UN)) ) & ( [g9,f9] in dom (comp (GroupObjects UN)) implies dom g = cod f ) & ( dom g = cod f implies g (*) f = g9 * f9 ) & ( dom f = dom g implies dom f9 = dom g9 ) & ( dom f9 = dom g9 implies dom f = dom g ) & ( cod f = cod g implies cod f9 = cod g9 ) & ( cod f9 = cod g9 implies cod f = cod g ) )
A3: cod f = cod f9 by A1, Def28;
hence ( dom g = cod f iff dom g9 = cod f9 ) by A2, Def27; ::_thesis: ( ( dom g = cod f implies [g9,f9] in dom (comp (GroupObjects UN)) ) & ( [g9,f9] in dom (comp (GroupObjects UN)) implies dom g = cod f ) & ( dom g = cod f implies g (*) f = g9 * f9 ) & ( dom f = dom g implies dom f9 = dom g9 ) & ( dom f9 = dom g9 implies dom f = dom g ) & ( cod f = cod g implies cod f9 = cod g9 ) & ( cod f9 = cod g9 implies cod f = cod g ) )
dom g = dom g9 by A2, Def27;
hence A4: ( dom g = cod f iff [g9,f9] in dom (comp (GroupObjects UN)) ) by A3, Def30; ::_thesis: ( ( dom g = cod f implies g (*) f = g9 * f9 ) & ( dom f = dom g implies dom f9 = dom g9 ) & ( dom f9 = dom g9 implies dom f = dom g ) & ( cod f = cod g implies cod f9 = cod g9 ) & ( cod f9 = cod g9 implies cod f = cod g ) )
thus ( dom g = cod f implies g (*) f = g9 * f9 ) ::_thesis: ( ( dom f = dom g implies dom f9 = dom g9 ) & ( dom f9 = dom g9 implies dom f = dom g ) & ( cod f = cod g implies cod f9 = cod g9 ) & ( cod f9 = cod g9 implies cod f = cod g ) )
proof
assume A5: dom g = cod f ; ::_thesis: g (*) f = g9 * f9
then [g,f] in dom the Comp of (GroupCat UN) by Th33;
hence g (*) f = (comp (GroupObjects UN)) . (g9,f9) by A1, A2, CAT_1:def_1
.= g9 * f9 by A4, A5, Def30 ;
::_thesis: verum
end;
dom f = dom f9 by A1, Def27;
hence ( dom f = dom g iff dom f9 = dom g9 ) by A2, Def27; ::_thesis: ( cod f = cod g iff cod f9 = cod g9 )
cod g = cod g9 by A2, Def28;
hence ( cod f = cod g iff cod f9 = cod g9 ) by A1, Def28; ::_thesis: verum
end;
Lm1: for UN being Universe
for f, g being Morphism of (GroupCat UN) st dom g = cod f holds
( dom (g (*) f) = dom f & cod (g (*) f) = cod g )
proof
let UN be Universe; ::_thesis: for f, g being Morphism of (GroupCat UN) st dom g = cod f holds
( dom (g (*) f) = dom f & cod (g (*) f) = cod g )
set X = Morphs (GroupObjects UN);
let f, g be Morphism of (GroupCat UN); ::_thesis: ( dom g = cod f implies ( dom (g (*) f) = dom f & cod (g (*) f) = cod g ) )
assume A1: dom g = cod f ; ::_thesis: ( dom (g (*) f) = dom f & cod (g (*) f) = cod g )
reconsider g9 = g as strict Element of Morphs (GroupObjects UN) by Th34;
reconsider f9 = f as strict Element of Morphs (GroupObjects UN) by Th34;
A2: dom g9 = cod f9 by A1, Th36;
then reconsider gf = g9 * f9 as Element of Morphs (GroupObjects UN) by Th32;
A3: gf = g (*) f by A1, Th36;
( dom (g9 * f9) = dom f9 & cod (g9 * f9) = cod g9 ) by A2, Th20;
hence ( dom (g (*) f) = dom f & cod (g (*) f) = cod g ) by A3, Th36; ::_thesis: verum
end;
registration
let UN be Universe;
cluster GroupCat UN -> non empty non void strict Category-like reflexive ;
coherence
( GroupCat UN is reflexive & GroupCat UN is Category-like )
proof
set C = GroupCat UN;
thus GroupCat UN is reflexive ::_thesis: GroupCat UN is Category-like
proof
let a be Element of (GroupCat UN); :: according to CAT_1:def_9 ::_thesis: not Hom (a,a) = {}
reconsider G = a as Element of GroupObjects UN ;
consider x being set such that
x in UN and
W2: GO x,G by Def24;
set ii = ID G;
consider x1, x2, x3, x4 being set such that
x = [x1,x2,x3,x4] and
W3: ex H being strict AddGroup st
( G = H & x1 = the carrier of H & x2 = the addF of H & x3 = comp H & x4 = 0. H ) by W2, Def23;
reconsider G = G as strict Element of GroupObjects UN by W3;
reconsider ii = ID G as Morphism of (GroupCat UN) ;
reconsider ia = ii as GroupMorphismStr ;
A: dom ii = dom ia by Def27
.= a ;
cod ii = cod ia by Def28
.= a ;
then ii in Hom (a,a) by A;
hence Hom (a,a) <> {} ; ::_thesis: verum
end;
let f, g be Morphism of (GroupCat UN); :: according to CAT_1:def_6 ::_thesis: ( ( not [g,f] in proj1 the Comp of (GroupCat UN) or dom g = cod f ) & ( not dom g = cod f or [g,f] in proj1 the Comp of (GroupCat UN) ) )
reconsider ff = f, gg = g as Element of Morphs (GroupObjects UN) ;
thus ( [g,f] in dom the Comp of (GroupCat UN) iff dom g = cod f ) by Th36; ::_thesis: verum
end;
end;
Lm3: for UN being Universe
for a being Element of (GroupCat UN)
for aa being Element of GroupObjects UN st a = aa holds
for i being Morphism of a,a st i = ID aa holds
for b being Element of (GroupCat UN) holds
( ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) )
proof
let UN be Universe; ::_thesis: for a being Element of (GroupCat UN)
for aa being Element of GroupObjects UN st a = aa holds
for i being Morphism of a,a st i = ID aa holds
for b being Element of (GroupCat UN) holds
( ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) )
let a be Element of (GroupCat UN); ::_thesis: for aa being Element of GroupObjects UN st a = aa holds
for i being Morphism of a,a st i = ID aa holds
for b being Element of (GroupCat UN) holds
( ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) )
let aa be Element of GroupObjects UN; ::_thesis: ( a = aa implies for i being Morphism of a,a st i = ID aa holds
for b being Element of (GroupCat UN) holds
( ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) ) )
assume a = aa ; ::_thesis: for i being Morphism of a,a st i = ID aa holds
for b being Element of (GroupCat UN) holds
( ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) )
let i be Morphism of a,a; ::_thesis: ( i = ID aa implies for b being Element of (GroupCat UN) holds
( ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) ) )
assume Z2: i = ID aa ; ::_thesis: for b being Element of (GroupCat UN) holds
( ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) )
let b be Element of (GroupCat UN); ::_thesis: ( ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) )
thus ( Hom (a,b) <> {} implies for g being Morphism of a,b holds g (*) i = g ) ::_thesis: ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f )
proof
assume Z3: Hom (a,b) <> {} ; ::_thesis: for g being Morphism of a,b holds g (*) i = g
let g be Morphism of a,b; ::_thesis: g (*) i = g
reconsider gg = g, ii = i as Element of Morphs (GroupObjects UN) ;
consider G1, H1 being strict Element of GroupObjects UN such that
W1: gg is strict Morphism of G1,H1 by Def25;
consider f being Function of G1,H1 such that
W2: gg = GroupMorphismStr(# G1,H1,f #) by W1, Th13;
D: ii = GroupMorphismStr(# aa,aa,(id aa) #) by Z2;
C: cod ii = aa by Z2;
C2: dom gg = G1 by W2;
E: Hom (a,a) <> {} ;
dom g = a by Z3, CAT_1:5
.= cod i by E, CAT_1:5 ;
then C1: dom gg = cod ii by Th36;
then aa = dom gg by C;
then B: aa = G1 by C2;
then reconsider f = f as Function of aa,H1 ;
G1: GroupMorphismStr(# the Source of gg, the Target of gg, the Fun of gg #) = GroupMorphismStr(# aa,H1,f #) by W2, B;
A: [gg,ii] in dom (comp (GroupObjects UN)) by Def30, C1;
then [g,i] in dom the Comp of (GroupCat UN) ;
hence g (*) i = the Comp of (GroupCat UN) . (g,i) by CAT_1:def_1
.= (comp (GroupObjects UN)) . (g,i)
.= gg * ii by A, Def30
.= GroupMorphismStr(# aa,H1,(f * (id aa)) #) by D, Def16, G1, C1
.= GroupMorphismStr(# aa,H1,f #) by FUNCT_2:17
.= g by B, W2 ;
::_thesis: verum
end;
thus ( Hom (b,a) <> {} implies for f being Morphism of b,a holds i (*) f = f ) ::_thesis: verum
proof
assume Z3: Hom (b,a) <> {} ; ::_thesis: for f being Morphism of b,a holds i (*) f = f
let g be Morphism of b,a; ::_thesis: i (*) g = g
reconsider gg = g, ii = i as Element of Morphs (GroupObjects UN) ;
consider G1, H1 being strict Element of GroupObjects UN such that
W1: gg is strict Morphism of G1,H1 by Def25;
consider f being Function of G1,H1 such that
W2: gg = GroupMorphismStr(# G1,H1,f #) by W1, Th13;
D: ii = GroupMorphismStr(# aa,aa,(id aa) #) by Z2;
C: dom ii = aa by Z2;
C2: cod gg = H1 by W2;
E: Hom (a,a) <> {} ;
cod g = a by Z3, CAT_1:5
.= dom i by E, CAT_1:5 ;
then C1: cod gg = dom ii by Th36;
then aa = cod gg by C;
then B: aa = H1 by C2;
then reconsider f = f as Function of G1,aa ;
G1: GroupMorphismStr(# the Source of gg, the Target of gg, the Fun of gg #) = GroupMorphismStr(# G1,aa,f #) by W2, B;
A: [ii,gg] in dom (comp (GroupObjects UN)) by Def30, C1;
then [i,g] in dom the Comp of (GroupCat UN) ;
hence i (*) g = the Comp of (GroupCat UN) . (i,g) by CAT_1:def_1
.= (comp (GroupObjects UN)) . (i,g)
.= ii * gg by A, Def30
.= GroupMorphismStr(# G1,aa,((id aa) * f) #) by D, Def16, G1, C1
.= GroupMorphismStr(# G1,aa,f #) by FUNCT_2:17
.= g by B, W2 ;
::_thesis: verum
end;
end;
registration
let UN be Universe;
cluster GroupCat UN -> non empty non void strict transitive associative with_identities ;
coherence
( GroupCat UN is transitive & GroupCat UN is associative & GroupCat UN is with_identities )
proof
set C = GroupCat UN;
set X = Morphs (GroupObjects UN);
thus GroupCat UN is transitive ::_thesis: ( GroupCat UN is associative & GroupCat UN is with_identities )
proof
let f, g be Morphism of (GroupCat UN); :: according to CAT_1:def_7 ::_thesis: ( not dom g = cod f or ( dom (g (*) f) = dom f & cod (g (*) f) = cod g ) )
assume A1: dom g = cod f ; ::_thesis: ( dom (g (*) f) = dom f & cod (g (*) f) = cod g )
reconsider g9 = g as strict Element of Morphs (GroupObjects UN) by Th34;
reconsider f9 = f as strict Element of Morphs (GroupObjects UN) by Th34;
A2: dom g9 = cod f9 by A1, Th36;
then reconsider gf = g9 * f9 as Element of Morphs (GroupObjects UN) by Th32;
A3: gf = g (*) f by A1, Th36;
( dom (g9 * f9) = dom f9 & cod (g9 * f9) = cod g9 ) by A2, Th20;
hence ( dom (g (*) f) = dom f & cod (g (*) f) = cod g ) by A3, Th36; ::_thesis: verum
end;
thus GroupCat UN is associative ::_thesis: GroupCat UN is with_identities
proof
let f, g, h be Morphism of (GroupCat UN); :: according to CAT_1:def_8 ::_thesis: ( not dom h = cod g or not dom g = cod f or h (*) (g (*) f) = (h (*) g) (*) f )
assume A1: ( dom h = cod g & dom g = cod f ) ; ::_thesis: h (*) (g (*) f) = (h (*) g) (*) f
reconsider f9 = f, g9 = g, h9 = h as strict Element of Morphs (GroupObjects UN) by Th34;
A2: ( h9 * g9 = h (*) g & dom (h (*) g) = cod f ) by A1, Lm1, Th36;
A3: ( dom h9 = cod g9 & dom g9 = cod f9 ) by A1, Th36;
then reconsider gf = g9 * f9, hg = h9 * g9 as Element of Morphs (GroupObjects UN) by Th32;
( g9 * f9 = g (*) f & dom h = cod (g (*) f) ) by A1, Lm1, Th36;
then h (*) (g (*) f) = h9 * gf by Th36
.= hg * f9 by A3, Th22
.= (h (*) g) (*) f by A2, Th36 ;
hence h (*) (g (*) f) = (h (*) g) (*) f ; ::_thesis: verum
end;
thus GroupCat UN is with_identities ::_thesis: verum
proof
let a be Element of (GroupCat UN); :: according to CAT_1:def_10 ::_thesis: ex b1 being Morphism of a,a st
for b2 being Element of the carrier of (GroupCat UN) holds
( ( Hom (a,b2) = {} or for b3 being Morphism of a,b2 holds b3 (*) b1 = b3 ) & ( Hom (b2,a) = {} or for b3 being Morphism of b2,a holds b1 (*) b3 = b3 ) )
reconsider aa = a as Element of GroupObjects UN ;
reconsider ii = ID aa as Morphism of (GroupCat UN) ;
reconsider ia = ii as GroupMorphismStr ;
A: dom ii = dom ia by Def27
.= a ;
cod ii = cod ia by Def28
.= a ;
then reconsider ii = ii as Morphism of a,a by A, CAT_1:4;
take ii ; ::_thesis: for b1 being Element of the carrier of (GroupCat UN) holds
( ( Hom (a,b1) = {} or for b2 being Morphism of a,b1 holds b2 (*) ii = b2 ) & ( Hom (b1,a) = {} or for b2 being Morphism of b1,a holds ii (*) b2 = b2 ) )
thus for b1 being Element of the carrier of (GroupCat UN) holds
( ( Hom (a,b1) = {} or for b2 being Morphism of a,b1 holds b2 (*) ii = b2 ) & ( Hom (b1,a) = {} or for b2 being Morphism of b1,a holds ii (*) b2 = b2 ) ) by Lm3; ::_thesis: verum
end;
end;
end;
definition
let UN be Universe;
func AbGroupObjects UN -> Subset of the carrier of (GroupCat UN) equals :: GRCAT_1:def 31
{ G where G is Element of (GroupCat UN) : ex H being AbGroup st G = H } ;
coherence
{ G where G is Element of (GroupCat UN) : ex H being AbGroup st G = H } is Subset of the carrier of (GroupCat UN)
proof
set D2 = the carrier of (GroupCat UN);
now__::_thesis:_for_x_being_set_st_x_in__{__G_where_G_is_Element_of_the_carrier_of_(GroupCat_UN)_:_ex_H_being_AbGroup_st_G_=_H__}__holds_
x_in_the_carrier_of_(GroupCat_UN)
let x be set ; ::_thesis: ( x in { G where G is Element of the carrier of (GroupCat UN) : ex H being AbGroup st G = H } implies x in the carrier of (GroupCat UN) )
assume x in { G where G is Element of the carrier of (GroupCat UN) : ex H being AbGroup st G = H } ; ::_thesis: x in the carrier of (GroupCat UN)
then ex G being Element of the carrier of (GroupCat UN) st
( x = G & ex H being AbGroup st G = H ) ;
hence x in the carrier of (GroupCat UN) ; ::_thesis: verum
end;
hence { G where G is Element of (GroupCat UN) : ex H being AbGroup st G = H } is Subset of the carrier of (GroupCat UN) by TARSKI:def_3; ::_thesis: verum
end;
end;
:: deftheorem defines AbGroupObjects GRCAT_1:def_31_:_
for UN being Universe holds AbGroupObjects UN = { G where G is Element of (GroupCat UN) : ex H being AbGroup st G = H } ;
theorem Th37: :: GRCAT_1:37
for UN being Universe holds Trivial-addLoopStr in AbGroupObjects UN
proof
let UN be Universe; ::_thesis: Trivial-addLoopStr in AbGroupObjects UN
Trivial-addLoopStr in the carrier of (GroupCat UN) by Th29;
hence Trivial-addLoopStr in AbGroupObjects UN ; ::_thesis: verum
end;
registration
let UN be Universe;
cluster AbGroupObjects UN -> non empty ;
coherence
not AbGroupObjects UN is empty by Th37;
end;
definition
let UN be Universe;
func AbGroupCat UN -> Subcategory of GroupCat UN equals :: GRCAT_1:def 32
cat (AbGroupObjects UN);
coherence
cat (AbGroupObjects UN) is Subcategory of GroupCat UN ;
end;
:: deftheorem defines AbGroupCat GRCAT_1:def_32_:_
for UN being Universe holds AbGroupCat UN = cat (AbGroupObjects UN);
registration
let UN be Universe;
cluster AbGroupCat UN -> strict ;
coherence
AbGroupCat UN is strict ;
end;
theorem :: GRCAT_1:38
for UN being Universe holds the carrier of (AbGroupCat UN) = AbGroupObjects UN ;
definition
let UN be Universe;
func MidOpGroupObjects UN -> Subset of the carrier of (AbGroupCat UN) equals :: GRCAT_1:def 33
{ G where G is Element of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } ;
coherence
{ G where G is Element of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } is Subset of the carrier of (AbGroupCat UN)
proof
set D2 = the carrier of (AbGroupCat UN);
now__::_thesis:_for_x_being_set_st_x_in__{__G_where_G_is_Element_of_the_carrier_of_(AbGroupCat_UN)_:_ex_H_being_midpoint_operator_AbGroup_st_G_=_H__}__holds_
x_in_the_carrier_of_(AbGroupCat_UN)
let x be set ; ::_thesis: ( x in { G where G is Element of the carrier of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } implies x in the carrier of (AbGroupCat UN) )
assume x in { G where G is Element of the carrier of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } ; ::_thesis: x in the carrier of (AbGroupCat UN)
then ex G being Element of the carrier of (AbGroupCat UN) st
( x = G & ex H being midpoint_operator AbGroup st G = H ) ;
hence x in the carrier of (AbGroupCat UN) ; ::_thesis: verum
end;
hence { G where G is Element of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } is Subset of the carrier of (AbGroupCat UN) by TARSKI:def_3; ::_thesis: verum
end;
end;
:: deftheorem defines MidOpGroupObjects GRCAT_1:def_33_:_
for UN being Universe holds MidOpGroupObjects UN = { G where G is Element of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } ;
registration
let UN be Universe;
cluster MidOpGroupObjects UN -> non empty ;
coherence
not MidOpGroupObjects UN is empty
proof
set T = Trivial-addLoopStr ;
set D2 = the carrier of (AbGroupCat UN);
set D1 = { G where G is Element of the carrier of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } ;
Trivial-addLoopStr in the carrier of (AbGroupCat UN) by Th37;
then Trivial-addLoopStr in { G where G is Element of the carrier of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } ;
then reconsider D1 = { G where G is Element of the carrier of (AbGroupCat UN) : ex H being midpoint_operator AbGroup st G = H } as non empty set ;
now__::_thesis:_for_x_being_set_st_x_in_D1_holds_
x_in_the_carrier_of_(AbGroupCat_UN)
let x be set ; ::_thesis: ( x in D1 implies x in the carrier of (AbGroupCat UN) )
assume x in D1 ; ::_thesis: x in the carrier of (AbGroupCat UN)
then ex G being Element of the carrier of (AbGroupCat UN) st
( x = G & ex H being midpoint_operator AbGroup st G = H ) ;
hence x in the carrier of (AbGroupCat UN) ; ::_thesis: verum
end;
hence not MidOpGroupObjects UN is empty ; ::_thesis: verum
end;
end;
definition
let UN be Universe;
func MidOpGroupCat UN -> Subcategory of AbGroupCat UN equals :: GRCAT_1:def 34
cat (MidOpGroupObjects UN);
coherence
cat (MidOpGroupObjects UN) is Subcategory of AbGroupCat UN ;
end;
:: deftheorem defines MidOpGroupCat GRCAT_1:def_34_:_
for UN being Universe holds MidOpGroupCat UN = cat (MidOpGroupObjects UN);
registration
let UN be Universe;
cluster MidOpGroupCat UN -> strict ;
coherence
MidOpGroupCat UN is strict ;
end;
theorem :: GRCAT_1:39
for UN being Universe holds the carrier of (MidOpGroupCat UN) = MidOpGroupObjects UN ;
theorem :: GRCAT_1:40
for UN being Universe holds Trivial-addLoopStr in MidOpGroupObjects UN
proof
let UN be Universe; ::_thesis: Trivial-addLoopStr in MidOpGroupObjects UN
Trivial-addLoopStr in the carrier of (AbGroupCat UN) by Th37;
hence Trivial-addLoopStr in MidOpGroupObjects UN ; ::_thesis: verum
end;
theorem :: GRCAT_1:41
for S, T being non empty 1-sorted
for f being Function of S,T st f is one-to-one & f is onto holds
( f * (f ") = id T & (f ") * f = id S & f " is one-to-one & f " is onto )
proof
let S, T be non empty 1-sorted ; ::_thesis: for f being Function of S,T st f is one-to-one & f is onto holds
( f * (f ") = id T & (f ") * f = id S & f " is one-to-one & f " is onto )
let f be Function of S,T; ::_thesis: ( f is one-to-one & f is onto implies ( f * (f ") = id T & (f ") * f = id S & f " is one-to-one & f " is onto ) )
A1: [#] T = the carrier of T ;
assume A2: ( f is one-to-one & f is onto ) ; ::_thesis: ( f * (f ") = id T & (f ") * f = id S & f " is one-to-one & f " is onto )
then A3: rng f = the carrier of T by FUNCT_2:def_3;
then ( dom f = the carrier of S & rng (f ") = [#] S ) by A2, A1, FUNCT_2:def_1, TOPS_2:49;
hence ( f * (f ") = id T & (f ") * f = id S & f " is one-to-one & f " is onto ) by A2, A3, A1, FUNCT_2:def_3, TOPS_2:50, TOPS_2:52; ::_thesis: verum
end;
theorem :: GRCAT_1:42
for UN being Universe
for a being Object of (GroupCat UN)
for aa being Element of GroupObjects UN st a = aa holds
id a = ID aa
proof
let UN be Universe; ::_thesis: for a being Object of (GroupCat UN)
for aa being Element of GroupObjects UN st a = aa holds
id a = ID aa
let a be Object of (GroupCat UN); ::_thesis: for aa being Element of GroupObjects UN st a = aa holds
id a = ID aa
let aa be Element of GroupObjects UN; ::_thesis: ( a = aa implies id a = ID aa )
set C = GroupCat UN;
assume Z: a = aa ; ::_thesis: id a = ID aa
reconsider ii = ID aa as Morphism of (GroupCat UN) ;
reconsider ia = ii as GroupMorphismStr ;
A: dom ii = dom ia by Def27
.= a by Z ;
cod ii = cod ia by Def28
.= a by Z ;
then reconsider ii = ii as Morphism of a,a by A, CAT_1:4;
for b being Object of (GroupCat UN) holds
( ( Hom (a,b) <> {} implies for f being Morphism of a,b holds f (*) ii = f ) & ( Hom (b,a) <> {} implies for f being Morphism of b,a holds ii (*) f = f ) ) by Z, Lm3;
hence id a = ID aa by CAT_1:def_12; ::_thesis: verum
end;