let S be non empty non void ManySortedSign ; :: thesis: for A being non-empty MSAlgebra of 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 of S; :: thesis: 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; :: thesis: 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 t' being Term of S,V
for T being c-Term of A,V st t' = $1 & T = t' holds
the_sort_of T = the_sort_of t';
A1:
for s being SortSymbol of S
for v being Element of V . s holds S1[ root-tree [v,s]]
A2:
for o being OperSymbol of S
for p being ArgumentSeq of Sym o,V st ( for t' being Term of S,V st t' in rng p holds
S1[t'] ) holds
S1[[o,the carrier of S] -tree p]
proof
let o be
OperSymbol of
S;
:: thesis: for p being ArgumentSeq of Sym o,V st ( for t' being Term of S,V st t' in rng p holds
S1[t'] ) holds
S1[[o,the carrier of S] -tree p]let p be
ArgumentSeq of
Sym o,
V;
:: thesis: ( ( for t' being Term of S,V st t' in rng p holds
S1[t'] ) implies S1[[o,the carrier of S] -tree p] )
assume
for
t' being
Term of
S,
V st
t' in rng p holds
for
t being
Term of
S,
V for
T being
c-Term of
A,
V st
t = t' &
T = t holds
the_sort_of T = the_sort_of t
;
:: thesis: S1[[o,the carrier of S] -tree p]
let t be
Term of
S,
V;
:: thesis: 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;
:: thesis: ( 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
;
:: thesis: ( not T = t or the_sort_of T = the_sort_of t )
then A3:
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 A3, MSATERM:17;
:: thesis: verum
end;
for t being Term of S,V holds S1[t]
from MSATERM:sch 1(A1, A2);
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
; :: thesis: verum