let S be non empty non void ManySortedSign ; for X being non-empty finite-yielding ManySortedSet of the carrier of S st S is finitely_operated holds
for n being Nat
for v being SortSymbol of S holds { t where t is Element of the Sorts of (FreeMSA X) . v : depth t <= n } is finite
let X be non-empty finite-yielding ManySortedSet of the carrier of S; ( S is finitely_operated implies for n being Nat
for v being SortSymbol of S holds { t where t is Element of the Sorts of (FreeMSA X) . v : depth t <= n } is finite )
assume A1:
S is finitely_operated
; for n being Nat
for v being SortSymbol of S holds { t where t is Element of the Sorts of (FreeMSA X) . v : depth t <= n } is finite
set SF = the Sorts of (FreeMSA X);
defpred S1[ Nat] means for v being SortSymbol of S holds { t where t is Element of the Sorts of (FreeMSA X) . v : depth t <= $1 } is finite ;
A2:
FreeMSA X = MSAlgebra(# (FreeSort X),(FreeOper X) #)
by MSAFREE:def 14;
A3:
for k being Nat st S1[k] holds
S1[k + 1]
proof
deffunc H1(
set )
-> set = $1;
let n be
Nat;
( S1[n] implies S1[n + 1] )
assume A4:
for
v being
SortSymbol of
S holds
{ t where t is Element of the Sorts of (FreeMSA X) . v : depth t <= n } is
finite
;
S1[n + 1]
let v be
SortSymbol of
S;
{ t where t is Element of the Sorts of (FreeMSA X) . v : depth t <= n + 1 } is finite
defpred S2[
Element of the
Sorts of
(FreeMSA X) . v]
means depth $1
= n + 1;
defpred S3[
Element of the
Sorts of
(FreeMSA X) . v]
means depth $1
<= n + 1;
defpred S4[
Element of the
Sorts of
(FreeMSA X) . v]
means (
depth $1
<= n or
depth $1
= n + 1 );
set dn1 =
{ H1(t) where t is Element of the Sorts of (FreeMSA X) . v : S3[t] } ;
set dn11 =
{ H1(t) where t is Element of the Sorts of (FreeMSA X) . v : S4[t] } ;
set den1 =
{ t where t is Element of the Sorts of (FreeMSA X) . v : S2[t] } ;
set ov =
{ o where o is OperSymbol of S : the_result_sort_of o = v } ;
A5:
the
Sorts of
(FreeMSA X) . v = FreeSort (
X,
v)
by A2, MSAFREE:def 11;
{ o where o is OperSymbol of S : the_result_sort_of o = v } is
finite
by A1, MSSCYC_1:def 5;
then consider ovs being
FinSequence such that A6:
rng ovs = { o where o is OperSymbol of S : the_result_sort_of o = v }
by FINSEQ_1:52;
deffunc H2(
set )
-> set =
{ t where t is Element of the Sorts of (FreeMSA X) . v : ( depth t = n + 1 & t . {} = [(ovs . $1), the carrier of S] ) } ;
consider dvs being
FinSequence such that A7:
(
len dvs = len ovs & ( for
k being
Nat st
k in dom dvs holds
dvs . k = H2(
k) ) )
from FINSEQ_1:sch 2();
A8:
(
dom ovs = Seg (len ovs) &
dom dvs = Seg (len dvs) )
by FINSEQ_1:def 3;
A9:
FreeSort (
X,
v)
c= S -Terms X
by MSATERM:12;
A10:
{ t where t is Element of the Sorts of (FreeMSA X) . v : S2[t] } c= Union dvs
proof
let x be
object ;
TARSKI:def 3 ( not x in { t where t is Element of the Sorts of (FreeMSA X) . v : S2[t] } or x in Union dvs )
assume
x in { t where t is Element of the Sorts of (FreeMSA X) . v : S2[t] }
;
x in Union dvs
then consider t being
Element of the
Sorts of
(FreeMSA X) . v such that A11:
x = t
and A12:
depth t = n + 1
;
t in FreeSort (
X,
v)
by A5;
then reconsider t9 =
t as
Term of
S,
X by A9;
then consider o being
OperSymbol of
S such that A14:
t9 . {} = [o, the carrier of S]
by MSSCYC_1:20;
the_result_sort_of o =
the_sort_of t9
by A14, MSATERM:17
.=
v
by A5, MSATERM:def 5
;
then
o in rng ovs
by A6;
then consider k being
object such that A15:
k in dom ovs
and A16:
o = ovs . k
by FUNCT_1:def 3;
dvs . k = { t1 where t1 is Element of the Sorts of (FreeMSA X) . v : ( depth t1 = n + 1 & t1 . {} = [(ovs . k), the carrier of S] ) }
by A7, A8, A15;
then A17:
t in dvs . k
by A12, A14, A16;
dvs . k in rng dvs
by A7, A8, A15, FUNCT_1:def 3;
then
t in union (rng dvs)
by A17, TARSKI:def 4;
hence
x in Union dvs
by A11, CARD_3:def 4;
verum
end;
for
k being
object st
k in dom dvs holds
dvs . k is
finite
proof
let k be
object ;
( k in dom dvs implies dvs . k is finite )
set dvsk =
{ t where t is Element of the Sorts of (FreeMSA X) . v : ( depth t = n + 1 & t . {} = [(ovs . k), the carrier of S] ) } ;
assume A18:
k in dom dvs
;
dvs . k is finite
then
ovs . k in rng ovs
by A7, A8, FUNCT_1:def 3;
then consider o being
OperSymbol of
S such that A19:
o = ovs . k
and
the_result_sort_of o = v
by A6;
set davsk =
{ ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ;
A20:
{ t where t is Element of the Sorts of (FreeMSA X) . v : ( depth t = n + 1 & t . {} = [(ovs . k), the carrier of S] ) } c= { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
proof
let x be
object ;
TARSKI:def 3 ( not x in { t where t is Element of the Sorts of (FreeMSA X) . v : ( depth t = n + 1 & t . {} = [(ovs . k), the carrier of S] ) } or x in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } )
assume
x in { t where t is Element of the Sorts of (FreeMSA X) . v : ( depth t = n + 1 & t . {} = [(ovs . k), the carrier of S] ) }
;
x in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
then consider t being
Element of the
Sorts of
(FreeMSA X) . v such that A21:
x = t
and A22:
depth t = n + 1
and A23:
t . {} = [o, the carrier of S]
by A19;
t in FreeSort (
X,
v)
by A5;
then reconsider t9 =
t as
Term of
S,
X by A9;
consider a being
ArgumentSeq of
Sym (
o,
X)
such that A24:
t9 = [o, the carrier of S] -tree a
by A23, MSATERM:10;
reconsider a9 =
a as
Element of
(S -Terms X) * by FINSEQ_1:def 11;
[o, the carrier of S] -tree a9 in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
by A22, A24;
hence
x in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
by A21, A24;
verum
end;
deffunc H3(
Nat)
-> set =
{ t where t is Element of the Sorts of (FreeMSA X) . ((the_arity_of o) /. $1) : depth t <= n } ;
set avsk =
{ a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ;
A25:
{ a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ,
{ ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } are_equipotent
proof
set Z =
{ [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ;
take
{ [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
;
TARSKI:def 6 ( ( for b1 being object holds
( not b1 in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or ex b2 being object st
( b2 in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [b1,b2] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ) ) ) & ( for b1 being object holds
( not b1 in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or ex b2 being object st
( b2 in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [b2,b1] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ) ) ) & ( for b1, b2, b3, b4 being object holds
( not [b1,b2] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or not [b3,b4] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or ( ( not b1 = b3 or b2 = b4 ) & ( not b2 = b4 or b1 = b3 ) ) ) ) )
hereby ( ( for b1 being object holds
( not b1 in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or ex b2 being object st
( b2 in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [b2,b1] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ) ) ) & ( for b1, b2, b3, b4 being object holds
( not [b1,b2] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or not [b3,b4] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or ( ( not b1 = b3 or b2 = b4 ) & ( not b2 = b4 or b1 = b3 ) ) ) ) )
let x be
object ;
( x in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } implies ex y9 being object st
( y9 in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [x,y9] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ) )assume
x in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
;
ex y9 being object st
( y9 in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [x,y9] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } )then consider a being
Element of
(S -Terms X) * such that A26:
x = a
and A27:
(
a is
ArgumentSeq of
Sym (
o,
X) & ex
t being
Element of the
Sorts of
(FreeMSA X) . v st
(
depth t = n + 1 &
t = [o, the carrier of S] -tree a ) )
;
reconsider y9 =
[o, the carrier of S] -tree a as
object ;
take y9 =
y9;
( y9 in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [x,y9] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } )thus
y9 in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
by A27;
[x,y9] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } thus
[x,y9] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
by A26, A27;
verum
end;
hereby for b1, b2, b3, b4 being object holds
( not [b1,b2] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or not [b3,b4] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or ( ( not b1 = b3 or b2 = b4 ) & ( not b2 = b4 or b1 = b3 ) ) )
let y be
object ;
( y in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } implies ex a9 being object st
( a9 in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [a9,y] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } ) )assume
y in { ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
;
ex a9 being object st
( a9 in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [a9,y] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } )then consider a being
Element of
(S -Terms X) * such that A28:
y = [o, the carrier of S] -tree a
and A29:
(
a is
ArgumentSeq of
Sym (
o,
X) & ex
t being
Element of the
Sorts of
(FreeMSA X) . v st
(
depth t = n + 1 &
t = [o, the carrier of S] -tree a ) )
;
reconsider a9 =
a as
object ;
take a9 =
a9;
( a9 in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } & [a9,y] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } )thus
a9 in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
by A29;
[a9,y] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } thus
[a9,y] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
by A28, A29;
verum
end;
let x,
y,
z,
u be
object ;
( not [x,y] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or not [z,u] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or ( ( not x = z or y = u ) & ( not y = u or x = z ) ) )
assume
[x,y] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
;
( not [z,u] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or ( ( not x = z or y = u ) & ( not y = u or x = z ) ) )
then consider xa being
Element of
(S -Terms X) * such that A30:
[x,y] = [xa,([o, the carrier of S] -tree xa)]
and A31:
xa is
ArgumentSeq of
Sym (
o,
X)
and
ex
t being
Element of the
Sorts of
(FreeMSA X) . v st
(
depth t = n + 1 &
t = [o, the carrier of S] -tree xa )
;
A32:
x = xa
by A30, XTUPLE_0:1;
assume
[z,u] in { [a,([o, the carrier of S] -tree a)] where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
;
( ( not x = z or y = u ) & ( not y = u or x = z ) )
then consider za being
Element of
(S -Terms X) * such that A33:
[z,u] = [za,([o, the carrier of S] -tree za)]
and A34:
za is
ArgumentSeq of
Sym (
o,
X)
and
ex
t being
Element of the
Sorts of
(FreeMSA X) . v st
(
depth t = n + 1 &
t = [o, the carrier of S] -tree za )
;
A35:
z = za
by A33, XTUPLE_0:1;
hence
(
x = z implies
y = u )
by A30, A33, A32, XTUPLE_0:1;
( not y = u or x = z )
A36:
u = [o, the carrier of S] -tree za
by A33, XTUPLE_0:1;
A37:
y = [o, the carrier of S] -tree xa
by A30, XTUPLE_0:1;
assume
y = u
;
x = z
hence
x = z
by A31, A34, A32, A37, A35, A36, TREES_4:15;
verum
end;
consider nS being
FinSequence such that A38:
(
len nS = len (the_arity_of o) & ( for
k being
Nat st
k in dom nS holds
nS . k = H3(
k) ) )
from FINSEQ_1:sch 2();
A39:
dom nS = Seg (len nS)
by FINSEQ_1:def 3;
A40:
dom nS = Seg (len (the_arity_of o))
by A38, FINSEQ_1:def 3;
A41:
{ a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } c= product nS
proof
let x be
object ;
TARSKI:def 3 ( not x in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } or x in product nS )
assume
x in { a where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) }
;
x in product nS
then consider a being
Element of
(S -Terms X) * such that A42:
x = a
and A43:
a is
ArgumentSeq of
Sym (
o,
X)
and A44:
ex
t being
Element of the
Sorts of
(FreeMSA X) . v st
(
depth t = n + 1 &
t = [o, the carrier of S] -tree a )
;
reconsider a =
a as
ArgumentSeq of
Sym (
o,
X)
by A43;
A45:
(
len a = len (the_arity_of o) &
dom a = Seg (len a) )
by FINSEQ_1:def 3, MSATERM:22;
now for x being object st x in dom a holds
a . x in nS . xlet x be
object ;
( x in dom a implies a . x in nS . x )assume A46:
x in dom a
;
a . x in nS . xthen reconsider k =
x as
Element of
NAT ;
reconsider ak =
a . k as
Term of
S,
X by A46, MSATERM:22;
A47:
the_sort_of ak = (the_arity_of o) /. k
by A46, MSATERM:23;
the
Sorts of
(FreeMSA X) . (the_sort_of ak) = FreeSort (
X,
(the_sort_of ak))
by A2, MSAFREE:def 11;
then reconsider ak =
ak as
Element of the
Sorts of
(FreeMSA X) . ((the_arity_of o) /. k) by A47, MSATERM:def 5;
depth ak < n + 1
by A44, A46, MSSCYC_1:27;
then A48:
depth ak <= n
by NAT_1:13;
set nSk =
{ tk where tk is Element of the Sorts of (FreeMSA X) . ((the_arity_of o) /. k) : depth tk <= n } ;
{ tk where tk is Element of the Sorts of (FreeMSA X) . ((the_arity_of o) /. k) : depth tk <= n } = nS . x
by A38, A40, A45, A46;
hence
a . x in nS . x
by A48;
verum end;
hence
x in product nS
by A38, A39, A42, A45, CARD_3:def 5;
verum
end;
then
nS is
finite-yielding
by FINSET_1:def 4;
then
product nS is
finite
;
then
{ ([o, the carrier of S] -tree a) where a is Element of (S -Terms X) * : ( a is ArgumentSeq of Sym (o,X) & ex t being Element of the Sorts of (FreeMSA X) . v st
( depth t = n + 1 & t = [o, the carrier of S] -tree a ) ) } is
finite
by A25, A41, CARD_1:38;
hence
dvs . k is
finite
by A7, A18, A20;
verum
end;
then A50:
Union dvs is
finite
by CARD_2:88;
defpred S5[
Element of the
Sorts of
(FreeMSA X) . v]
means depth $1
<= n;
set dln =
{ t where t is Element of the Sorts of (FreeMSA X) . v : S5[t] } ;
A51:
{ t where t is Element of the Sorts of (FreeMSA X) . v : ( S5[t] or S2[t] ) } = { t where t is Element of the Sorts of (FreeMSA X) . v : S5[t] } \/ { t where t is Element of the Sorts of (FreeMSA X) . v : S2[t] }
from TOPREAL1:sch 1();
A52:
for
t being
Element of the
Sorts of
(FreeMSA X) . v holds
(
S3[
t] iff
S4[
t] )
by NAT_1:8, NAT_1:12;
A53:
{ H1(t) where t is Element of the Sorts of (FreeMSA X) . v : S3[t] } = { H1(t) where t is Element of the Sorts of (FreeMSA X) . v : S4[t] }
from FRAENKEL:sch 3(A52);
{ t where t is Element of the Sorts of (FreeMSA X) . v : S5[t] } is
finite
by A4;
hence
{ t where t is Element of the Sorts of (FreeMSA X) . v : depth t <= n + 1 } is
finite
by A53, A51, A50, A10;
verum
end;
A54:
S1[ 0 ]
thus
for n being Nat holds S1[n]
from NAT_1:sch 2(A54, A3); verum