set X1 = [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:];
defpred S1[ object , object ] means for x being Element of [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:]
for y being Element of free_magma (X,n)
for z being Element of free_magma (X,m) st $1 = x & y = (x `1) `1 & z = (x `1) `2 holds
$2 = (f . y) * (g . z);
A1:
for x being object st x in [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:] holds
ex y being object st
( y in the carrier of M & S1[x,y] )
proof
let x be
object ;
( x in [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:] implies ex y being object st
( y in the carrier of M & S1[x,y] ) )
assume
x in [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:]
;
ex y being object st
( y in the carrier of M & S1[x,y] )
then A2:
x `1 in [:(free_magma (X,n)),(free_magma (X,m)):]
by MCART_1:10;
then reconsider x1 =
(x `1) `1 as
Element of
free_magma (
X,
n)
by MCART_1:10;
reconsider x2 =
(x `1) `2 as
Element of
free_magma (
X,
m)
by A2, MCART_1:10;
set y =
(f . x1) * (g . x2);
take
(f . x1) * (g . x2)
;
( (f . x1) * (g . x2) in the carrier of M & S1[x,(f . x1) * (g . x2)] )
thus
(f . x1) * (g . x2) in the
carrier of
M
;
S1[x,(f . x1) * (g . x2)]
thus
S1[
x,
(f . x1) * (g . x2)]
;
verum
end;
consider h being Function of [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:], the carrier of M such that
A3:
for x being object st x in [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:] holds
S1[x,h . x]
from FUNCT_2:sch 1(A1);
take
h
; for x being Element of [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:]
for y being Element of free_magma (X,n)
for z being Element of free_magma (X,m) st y = (x `1) `1 & z = (x `1) `2 holds
h . x = (f . y) * (g . z)
thus
for x being Element of [:[:(free_magma (X,n)),(free_magma (X,m)):],{n}:]
for y being Element of free_magma (X,n)
for z being Element of free_magma (X,m) st y = (x `1) `1 & z = (x `1) `2 holds
h . x = (f . y) * (g . z)
by A3; verum