set AL = (((FreeSort X) #) * the Arity of S) . o;
set AX = ((FreeSort X) * the ResultSort of S) . o;
set D = DTConMSA X;
set O = the carrier' of S;
set rs = the_result_sort_of o;
set RS = the ResultSort of S;
defpred S1[ object , object ] means for p being FinSequence of TS (DTConMSA X) st p = $1 holds
$2 = (Sym (o,X)) -tree p;
A1:
for x being object st x in (((FreeSort X) #) * the Arity of S) . o holds
ex y being object st
( y in ((FreeSort X) * the ResultSort of S) . o & S1[x,y] )
proof
let x be
object ;
( x in (((FreeSort X) #) * the Arity of S) . o implies ex y being object st
( y in ((FreeSort X) * the ResultSort of S) . o & S1[x,y] ) )
assume A2:
x in (((FreeSort X) #) * the Arity of S) . o
;
ex y being object st
( y in ((FreeSort X) * the ResultSort of S) . o & S1[x,y] )
then reconsider p =
x as
FinSequence of
TS (DTConMSA X) by Th8;
Sym (
o,
X)
==> roots p
by A2, Th10;
then reconsider a =
(Sym (o,X)) -tree p as
Element of
TS (DTConMSA X) by DTCONSTR:def 1;
take y =
(Sym (o,X)) -tree p;
( y in ((FreeSort X) * the ResultSort of S) . o & S1[x,y] )
o in the
carrier' of
S
;
then
o in dom ((FreeSort X) * the ResultSort of S)
by PARTFUN1:def 2;
then A3:
((FreeSort X) * the ResultSort of S) . o =
(FreeSort X) . ( the ResultSort of S . o)
by FUNCT_1:12
.=
(FreeSort X) . (the_result_sort_of o)
by MSUALG_1:def 2
.=
FreeSort (
X,
(the_result_sort_of o))
by Def11
;
a . {} = Sym (
o,
X)
by TREES_4:def 4;
hence
y in ((FreeSort X) * the ResultSort of S) . o
by A3;
S1[x,y]
thus
S1[
x,
y]
;
verum
end;
consider f being Function such that
A4:
( dom f = (((FreeSort X) #) * the Arity of S) . o & rng f c= ((FreeSort X) * the ResultSort of S) . o & ( for x being object st x in (((FreeSort X) #) * the Arity of S) . o holds
S1[x,f . x] ) )
from FUNCT_1:sch 6(A1);
reconsider g = f as Function of ((((FreeSort X) #) * the Arity of S) . o),(rng f) by A4, FUNCT_2:1;
reconsider g = g as Function of ((((FreeSort X) #) * the Arity of S) . o),(((FreeSort X) * the ResultSort of S) . o) by A4, FUNCT_2:2;
take
g
; for p being FinSequence of TS (DTConMSA X) st Sym (o,X) ==> roots p holds
g . p = (Sym (o,X)) -tree p
let p be FinSequence of TS (DTConMSA X); ( Sym (o,X) ==> roots p implies g . p = (Sym (o,X)) -tree p )
assume
Sym (o,X) ==> roots p
; g . p = (Sym (o,X)) -tree p
then
p in (((FreeSort X) #) * the Arity of S) . o
by Th10;
hence
g . p = (Sym (o,X)) -tree p
by A4; verum