let S1, S2 be non empty non void ManySortedSign ; :: thesis: for f, g being Function st f,g form_morphism_between S1,S2 holds
for A being MSAlgebra of S2
for o1 being OperSymbol of S1
for o2 being OperSymbol of S2 st o2 = g . o1 holds
( Args o2,A = Args o1,(A | S1,f,g) & Result o1,(A | S1,f,g) = Result o2,A )

let f, g be Function; :: thesis: ( f,g form_morphism_between S1,S2 implies for A being MSAlgebra of S2
for o1 being OperSymbol of S1
for o2 being OperSymbol of S2 st o2 = g . o1 holds
( Args o2,A = Args o1,(A | S1,f,g) & Result o1,(A | S1,f,g) = Result o2,A ) )

assume A1: f,g form_morphism_between S1,S2 ; :: thesis: for A being MSAlgebra of S2
for o1 being OperSymbol of S1
for o2 being OperSymbol of S2 st o2 = g . o1 holds
( Args o2,A = Args o1,(A | S1,f,g) & Result o1,(A | S1,f,g) = Result o2,A )

A2: dom f = the carrier of S1 by A1, PUA2MSS1:def 13;
let A be MSAlgebra of S2; :: thesis: for o1 being OperSymbol of S1
for o2 being OperSymbol of S2 st o2 = g . o1 holds
( Args o2,A = Args o1,(A | S1,f,g) & Result o1,(A | S1,f,g) = Result o2,A )

let o1 be OperSymbol of S1; :: thesis: for o2 being OperSymbol of S2 st o2 = g . o1 holds
( Args o2,A = Args o1,(A | S1,f,g) & Result o1,(A | S1,f,g) = Result o2,A )

let o2 be OperSymbol of S2; :: thesis: ( o2 = g . o1 implies ( Args o2,A = Args o1,(A | S1,f,g) & Result o1,(A | S1,f,g) = Result o2,A ) )
assume A3: o2 = g . o1 ; :: thesis: ( Args o2,A = Args o1,(A | S1,f,g) & Result o1,(A | S1,f,g) = Result o2,A )
thus Args o2,A = product (the Sorts of A * (the_arity_of o2)) by PRALG_2:10
.= product (the Sorts of A * (f * (the_arity_of o1))) by A1, A3, PUA2MSS1:def 13
.= product ((the Sorts of A * f) * (the_arity_of o1)) by RELAT_1:55
.= product (the Sorts of (A | S1,f,g) * (the_arity_of o1)) by A1, Def3
.= Args o1,(A | S1,f,g) by PRALG_2:10 ; :: thesis: Result o1,(A | S1,f,g) = Result o2,A
dom g = the carrier' of S1 by A1, PUA2MSS1:def 13;
then the_result_sort_of o2 = (the ResultSort of S2 * g) . o1 by A3, FUNCT_1:23
.= (f * the ResultSort of S1) . o1 by A1, PUA2MSS1:def 13
.= f . (the_result_sort_of o1) by FUNCT_2:21 ;
hence Result o2,A = the Sorts of A . (f . (the_result_sort_of o1)) by PRALG_2:10
.= (the Sorts of A * f) . (the_result_sort_of o1) by A2, FUNCT_1:23
.= the Sorts of (A | S1,f,g) . (the_result_sort_of o1) by A1, Def3
.= Result o1,(A | S1,f,g) by PRALG_2:10 ;
:: thesis: verum