defpred S1[ set , set ] means ex v being Vertex of IIG st
( v = $1 & ( $1 in InputVertices IIG implies $2 = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( $1 in SortsWithConstants IIG implies $2 = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( $1 in (InnerVertices IIG) \ (SortsWithConstants IIG) implies $2 = id (FreeGen v,the Sorts of A) ) );
A1:
now let i be
set ;
:: thesis: ( i in the carrier of IIG implies ex j being set st S1[i,j] )assume A2:
i in the
carrier of
IIG
;
:: thesis: ex j being set st S1[i,j]then reconsider v =
i as
Vertex of
IIG ;
A3:
((InnerVertices IIG) \ (SortsWithConstants IIG)) \/ (SortsWithConstants IIG) = InnerVertices IIG
by MSAFREE2:5, XBOOLE_1:45;
v in (InputVertices IIG) \/ (InnerVertices IIG)
by A2, XBOOLE_1:45;
then A4:
(
v in InputVertices IIG or
v in InnerVertices IIG )
by XBOOLE_0:def 3;
thus
ex
j being
set st
S1[
i,
j]
:: thesis: verumproof
per cases
( v in InputVertices IIG or v in SortsWithConstants IIG or v in (InnerVertices IIG) \ (SortsWithConstants IIG) )
by A3, A4, XBOOLE_0:def 3;
suppose A5:
v in InputVertices IIG
;
:: thesis: ex j being set st S1[i,j]reconsider j =
(FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) as
set ;
take
j
;
:: thesis: S1[i,j]take
v
;
:: thesis: ( v = i & ( i in InputVertices IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( i in SortsWithConstants IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( i in (InnerVertices IIG) \ (SortsWithConstants IIG) implies j = id (FreeGen v,the Sorts of A) ) )thus
v = i
;
:: thesis: ( ( i in InputVertices IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( i in SortsWithConstants IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( i in (InnerVertices IIG) \ (SortsWithConstants IIG) implies j = id (FreeGen v,the Sorts of A) ) )thus
(
i in InputVertices IIG implies
j = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) )
;
:: thesis: ( ( i in SortsWithConstants IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( i in (InnerVertices IIG) \ (SortsWithConstants IIG) implies j = id (FreeGen v,the Sorts of A) ) )assume A7:
i in (InnerVertices IIG) \ (SortsWithConstants IIG)
;
:: thesis: j = id (FreeGen v,the Sorts of A)A8:
(InnerVertices IIG) \ (SortsWithConstants IIG) c= InnerVertices IIG
by XBOOLE_1:36;
InputVertices IIG misses InnerVertices IIG
by XBOOLE_1:79;
hence
j = id (FreeGen v,the Sorts of A)
by A5, A7, A8, XBOOLE_0:3;
:: thesis: verum end; suppose A9:
v in SortsWithConstants IIG
;
:: thesis: ex j being set st S1[i,j]reconsider j =
(FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) as
set ;
take
j
;
:: thesis: S1[i,j]take
v
;
:: thesis: ( v = i & ( i in InputVertices IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( i in SortsWithConstants IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( i in (InnerVertices IIG) \ (SortsWithConstants IIG) implies j = id (FreeGen v,the Sorts of A) ) )thus
v = i
;
:: thesis: ( ( i in InputVertices IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( i in SortsWithConstants IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( i in (InnerVertices IIG) \ (SortsWithConstants IIG) implies j = id (FreeGen v,the Sorts of A) ) )thus
(
i in SortsWithConstants IIG implies
j = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) )
;
:: thesis: ( i in (InnerVertices IIG) \ (SortsWithConstants IIG) implies j = id (FreeGen v,the Sorts of A) )assume A11:
i in (InnerVertices IIG) \ (SortsWithConstants IIG)
;
:: thesis: j = id (FreeGen v,the Sorts of A)
(InnerVertices IIG) \ (SortsWithConstants IIG) misses SortsWithConstants IIG
by XBOOLE_1:79;
hence
j = id (FreeGen v,the Sorts of A)
by A9, A11, XBOOLE_0:3;
:: thesis: verum end; suppose A12:
v in (InnerVertices IIG) \ (SortsWithConstants IIG)
;
:: thesis: ex j being set st S1[i,j]reconsider j =
id (FreeGen v,the Sorts of A) as
set ;
take
j
;
:: thesis: S1[i,j]take
v
;
:: thesis: ( v = i & ( i in InputVertices IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( i in SortsWithConstants IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( i in (InnerVertices IIG) \ (SortsWithConstants IIG) implies j = id (FreeGen v,the Sorts of A) ) )thus
v = i
;
:: thesis: ( ( i in InputVertices IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( i in SortsWithConstants IIG implies j = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( i in (InnerVertices IIG) \ (SortsWithConstants IIG) implies j = id (FreeGen v,the Sorts of A) ) )assume
i in (InnerVertices IIG) \ (SortsWithConstants IIG)
;
:: thesis: j = id (FreeGen v,the Sorts of A)thus
j = id (FreeGen v,the Sorts of A)
;
:: thesis: verum end; end;
end; end;
consider M being ManySortedSet of such that
A16:
for i being set st i in the carrier of IIG holds
S1[i,M . i]
from PBOOLE:sch 3(A1);
A17:
now let i be
set ;
:: thesis: ( i in the carrier of IIG implies M . b1 is Function of ((FreeGen the Sorts of A) . b1),(the Sorts of (FreeEnv A) . b1) )assume A18:
i in the
carrier of
IIG
;
:: thesis: M . b1 is Function of ((FreeGen the Sorts of A) . b1),(the Sorts of (FreeEnv A) . b1)then reconsider v =
i as
Vertex of
IIG ;
A19:
((InnerVertices IIG) \ (SortsWithConstants IIG)) \/ (SortsWithConstants IIG) = InnerVertices IIG
by MSAFREE2:5, XBOOLE_1:45;
v in (InputVertices IIG) \/ (InnerVertices IIG)
by A18, XBOOLE_1:45;
then A20:
(
v in InputVertices IIG or
v in InnerVertices IIG )
by XBOOLE_0:def 3;
A21:
FreeGen v,the
Sorts of
A = (FreeGen the Sorts of A) . v
by MSAFREE:def 18;
A22:
FreeEnv A = MSAlgebra(#
(FreeSort the Sorts of A),
(FreeOper the Sorts of A) #)
by MSAFREE:def 16;
per cases
( v in InputVertices IIG or v in SortsWithConstants IIG or v in (InnerVertices IIG) \ (SortsWithConstants IIG) )
by A19, A20, XBOOLE_0:def 3;
suppose A25:
v in SortsWithConstants IIG
;
:: thesis: M . b1 is Function of ((FreeGen the Sorts of A) . b1),(the Sorts of (FreeEnv A) . b1)then
v in { s where s is SortSymbol of IIG : s is with_const_op }
by MSAFREE2:def 1;
then consider s being
SortSymbol of
IIG such that A26:
v = s
and A27:
s is
with_const_op
;
consider o being
OperSymbol of
IIG such that A28:
the
Arity of
IIG . o = {}
and A29:
the
ResultSort of
IIG . o = v
by A26, A27, MSUALG_2:def 2;
set e =
root-tree [(action_at v),the carrier of IIG];
A30:
SortsWithConstants IIG c= InnerVertices IIG
by MSAFREE2:5;
the_result_sort_of o = v
by A29, MSUALG_1:def 7;
then A31:
o = action_at v
by A25, A30, MSAFREE2:def 7;
A32:
root-tree [(action_at v),the carrier of IIG] = [(action_at v),the carrier of IIG] -tree {}
by TREES_4:20;
A33:
{} = <*> (IIG -Terms the Sorts of A)
;
set p =
<*> (TS (DTConMSA the Sorts of A));
reconsider sy =
Sym (action_at v),the
Sorts of
A as
NonTerminal of
(DTConMSA the Sorts of A) ;
A34:
<*> (TS (DTConMSA the Sorts of A)) = the_arity_of o
by A28, MSUALG_1:def 6;
for
n being
Nat st
n in dom (<*> (TS (DTConMSA the Sorts of A))) holds
(<*> (TS (DTConMSA the Sorts of A))) . n in FreeSort the
Sorts of
A,
((the_arity_of o) /. n)
;
then
<*> (TS (DTConMSA the Sorts of A)) in (((FreeSort the Sorts of A) # ) * the Arity of IIG) . o
by A34, MSAFREE:9;
then
sy ==> roots (<*> (TS (DTConMSA the Sorts of A)))
by A31, MSAFREE:10;
then
<*> (TS (DTConMSA the Sorts of A)) is
SubtreeSeq of
Sym (action_at v),the
Sorts of
A
by DTCONSTR:def 9;
then
{} is
ArgumentSeq of
sy
by A33, MSATERM:def 2;
then
root-tree [(action_at v),the carrier of IIG] in IIG -Terms the
Sorts of
A
by A32, MSATERM:1;
then reconsider e =
root-tree [(action_at v),the carrier of IIG] as
Element of
TS (DTConMSA the Sorts of A) by MSATERM:def 1;
A35:
e . {} = [(action_at v),the carrier of IIG]
by TREES_4:3;
the_result_sort_of (action_at v) = v
by A25, A30, MSAFREE2:def 7;
then
e in { a where a is Element of TS (DTConMSA the Sorts of A) : ( ex x being set st
( x in the Sorts of A . v & a = root-tree [x,v] ) or ex o being OperSymbol of IIG st
( [o,the carrier of IIG] = a . {} & the_result_sort_of o = v ) ) }
by A35;
then
e in FreeSort the
Sorts of
A,
v
by MSAFREE:def 12;
then A36:
e in the
Sorts of
(FreeEnv A) . v
by A22, MSAFREE:def 13;
S1[
v,
M . v]
by A16;
hence
M . i is
Function of
((FreeGen the Sorts of A) . i),
(the Sorts of (FreeEnv A) . i)
by A21, A25, A36, FUNCOP_1:57;
:: thesis: verum end; suppose A37:
v in (InnerVertices IIG) \ (SortsWithConstants IIG)
;
:: thesis: M . b1 is Function of ((FreeGen the Sorts of A) . b1),(the Sorts of (FreeEnv A) . b1)A38:
(
dom (id (FreeGen v,the Sorts of A)) = FreeGen v,the
Sorts of
A &
rng (id (FreeGen v,the Sorts of A)) = FreeGen v,the
Sorts of
A )
by RELAT_1:71;
S1[
v,
M . v]
by A16;
hence
M . i is
Function of
((FreeGen the Sorts of A) . i),
(the Sorts of (FreeEnv A) . i)
by A21, A22, A37, A38, FUNCT_2:def 1, RELSET_1:11;
:: thesis: verum end; end; end;
then reconsider M = M as ManySortedFunction of by FUNCOP_1:def 6;
reconsider M = M as ManySortedFunction of FreeGen the Sorts of A,the Sorts of (FreeEnv A) by A17, PBOOLE:def 18;
take
M
; :: thesis: for v being Vertex of IIG holds
( ( v in InputVertices IIG implies M . v = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( v in SortsWithConstants IIG implies M . v = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( v in (InnerVertices IIG) \ (SortsWithConstants IIG) implies M . v = id (FreeGen v,the Sorts of A) ) )
let v be Vertex of IIG; :: thesis: ( ( v in InputVertices IIG implies M . v = (FreeGen v,the Sorts of A) --> (root-tree [(iv . v),v]) ) & ( v in SortsWithConstants IIG implies M . v = (FreeGen v,the Sorts of A) --> (root-tree [(action_at v),the carrier of IIG]) ) & ( v in (InnerVertices IIG) \ (SortsWithConstants IIG) implies M . v = id (FreeGen v,the Sorts of A) ) )
assume A41:
v in (InnerVertices IIG) \ (SortsWithConstants IIG)
; :: thesis: M . v = id (FreeGen v,the Sorts of A)
S1[v,M . v]
by A16;
hence
M . v = id (FreeGen v,the Sorts of A)
by A41; :: thesis: verum