Article ALGSPEC1, MML version 4.99.1005
:: ALGSPEC1:th 1
theorem
for b1, b2, b3 being Relation-like Function-like set
st (proj1 b1) /\ proj1 b2 c= proj1 b3
holds (b1 +* b2) +* b3 = (b2 +* b1) +* b3;
:: ALGSPEC1:th 2
theorem
for b1, b2, b3 being Relation-like Function-like set
st b1 c= b2 & (proj2 b3) /\ proj1 b2 c= proj1 b1
holds b3 * b2 = b3 * b1;
:: ALGSPEC1:th 3
theorem
for b1, b2, b3 being Relation-like Function-like set
st proj1 b1 c= proj2 b2 & proj1 b1 misses proj2 b3 & b2 .: proj1 b3 misses proj1 b1
holds (b2 +* b3) * b1 = b2 * b1;
:: ALGSPEC1:th 4
theorem
for b1, b2, b3, b4 being Relation-like Function-like set
st b1 tolerates b2 & b3 tolerates b4
holds b3 * b1 tolerates b4 * b2;
:: ALGSPEC1:th 5
theorem
for b1, b2, b3, b4 being non empty set
for b5 being Function-like quasi_total Relation of b1,b3
for b6 being Function-like quasi_total Relation of b2,b4
st b5 c= b6
holds b5 * c= b6 *;
:: ALGSPEC1:th 6
theorem
for b1, b2, b3, b4 being non empty set
for b5 being Function-like quasi_total Relation of b1,b3
for b6 being Function-like quasi_total Relation of b2,b4
st b5 tolerates b6
holds b5 * tolerates b6 *;
:: ALGSPEC1:funcnot 1 => ALGSPEC1:func 1
definition
let a1 be set;
let a2 be Relation-like Function-like set;
func A1 -indexing A2 -> ManySortedSet of a1 equals
(id a1) +* (a2 | a1);
end;
:: ALGSPEC1:def 1
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
b1 -indexing b2 = (id b1) +* (b2 | b1);
:: ALGSPEC1:th 7
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
proj2 (b1 -indexing b2) = (b1 \ proj1 b2) \/ (b2 .: b1);
:: ALGSPEC1:th 8
theorem
for b1 being non empty set
for b2 being Relation-like Function-like set
for b3 being Element of b1 holds
(b1 -indexing b2) . b3 = ((id b1) +* b2) . b3;
:: ALGSPEC1:th 9
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
st b2 in b1
holds (b2 in proj1 b3 implies (b1 -indexing b3) . b2 = b3 . b2) &
(b2 in proj1 b3 or (b1 -indexing b3) . b2 = b2);
:: ALGSPEC1:th 10
theorem
for b1 being set
for b2 being Relation-like Function-like set
st proj1 b2 = b1
holds b1 -indexing b2 = b2;
:: ALGSPEC1:th 11
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
b1 -indexing (b1 -indexing b2) = b1 -indexing b2;
:: ALGSPEC1:th 12
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
b1 -indexing ((id b1) +* b2) = b1 -indexing b2;
:: ALGSPEC1:th 13
theorem
for b1 being set
for b2 being Relation-like Function-like set
st b2 c= id b1
holds b1 -indexing b2 = id b1;
:: ALGSPEC1:th 14
theorem
for b1 being set holds
b1 -indexing {} = id b1;
:: ALGSPEC1:th 16
theorem
for b1 being set
for b2 being Relation-like Function-like set
st b1 c= proj1 b2
holds b1 -indexing b2 = b2 | b1;
:: ALGSPEC1:th 17
theorem
for b1 being Relation-like Function-like set holds
{} -indexing b1 = {};
:: ALGSPEC1:th 18
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set
st b1 c= b2
holds (b2 -indexing b3) | b1 = b1 -indexing b3;
:: ALGSPEC1:th 19
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
(b1 \/ b2) -indexing b3 = (b1 -indexing b3) +* (b2 -indexing b3);
:: ALGSPEC1:th 20
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
b1 -indexing b3 tolerates b2 -indexing b3;
:: ALGSPEC1:th 21
theorem
for b1, b2 being set
for b3 being Relation-like Function-like set holds
(b1 \/ b2) -indexing b3 = (b1 -indexing b3) \/ (b2 -indexing b3);
:: ALGSPEC1:th 22
theorem
for b1 being non empty set
for b2, b3 being Relation-like Function-like set
st proj2 b3 c= b1
holds b3 * (b1 -indexing b2) = b3 * ((id b1) +* b2);
:: ALGSPEC1:th 23
theorem
for b1, b2 being Relation-like Function-like set
st proj1 b1 misses proj1 b2 & proj2 b2 misses proj1 b1
for b3 being set holds
(b3 -indexing b2) * b1 = b1 | b3;
:: ALGSPEC1:modenot 1 => ALGSPEC1:mode 1
definition
let a1 be Relation-like Function-like set;
mode rng-retract of A1 -> Relation-like Function-like set means
proj1 it = proj2 a1 & it * a1 = id proj2 a1;
end;
:: ALGSPEC1:dfs 2
definiens
let a1, a2 be Relation-like Function-like set;
To prove
a2 is rng-retract of a1
it is sufficient to prove
thus proj1 a2 = proj2 a1 & a2 * a1 = id proj2 a1;
:: ALGSPEC1:def 2
theorem
for b1, b2 being Relation-like Function-like set holds
b2 is rng-retract of b1
iff
proj1 b2 = proj2 b1 & b2 * b1 = id proj2 b1;
:: ALGSPEC1:th 24
theorem
for b1 being Relation-like Function-like set
for b2 being rng-retract of b1 holds
proj2 b2 c= proj1 b1;
:: ALGSPEC1:th 25
theorem
for b1 being Relation-like Function-like set
for b2 being rng-retract of b1
for b3 being set
st b3 in proj2 b1
holds b2 . b3 in proj1 b1 & b1 . (b2 . b3) = b3;
:: ALGSPEC1:th 26
theorem
for b1 being Relation-like Function-like set
st b1 is one-to-one
holds b1 " is rng-retract of b1;
:: ALGSPEC1:th 27
theorem
for b1 being Relation-like Function-like set
st b1 is one-to-one
for b2 being rng-retract of b1 holds
b2 = b1 ";
:: ALGSPEC1:th 28
theorem
for b1, b2 being Relation-like Function-like set
st b1 tolerates b2
for b3 being rng-retract of b1
for b4 being rng-retract of b2 holds
b3 +* b4 is rng-retract of b1 +* b2;
:: ALGSPEC1:th 29
theorem
for b1, b2 being Relation-like Function-like set
st b1 c= b2
for b3 being rng-retract of b1 holds
ex b4 being rng-retract of b2 st
b3 c= b4;
:: ALGSPEC1:prednot 1 => ALGSPEC1:pred 1
definition
let a1 be non empty non void ManySortedSign;
let a2, a3 be Relation-like Function-like set;
pred A2,A3 form_a_replacement_in A1 means
for b1, b2 being Element of the OperSymbols of a1
st ((id the OperSymbols of a1) +* a3) . b1 = ((id the OperSymbols of a1) +* a3) . b2
holds (the_arity_of b1) * ((id the carrier of a1) +* a2) = (the_arity_of b2) * ((id the carrier of a1) +* a2) &
((id the carrier of a1) +* a2) . the_result_sort_of b1 = ((id the carrier of a1) +* a2) . the_result_sort_of b2;
end;
:: ALGSPEC1:dfs 3
definiens
let a1 be non empty non void ManySortedSign;
let a2, a3 be Relation-like Function-like set;
To prove
a2,a3 form_a_replacement_in a1
it is sufficient to prove
thus for b1, b2 being Element of the OperSymbols of a1
st ((id the OperSymbols of a1) +* a3) . b1 = ((id the OperSymbols of a1) +* a3) . b2
holds (the_arity_of b1) * ((id the carrier of a1) +* a2) = (the_arity_of b2) * ((id the carrier of a1) +* a2) &
((id the carrier of a1) +* a2) . the_result_sort_of b1 = ((id the carrier of a1) +* a2) . the_result_sort_of b2;
:: ALGSPEC1:def 3
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being Relation-like Function-like set holds
b2,b3 form_a_replacement_in b1
iff
for b4, b5 being Element of the OperSymbols of b1
st ((id the OperSymbols of b1) +* b3) . b4 = ((id the OperSymbols of b1) +* b3) . b5
holds (the_arity_of b4) * ((id the carrier of b1) +* b2) = (the_arity_of b5) * ((id the carrier of b1) +* b2) &
((id the carrier of b1) +* b2) . the_result_sort_of b4 = ((id the carrier of b1) +* b2) . the_result_sort_of b5;
:: ALGSPEC1:th 30
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being Relation-like Function-like set holds
b2,b3 form_a_replacement_in b1
iff
for b4, b5 being Element of the OperSymbols of b1
st ((the OperSymbols of b1) -indexing b3) . b4 = ((the OperSymbols of b1) -indexing b3) . b5
holds (the_arity_of b4) * ((the carrier of b1) -indexing b2) = (the_arity_of b5) * ((the carrier of b1) -indexing b2) &
((the carrier of b1) -indexing b2) . the_result_sort_of b4 = ((the carrier of b1) -indexing b2) . the_result_sort_of b5;
:: ALGSPEC1:th 31
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being Relation-like Function-like set holds
b2,b3 form_a_replacement_in b1
iff
(the carrier of b1) -indexing b2,(the OperSymbols of b1) -indexing b3 form_a_replacement_in b1;
:: ALGSPEC1:th 32
theorem
for b1, b2 being non void feasible ManySortedSign
for b3, b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b1,b2
holds b3,b4 form_a_replacement_in b1;
:: ALGSPEC1:th 33
theorem
for b1 being non void feasible ManySortedSign
for b2 being Relation-like Function-like set holds
b2,{} form_a_replacement_in b1;
:: ALGSPEC1:th 34
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st b2 is one-to-one & (the OperSymbols of b1) /\ proj2 b2 c= proj1 b2
holds b3,b2 form_a_replacement_in b1;
:: ALGSPEC1:th 35
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st b2 is one-to-one & proj2 b2 misses the OperSymbols of b1
holds b3,b2 form_a_replacement_in b1;
:: ALGSPEC1:funcreg 1
registration
let a1 be set;
let a2 be non empty set;
let a3 be Function-like quasi_total Relation of a2,a1 *;
let a4 be Function-like quasi_total Relation of a2,a1;
cluster ManySortedSign(#a1,a2,a3,a4#) -> strict non void;
end;
:: ALGSPEC1:funcnot 2 => ALGSPEC1:func 2
definition
let a1 be non empty non void ManySortedSign;
let a2, a3 be Relation-like Function-like set;
assume a2,a3 form_a_replacement_in a1;
func A1 with-replacement(A2,A3) -> non empty strict non void ManySortedSign means
(the carrier of a1) -indexing a2,(the OperSymbols of a1) -indexing a3 form_morphism_between a1,it &
the carrier of it = proj2 ((the carrier of a1) -indexing a2) &
the OperSymbols of it = proj2 ((the OperSymbols of a1) -indexing a3);
end;
:: ALGSPEC1:def 4
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being Relation-like Function-like set
st b2,b3 form_a_replacement_in b1
for b4 being non empty strict non void ManySortedSign holds
b4 = b1 with-replacement(b2,b3)
iff
(the carrier of b1) -indexing b2,(the OperSymbols of b1) -indexing b3 form_morphism_between b1,b4 &
the carrier of b4 = proj2 ((the carrier of b1) -indexing b2) &
the OperSymbols of b4 = proj2 ((the OperSymbols of b1) -indexing b3);
:: ALGSPEC1:th 36
theorem
for b1, b2 being non void feasible ManySortedSign
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b1,b2
holds b3 * * the Arity of b1 = b4 * the Arity of b2;
:: ALGSPEC1:th 37
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st b2,b3 form_a_replacement_in b1
holds (the carrier of b1) -indexing b2 is Function-like quasi_total Relation of the carrier of b1,the carrier of b1 with-replacement(b2,b3);
:: ALGSPEC1:th 38
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st b2,b3 form_a_replacement_in b1
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 with-replacement(b2,b3)
st b4 = (the carrier of b1) -indexing b2
for b5 being rng-retract of (the OperSymbols of b1) -indexing b3 holds
the Arity of b1 with-replacement(b2,b3) = b5 * (b4 * * the Arity of b1);
:: ALGSPEC1:th 39
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st b2,b3 form_a_replacement_in b1
for b4 being rng-retract of (the OperSymbols of b1) -indexing b3 holds
the ResultSort of b1 with-replacement(b2,b3) = b4 * (((the carrier of b1) -indexing b2) * the ResultSort of b1);
:: ALGSPEC1:th 40
theorem
for b1, b2 being non void feasible ManySortedSign
for b3, b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b1,b2
holds b1 with-replacement(b3,b4) is Subsignature of b2;
:: ALGSPEC1:th 41
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set holds
b2,b3 form_a_replacement_in b1
iff
(the carrier of b1) -indexing b2,(the OperSymbols of b1) -indexing b3 form_morphism_between b1,b1 with-replacement(b2,b3);
:: ALGSPEC1:th 42
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st proj1 b2 c= the carrier of b1 & proj1 b3 c= the OperSymbols of b1 & b2,b3 form_a_replacement_in b1
holds (id the carrier of b1) +* b2,(id the OperSymbols of b1) +* b3 form_morphism_between b1,b1 with-replacement(b2,b3);
:: ALGSPEC1:th 43
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st proj1 b2 = the carrier of b1 & proj1 b3 = the OperSymbols of b1 & b2,b3 form_a_replacement_in b1
holds b2,b3 form_morphism_between b1,b1 with-replacement(b2,b3);
:: ALGSPEC1:th 44
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st b2,b3 form_a_replacement_in b1
holds b1 with-replacement((the carrier of b1) -indexing b2,b3) = b1 with-replacement(b2,b3);
:: ALGSPEC1:th 45
theorem
for b1 being non void feasible ManySortedSign
for b2, b3 being Relation-like Function-like set
st b2,b3 form_a_replacement_in b1
holds b1 with-replacement(b2,(the OperSymbols of b1) -indexing b3) = b1 with-replacement(b2,b3);
:: ALGSPEC1:modenot 2 => ALGSPEC1:mode 2
definition
let a1 be feasible ManySortedSign;
mode Extension of A1 -> feasible ManySortedSign means
a1 is Subsignature of it;
end;
:: ALGSPEC1:dfs 5
definiens
let a1, a2 be feasible ManySortedSign;
To prove
a2 is Extension of a1
it is sufficient to prove
thus a1 is Subsignature of a2;
:: ALGSPEC1:def 5
theorem
for b1, b2 being feasible ManySortedSign holds
b2 is Extension of b1
iff
b1 is Subsignature of b2;
:: ALGSPEC1:th 47
theorem
for b1 being feasible ManySortedSign holds
b1 is Extension of b1;
:: ALGSPEC1:th 48
theorem
for b1 being feasible ManySortedSign
for b2 being Extension of b1
for b3 being Extension of b2 holds
b3 is Extension of b1;
:: ALGSPEC1:th 49
theorem
for b1, b2 being non empty feasible ManySortedSign
st b1 tolerates b2
holds b1 +* b2 is Extension of b1;
:: ALGSPEC1:th 50
theorem
for b1, b2 being non empty feasible ManySortedSign holds
b1 +* b2 is Extension of b2;
:: ALGSPEC1:th 51
theorem
for b1, b2, b3 being non empty ManySortedSign
for b4, b5, b6, b7 being Relation-like Function-like set
st b4 tolerates b6 & b4,b5 form_morphism_between b1,b3 & b6,b7 form_morphism_between b2,b3
holds b4 +* b6,b5 +* b7 form_morphism_between b1 +* b2,b3;
:: ALGSPEC1:th 52
theorem
for b1, b2, b3 being non empty feasible ManySortedSign holds
b3 is Extension of b1 & b3 is Extension of b2
iff
b1 tolerates b2 & b3 is Extension of b1 +* b2;
:: ALGSPEC1:condreg 1
registration
let a1 be non empty feasible ManySortedSign;
cluster -> non empty (Extension of a1);
end;
:: ALGSPEC1:condreg 2
registration
let a1 be non void feasible ManySortedSign;
cluster -> non void (Extension of a1);
end;
:: ALGSPEC1:th 53
theorem
for b1, b2 being feasible ManySortedSign
st b1 is empty
holds b2 is Extension of b1;
:: ALGSPEC1:exreg 1
registration
let a1 be feasible ManySortedSign;
cluster non empty strict non void feasible Extension of a1;
end;
:: ALGSPEC1:th 54
theorem
for b1, b2 being Relation-like Function-like set
for b3 being non void feasible ManySortedSign
for b4 being Extension of b3
st b1,b2 form_a_replacement_in b4
holds b1,b2 form_a_replacement_in b3;
:: ALGSPEC1:th 55
theorem
for b1, b2 being Relation-like Function-like set
for b3 being non void feasible ManySortedSign
for b4 being Extension of b3
st b1,b2 form_a_replacement_in b4
holds b4 with-replacement(b1,b2) is Extension of b3 with-replacement(b1,b2);
:: ALGSPEC1:th 56
theorem
for b1, b2 being non void feasible ManySortedSign
st b1 tolerates b2
for b3, b4 being Relation-like Function-like set
st b3,b4 form_a_replacement_in b1 +* b2
holds (b1 +* b2) with-replacement(b3,b4) = (b1 with-replacement(b3,b4)) +* (b2 with-replacement(b3,b4));
:: ALGSPEC1:modenot 3 => ALGSPEC1:mode 3
definition
mode Algebra means
ex b1 being non void feasible ManySortedSign st
it is feasible MSAlgebra over b1;
end;
:: ALGSPEC1:dfs 6
definiens
let a1 be set;
To prove
a1 is Algebra
it is sufficient to prove
thus ex b1 being non void feasible ManySortedSign st
a1 is feasible MSAlgebra over b1;
:: ALGSPEC1:def 6
theorem
for b1 being set holds
b1 is Algebra
iff
ex b2 being non void feasible ManySortedSign st
b1 is feasible MSAlgebra over b2;
:: ALGSPEC1:modenot 4 => ALGSPEC1:mode 4
definition
let a1 be feasible ManySortedSign;
mode Algebra of A1 -> Algebra means
ex b1 being non void Extension of a1 st
it is feasible MSAlgebra over b1;
end;
:: ALGSPEC1:dfs 7
definiens
let a1 be feasible ManySortedSign;
let a2 be Algebra;
To prove
a2 is Algebra of a1
it is sufficient to prove
thus ex b1 being non void Extension of a1 st
a2 is feasible MSAlgebra over b1;
:: ALGSPEC1:def 7
theorem
for b1 being feasible ManySortedSign
for b2 being Algebra holds
b2 is Algebra of b1
iff
ex b3 being non void Extension of b1 st
b2 is feasible MSAlgebra over b3;
:: ALGSPEC1:th 57
theorem
for b1 being non void feasible ManySortedSign
for b2 being feasible MSAlgebra over b1 holds
b2 is Algebra of b1;
:: ALGSPEC1:th 58
theorem
for b1 being feasible ManySortedSign
for b2 being Extension of b1
for b3 being Algebra of b2 holds
b3 is Algebra of b1;
:: ALGSPEC1:th 59
theorem
for b1 being feasible ManySortedSign
for b2 being non empty feasible ManySortedSign
for b3 being MSAlgebra over b2
st b3 is Algebra of b1
holds the carrier of b1 c= the carrier of b2 & the OperSymbols of b1 c= the OperSymbols of b2;
:: ALGSPEC1:th 60
theorem
for b1 being non void feasible ManySortedSign
for b2 being non empty feasible ManySortedSign
for b3 being MSAlgebra over b2
st b3 is Algebra of b1
for b4 being Element of the OperSymbols of b1 holds
(the Charact of b3) . b4 is Function-like quasi_total Relation of (the Sorts of b3) # . the_arity_of b4,(the Sorts of b3) . the_result_sort_of b4;
:: ALGSPEC1:th 61
theorem
for b1 being non empty feasible ManySortedSign
for b2 being Algebra of b1
for b3 being non empty ManySortedSign
st b2 is MSAlgebra over b3
holds b2 is MSAlgebra over b3 +* b1;
:: ALGSPEC1:th 62
theorem
for b1, b2 being non empty feasible ManySortedSign
for b3 being MSAlgebra over b1
st b3 is MSAlgebra over b2
holds the carrier of b1 = the carrier of b2 & the OperSymbols of b1 = the OperSymbols of b2;
:: ALGSPEC1:th 63
theorem
for b1 being non void feasible ManySortedSign
for b2 being non-empty disjoint_valued MSAlgebra over b1 holds
the Sorts of b2 is one-to-one;
:: ALGSPEC1:th 64
theorem
for b1 being non void feasible ManySortedSign
for b2 being disjoint_valued MSAlgebra over b1
for b3, b4 being Element of proj2 the Sorts of b2
st b3 <> b4
holds b3 misses b4;
:: ALGSPEC1:th 65
theorem
for b1, b2 being non void feasible ManySortedSign
for b3 being non-empty disjoint_valued MSAlgebra over b1
st b3 is MSAlgebra over b2
holds ManySortedSign(#the carrier of b1,the OperSymbols of b1,the Arity of b1,the ResultSort of b1#) = ManySortedSign(#the carrier of b2,the OperSymbols of b2,the Arity of b2,the ResultSort of b2#);
:: ALGSPEC1:th 66
theorem
for b1, b2 being non void feasible ManySortedSign
for b3 being non-empty disjoint_valued MSAlgebra over b1
st b3 is Algebra of b2
holds b1 is Extension of b2;