Article MSINST_1, MML version 4.99.1005
:: MSINST_1:funcnot 1 => MSINST_1:func 1
definition
let a1 be non empty set;
func MSSCat A1 -> non empty strict AltCatStr means
the carrier of it = MSS_set a1 &
(for b1, b2 being Element of MSS_set a1 holds
(the Arrows of it) .(b1,b2) = MSS_morph(b1,b2)) &
(for b1, b2, b3 being Element of the carrier of it
st b1 in MSS_set a1 & b2 in MSS_set a1 & b3 in MSS_set a1
for b4, b5, b6, b7 being Relation-like Function-like set
st [b4,b5] in (the Arrows of it) .(b1,b2) & [b6,b7] in (the Arrows of it) .(b2,b3)
holds ((the Comp of it) .(b1,b2,b3)) .([b6,b7],[b4,b5]) = [b4 * b6,b5 * b7]);
end;
:: MSINST_1:def 1
theorem
for b1 being non empty set
for b2 being non empty strict AltCatStr holds
b2 = MSSCat b1
iff
the carrier of b2 = MSS_set b1 &
(for b3, b4 being Element of MSS_set b1 holds
(the Arrows of b2) .(b3,b4) = MSS_morph(b3,b4)) &
(for b3, b4, b5 being Element of the carrier of b2
st b3 in MSS_set b1 & b4 in MSS_set b1 & b5 in MSS_set b1
for b6, b7, b8, b9 being Relation-like Function-like set
st [b6,b7] in (the Arrows of b2) .(b3,b4) & [b8,b9] in (the Arrows of b2) .(b4,b5)
holds ((the Comp of b2) .(b3,b4,b5)) .([b8,b9],[b6,b7]) = [b6 * b8,b7 * b9]);
:: MSINST_1:funcreg 1
registration
let a1 be non empty set;
cluster MSSCat a1 -> non empty transitive strict associative with_units;
end;
:: MSINST_1:th 1
theorem
for b1 being non empty set
for b2 being non empty transitive associative with_units AltCatStr
st b2 = MSSCat b1
for b3 being Element of the carrier of b2 holds
b3 is non empty non void ManySortedSign;
:: MSINST_1:exreg 1
registration
let a1 be non empty non void ManySortedSign;
cluster strict feasible MSAlgebra over a1;
end;
:: MSINST_1:funcnot 2 => MSINST_1:func 2
definition
let a1 be non empty non void ManySortedSign;
let a2 be non empty set;
func MSAlg_set(A1,A2) -> set means
for b1 being set holds
b1 in it
iff
ex b2 being strict feasible MSAlgebra over a1 st
b1 = b2 &
(for b3 being Element of proj2 the Sorts of b2 holds
b3 c= a2);
end;
:: MSINST_1:def 2
theorem
for b1 being non empty non void ManySortedSign
for b2 being non empty set
for b3 being set holds
b3 = MSAlg_set(b1,b2)
iff
for b4 being set holds
b4 in b3
iff
ex b5 being strict feasible MSAlgebra over b1 st
b4 = b5 &
(for b6 being Element of proj2 the Sorts of b5 holds
b6 c= b2);
:: MSINST_1:funcreg 2
registration
let a1 be non empty non void ManySortedSign;
let a2 be non empty set;
cluster MSAlg_set(a1,a2) -> non empty;
end;
:: MSINST_1:th 2
theorem
for b1 being non empty set
for b2 being non empty non void ManySortedSign
for b3 being MSAlgebra over b2
st b3 in MSAlg_set(b2,b1)
holds the Sorts of b3 in Funcs(the carrier of b2,bool b1) &
the Charact of b3 in Funcs(the OperSymbols of b2,PFuncs(PFuncs(NAT,b1),b1));
:: MSINST_1:th 3
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3, b4 being MSAlgebra over b1
st the Sorts of b3 is_transformable_to the Sorts of b4 & Args(b2,b3) <> {}
holds Args(b2,b4) <> {};
:: MSINST_1:th 4
theorem
for b1 being non empty non void ManySortedSign
for b2 being Element of the OperSymbols of b1
for b3, b4, b5 being feasible MSAlgebra over b1
for b6 being ManySortedFunction of the Sorts of b3,the Sorts of b4
for b7 being ManySortedFunction of the Sorts of b4,the Sorts of b5
for b8 being Element of Args(b2,b3)
st Args(b2,b3) <> {} & the Sorts of b3 is_transformable_to the Sorts of b4 & the Sorts of b4 is_transformable_to the Sorts of b5
holds ex b9 being ManySortedFunction of the Sorts of b3,the Sorts of b5 st
b9 = b7 ** b6 & b9 # b8 = b7 # (b6 # b8);
:: MSINST_1:th 5
theorem
for b1 being non empty non void ManySortedSign
for b2, b3, b4 being feasible MSAlgebra over b1
for b5 being ManySortedFunction of the Sorts of b2,the Sorts of b3
for b6 being ManySortedFunction of the Sorts of b3,the Sorts of b4
st the Sorts of b2 is_transformable_to the Sorts of b3 & the Sorts of b3 is_transformable_to the Sorts of b4 & b5 is_homomorphism b2,b3 & b6 is_homomorphism b3,b4
holds ex b7 being ManySortedFunction of the Sorts of b2,the Sorts of b4 st
b7 = b6 ** b5 & b7 is_homomorphism b2,b4;
:: MSINST_1:funcnot 3 => MSINST_1:func 3
definition
let a1 be non empty non void ManySortedSign;
let a2 be non empty set;
let a3, a4 be set;
assume a3 in MSAlg_set(a1,a2) & a4 in MSAlg_set(a1,a2);
func MSAlg_morph(A1,A2,A3,A4) -> set means
for b1 being set holds
b1 in it
iff
ex b2, b3 being strict feasible MSAlgebra over a1 st
ex b4 being ManySortedFunction of the Sorts of b2,the Sorts of b3 st
b2 = a3 & b3 = a4 & b4 = b1 & the Sorts of b2 is_transformable_to the Sorts of b3 & b4 is_homomorphism b2,b3;
end;
:: MSINST_1:def 3
theorem
for b1 being non empty non void ManySortedSign
for b2 being non empty set
for b3, b4 being set
st b3 in MSAlg_set(b1,b2) & b4 in MSAlg_set(b1,b2)
for b5 being set holds
b5 = MSAlg_morph(b1,b2,b3,b4)
iff
for b6 being set holds
b6 in b5
iff
ex b7, b8 being strict feasible MSAlgebra over b1 st
ex b9 being ManySortedFunction of the Sorts of b7,the Sorts of b8 st
b7 = b3 & b8 = b4 & b9 = b6 & the Sorts of b7 is_transformable_to the Sorts of b8 & b9 is_homomorphism b7,b8;
:: MSINST_1:funcnot 4 => MSINST_1:func 4
definition
let a1 be non empty non void ManySortedSign;
let a2 be non empty set;
func MSAlgCat(A1,A2) -> non empty strict AltCatStr means
the carrier of it = MSAlg_set(a1,a2) &
(for b1, b2 being Element of MSAlg_set(a1,a2) holds
(the Arrows of it) .(b1,b2) = MSAlg_morph(a1,a2,b1,b2)) &
(for b1, b2, b3 being Element of the carrier of it
for b4, b5 being Relation-like Function-like Function-yielding set
st b4 in (the Arrows of it) .(b1,b2) & b5 in (the Arrows of it) .(b2,b3)
holds ((the Comp of it) .(b1,b2,b3)) .(b5,b4) = b5 ** b4);
end;
:: MSINST_1:def 4
theorem
for b1 being non empty non void ManySortedSign
for b2 being non empty set
for b3 being non empty strict AltCatStr holds
b3 = MSAlgCat(b1,b2)
iff
the carrier of b3 = MSAlg_set(b1,b2) &
(for b4, b5 being Element of MSAlg_set(b1,b2) holds
(the Arrows of b3) .(b4,b5) = MSAlg_morph(b1,b2,b4,b5)) &
(for b4, b5, b6 being Element of the carrier of b3
for b7, b8 being Relation-like Function-like Function-yielding set
st b7 in (the Arrows of b3) .(b4,b5) & b8 in (the Arrows of b3) .(b5,b6)
holds ((the Comp of b3) .(b4,b5,b6)) .(b8,b7) = b8 ** b7);
:: MSINST_1:funcreg 3
registration
let a1 be non empty non void ManySortedSign;
let a2 be non empty set;
cluster MSAlgCat(a1,a2) -> non empty transitive strict associative with_units;
end;
:: MSINST_1:th 6
theorem
for b1 being non empty set
for b2 being non empty non void ManySortedSign
for b3 being non empty transitive associative with_units AltCatStr
st b3 = MSAlgCat(b2,b1)
for b4 being Element of the carrier of b3 holds
b4 is strict feasible MSAlgebra over b2;