let X, Z, Y be non empty set ; for f being Function of X,Y
for g being Function of X,Z st Y c= Z & f = g holds
free_magmaF f = free_magmaF g
let f be Function of X,Y; for g being Function of X,Z st Y c= Z & f = g holds
free_magmaF f = free_magmaF g
let g be Function of X,Z; ( Y c= Z & f = g implies free_magmaF f = free_magmaF g )
assume A1:
Y c= Z
; ( not f = g or free_magmaF f = free_magmaF g )
assume A2:
f = g
; free_magmaF f = free_magmaF g
A3:
the carrier of (free_magma Y) c= the carrier of (free_magma Z)
by A1, Th27;
then reconsider f9 = free_magmaF f as Function of (free_magma X),(free_magma Z) by FUNCT_2:9;
for a, b being Element of (free_magma X) holds f9 . (a * b) = (f9 . a) * (f9 . b)
then A7:
f9 is multiplicative
by GROUP_6:def 7;
rng g c= Z
;
then
rng g c= dom (canon_image Z,1)
by Lm2;
then A8:
dom ((canon_image Z,1) * g) = dom g
by RELAT_1:46;
X c= dom g
by FUNCT_2:def 1;
then
dom (canon_image X,1) c= dom ((canon_image Z,1) * g)
by Lm2, A8;
then
rng ((canon_image X,1) " ) c= dom ((canon_image Z,1) * g)
by FUNCT_1:55;
then A9:
dom (((canon_image Z,1) * g) * ((canon_image X,1) " )) = dom ((canon_image X,1) " )
by RELAT_1:46;
rng (canon_image X,1) c= the carrier of (free_magma X)
;
then
dom (((canon_image Z,1) * g) * ((canon_image X,1) " )) c= the carrier of (free_magma X)
by A9, FUNCT_1:55;
then A10:
dom (((canon_image Z,1) * g) * ((canon_image X,1) " )) c= dom f9
by FUNCT_2:def 1;
for x being set st x in dom (((canon_image Z,1) * g) * ((canon_image X,1) " )) holds
f9 . x = (((canon_image Z,1) * g) * ((canon_image X,1) " )) . x
proof
let x be
set ;
( x in dom (((canon_image Z,1) * g) * ((canon_image X,1) " )) implies f9 . x = (((canon_image Z,1) * g) * ((canon_image X,1) " )) . x )
assume A11:
x in dom (((canon_image Z,1) * g) * ((canon_image X,1) " ))
;
f9 . x = (((canon_image Z,1) * g) * ((canon_image X,1) " )) . x
free_magmaF f extends ((canon_image Y,1) * f) * ((canon_image X,1) " )
by Def22;
then A12:
(
dom (((canon_image Y,1) * f) * ((canon_image X,1) " )) c= dom (free_magmaF f) &
((canon_image Y,1) * f) * ((canon_image X,1) " ) tolerates free_magmaF f )
by Def3;
rng f c= Y
;
then A13:
rng f c= dom (canon_image Y,1)
by Lm2;
rng f c= Z
by A1, XBOOLE_1:1;
then A14:
rng f c= dom (canon_image Z,1)
by Lm2;
A15:
dom ((canon_image Y,1) * f) =
dom f
by A13, RELAT_1:46
.=
dom ((canon_image Z,1) * f)
by A14, RELAT_1:46
;
for
x being
set st
x in dom ((canon_image Y,1) * f) holds
((canon_image Y,1) * f) . x = ((canon_image Z,1) * f) . x
proof
let x be
set ;
( x in dom ((canon_image Y,1) * f) implies ((canon_image Y,1) * f) . x = ((canon_image Z,1) * f) . x )
assume A16:
x in dom ((canon_image Y,1) * f)
;
((canon_image Y,1) * f) . x = ((canon_image Z,1) * f) . x
then A17:
f . x in dom (canon_image Y,1)
by FUNCT_1:21;
then A18:
f . x in Y
by Lm2;
thus ((canon_image Y,1) * f) . x =
(canon_image Y,1) . (f . x)
by A16, FUNCT_1:22
.=
[(f . x),1]
by A17, Def20
.=
(canon_image Z,1) . (f . x)
by A1, A18, Lm2
.=
((canon_image Z,1) * f) . x
by A15, A16, FUNCT_1:22
;
verum
end;
then A19:
(canon_image Y,1) * f = (canon_image Z,1) * g
by A2, A15, FUNCT_1:9;
thus
f9 . x = (((canon_image Z,1) * g) * ((canon_image X,1) " )) . x
by A19, A11, A12, PARTFUN1:132;
verum
end;
then
f9 tolerates ((canon_image Z,1) * g) * ((canon_image X,1) " )
by A10, PARTFUN1:132;
then
f9 extends ((canon_image Z,1) * g) * ((canon_image X,1) " )
by A10, Def3;
hence
free_magmaF f = free_magmaF g
by A7, Def22; verum