Article INSTALG1, MML version 4.99.1005
:: INSTALG1:th 2
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3 being non-empty ManySortedSet of the carrier of b1
for b4 being set holds
b4 is ArgumentSeq of Sym(b2,b3)
iff
b4 is Element of Args(b2,FreeMSA b3);
:: INSTALG1:condreg 1
registration
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
let a3 be Element of the OperSymbols of a1;
cluster -> DTree-yielding (Element of Args(a3,FreeMSA a2));
end;
:: INSTALG1:th 3
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being MSAlgebra over b1
st the Sorts of b2 is_transformable_to the Sorts of b3
for b4 being Element of the OperSymbols of b1
st Args(b4,b2) <> {}
holds Args(b4,b3) <> {};
:: INSTALG1:th 4
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3 being non-empty ManySortedSet of the carrier of b1
for b4 being Element of Args(b2,FreeMSA b3) holds
(Den(b2,FreeMSA b3)) . b4 = [b2,the carrier of b1] -tree b4;
:: INSTALG1:funcreg 1
registration
let a1 be non empty non void ManySortedSign;
let a2 be non-empty MSAlgebra over a1;
cluster MSAlgebra(#the Sorts of a2,the Charact of a2#) -> strict non-empty;
end;
:: INSTALG1:th 5
theorem
for b1 being non empty non void ManySortedSign
for b2, b3 being MSAlgebra over b1
st MSAlgebra(#the Sorts of b2,the Charact of b2#) = MSAlgebra(#the Sorts of b3,the Charact of b3#)
for b4 being Element of the OperSymbols of b1 holds
Den(b4,b2) = Den(b4,b3);
:: INSTALG1:th 6
theorem
for b1 being non empty non void ManySortedSign
for b2, b3, b4, b5 being MSAlgebra over b1
st MSAlgebra(#the Sorts of b2,the Charact of b2#) = MSAlgebra(#the Sorts of b4,the Charact of b4#) &
MSAlgebra(#the Sorts of b3,the Charact of b3#) = MSAlgebra(#the Sorts of b5,the Charact of b5#)
for b6 being ManySortedFunction of the Sorts of b2,the Sorts of b3
for b7 being ManySortedFunction of the Sorts of b4,the Sorts of b5
st b6 = b7
for b8 being Element of the OperSymbols of b1
st Args(b8,b2) <> {} & Args(b8,b3) <> {}
for b9 being Element of Args(b8,b2)
for b10 being Element of Args(b8,b4)
st b9 = b10
holds b6 # b9 = b7 # b10;
:: INSTALG1:th 7
theorem
for b1 being non empty non void ManySortedSign
for b2, b3, b4, b5 being MSAlgebra over b1
st MSAlgebra(#the Sorts of b2,the Charact of b2#) = MSAlgebra(#the Sorts of b4,the Charact of b4#) &
MSAlgebra(#the Sorts of b3,the Charact of b3#) = MSAlgebra(#the Sorts of b5,the Charact of b5#) &
the Sorts of b2 is_transformable_to the Sorts of b3
for b6 being ManySortedFunction of the Sorts of b2,the Sorts of b3
st b6 is_homomorphism b2,b3
holds ex b7 being ManySortedFunction of the Sorts of b4,the Sorts of b5 st
b7 = b6 & b7 is_homomorphism b4,b5;
:: INSTALG1:attrnot 1 => INSTALG1:attr 1
definition
let a1 be ManySortedSign;
attr a1 is feasible means
(the carrier of a1 = {}) implies the OperSymbols of a1 = {};
end;
:: INSTALG1:dfs 1
definiens
let a1 be ManySortedSign;
To prove
a1 is feasible
it is sufficient to prove
thus (the carrier of a1 = {}) implies the OperSymbols of a1 = {};
:: INSTALG1:def 1
theorem
for b1 being ManySortedSign holds
b1 is feasible
iff
(the carrier of b1 = {} implies the OperSymbols of b1 = {});
:: INSTALG1:th 8
theorem
for b1 being ManySortedSign holds
b1 is feasible
iff
proj1 the ResultSort of b1 = the OperSymbols of b1;
:: INSTALG1:condreg 2
registration
cluster non empty -> feasible (ManySortedSign);
end;
:: INSTALG1:condreg 3
registration
cluster void -> feasible (ManySortedSign);
end;
:: INSTALG1:condreg 4
registration
cluster empty feasible -> void (ManySortedSign);
end;
:: INSTALG1:condreg 5
registration
cluster non void feasible -> non empty (ManySortedSign);
end;
:: INSTALG1:exreg 1
registration
cluster non empty non void ManySortedSign;
end;
:: INSTALG1:th 9
theorem
for b1 being feasible ManySortedSign holds
id the carrier of b1,id the OperSymbols of b1 form_morphism_between b1,b1;
:: INSTALG1:th 10
theorem
for b1, b2 being ManySortedSign
for b3, b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b1,b2
holds b3 is Function-like quasi_total Relation of the carrier of b1,the carrier of b2 &
b4 is Function-like quasi_total Relation of the OperSymbols of b1,the OperSymbols of b2;
:: INSTALG1:modenot 1 => INSTALG1:mode 1
definition
let a1 be feasible ManySortedSign;
mode Subsignature of A1 -> ManySortedSign means
id the carrier of it,id the OperSymbols of it form_morphism_between it,a1;
end;
:: INSTALG1:dfs 2
definiens
let a1 be feasible ManySortedSign;
let a2 be ManySortedSign;
To prove
a2 is Subsignature of a1
it is sufficient to prove
thus id the carrier of a2,id the OperSymbols of a2 form_morphism_between a2,a1;
:: INSTALG1:def 2
theorem
for b1 being feasible ManySortedSign
for b2 being ManySortedSign holds
b2 is Subsignature of b1
iff
id the carrier of b2,id the OperSymbols of b2 form_morphism_between b2,b1;
:: INSTALG1:th 11
theorem
for b1 being feasible ManySortedSign
for b2 being Subsignature of b1 holds
the carrier of b2 c= the carrier of b1 & the OperSymbols of b2 c= the OperSymbols of b1;
:: INSTALG1:condreg 6
registration
let a1 be feasible ManySortedSign;
cluster -> feasible (Subsignature of a1);
end;
:: INSTALG1:th 12
theorem
for b1 being feasible ManySortedSign
for b2 being Subsignature of b1 holds
the ResultSort of b2 c= the ResultSort of b1 & the Arity of b2 c= the Arity of b1;
:: INSTALG1:th 13
theorem
for b1 being feasible ManySortedSign
for b2 being Subsignature of b1 holds
the Arity of b2 = (the Arity of b1) | the OperSymbols of b2 &
the ResultSort of b2 = (the ResultSort of b1) | the OperSymbols of b2;
:: INSTALG1:th 14
theorem
for b1, b2 being feasible ManySortedSign
st the carrier of b2 c= the carrier of b1 & the Arity of b2 c= the Arity of b1 & the ResultSort of b2 c= the ResultSort of b1
holds b2 is Subsignature of b1;
:: INSTALG1:th 15
theorem
for b1, b2 being feasible ManySortedSign
st the carrier of b2 c= the carrier of b1 &
the Arity of b2 = (the Arity of b1) | the OperSymbols of b2 &
the ResultSort of b2 = (the ResultSort of b1) | the OperSymbols of b2
holds b2 is Subsignature of b1;
:: INSTALG1:th 16
theorem
for b1 being feasible ManySortedSign holds
b1 is Subsignature of b1;
:: INSTALG1:th 17
theorem
for b1 being feasible ManySortedSign
for b2 being Subsignature of b1
for b3 being Subsignature of b2 holds
b3 is Subsignature of b1;
:: INSTALG1:th 18
theorem
for b1 being feasible ManySortedSign
for b2 being Subsignature of b1
st b1 is Subsignature of 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#);
:: INSTALG1:exreg 2
registration
let a1 be non empty ManySortedSign;
cluster non empty feasible Subsignature of a1;
end;
:: INSTALG1:exreg 3
registration
let a1 be non void feasible ManySortedSign;
cluster non void feasible Subsignature of a1;
end;
:: INSTALG1:th 19
theorem
for b1 being feasible ManySortedSign
for b2 being Subsignature of b1
for b3 being ManySortedSign
for b4, b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b3
holds b4 | the carrier of b2,b5 | the OperSymbols of b2 form_morphism_between b2,b3;
:: INSTALG1:th 20
theorem
for b1 being ManySortedSign
for b2 being feasible ManySortedSign
for b3 being Subsignature of b2
for b4, b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b3
holds b4,b5 form_morphism_between b1,b2;
:: INSTALG1:th 21
theorem
for b1 being ManySortedSign
for b2 being feasible ManySortedSign
for b3 being Subsignature of b2
for b4, b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b2 & proj2 b4 c= the carrier of b3 & proj2 b5 c= the OperSymbols of b3
holds b4,b5 form_morphism_between b1,b3;
:: INSTALG1:funcnot 1 => INSTALG1:func 1
definition
let a1, a2 be non empty ManySortedSign;
let a3 be MSAlgebra over a2;
let a4, a5 be Relation-like Function-like set;
assume a4,a5 form_morphism_between a1,a2;
func A3 |(A1,A4,A5) -> strict MSAlgebra over a1 means
the Sorts of it = a4 * the Sorts of a3 & the Charact of it = a5 * the Charact of a3;
end;
:: INSTALG1:def 3
theorem
for b1, b2 being non empty ManySortedSign
for b3 being MSAlgebra over b2
for b4, b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b2
for b6 being strict MSAlgebra over b1 holds
b6 = b3 |(b1,b4,b5)
iff
the Sorts of b6 = b4 * the Sorts of b3 & the Charact of b6 = b5 * the Charact of b3;
:: INSTALG1:funcnot 2 => INSTALG1:func 2
definition
let a1, a2 be non empty ManySortedSign;
let a3 be MSAlgebra over a1;
func A3 | A2 -> strict MSAlgebra over a2 equals
a3 |(a2,id the carrier of a2,id the OperSymbols of a2);
end;
:: INSTALG1:def 4
theorem
for b1, b2 being non empty ManySortedSign
for b3 being MSAlgebra over b1 holds
b3 | b2 = b3 |(b2,id the carrier of b2,id the OperSymbols of b2);
:: INSTALG1:th 22
theorem
for b1, b2 being non empty ManySortedSign
for b3, b4 being MSAlgebra over b2
st MSAlgebra(#the Sorts of b3,the Charact of b3#) = MSAlgebra(#the Sorts of b4,the Charact of b4#)
for b5, b6 being Relation-like Function-like set
st b5,b6 form_morphism_between b1,b2
holds b3 |(b1,b5,b6) = b4 |(b1,b5,b6);
:: INSTALG1:th 23
theorem
for b1, b2 being non empty ManySortedSign
for b3 being non-empty MSAlgebra over b2
for b4, b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b2
holds b3 |(b1,b4,b5) is non-empty(b1);
:: INSTALG1:funcreg 2
registration
let a1 be non empty ManySortedSign;
let a2 be non empty Subsignature of a1;
let a3 be non-empty MSAlgebra over a1;
cluster a3 | a2 -> strict non-empty;
end;
:: INSTALG1:th 24
theorem
for b1, b2 being non empty non void ManySortedSign
for b3, b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b1,b2
for b5 being MSAlgebra over b2
for b6 being Element of the OperSymbols of b1
for b7 being Element of the OperSymbols of b2
st b7 = b4 . b6
holds Den(b6,b5 |(b1,b3,b4)) = Den(b7,b5);
:: INSTALG1:th 25
theorem
for b1, b2 being non empty non void ManySortedSign
for b3, b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b1,b2
for b5 being MSAlgebra over b2
for b6 being Element of the OperSymbols of b1
for b7 being Element of the OperSymbols of b2
st b7 = b4 . b6
holds Args(b7,b5) = Args(b6,b5 |(b1,b3,b4)) & Result(b6,b5 |(b1,b3,b4)) = Result(b7,b5);
:: INSTALG1:th 26
theorem
for b1 being non empty ManySortedSign
for b2 being MSAlgebra over b1 holds
b2 |(b1,id the carrier of b1,id the OperSymbols of b1) = MSAlgebra(#the Sorts of b2,the Charact of b2#);
:: INSTALG1:th 27
theorem
for b1 being non empty ManySortedSign
for b2 being MSAlgebra over b1 holds
b2 | b1 = MSAlgebra(#the Sorts of b2,the Charact of b2#);
:: INSTALG1:th 28
theorem
for b1, b2, b3 being non empty ManySortedSign
for b4, b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b2
for b6, b7 being Relation-like Function-like set
st b6,b7 form_morphism_between b2,b3
for b8 being MSAlgebra over b3 holds
b8 |(b1,b4 * b6,b5 * b7) = (b8 |(b2,b6,b7)) |(b1,b4,b5);
:: INSTALG1:th 29
theorem
for b1 being non empty feasible ManySortedSign
for b2 being non empty Subsignature of b1
for b3 being non empty Subsignature of b2
for b4 being MSAlgebra over b1 holds
b4 | b3 = (b4 | b2) | b3;
:: INSTALG1:th 30
theorem
for b1, b2 being non empty 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
for b5, b6 being MSAlgebra over b2
for b7 being ManySortedFunction of the Sorts of b5,the Sorts of b6 holds
b7 * b3 is ManySortedFunction of the Sorts of b5 |(b1,b3,b4),the Sorts of b6 |(b1,b3,b4);
:: INSTALG1:th 31
theorem
for b1 being non empty ManySortedSign
for b2 being non empty Subsignature of b1
for b3, b4 being MSAlgebra over b1
for b5 being ManySortedFunction of the Sorts of b3,the Sorts of b4 holds
b5 | the carrier of b2 is ManySortedFunction of the Sorts of b3 | b2,the Sorts of b4 | b2;
:: INSTALG1:th 32
theorem
for b1, b2 being non empty ManySortedSign
for b3, b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b1,b2
for b5 being MSAlgebra over b2 holds
b3 * id the Sorts of b5 = id the Sorts of b5 |(b1,b3,b4);
:: INSTALG1:th 33
theorem
for b1 being non empty ManySortedSign
for b2 being non empty Subsignature of b1
for b3 being MSAlgebra over b1 holds
(id the Sorts of b3) | the carrier of b2 = id the Sorts of b3 | b2;
:: INSTALG1:th 34
theorem
for b1, b2 being non empty non void ManySortedSign
for b3, b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b1,b2
for b5, b6 being MSAlgebra over b2
for b7 being ManySortedFunction of the Sorts of b5,the Sorts of b6
for b8 being ManySortedFunction of the Sorts of b5 |(b1,b3,b4),the Sorts of b6 |(b1,b3,b4)
st b8 = b3 * b7
for b9 being Element of the OperSymbols of b1
for b10 being Element of the OperSymbols of b2
st b10 = b4 . b9 & Args(b10,b5) <> {} & Args(b10,b6) <> {}
for b11 being Element of Args(b10,b5)
for b12 being Element of Args(b9,b5 |(b1,b3,b4))
st b11 = b12
holds b8 # b12 = b7 # b11;
:: INSTALG1:th 35
theorem
for b1, b2 being non empty non void ManySortedSign
for b3, b4 being MSAlgebra over b1
st the Sorts of b3 is_transformable_to the Sorts of b4
for b5 being ManySortedFunction of the Sorts of b3,the Sorts of b4
st b5 is_homomorphism b3,b4
for b6 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
for b7 being Relation-like Function-like set
st b6,b7 form_morphism_between b2,b1
holds ex b8 being ManySortedFunction of the Sorts of b3 |(b2,b6,b7),the Sorts of b4 |(b2,b6,b7) st
b8 = b5 * b6 & b8 is_homomorphism b3 |(b2,b6,b7),b4 |(b2,b6,b7);
:: INSTALG1:th 36
theorem
for b1 being non void feasible ManySortedSign
for b2 being non void Subsignature of b1
for b3, b4 being MSAlgebra over b1
st the Sorts of b3 is_transformable_to the Sorts of b4
for b5 being ManySortedFunction of the Sorts of b3,the Sorts of b4
st b5 is_homomorphism b3,b4
holds ex b6 being ManySortedFunction of the Sorts of b3 | b2,the Sorts of b4 | b2 st
b6 = b5 | the carrier of b2 & b6 is_homomorphism b3 | b2,b4 | b2;
:: INSTALG1:th 37
theorem
for b1, b2 being non empty non void ManySortedSign
for b3 being non-empty MSAlgebra over b1
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
for b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b2,b1
for b6 being non-empty MSAlgebra over b2
st b6 = b3 |(b2,b4,b5)
for b7, b8 being Element of the carrier of b2
for b9 being Relation-like Function-like set
st b9 is_e.translation_of b6,b7,b8
holds b9 is_e.translation_of b3,b4 . b7,b4 . b8;
:: INSTALG1:th 38
theorem
for b1, b2 being non empty non void ManySortedSign
for b3 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
for b4 being Relation-like Function-like set
st b3,b4 form_morphism_between b2,b1
for b5, b6 being Element of the carrier of b2
st TranslationRel b2 reduces b5,b6
holds TranslationRel b1 reduces b3 . b5,b3 . b6;
:: INSTALG1:th 39
theorem
for b1, b2 being non empty non void ManySortedSign
for b3 being non-empty MSAlgebra over b1
for b4 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
for b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b2,b1
for b6 being non-empty MSAlgebra over b2
st b6 = b3 |(b2,b4,b5)
for b7, b8 being Element of the carrier of b2
st TranslationRel b2 reduces b7,b8
for b9 being Translation of b6,b7,b8 holds
b9 is Translation of b3,b4 . b7,b4 . b8;
:: INSTALG1:sch 1
scheme INSTALG1:sch 1
{F1 -> non empty non void ManySortedSign,
F2 -> non-empty MSAlgebra over F1(),
F3 -> non-empty ManySortedSet of the carrier of F1(),
F4 -> set}:
ex b1 being ManySortedFunction of the Sorts of FreeMSA F3(),the Sorts of F2() st
b1 is_homomorphism FreeMSA F3(),F2() &
(for b2 being Element of the carrier of F1()
for b3 being Element of F3() . b2 holds
(b1 . b2) . root-tree [b3,b2] = F4(b3, b2))
provided
for b1 being Element of the carrier of F1()
for b2 being Element of F3() . b1 holds
F4(b2, b1) in (the Sorts of F2()) . b1;
:: INSTALG1:th 40
theorem
for b1 being set
for b2, b3 being ManySortedSet of b1
for b4 being ManySortedSubset of b2
for b5 being ManySortedFunction of b2,b3
for b6 being set
st b6 in b1
for b7, b8 being Relation-like Function-like set
st b7 = b5 . b6 & b8 = (b5 || b4) . b6
for b9 being set
st b9 in b4 . b6
holds b8 . b9 = b7 . b9;
:: INSTALG1:funcreg 3
registration
let a1 be non empty non void ManySortedSign;
let a2 be non-empty ManySortedSet of the carrier of a1;
cluster FreeGen a2 -> non-empty;
end;
:: INSTALG1:funcnot 3 => INSTALG1:func 3
definition
let a1, a2 be non empty non void ManySortedSign;
let a3 be non-empty ManySortedSet of the carrier of a2;
let a4 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
let a5 be Relation-like Function-like set;
assume a4,a5 form_morphism_between a1,a2;
func hom(A4,A5,A3,A1,A2) -> ManySortedFunction of the Sorts of FreeMSA (a3 * a4),the Sorts of (FreeMSA a3) |(a1,a4,a5) means
it is_homomorphism FreeMSA (a3 * a4),(FreeMSA a3) |(a1,a4,a5) &
(for b1 being Element of the carrier of a1
for b2 being Element of (a3 * a4) . b1 holds
(it . b1) . root-tree [b2,b1] = root-tree [b2,a4 . b1]);
end;
:: INSTALG1:def 5
theorem
for b1, b2 being non empty non void ManySortedSign
for b3 being non-empty ManySortedSet of the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b2
for b6 being ManySortedFunction of the Sorts of FreeMSA (b3 * b4),the Sorts of (FreeMSA b3) |(b1,b4,b5) holds
b6 = hom(b4,b5,b3,b1,b2)
iff
b6 is_homomorphism FreeMSA (b3 * b4),(FreeMSA b3) |(b1,b4,b5) &
(for b7 being Element of the carrier of b1
for b8 being Element of (b3 * b4) . b7 holds
(b6 . b7) . root-tree [b8,b7] = root-tree [b8,b4 . b7]);
:: INSTALG1:th 41
theorem
for b1, b2 being non empty non void ManySortedSign
for b3 being non-empty ManySortedSet of the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b2
for b6 being Element of the OperSymbols of b1
for b7 being Element of Args(b6,FreeMSA (b3 * b4))
for b8 being Relation-like Function-like FinSequence-like set
st b8 = (hom(b4,b5,b3,b1,b2)) # b7
holds ((hom(b4,b5,b3,b1,b2)) . the_result_sort_of b6) . ([b6,the carrier of b1] -tree b7) = [b5 . b6,the carrier of b2] -tree b8;
:: INSTALG1:th 42
theorem
for b1, b2 being non empty non void ManySortedSign
for b3 being non-empty ManySortedSet of the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Relation-like Function-like set
st b4,b5 form_morphism_between b1,b2
for b6 being Element of b1 -Terms (b3 * b4) holds
((hom(b4,b5,b3,b1,b2)) . the_sort_of b6) . b6 is CompoundTerm of b2,b3
iff
b6 is CompoundTerm of b1,b3 * b4;
:: INSTALG1:th 43
theorem
for b1, b2 being non empty non void ManySortedSign
for b3 being non-empty ManySortedSet of the carrier of b2
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Relation-like Function-like one-to-one set
st b4,b5 form_morphism_between b1,b2
holds hom(b4,b5,b3,b1,b2) is_monomorphism FreeMSA (b3 * b4),(FreeMSA b3) |(b1,b4,b5);
:: INSTALG1:th 44
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1 holds
hom(id the carrier of b1,id the OperSymbols of b1,b2,b1,b1) = id the Sorts of FreeMSA b2;
:: INSTALG1:th 45
theorem
for b1, b2, b3 being non empty non void ManySortedSign
for b4 being non-empty ManySortedSet of the carrier of b3
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b6 being Relation-like Function-like set
st b5,b6 form_morphism_between b1,b2
for b7 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
for b8 being Relation-like Function-like set
st b7,b8 form_morphism_between b2,b3
holds hom(b7 * b5,b6 * b8,b4,b1,b3) = ((hom(b7,b8,b4,b2,b3)) * b5) ** hom(b5,b6,b4 * b7,b1,b2);