:: MSAFREE semantic presentation
theorem Th1: :: MSAFREE:1
definition
let c1 be
set ;
let c2,
c3 be
ManySortedSet of
c1;
let c4 be
ManySortedSubset of
c2;
let c5 be
ManySortedFunction of
c2,
c3;
func c5 || c4 -> ManySortedFunction of
a4,
a3 means :
Def1:
:: MSAFREE:def 1
for
b1 being
set st
b1 in a1 holds
for
b2 being
Function of
a2 . b1,
a3 . b1 st
b2 = a5 . b1 holds
a6 . b1 = b2 | (a4 . b1);
existence
ex b1 being ManySortedFunction of c4,c3 st
for b2 being set st b2 in c1 holds
for b3 being Function of c2 . b2,c3 . b2 st b3 = c5 . b2 holds
b1 . b2 = b3 | (c4 . b2)
uniqueness
for b1, b2 being ManySortedFunction of c4,c3 st ( for b3 being set st b3 in c1 holds
for b4 being Function of c2 . b3,c3 . b3 st b4 = c5 . b3 holds
b1 . b3 = b4 | (c4 . b3) ) & ( for b3 being set st b3 in c1 holds
for b4 being Function of c2 . b3,c3 . b3 st b4 = c5 . b3 holds
b2 . b3 = b4 | (c4 . b3) ) holds
b1 = b2
end;
:: deftheorem Def1 defines || MSAFREE:def 1 :
:: deftheorem Def2 defines coprod MSAFREE:def 2 :
for
b1 being
set for
b2 being
ManySortedSet of
b1 for
b3 being
set st
b3 in b1 holds
for
b4 being
set holds
(
b4 = coprod b3,
b2 iff for
b5 being
set holds
(
b5 in b4 iff ex
b6 being
set st
(
b6 in b2 . b3 &
b5 = [b6,b3] ) ) );
:: deftheorem Def3 defines coprod MSAFREE:def 3 :
theorem Th2: :: MSAFREE:2
:: deftheorem Def4 defines GeneratorSet MSAFREE:def 4 :
theorem Th3: :: MSAFREE:3
:: deftheorem Def5 defines free MSAFREE:def 5 :
:: deftheorem Def6 defines free MSAFREE:def 6 :
theorem Th4: :: MSAFREE:4
definition
let c1 be non
empty non
void ManySortedSign ;
let c2 be
ManySortedSet of the
carrier of
c1;
canceled;canceled;func REL c2 -> Relation of
[:the OperSymbols of a1,{the carrier of a1}:] \/ (Union (coprod a2)),
([:the OperSymbols of a1,{the carrier of a1}:] \/ (Union (coprod a2))) * means :
Def9:
:: MSAFREE:def 9
for
b1 being
Element of
[:the OperSymbols of a1,{the carrier of a1}:] \/ (Union (coprod a2)) for
b2 being
Element of
([:the OperSymbols of a1,{the carrier of a1}:] \/ (Union (coprod a2))) * holds
(
[b1,b2] in a3 iff (
b1 in [:the OperSymbols of a1,{the carrier of a1}:] & ( for
b3 being
OperSymbol of
a1 st
[b3,the carrier of a1] = b1 holds
(
len b2 = len (the_arity_of b3) & ( for
b4 being
set st
b4 in dom b2 holds
( (
b2 . b4 in [:the OperSymbols of a1,{the carrier of a1}:] implies for
b5 being
OperSymbol of
a1 st
[b5,the carrier of a1] = b2 . b4 holds
the_result_sort_of b5 = (the_arity_of b3) . b4 ) & (
b2 . b4 in Union (coprod a2) implies
b2 . b4 in coprod ((the_arity_of b3) . b4),
a2 ) ) ) ) ) ) );
existence
ex b1 being Relation of [:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2)),([:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2))) * st
for b2 being Element of [:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2))
for b3 being Element of ([:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2))) * holds
( [b2,b3] in b1 iff ( b2 in [:the OperSymbols of c1,{the carrier of c1}:] & ( for b4 being OperSymbol of c1 st [b4,the carrier of c1] = b2 holds
( len b3 = len (the_arity_of b4) & ( for b5 being set st b5 in dom b3 holds
( ( b3 . b5 in [:the OperSymbols of c1,{the carrier of c1}:] implies for b6 being OperSymbol of c1 st [b6,the carrier of c1] = b3 . b5 holds
the_result_sort_of b6 = (the_arity_of b4) . b5 ) & ( b3 . b5 in Union (coprod c2) implies b3 . b5 in coprod ((the_arity_of b4) . b5),c2 ) ) ) ) ) ) )
uniqueness
for b1, b2 being Relation of [:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2)),([:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2))) * st ( for b3 being Element of [:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2))
for b4 being Element of ([:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2))) * holds
( [b3,b4] in b1 iff ( b3 in [:the OperSymbols of c1,{the carrier of c1}:] & ( for b5 being OperSymbol of c1 st [b5,the carrier of c1] = b3 holds
( len b4 = len (the_arity_of b5) & ( for b6 being set st b6 in dom b4 holds
( ( b4 . b6 in [:the OperSymbols of c1,{the carrier of c1}:] implies for b7 being OperSymbol of c1 st [b7,the carrier of c1] = b4 . b6 holds
the_result_sort_of b7 = (the_arity_of b5) . b6 ) & ( b4 . b6 in Union (coprod c2) implies b4 . b6 in coprod ((the_arity_of b5) . b6),c2 ) ) ) ) ) ) ) ) & ( for b3 being Element of [:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2))
for b4 being Element of ([:the OperSymbols of c1,{the carrier of c1}:] \/ (Union (coprod c2))) * holds
( [b3,b4] in b2 iff ( b3 in [:the OperSymbols of c1,{the carrier of c1}:] & ( for b5 being OperSymbol of c1 st [b5,the carrier of c1] = b3 holds
( len b4 = len (the_arity_of b5) & ( for b6 being set st b6 in dom b4 holds
( ( b4 . b6 in [:the OperSymbols of c1,{the carrier of c1}:] implies for b7 being OperSymbol of c1 st [b7,the carrier of c1] = b4 . b6 holds
the_result_sort_of b7 = (the_arity_of b5) . b6 ) & ( b4 . b6 in Union (coprod c2) implies b4 . b6 in coprod ((the_arity_of b5) . b6),c2 ) ) ) ) ) ) ) ) holds
b1 = b2
end;
:: deftheorem Def7 MSAFREE:def 7 :
canceled;
:: deftheorem Def8 MSAFREE:def 8 :
canceled;
:: deftheorem Def9 defines REL MSAFREE:def 9 :
for
b1 being non
empty non
void ManySortedSign for
b2 being
ManySortedSet of the
carrier of
b1 for
b3 being
Relation of
[:the OperSymbols of b1,{the carrier of b1}:] \/ (Union (coprod b2)),
([:the OperSymbols of b1,{the carrier of b1}:] \/ (Union (coprod b2))) * holds
(
b3 = REL b2 iff for
b4 being
Element of
[:the OperSymbols of b1,{the carrier of b1}:] \/ (Union (coprod b2)) for
b5 being
Element of
([:the OperSymbols of b1,{the carrier of b1}:] \/ (Union (coprod b2))) * holds
(
[b4,b5] in b3 iff (
b4 in [:the OperSymbols of b1,{the carrier of b1}:] & ( for
b6 being
OperSymbol of
b1 st
[b6,the carrier of b1] = b4 holds
(
len b5 = len (the_arity_of b6) & ( for
b7 being
set st
b7 in dom b5 holds
( (
b5 . b7 in [:the OperSymbols of b1,{the carrier of b1}:] implies for
b8 being
OperSymbol of
b1 st
[b8,the carrier of b1] = b5 . b7 holds
the_result_sort_of b8 = (the_arity_of b6) . b7 ) & (
b5 . b7 in Union (coprod b2) implies
b5 . b7 in coprod ((the_arity_of b6) . b7),
b2 ) ) ) ) ) ) ) );
theorem Th5: :: MSAFREE:5
:: deftheorem Def10 defines DTConMSA MSAFREE:def 10 :
theorem Th6: :: MSAFREE:6
theorem Th7: :: MSAFREE:7
:: deftheorem Def11 defines Sym MSAFREE:def 11 :
:: deftheorem Def12 defines FreeSort MSAFREE:def 12 :
:: deftheorem Def13 defines FreeSort MSAFREE:def 13 :
theorem Th8: :: MSAFREE:8
theorem Th9: :: MSAFREE:9
theorem Th10: :: MSAFREE:10
theorem Th11: :: MSAFREE:11
canceled;
theorem Th12: :: MSAFREE:12
theorem Th13: :: MSAFREE:13
definition
let c1 be non
empty non
void ManySortedSign ;
let c2 be
V3 ManySortedSet of the
carrier of
c1;
let c3 be
OperSymbol of
c1;
func DenOp c3,
c2 -> Function of
(((FreeSort a2) # ) * the Arity of a1) . a3,
((FreeSort a2) * the ResultSort of a1) . a3 means :
Def14:
:: MSAFREE:def 14
for
b1 being
FinSequence of
TS (DTConMSA a2) st
Sym a3,
a2 ==> roots b1 holds
a4 . b1 = (Sym a3,a2) -tree b1;
existence
ex b1 being Function of (((FreeSort c2) # ) * the Arity of c1) . c3,((FreeSort c2) * the ResultSort of c1) . c3 st
for b2 being FinSequence of TS (DTConMSA c2) st Sym c3,c2 ==> roots b2 holds
b1 . b2 = (Sym c3,c2) -tree b2
uniqueness
for b1, b2 being Function of (((FreeSort c2) # ) * the Arity of c1) . c3,((FreeSort c2) * the ResultSort of c1) . c3 st ( for b3 being FinSequence of TS (DTConMSA c2) st Sym c3,c2 ==> roots b3 holds
b1 . b3 = (Sym c3,c2) -tree b3 ) & ( for b3 being FinSequence of TS (DTConMSA c2) st Sym c3,c2 ==> roots b3 holds
b2 . b3 = (Sym c3,c2) -tree b3 ) holds
b1 = b2
end;
:: deftheorem Def14 defines DenOp MSAFREE:def 14 :
:: deftheorem Def15 defines FreeOper MSAFREE:def 15 :
:: deftheorem Def16 defines FreeMSA MSAFREE:def 16 :
:: deftheorem Def17 defines FreeGen MSAFREE:def 17 :
theorem Th14: :: MSAFREE:14
:: deftheorem Def18 defines FreeGen MSAFREE:def 18 :
theorem Th15: :: MSAFREE:15
theorem Th16: :: MSAFREE:16
definition
let c1 be non
empty non
void ManySortedSign ;
let c2 be
V3 ManySortedSet of the
carrier of
c1;
let c3 be
SortSymbol of
c1;
func Reverse c3,
c2 -> Function of
FreeGen a3,
a2,
a2 . a3 means :
Def19:
:: MSAFREE:def 19
for
b1 being
Symbol of
(DTConMSA a2) st
root-tree b1 in FreeGen a3,
a2 holds
a4 . (root-tree b1) = b1 `1 ;
existence
ex b1 being Function of FreeGen c3,c2,c2 . c3 st
for b2 being Symbol of (DTConMSA c2) st root-tree b2 in FreeGen c3,c2 holds
b1 . (root-tree b2) = b2 `1
uniqueness
for b1, b2 being Function of FreeGen c3,c2,c2 . c3 st ( for b3 being Symbol of (DTConMSA c2) st root-tree b3 in FreeGen c3,c2 holds
b1 . (root-tree b3) = b3 `1 ) & ( for b3 being Symbol of (DTConMSA c2) st root-tree b3 in FreeGen c3,c2 holds
b2 . (root-tree b3) = b3 `1 ) holds
b1 = b2
end;
:: deftheorem Def19 defines Reverse MSAFREE:def 19 :
:: deftheorem Def20 defines Reverse MSAFREE:def 20 :
:: deftheorem Def21 defines pi MSAFREE:def 21 :
:: deftheorem Def22 defines @ MSAFREE:def 22 :
:: deftheorem Def23 defines pi MSAFREE:def 23 :
theorem Th17: :: MSAFREE:17
theorem Th18: :: MSAFREE:18
theorem Th19: :: MSAFREE:19
theorem Th20: :: MSAFREE:20