let S, S' be non empty non void ManySortedSign ; for A1, A2 being MSAlgebra of S st the Sorts of A1 is_transformable_to the Sorts of A2 holds
for h being ManySortedFunction of ,A1 st h is_homomorphism A1,A2 holds
for f being Function of the carrier of S',the carrier of S
for g being Function st f,g form_morphism_between S',S holds
ex h' being ManySortedFunction of ,(A1 | S',f,g) st
( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g )
let A1, A2 be MSAlgebra of S; ( the Sorts of A1 is_transformable_to the Sorts of A2 implies for h being ManySortedFunction of ,A1 st h is_homomorphism A1,A2 holds
for f being Function of the carrier of S',the carrier of S
for g being Function st f,g form_morphism_between S',S holds
ex h' being ManySortedFunction of ,(A1 | S',f,g) st
( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g ) )
assume A1:
the Sorts of A1 is_transformable_to the Sorts of A2
; for h being ManySortedFunction of ,A1 st h is_homomorphism A1,A2 holds
for f being Function of the carrier of S',the carrier of S
for g being Function st f,g form_morphism_between S',S holds
ex h' being ManySortedFunction of ,(A1 | S',f,g) st
( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g )
let h be ManySortedFunction of ,A1; ( h is_homomorphism A1,A2 implies for f being Function of the carrier of S',the carrier of S
for g being Function st f,g form_morphism_between S',S holds
ex h' being ManySortedFunction of ,(A1 | S',f,g) st
( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g ) )
assume A2:
h is_homomorphism A1,A2
; for f being Function of the carrier of S',the carrier of S
for g being Function st f,g form_morphism_between S',S holds
ex h' being ManySortedFunction of ,(A1 | S',f,g) st
( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g )
let f be Function of the carrier of S',the carrier of S; for g being Function st f,g form_morphism_between S',S holds
ex h' being ManySortedFunction of ,(A1 | S',f,g) st
( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g )
let g be Function; ( f,g form_morphism_between S',S implies ex h' being ManySortedFunction of ,(A1 | S',f,g) st
( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g ) )
assume A3:
f,g form_morphism_between S',S
; ex h' being ManySortedFunction of ,(A1 | S',f,g) st
( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g )
A4:
( dom g = the carrier' of S' & rng g c= the carrier' of S )
by A3, PUA2MSS1:def 13;
set B1 = A1 | S',f,g;
set B2 = A2 | S',f,g;
reconsider g = g as Function of the carrier' of S',the carrier' of S by A4, FUNCT_2:def 1, RELSET_1:11;
A5:
f * the ResultSort of S' = the ResultSort of S * g
by A3, PUA2MSS1:def 13;
reconsider h' = h * f as ManySortedFunction of ,(A1 | S',f,g) by A3, Th30;
take
h'
; ( h' = h * f & h' is_homomorphism A1 | S',f,g,A2 | S',f,g )
thus
h' = h * f
; h' is_homomorphism A1 | S',f,g,A2 | S',f,g
let o be OperSymbol of ; MSUALG_3:def 9 ( Args o,(A1 | S',f,g) = {} or for b1 being Element of Args o,(A1 | S',f,g) holds (h' . (the_result_sort_of o)) . ((Den o,(A1 | S',f,g)) . b1) = (Den o,(A2 | S',f,g)) . (h' # b1) )
set go = g . o;
assume A6:
Args o,(A1 | S',f,g) <> {}
; for b1 being Element of Args o,(A1 | S',f,g) holds (h' . (the_result_sort_of o)) . ((Den o,(A1 | S',f,g)) . b1) = (Den o,(A2 | S',f,g)) . (h' # b1)
let x be Element of Args o,(A1 | S',f,g); (h' . (the_result_sort_of o)) . ((Den o,(A1 | S',f,g)) . x) = (Den o,(A2 | S',f,g)) . (h' # x)
reconsider y = x as Element of Args (g . o),A1 by A3, Th25;
A7: h' . (the_result_sort_of o) =
h . (f . (the_result_sort_of o))
by FUNCT_2:21
.=
h . ((the ResultSort of S * g) . o)
by A5, FUNCT_2:21
.=
h . (the_result_sort_of (g . o))
by FUNCT_2:21
;
A8:
( Den o,(A1 | S',f,g) = Den (g . o),A1 & Den o,(A2 | S',f,g) = Den (g . o),A2 )
by A3, Th24;
A9:
Args o,(A1 | S',f,g) = Args (g . o),A1
by A3, Th25;
A10:
Args o,(A2 | S',f,g) = Args (g . o),A2
by A3, Th25;
then
Args o,(A2 | S',f,g) <> {}
by A1, A6, A9, Th3;
then
h' # x = h # y
by A3, A6, A9, A10, Th34;
hence
(h' . (the_result_sort_of o)) . ((Den o,(A1 | S',f,g)) . x) = (Den o,(A2 | S',f,g)) . (h' # x)
by A2, A6, A9, A8, A7, MSUALG_3:def 9; verum