let m be Nat; :: thesis: for S being Language holds (S -termsOfMaxDepth) . m c= (TermSymbolsOf S) *
let S be Language; :: thesis: (S -termsOfMaxDepth) . m c= (TermSymbolsOf S) *
set TS = TermSymbolsOf S;
set F = S -firstChar ;
set C = S -multiCat ;
set P = OpSymbolsOf S;
set T = S -termsOfMaxDepth ;
set SS = AllSymbolsOf S;
set CC = (TermSymbolsOf S) -multiCat ;
defpred S1[ Nat] means (S -termsOfMaxDepth) . $1 c= (TermSymbolsOf S) * ;
B0: S1[ 0 ]
proof
now
let x be set ; :: thesis: ( x in (S -termsOfMaxDepth) . 0 implies x in (TermSymbolsOf S) * )
assume x in (S -termsOfMaxDepth) . 0 ; :: thesis: x in (TermSymbolsOf S) *
then reconsider t = x as 0 -termal string of S by DefTermal;
reconsider s = (S -firstChar) . t as termal Element of S ;
set sub = SubTerms t;
reconsider ss = s as Element of TermSymbolsOf S by DefTermal0;
t = <*s*> ^ ((S -multiCat) . (SubTerms t)) by DefSubTerms1
.= <*s*> ^ {}
.= <*ss*> ;
then t is FinSequence of TermSymbolsOf S ;
hence x in (TermSymbolsOf S) * by FINSEQ_1:def 11; :: thesis: verum
end;
hence S1[ 0 ] by TARSKI:def 3; :: thesis: verum
end;
B1: for n being Nat st S1[n] holds
S1[n + 1]
proof
let n be Nat; :: thesis: ( S1[n] implies S1[n + 1] )
reconsider nn = n, NN = n + 1 as Element of NAT by ORDINAL1:def 12;
assume S1[n] ; :: thesis: S1[n + 1]
then reconsider Tn = (S -termsOfMaxDepth) . nn as non empty Subset of ((TermSymbolsOf S) *) ;
now
let x be set ; :: thesis: ( x in (S -termsOfMaxDepth) . (n + 1) implies b1 in (TermSymbolsOf S) * )
assume x in (S -termsOfMaxDepth) . (n + 1) ; :: thesis: b1 in (TermSymbolsOf S) *
then x in (S -termsOfMaxDepth) . NN ;
then reconsider t = x as n + 1 -termal string of S by DefTermal;
set s = (S -firstChar) . t;
set m = abs (ar ((S -firstChar) . t));
reconsider tt = t as nn + 1 -termal string of S ;
per cases ( not t is 0 -termal or t is 0 -termal ) ;
end;
end;
hence S1[n + 1] by TARSKI:def 3; :: thesis: verum
end;
for n being Nat holds S1[n] from NAT_1:sch 2(B0, B1);
hence (S -termsOfMaxDepth) . m c= (TermSymbolsOf S) * ; :: thesis: verum