Lm1:
now for S being non empty non void ManySortedSign
for U1, U2 being MSAlgebra over S
for o being OperSymbol of S
for F being ManySortedFunction of U1,U2
for x being Element of Args (o,U1)
for f, u being Function st f = x & x in Args (o,U1) & u in Args (o,U2) holds
( ( u = F # x implies for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) & ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x ) )
let S be non
empty non
void ManySortedSign ;
for U1, U2 being MSAlgebra over S
for o being OperSymbol of S
for F being ManySortedFunction of U1,U2
for x being Element of Args (o,U1)
for f, u being Function st f = x & x in Args (o,U1) & u in Args (o,U2) holds
( ( u = F # x implies for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) & ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x ) )let U1,
U2 be
MSAlgebra over
S;
for o being OperSymbol of S
for F being ManySortedFunction of U1,U2
for x being Element of Args (o,U1)
for f, u being Function st f = x & x in Args (o,U1) & u in Args (o,U2) holds
( ( u = F # x implies for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) & ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x ) )let o be
OperSymbol of
S;
for F being ManySortedFunction of U1,U2
for x being Element of Args (o,U1)
for f, u being Function st f = x & x in Args (o,U1) & u in Args (o,U2) holds
( ( u = F # x implies for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) & ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x ) )let F be
ManySortedFunction of
U1,
U2;
for x being Element of Args (o,U1)
for f, u being Function st f = x & x in Args (o,U1) & u in Args (o,U2) holds
( ( u = F # x implies for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) & ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x ) )let x be
Element of
Args (
o,
U1);
for f, u being Function st f = x & x in Args (o,U1) & u in Args (o,U2) holds
( ( u = F # x implies for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) & ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x ) )let f,
u be
Function;
( f = x & x in Args (o,U1) & u in Args (o,U2) implies ( ( u = F # x implies for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) & ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x ) ) )assume that A1:
f = x
and A2:
x in Args (
o,
U1)
and A3:
u in Args (
o,
U2)
;
( ( u = F # x implies for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) & ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x ) )A4:
rng (the_arity_of o) c= the
carrier of
S
by FINSEQ_1:def 4;
A6:
F # x = (Frege (F * (the_arity_of o))) . x
by A2, A3, Def5;
A7:
dom ( the Sorts of U1 * (the_arity_of o)) = dom (F * (the_arity_of o))
A11:
Args (
o,
U2)
= product ( the Sorts of U2 * (the_arity_of o))
by PRALG_2:3;
then A12:
dom u = dom ( the Sorts of U2 * (the_arity_of o))
by A3, CARD_3:9;
A13:
Args (
o,
U1)
= product ( the Sorts of U1 * (the_arity_of o))
by PRALG_2:3;
A14:
dom f = dom (the_arity_of o)
by A1, A2, Th6;
rng (the_arity_of o) c= dom the
Sorts of
U2
by A4, PARTFUN1:def 2;
then A15:
dom u = dom (the_arity_of o)
by A12, RELAT_1:27;
set tao =
the_arity_of o;
now for e being object st e in dom (F * (the_arity_of o)) holds
( the Sorts of U1 * (the_arity_of o)) . e = proj1 ((F * (the_arity_of o)) . e)
let e be
object ;
( e in dom (F * (the_arity_of o)) implies ( the Sorts of U1 * (the_arity_of o)) . e = proj1 ((F * (the_arity_of o)) . e) )assume
e in dom (F * (the_arity_of o))
;
( the Sorts of U1 * (the_arity_of o)) . e = proj1 ((F * (the_arity_of o)) . e)then A16:
e in dom (the_arity_of o)
by FUNCT_1:11;
then reconsider Foe =
F . ((the_arity_of o) . e) as
Function of
( the Sorts of U1 . ((the_arity_of o) . e)),
( the Sorts of U2 . ((the_arity_of o) . e)) by FINSEQ_2:11, PBOOLE:def 15;
( the Sorts of U2 * (the_arity_of o)) . e in rng ( the Sorts of U2 * (the_arity_of o))
by A12, A15, A16, FUNCT_1:def 3;
then A17:
( the Sorts of U2 * (the_arity_of o)) . e <> {}
by A3, A11, CARD_3:26;
(
( the Sorts of U1 * (the_arity_of o)) . e = the
Sorts of
U1 . ((the_arity_of o) . e) &
( the Sorts of U2 * (the_arity_of o)) . e = the
Sorts of
U2 . ((the_arity_of o) . e) )
by A16, FUNCT_1:13;
hence ( the Sorts of U1 * (the_arity_of o)) . e =
dom Foe
by A17, FUNCT_2:def 1
.=
proj1 ((F * (the_arity_of o)) . e)
by A16, FUNCT_1:13
;
verum
end;
then A18:
the
Sorts of
U1 * (the_arity_of o) = doms (F * (the_arity_of o))
by A7, FUNCT_6:def 2;
hereby ( ( for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n) ) implies u = F # x )
assume
u = F # x
;
for n being Nat st n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n)then A19:
u = (Frege (F * (the_arity_of o))) . x
by A2, A3, Def5;
let n be
Nat;
( n in dom f implies u . n = (F . ((the_arity_of o) /. n)) . (f . n) )assume A20:
n in dom f
;
u . n = (F . ((the_arity_of o) /. n)) . (f . n)then
(the_arity_of o) . n in the
carrier of
S
by A14, FINSEQ_2:11;
then
(the_arity_of o) . n in dom F
by PARTFUN1:def 2;
then A21:
n in dom (F * (the_arity_of o))
by A14, A20, FUNCT_1:11;
then
n in (dom (F * (the_arity_of o))) /\ (dom f)
by A20, XBOOLE_0:def 4;
then a21:
n in dom ((F * (the_arity_of o)) .. f)
by PRALG_1:def 19;
A22:
(F * (the_arity_of o)) . n =
F . ((the_arity_of o) . n)
by FUNCT_1:12, A21
.=
F . ((the_arity_of o) /. n)
by A14, A20, PARTFUN1:def 6
;
thus u . n =
((F * (the_arity_of o)) .. f) . n
by A1, A2, A13, A18, A19, PRALG_2:def 2
.=
(F . ((the_arity_of o) /. n)) . (f . n)
by A22, PRALG_1:def 19, a21
;
verum
end;
F # x is
Element of
product ( the Sorts of U2 * (the_arity_of o))
by PRALG_2:3;
then reconsider g =
F # x as
Function ;
A23:
rng (the_arity_of o) c= dom F
by A4, PARTFUN1:def 2;
assume A24:
for
n being
Nat st
n in dom f holds
u . n = (F . ((the_arity_of o) /. n)) . (f . n)
;
u = F # x
A25:
now for e being object st e in dom f holds
u . e = g . e
let e be
object ;
( e in dom f implies u . e = g . e )assume A26:
e in dom f
;
u . e = g . ethen reconsider n =
e as
Nat by A14;
(the_arity_of o) . n in the
carrier of
S
by A14, A26, FINSEQ_2:11;
then
(the_arity_of o) . n in dom F
by PARTFUN1:def 2;
then A27:
n in dom (F * (the_arity_of o))
by A14, A26, FUNCT_1:11;
then
n in (dom (F * (the_arity_of o))) /\ (dom f)
by A26, XBOOLE_0:def 4;
then a27:
n in dom ((F * (the_arity_of o)) .. f)
by PRALG_1:def 19;
A28:
(F * (the_arity_of o)) . n =
F . ((the_arity_of o) . n)
by FUNCT_1:12, A27
.=
F . ((the_arity_of o) /. n)
by A14, A26, PARTFUN1:def 6
;
thus u . e =
(F . ((the_arity_of o) /. n)) . (f . n)
by A24, A26
.=
((F * (the_arity_of o)) .. f) . n
by a27, A28, PRALG_1:def 19
.=
g . e
by A1, A2, A13, A18, A6, PRALG_2:def 2
;
verum
end;
dom f = dom (the_arity_of o)
by A1, A2, Th6;
F # x = (F * (the_arity_of o)) .. f
by A1, A2, A13, A18, A6, PRALG_2:def 2;
then dom g =
(dom (F * (the_arity_of o))) /\ (dom f)
by PRALG_1:def 19
.=
(dom (the_arity_of o)) /\ (dom f)
by A23, RELAT_1:27
;
hence
u = F # x
by A14, A15, A25, FUNCT_1:2;
verum
end;
Lm2:
for S being non empty non void ManySortedSign
for U1, U2 being non-empty MSAlgebra over S
for H being ManySortedFunction of U1,U2 st H is_isomorphism U1,U2 holds
H "" is_homomorphism U2,U1
Lm3:
for S being non empty non void ManySortedSign
for U1, U2 being non-empty MSAlgebra over S
for F being ManySortedFunction of U1,U2 st F is_homomorphism U1,U2 holds
F is ManySortedFunction of U1,(Image F)
Lm4:
for S being non empty non void ManySortedSign
for U1, U2 being non-empty MSAlgebra over S
for U3 being non-empty MSSubAlgebra of U2
for F being ManySortedFunction of U1,U2
for G being ManySortedFunction of U1,U3 st F = G & G is_homomorphism U1,U3 holds
F is_homomorphism U1,U2