theorem Th4: 
 for 
R being   
Ring  for 
x, 
y1, 
y2 being    
object   st  
GO x,
y1,
R &  
GO x,
y2,
R holds 
y1 = y2
 
definition
let UN be   
Universe;
let R be   
Ring;
existence 
 ex b1 being    set  st 
 for y being    object  holds 
 ( y in b1 iff  ex x being    set  st 
( x in  {  [G,f] where G is    Element of  GroupObjects UN, f is    Element of  Funcs ([: the carrier of R, the carrier of G:], the carrier of G) : verum  }   &  GO x,y,R ) )
 
uniqueness 
 for b1, b2 being    set   st (  for y being    object  holds 
 ( y in b1 iff  ex x being    set  st 
( x in  {  [G,f] where G is    Element of  GroupObjects UN, f is    Element of  Funcs ([: the carrier of R, the carrier of G:], the carrier of G) : verum  }   &  GO x,y,R ) ) ) & (  for y being    object  holds 
 ( y in b2 iff  ex x being    set  st 
( x in  {  [G,f] where G is    Element of  GroupObjects UN, f is    Element of  Funcs ([: the carrier of R, the carrier of G:], the carrier of G) : verum  }   &  GO x,y,R ) ) ) holds 
b1 = b2
 
 
end;
 
definition
let R be   
Ring;
let V be    
LeftMod_DOMAIN of 
R;
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 ) )
 
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
 
 
end;
 
definition
let UN be   
Universe;
let R be   
Ring;
func  LModCat (
UN,
R)
 ->   strict   CatStr  equals 
 CatStr(# 
(LModObjects (UN,R)),
(Morphs (LModObjects (UN,R))),
(dom (LModObjects (UN,R))),
(cod (LModObjects (UN,R))),
(comp (LModObjects (UN,R))) #);
 
coherence 
 CatStr(# (LModObjects (UN,R)),(Morphs (LModObjects (UN,R))),(dom (LModObjects (UN,R))),(cod (LModObjects (UN,R))),(comp (LModObjects (UN,R))) #) is   strict   CatStr 
 ;
 
end;
 
:: 
deftheorem    defines 
LModCat MODCAT_1:def 15 : 
 for UN being   Universe
  for R being   Ring holds   LModCat (UN,R) =  CatStr(# (LModObjects (UN,R)),(Morphs (LModObjects (UN,R))),(dom (LModObjects (UN,R))),(cod (LModObjects (UN,R))),(comp (LModObjects (UN,R))) #);
Lm1: 
 for UN being   Universe
  for R being   Ring
  for f, g being   Morphism of (LModCat (UN,R))  st  dom g =  cod f holds 
(  dom (g (*) f) =  dom f &  cod (g (*) f) =  cod g )
 
Lm2: 
 for UN being   Universe
  for R being   Ring
  for f, g, h being   Morphism of (LModCat (UN,R))  st  dom h =  cod g &  dom g =  cod f holds 
h (*) (g (*) f) = (h (*) g) (*) f
 
 
:: 2. Domains of left modules
::