let A be non empty set ; for S being non empty non void ManySortedSign
for x being MSAlgebra over S st x in MSAlg_set (S,A) holds
( the Sorts of x in Funcs ( the carrier of S,(bool A)) & the Charact of x in Funcs ( the carrier' of S,(PFuncs ((PFuncs (NAT,A)),A))) )
let S be non empty non void ManySortedSign ; for x being MSAlgebra over S st x in MSAlg_set (S,A) holds
( the Sorts of x in Funcs ( the carrier of S,(bool A)) & the Charact of x in Funcs ( the carrier' of S,(PFuncs ((PFuncs (NAT,A)),A))) )
let x be MSAlgebra over S; ( x in MSAlg_set (S,A) implies ( the Sorts of x in Funcs ( the carrier of S,(bool A)) & the Charact of x in Funcs ( the carrier' of S,(PFuncs ((PFuncs (NAT,A)),A))) ) )
assume
x in MSAlg_set (S,A)
; ( the Sorts of x in Funcs ( the carrier of S,(bool A)) & the Charact of x in Funcs ( the carrier' of S,(PFuncs ((PFuncs (NAT,A)),A))) )
then consider M being strict feasible MSAlgebra over S such that
A1:
x = M
and
A2:
for C being Component of the Sorts of M holds C c= A
by Def2;
A3:
dom the Sorts of M = the carrier of S
by PARTFUN1:def 2;
then reconsider SM = the Sorts of M as Function of the carrier of S,(rng the Sorts of M) by FUNCT_2:1;
A4:
rng the Sorts of M c= bool A
then reconsider SM9 = SM as Function of the carrier of S,(bool A) by FUNCT_2:6;
A5:
dom the Charact of M = the carrier' of S
by PARTFUN1:def 2;
A6:
rng the Charact of M c= PFuncs ((PFuncs (NAT,A)),A)
proof
reconsider SA =
( the Sorts of M #) * the
Arity of
S,
SR = the
Sorts of
M * the
ResultSort of
S as
ManySortedSet of the
carrier' of
S ;
let x be
object ;
TARSKI:def 3 ( not x in rng the Charact of M or x in PFuncs ((PFuncs (NAT,A)),A) )
reconsider CM = the
Charact of
M as
ManySortedFunction of
SA,
SR ;
assume
x in rng the
Charact of
M
;
x in PFuncs ((PFuncs (NAT,A)),A)
then consider x1 being
object such that A7:
x1 in dom the
Charact of
M
and A8:
x = the
Charact of
M . x1
by FUNCT_1:def 3;
reconsider Cm =
CM . x1 as
Function of
(SA . x1),
(SR . x1) by A7, PBOOLE:def 15;
A9:
x1 in dom SA
by A5, A7, PARTFUN1:def 2;
SA . x1 c= PFuncs (
NAT,
A)
then A17:
dom Cm c= PFuncs (
NAT,
A)
;
x1 in dom SR
by A5, A7, PARTFUN1:def 2;
then A18:
SR . x1 = the
Sorts of
M . ( the ResultSort of S . x1)
by FUNCT_1:12;
the
ResultSort of
S . x1 in the
carrier of
S
by A7, FUNCT_2:5;
then
SR . x1 in rng the
Sorts of
M
by A3, A18, FUNCT_1:def 3;
then
rng Cm c= A
by A4, XBOOLE_1:1;
hence
x in PFuncs (
(PFuncs (NAT,A)),
A)
by A8, A17, PARTFUN1:def 3;
verum
end;
SM9 in Funcs ( the carrier of S,(bool A))
by FUNCT_2:8;
hence
( the Sorts of x in Funcs ( the carrier of S,(bool A)) & the Charact of x in Funcs ( the carrier' of S,(PFuncs ((PFuncs (NAT,A)),A))) )
by A1, A5, A6, FUNCT_2:def 2; verum