let S be OrderSortedSign; :: thesis: for X being V5() ManySortedSet of holds
( NonTerminals (DTConOSA X) = [:the carrier' of S,{the carrier of S}:] & Terminals (DTConOSA X) = Union (coprod X) )
let X be V5() ManySortedSet of ; :: thesis: ( NonTerminals (DTConOSA X) = [:the carrier' of S,{the carrier of S}:] & Terminals (DTConOSA X) = Union (coprod X) )
A1:
Union (coprod X) misses [:the carrier' of S,{the carrier of S}:]
by MSAFREE:4;
set D = DTConOSA X;
set A = [:the carrier' of S,{the carrier of S}:] \/ (Union (coprod X));
A2:
( the carrier of (DTConOSA X) = (Terminals (DTConOSA X)) \/ (NonTerminals (DTConOSA X)) & Terminals (DTConOSA X) misses NonTerminals (DTConOSA X) )
by DTCONSTR:8, LANG1:1;
thus A3:
NonTerminals (DTConOSA X) c= [:the carrier' of S,{the carrier of S}:]
:: according to XBOOLE_0:def 10 :: thesis: ( [:the carrier' of S,{the carrier of S}:] c= NonTerminals (DTConOSA X) & Terminals (DTConOSA X) = Union (coprod X) )proof
let x be
set ;
:: according to TARSKI:def 3 :: thesis: ( not x in NonTerminals (DTConOSA X) or x in [:the carrier' of S,{the carrier of S}:] )
assume
x in NonTerminals (DTConOSA X)
;
:: thesis: x in [:the carrier' of S,{the carrier of S}:]
then
x in { s where s is Symbol of (DTConOSA X) : ex n being FinSequence st s ==> n }
by LANG1:def 3;
then consider s being
Symbol of
(DTConOSA X) such that A4:
(
s = x & ex
n being
FinSequence st
s ==> n )
;
consider n being
FinSequence such that A5:
s ==> n
by A4;
A6:
[s,n] in the
Rules of
(DTConOSA X)
by A5, LANG1:def 1;
reconsider s =
s as
Element of
[:the carrier' of S,{the carrier of S}:] \/ (Union (coprod X)) ;
reconsider n =
n as
Element of
([:the carrier' of S,{the carrier of S}:] \/ (Union (coprod X))) * by A6, ZFMISC_1:106;
[s,n] in OSREL X
by A5, LANG1:def 1;
hence
x in [:the carrier' of S,{the carrier of S}:]
by A4, Def4;
:: thesis: verum
end;
thus A7:
[:the carrier' of S,{the carrier of S}:] c= NonTerminals (DTConOSA X)
:: thesis: Terminals (DTConOSA X) = Union (coprod X)proof
let x be
set ;
:: according to TARSKI:def 3 :: thesis: ( not x in [:the carrier' of S,{the carrier of S}:] or x in NonTerminals (DTConOSA X) )
assume A8:
x in [:the carrier' of S,{the carrier of S}:]
;
:: thesis: x in NonTerminals (DTConOSA X)
then consider o being
Element of the
carrier' of
S,
x2 being
Element of
{the carrier of S} such that A9:
x = [o,x2]
by DOMAIN_1:9;
A10:
the
carrier of
S = x2
by TARSKI:def 1;
then reconsider xa =
[o,the carrier of S] as
Element of the
carrier of
(DTConOSA X) by A8, A9, XBOOLE_0:def 3;
set O =
the_arity_of o;
defpred S1[
set ,
set ]
means ex
i being
Element of
S st
(
i <= (the_arity_of o) /. $1 & $2
in coprod i,
X );
A11:
for
a being
set st
a in Seg (len (the_arity_of o)) holds
ex
b being
set st
S1[
a,
b]
proof
let a be
set ;
:: thesis: ( a in Seg (len (the_arity_of o)) implies ex b being set st S1[a,b] )
assume
a in Seg (len (the_arity_of o))
;
:: thesis: ex b being set st S1[a,b]
then A12:
a in dom (the_arity_of o)
by FINSEQ_1:def 3;
then A13:
(
(the_arity_of o) . a in rng (the_arity_of o) &
rng (the_arity_of o) c= the
carrier of
S )
by FINSEQ_1:def 4, FUNCT_1:def 5;
then
not
X . ((the_arity_of o) . a) is
empty
;
then consider x being
set such that A14:
x in X . ((the_arity_of o) . a)
by XBOOLE_0:def 1;
take y =
[x,((the_arity_of o) . a)];
:: thesis: S1[a,y]
A15:
y in coprod ((the_arity_of o) . a),
X
by A13, A14, MSAFREE:def 2;
take
(the_arity_of o) /. a
;
:: thesis: ( (the_arity_of o) /. a <= (the_arity_of o) /. a & y in coprod ((the_arity_of o) /. a),X )
thus
(
(the_arity_of o) /. a <= (the_arity_of o) /. a &
y in coprod ((the_arity_of o) /. a),
X )
by A12, A15, PARTFUN1:def 8;
:: thesis: verum
end;
consider b being
Function such that A16:
(
dom b = Seg (len (the_arity_of o)) & ( for
a being
set st
a in Seg (len (the_arity_of o)) holds
S1[
a,
b . a] ) )
from CLASSES1:sch 1(A11);
reconsider b =
b as
FinSequence by A16, FINSEQ_1:def 2;
rng b c= [:the carrier' of S,{the carrier of S}:] \/ (Union (coprod X))
then reconsider b =
b as
FinSequence of
[:the carrier' of S,{the carrier of S}:] \/ (Union (coprod X)) by FINSEQ_1:def 4;
reconsider b =
b as
Element of
([:the carrier' of S,{the carrier of S}:] \/ (Union (coprod X))) * by FINSEQ_1:def 11;
A19:
len b = len (the_arity_of o)
by A16, FINSEQ_1:def 3;
now let c be
set ;
:: thesis: ( c in dom b implies ( ( b . c in [:the carrier' of S,{the carrier of S}:] implies for o1 being OperSymbol of S st [o1,the carrier of S] = b . c holds
the_result_sort_of o1 <= (the_arity_of o) /. c ) & ( b . c in Union (coprod X) implies ex i being Element of S st
( i <= (the_arity_of o) /. c & b . c in coprod i,X ) ) ) )assume
c in dom b
;
:: thesis: ( ( b . c in [:the carrier' of S,{the carrier of S}:] implies for o1 being OperSymbol of S st [o1,the carrier of S] = b . c holds
the_result_sort_of o1 <= (the_arity_of o) /. c ) & ( b . c in Union (coprod X) implies ex i being Element of S st
( i <= (the_arity_of o) /. c & b . c in coprod i,X ) ) )then consider i being
Element of
S such that A20:
(
i <= (the_arity_of o) /. c &
b . c in coprod i,
X )
by A16;
dom (coprod X) = the
carrier of
S
by PARTFUN1:def 4;
then
(coprod X) . i in rng (coprod X)
by FUNCT_1:def 5;
then
coprod i,
X in rng (coprod X)
by MSAFREE:def 3;
then
b . c in union (rng (coprod X))
by A20, TARSKI:def 4;
then
b . c in Union (coprod X)
by CARD_3:def 4;
hence
(
b . c in [:the carrier' of S,{the carrier of S}:] implies for
o1 being
OperSymbol of
S st
[o1,the carrier of S] = b . c holds
the_result_sort_of o1 <= (the_arity_of o) /. c )
by A1, XBOOLE_0:3;
:: thesis: ( b . c in Union (coprod X) implies ex i being Element of S st
( i <= (the_arity_of o) /. c & b . c in coprod i,X ) )assume
b . c in Union (coprod X)
;
:: thesis: ex i being Element of S st
( i <= (the_arity_of o) /. c & b . c in coprod i,X )thus
ex
i being
Element of
S st
(
i <= (the_arity_of o) /. c &
b . c in coprod i,
X )
by A20;
:: thesis: verum end;
then
[xa,b] in OSREL X
by A19, Th2;
then
xa ==> b
by LANG1:def 1;
then
xa in { t where t is Symbol of (DTConOSA X) : ex n being FinSequence st t ==> n }
;
hence
x in NonTerminals (DTConOSA X)
by A9, A10, LANG1:def 3;
:: thesis: verum
end;
thus
Terminals (DTConOSA X) c= Union (coprod X)
:: according to XBOOLE_0:def 10 :: thesis: Union (coprod X) c= Terminals (DTConOSA X)
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in Union (coprod X) or x in Terminals (DTConOSA X) )
assume A23:
x in Union (coprod X)
; :: thesis: x in Terminals (DTConOSA X)
then
x in [:the carrier' of S,{the carrier of S}:] \/ (Union (coprod X))
by XBOOLE_0:def 3;
then
( x in Terminals (DTConOSA X) or x in NonTerminals (DTConOSA X) )
by A2, XBOOLE_0:def 3;
hence
x in Terminals (DTConOSA X)
by A1, A3, A23, XBOOLE_0:3; :: thesis: verum