let S be non empty FinSequence of NAT ; for i, j being Nat st i in dom S & j = S . i holds
for X being non empty set
for f being Function of (j -tuples_on X),X ex A being Universal_Algebra st
( the carrier of A = X & signature A = S & the charact of A . i = f )
let i, j be Nat; ( i in dom S & j = S . i implies for X being non empty set
for f being Function of (j -tuples_on X),X ex A being Universal_Algebra st
( the carrier of A = X & signature A = S & the charact of A . i = f ) )
reconsider j9 = j as Element of NAT by ORDINAL1:def 12;
assume that
A1:
i in dom S
and
A2:
j = S . i
; for X being non empty set
for f being Function of (j -tuples_on X),X ex A being Universal_Algebra st
( the carrier of A = X & signature A = S & the charact of A . i = f )
let X be non empty set ; for f being Function of (j -tuples_on X),X ex A being Universal_Algebra st
( the carrier of A = X & signature A = S & the charact of A . i = f )
consider A0 being Universal_Algebra such that
A3:
the carrier of A0 = X
and
A4:
signature A0 = S
by Th13;
let f be Function of (j -tuples_on X),X; ex A being Universal_Algebra st
( the carrier of A = X & signature A = S & the charact of A . i = f )
j9 -tuples_on X c= X *
by FINSEQ_2:134;
then reconsider f0 = f as PartFunc of (X *),X by RELSET_1:7;
set z = the Element of j -tuples_on X;
A5:
dom f0 = j -tuples_on X
by FUNCT_2:def 1;
f0 is homogeneous
by A5;
then reconsider f0 = f0 as non empty homogeneous PartFunc of (X *),X ;
A6:
len the Element of j -tuples_on X = j
by CARD_1:def 7;
then A7:
arity f0 = j
by A5, MARGREL1:def 25;
set ch = the charact of A0 +* (i,f0);
f0 in PFuncs ((X *),X)
by PARTFUN1:45;
then A8:
{f0} c= PFuncs ((X *),X)
by ZFMISC_1:31;
A9:
rng ( the charact of A0 +* (i,f0)) c= (rng the charact of A0) \/ {f0}
by FUNCT_7:100;
(rng the charact of A0) \/ {f0} c= PFuncs ((X *),X)
by A3, A8, XBOOLE_1:8;
then
rng ( the charact of A0 +* (i,f0)) c= PFuncs ((X *),X)
by A9;
then reconsider ch = the charact of A0 +* (i,f0) as FinSequence of PFuncs ((X *),X) by FINSEQ_1:def 4;
A10:
dom ch = dom the charact of A0
by FUNCT_7:30;
set A = UAStr(# X,ch #);
A11:
UAStr(# X,ch #) is quasi_total
proof
let n be
Nat;
UNIALG_1:def 2,
MARGREL1:def 24 for b1 being Element of bool [:( the carrier of UAStr(# X,ch #) *), the carrier of UAStr(# X,ch #):] holds
( not n in dom the charact of UAStr(# X,ch #) or not b1 = the charact of UAStr(# X,ch #) . n or b1 is quasi_total )let h be
PartFunc of
( the carrier of UAStr(# X,ch #) *), the
carrier of
UAStr(#
X,
ch #);
( not n in dom the charact of UAStr(# X,ch #) or not h = the charact of UAStr(# X,ch #) . n or h is quasi_total )
assume that A12:
n in dom the
charact of
UAStr(#
X,
ch #)
and A13:
h = the
charact of
UAStr(#
X,
ch #)
. n
;
h is quasi_total
A14:
(
n = i implies
h = f0 )
by A10, A12, A13, FUNCT_7:31;
(
n <> i implies
h = the
charact of
A0 . n )
by A13, FUNCT_7:32;
hence
h is
quasi_total
by A3, A5, A7, A10, A12, A14, COMPUT_1:22, MARGREL1:def 24;
verum
end;
A15:
UAStr(# X,ch #) is non-empty
UAStr(# X,ch #) is partial
proof
let n be
Nat;
UNIALG_1:def 1,
MARGREL1:def 23 for b1 being Element of bool [:( the carrier of UAStr(# X,ch #) *), the carrier of UAStr(# X,ch #):] holds
( not n in dom the charact of UAStr(# X,ch #) or not b1 = the charact of UAStr(# X,ch #) . n or b1 is homogeneous )let h be
PartFunc of
( the carrier of UAStr(# X,ch #) *), the
carrier of
UAStr(#
X,
ch #);
( not n in dom the charact of UAStr(# X,ch #) or not h = the charact of UAStr(# X,ch #) . n or h is homogeneous )
assume that A18:
n in dom the
charact of
UAStr(#
X,
ch #)
and A19:
h = the
charact of
UAStr(#
X,
ch #)
. n
;
h is homogeneous
(
n <> i implies
h = the
charact of
A0 . n )
by A19, FUNCT_7:32;
hence
h is
homogeneous
by A10, A18, A19, FUNCT_7:31;
verum
end;
then reconsider A = UAStr(# X,ch #) as Universal_Algebra by A11, A15;
take
A
; ( the carrier of A = X & signature A = S & the charact of A . i = f )
thus
the carrier of A = X
; ( signature A = S & the charact of A . i = f )
A20:
len S = len the charact of A0
by A4, UNIALG_1:def 4;
then A21:
dom S = dom the charact of A0
by FINSEQ_3:29;
A22:
len S = len the charact of A
by A10, A20, FINSEQ_3:29;
now for n being Nat st n in dom S holds
for h being non empty homogeneous PartFunc of ( the carrier of A *), the carrier of A st h = the charact of A . n holds
S . n = arity hlet n be
Nat;
( n in dom S implies for h being non empty homogeneous PartFunc of ( the carrier of A *), the carrier of A st h = the charact of A . n holds
S . n = arity h )assume A23:
n in dom S
;
for h being non empty homogeneous PartFunc of ( the carrier of A *), the carrier of A st h = the charact of A . n holds
S . n = arity hlet h be non
empty homogeneous PartFunc of
( the carrier of A *), the
carrier of
A;
( h = the charact of A . n implies S . n = arity h )assume A24:
h = the
charact of
A . n
;
S . n = arity hthen A25:
(
n = i implies
h = f0 )
by A21, A23, FUNCT_7:31;
(
n <> i implies
h = the
charact of
A0 . n )
by A24, FUNCT_7:32;
hence
S . n = arity h
by A2, A4, A5, A6, A23, A25, MARGREL1:def 25, UNIALG_1:def 4;
verum end;
hence
signature A = S
by A22, UNIALG_1:def 4; the charact of A . i = f
thus
the charact of A . i = f
by A1, A21, FUNCT_7:31; verum