deffunc H1( object ) -> set = succ ( the Sorts of A . S);
consider X being ManySortedSet of the carrier of S such that
A1:
for x being object st x in the carrier of S holds
X . x = H1(x)
from PBOOLE:sch 4();
X is non-empty
then reconsider X = X as non-empty ManySortedSet of the carrier of S ;
deffunc H2( object ) -> set = ((((X #) * the Arity of S) . S) --> (( the Sorts of A * the ResultSort of S) . S)) +* ( the Charact of A . S);
consider ch being ManySortedSet of the carrier' of S such that
A2:
for x being object st x in the carrier' of S holds
ch . x = H2(x)
from PBOOLE:sch 4();
ch is Function-yielding
then reconsider ch = ch as ManySortedFunction of the carrier' of S ;
the Sorts of A is ManySortedSubset of X
then reconsider Y = the Sorts of A as ManySortedSubset of X ;
X is ManySortedSubset of X
then reconsider X1 = X as ManySortedSubset of X ;
ch is ManySortedFunction of (X #) * the Arity of S,X * the ResultSort of S
proof
let x be
object ;
PBOOLE:def 15 ( not x in the carrier' of S or ch . x is Element of bool [:(((X #) * the Arity of S) . x),((X * the ResultSort of S) . x):] )
assume
x in the
carrier' of
S
;
ch . x is Element of bool [:(((X #) * the Arity of S) . x),((X * the ResultSort of S) . x):]
then reconsider x =
x as
OperSymbol of
S ;
(
Y # c= X # &
the_arity_of x in the
carrier of
S * &
dom the
Arity of
S = the
carrier' of
S & the
Charact of
A is
ManySortedFunction of
(Y #) * the
Arity of
S,
Y * the
ResultSort of
S )
by Th2, FUNCT_2:def 1, PBOOLE:def 18;
then
(
(Y #) . (the_arity_of x) c= (X #) . (the_arity_of x) &
((Y #) * the Arity of S) . x = (Y #) . (the_arity_of x) &
((X1 #) * the Arity of S) . x = (X #) . (the_arity_of x) & the
Charact of
A . x is
Function of
(((Y #) * the Arity of S) . x),
((Y * the ResultSort of S) . x) )
by FUNCT_1:13;
then
(
(((X #) * the Arity of S) . x) \/ (((Y #) * the Arity of S) . x) = ((X #) * the Arity of S) . x &
dom ((((X #) * the Arity of S) . x) --> (( the Sorts of A * the ResultSort of S) . x)) = ((X #) * the Arity of S) . x &
dom ( the Charact of A . x) = ((Y #) * the Arity of S) . x &
ch . x = H2(
x) )
by A2, XBOOLE_1:12, FUNCT_2:def 1;
then A3:
dom (ch . x) = ((X #) * the Arity of S) . x
by FUNCT_4:def 1;
dom the
ResultSort of
S = the
carrier' of
S
by FUNCT_2:def 1;
then A4:
(
(Y * the ResultSort of S) . x = Y . (the_result_sort_of x) &
(X * the ResultSort of S) . x = X . (the_result_sort_of x) )
by FUNCT_1:13;
then A5:
(Y * the ResultSort of S) . x c= (X * the ResultSort of S) . x
by PBOOLE:def 18, PBOOLE:def 2;
X . (the_result_sort_of x) = succ (Y . (the_result_sort_of x))
by A1;
then
Y . (the_result_sort_of x) in X . (the_result_sort_of x)
by ORDINAL1:8;
then
{(Y . (the_result_sort_of x))} c= X . (the_result_sort_of x)
by ZFMISC_1:31;
then A6:
rng ((((X #) * the Arity of S) . x) --> (( the Sorts of A * the ResultSort of S) . x)) c= X . (the_result_sort_of x)
by A4;
rng ( the Charact of A . x) c= X . (the_result_sort_of x)
by A5, A4, RELAT_1:def 19;
then A7:
(rng ((((X #) * the Arity of S) . x) --> (( the Sorts of A * the ResultSort of S) . x))) \/ (rng ( the Charact of A . x)) c= X . (the_result_sort_of x)
by A6, XBOOLE_1:8;
rng H2(
x)
c= (rng ((((X #) * the Arity of S) . x) --> ((Y * the ResultSort of S) . x))) \/ (rng ( the Charact of A . x))
by FUNCT_4:17;
then
(
rng H2(
x)
c= (X * the ResultSort of S) . x &
ch . x = H2(
x) )
by A2, A4, A7;
hence
ch . x is
Element of
bool [:(((X #) * the Arity of S) . x),((X * the ResultSort of S) . x):]
by A3, FUNCT_2:2;
verum
end;
then reconsider ch = ch as ManySortedFunction of (X #) * the Arity of S,X * the ResultSort of S ;
the Sorts of A is ManySortedElement of X
then reconsider u = the Sorts of A as ManySortedElement of X ;
take B = UndefMSAlgebra(# X,ch,u #); ( B is A -undef & B is non-empty )
hereby AOFA_A00:def 14,
AOFA_A00:def 15 ( the undefined-map of B = the Sorts of A & ( for s being SortSymbol of S holds the Sorts of B . s = succ ( the Sorts of A . s) ) & ( for o being OperSymbol of S
for a being Element of Args (o,A) st Args (o,A) <> {} & (Den (o,B)) . a <> (Den (o,A)) . a holds
(Den (o,B)) . a = the undefined-map of B . (the_result_sort_of o) ) & B is non-empty )
let o be
OperSymbol of
S;
for p being FinSequence st p in Args (o,B) & ex i being Nat ex s being SortSymbol of S ex a being Element of B,s st
( i in dom (the_arity_of o) & s = (the_arity_of o) . i & a = p . i & a is undefined ) holds
for b being Element of B,(the_result_sort_of o) st b = (Den (o,B)) . p holds
b is undefined let p be
FinSequence;
( p in Args (o,B) & ex i being Nat ex s being SortSymbol of S ex a being Element of B,s st
( i in dom (the_arity_of o) & s = (the_arity_of o) . i & a = p . i & a is undefined ) implies for b being Element of B,(the_result_sort_of o) st b = (Den (o,B)) . p holds
b is undefined )assume A8:
p in Args (
o,
B)
;
( ex i being Nat ex s being SortSymbol of S ex a being Element of B,s st
( i in dom (the_arity_of o) & s = (the_arity_of o) . i & a = p . i & a is undefined ) implies for b being Element of B,(the_result_sort_of o) st b = (Den (o,B)) . p holds
b is undefined )given i being
Nat,
s being
SortSymbol of
S,
a being
Element of
B,
s such that A9:
(
i in dom (the_arity_of o) &
s = (the_arity_of o) . i &
a = p . i &
a is
undefined )
;
for b being Element of B,(the_result_sort_of o) st b = (Den (o,B)) . p holds
b is undefined let b be
Element of
B,
(the_result_sort_of o);
( b = (Den (o,B)) . p implies b is undefined )assume A13:
b = (Den (o,B)) . p
;
b is undefined A14:
dom (Den (o,A)) = Args (
o,
A)
by FUNCT_2:def 1;
A15:
dom the
ResultSort of
S = the
carrier' of
S
by FUNCT_2:def 1;
b =
H2(
o)
. p
by A2, A13
.=
((Args (o,B)) --> ((Y * the ResultSort of S) . o)) . p
by A14, A10, FUNCT_4:11
.=
(Y * the ResultSort of S) . o
by A8, FUNCOP_1:7
.=
u . (the_result_sort_of o)
by A15, FUNCT_1:13
;
hence
b is
undefined
;
verum
end;
thus
the undefined-map of B = the Sorts of A
; ( ( for s being SortSymbol of S holds the Sorts of B . s = succ ( the Sorts of A . s) ) & ( for o being OperSymbol of S
for a being Element of Args (o,A) st Args (o,A) <> {} & (Den (o,B)) . a <> (Den (o,A)) . a holds
(Den (o,B)) . a = the undefined-map of B . (the_result_sort_of o) ) & B is non-empty )
thus
for s being SortSymbol of S holds the Sorts of B . s = succ ( the Sorts of A . s)
by A1; ( ( for o being OperSymbol of S
for a being Element of Args (o,A) st Args (o,A) <> {} & (Den (o,B)) . a <> (Den (o,A)) . a holds
(Den (o,B)) . a = the undefined-map of B . (the_result_sort_of o) ) & B is non-empty )
hereby B is non-empty
let o be
OperSymbol of
S;
for a being Element of Args (o,A) st Args (o,A) <> {} & (Den (o,B)) . a <> (Den (o,A)) . a holds
(Den (o,B)) . a = the undefined-map of B . (the_result_sort_of o)let a be
Element of
Args (
o,
A);
( Args (o,A) <> {} & (Den (o,B)) . a <> (Den (o,A)) . a implies (Den (o,B)) . a = the undefined-map of B . (the_result_sort_of o) )assume
Args (
o,
A)
<> {}
;
( (Den (o,B)) . a <> (Den (o,A)) . a implies (Den (o,B)) . a = the undefined-map of B . (the_result_sort_of o) )assume A16:
(Den (o,B)) . a <> (Den (o,A)) . a
;
(Den (o,B)) . a = the undefined-map of B . (the_result_sort_of o)A17:
dom (Den (o,A)) = Args (
o,
A)
by FUNCT_2:def 1;
(Den (o,B)) . a =
(((((X #) * the Arity of S) . o) --> (( the Sorts of A * the ResultSort of S) . o)) +* ( the Charact of A . o)) . a
by A2
.=
(Den (o,A)) . a
by A17, FUNCT_4:13
;
hence
(Den (o,B)) . a = the
undefined-map of
B . (the_result_sort_of o)
by A16;
verum
end;
thus
the Sorts of B is non-empty
; MSUALG_1:def 3 verum
thus
verum
; verum