let S be non empty non void ManySortedSign ; for A being non-empty MSAlgebra over S
for V being Variables of A
for t being Term of S,V
for T being c-Term of A,V st T = t holds
the_sort_of T = the_sort_of t
let A be non-empty MSAlgebra over S; for V being Variables of A
for t being Term of S,V
for T being c-Term of A,V st T = t holds
the_sort_of T = the_sort_of t
let V be Variables of A; for t being Term of S,V
for T being c-Term of A,V st T = t holds
the_sort_of T = the_sort_of t
defpred S1[ set ] means for t9 being Term of S,V
for T being c-Term of A,V st t9 = $1 & T = t9 holds
the_sort_of T = the_sort_of t9;
A1:
for s being SortSymbol of S
for v being Element of V . s holds S1[ root-tree [v,s]]
proof
let s be
SortSymbol of
S;
for v being Element of V . s holds S1[ root-tree [v,s]]let v be
Element of
V . s;
S1[ root-tree [v,s]]let t be
Term of
S,
V;
for T being c-Term of A,V st t = root-tree [v,s] & T = t holds
the_sort_of T = the_sort_of tlet T be
c-Term of
A,
V;
( t = root-tree [v,s] & T = t implies the_sort_of T = the_sort_of t )
assume that A2:
t = root-tree [v,s]
and A3:
T = t
;
the_sort_of T = the_sort_of t
the_sort_of t = s
by A2, MSATERM:14;
hence
the_sort_of T = the_sort_of t
by A2, A3, MSATERM:16;
verum
end;
A4:
for o being OperSymbol of S
for p being ArgumentSeq of Sym (o,V) st ( for t9 being Term of S,V st t9 in rng p holds
S1[t9] ) holds
S1[[o, the carrier of S] -tree p]
proof
let o be
OperSymbol of
S;
for p being ArgumentSeq of Sym (o,V) st ( for t9 being Term of S,V st t9 in rng p holds
S1[t9] ) holds
S1[[o, the carrier of S] -tree p]let p be
ArgumentSeq of
Sym (
o,
V);
( ( for t9 being Term of S,V st t9 in rng p holds
S1[t9] ) implies S1[[o, the carrier of S] -tree p] )
assume
for
t9 being
Term of
S,
V st
t9 in rng p holds
for
t being
Term of
S,
V for
T being
c-Term of
A,
V st
t = t9 &
T = t holds
the_sort_of T = the_sort_of t
;
S1[[o, the carrier of S] -tree p]
let t be
Term of
S,
V;
for T being c-Term of A,V st t = [o, the carrier of S] -tree p & T = t holds
the_sort_of T = the_sort_of tlet T be
c-Term of
A,
V;
( t = [o, the carrier of S] -tree p & T = t implies the_sort_of T = the_sort_of t )
assume
t = [o, the carrier of S] -tree p
;
( not T = t or the_sort_of T = the_sort_of t )
then A5:
t . {} = [o, the carrier of S]
by TREES_4:def 4;
then
the_sort_of t = the_result_sort_of o
by MSATERM:17;
hence
( not
T = t or
the_sort_of T = the_sort_of t )
by A5, MSATERM:17;
verum
end;
for t being Term of S,V holds S1[t]
from MSATERM:sch 1(A1, A4);
hence
for t being Term of S,V
for T being c-Term of A,V st T = t holds
the_sort_of T = the_sort_of t
; verum