:: The Correspondence Between Homomorphisms of Universal Algebra &
:: Many Sorted Algebra
:: by Adam Grabowski
::
:: Received December 13, 1994
:: Copyright (c) 1994-2021 Association of Mizar Users
:: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.
environ
vocabularies UNIALG_1, NAT_1, XBOOLE_0, FUNCT_1, RELAT_1, TARSKI, SUBSET_1,
FINSEQ_1, FUNCOP_1, PBOOLE, CARD_3, MSUALG_1, XXREAL_0, STRUCT_0,
FINSEQ_2, PARTFUN1, CQC_SIM1, CARD_1, UNIALG_2, MARGREL1, NUMBERS,
MSUALG_3, MEMBER_1, MSUHOM_1;
notations TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, NUMBERS, RELAT_1, FUNCT_1,
PBOOLE, RELSET_1, PARTFUN1, FUNCT_2, CARD_3, FUNCOP_1, FINSEQ_1,
STRUCT_0, UNIALG_1, UNIALG_2, FINSEQ_2, ALG_1, MSUALG_3, MSUALG_1,
XXREAL_0;
constructors FINSEQOP, ALG_1, MSUALG_3, XREAL_0, RELSET_1, NAT_1, NUMBERS;
registrations XBOOLE_0, FUNCT_1, ORDINAL1, RELSET_1, FUNCT_2, FUNCOP_1,
XREAL_0, PRE_CIRC, STRUCT_0, MSUALG_1, MSUALG_3, RELAT_1, PBOOLE,
FINSEQ_1;
requirements NUMERALS, SUBSET, BOOLE;
begin
reserve U1,U2,U3 for Universal_Algebra,
m,n for Nat,
a for set,
A for non empty set,
h for Function of U1,U2;
theorem :: MSUHOM_1:1
for f,g be Function, C be set st rng f c= C holds (g|C)*f = g*f;
theorem :: MSUHOM_1:2
for I be set, C be Subset of I holds C* c= I*;
theorem :: MSUHOM_1:3
for f be Function, C be set st f is Function-yielding holds f|C is
Function-yielding;
theorem :: MSUHOM_1:4
for I be set, C be Subset of I, M be ManySortedSet of I holds (M|
C)# = M#|(C*);
definition
let S,S9 be non empty ManySortedSign;
pred S <= S9 means
:: MSUHOM_1:def 1
the carrier of S c= the carrier of S9 & the
carrier' of S c= the carrier' of S9 & (the Arity of S9)|the carrier' of S = the
Arity of S & (the ResultSort of S9)|the carrier' of S = the ResultSort of S;
reflexivity;
end;
theorem :: MSUHOM_1:5
for S,S9,S99 be non empty ManySortedSign st S <= S9 & S9 <= S99 holds
S <= S99;
theorem :: MSUHOM_1:6
for S,S9 be strict non empty ManySortedSign st S <= S9 & S9 <= S holds S = S9
;
theorem :: MSUHOM_1:7
for g be Function, a be Element of A for k be Nat st 1 <= k & k <= n
holds (a .--> g).((n |-> a)/.k) = g;
theorem :: MSUHOM_1:8
for I be set,I0 be Subset of I, A,B be ManySortedSet of I, F be
ManySortedFunction of A,B for A0,B0 be ManySortedSet of I0 st A0 = A | I0 & B0
= B | I0 holds F|I0 is ManySortedFunction of A0,B0;
definition
let S,S9 be strict non void non empty ManySortedSign;
let A be non-empty strict MSAlgebra over S9;
assume
S <= S9;
func A Over S -> non-empty strict MSAlgebra over S means
:: MSUHOM_1:def 2
the Sorts of
it = (the Sorts of A)|the carrier of S & the Charact of it = (the Charact of A)
|the carrier' of S;
end;
theorem :: MSUHOM_1:9
for S be strict non void non empty ManySortedSign, A be non-empty
strict MSAlgebra over S holds A = A Over S;
theorem :: MSUHOM_1:10
for U1,U2 st U1,U2 are_similar holds MSSign U1 = MSSign U2;
definition
let U1,U2 be Universal_Algebra, h be Function of U1,U2;
assume
MSSign U1 = MSSign U2;
func MSAlg h -> ManySortedFunction of MSAlg U1, ((MSAlg U2) Over MSSign U1)
equals
:: MSUHOM_1:def 3
0 .--> h;
end;
theorem :: MSUHOM_1:11
for U1,U2,h st U1,U2 are_similar for o be OperSymbol of MSSign
U1 holds ((MSAlg h).(the_result_sort_of o)) = h;
theorem :: MSUHOM_1:12
for o be OperSymbol of MSSign U1 holds Den(o,MSAlg U1) = (the
charact of U1).o;
theorem :: MSUHOM_1:13
for o be OperSymbol of MSSign U1 holds Den(o,MSAlg U1) is operation of U1;
theorem :: MSUHOM_1:14
for o be OperSymbol of MSSign U1 for y be Element of Args(o,
MSAlg U1) holds y is FinSequence of the carrier of U1;
theorem :: MSUHOM_1:15
for U1,U2,h st U1,U2 are_similar for o be OperSymbol of MSSign
U1,y be Element of Args(o,MSAlg U1) holds (MSAlg h)#y = h * y;
theorem :: MSUHOM_1:16
h is_homomorphism implies MSAlg h is_homomorphism MSAlg U1
,(MSAlg U2 Over MSSign U1);
theorem :: MSUHOM_1:17
U1,U2 are_similar implies MSAlg h is ManySortedSet of {0};
theorem :: MSUHOM_1:18
h is_epimorphism implies MSAlg h is_epimorphism MSAlg U1,
(MSAlg U2 Over MSSign U1);
theorem :: MSUHOM_1:19
h is_monomorphism implies MSAlg h is_monomorphism MSAlg
U1,(MSAlg U2 Over MSSign U1);
theorem :: MSUHOM_1:20
h is_isomorphism implies MSAlg h is_isomorphism MSAlg U1,(MSAlg
U2 Over MSSign U1);
theorem :: MSUHOM_1:21
for U1,U2,h st U1,U2 are_similar holds MSAlg h is_homomorphism
MSAlg U1,(MSAlg U2 Over MSSign U1) implies h is_homomorphism;
theorem :: MSUHOM_1:22
for U1,U2,h st U1, U2 are_similar holds MSAlg h is_epimorphism
MSAlg U1, (MSAlg U2 Over MSSign U1) implies h is_epimorphism;
theorem :: MSUHOM_1:23
for U1, U2, h st U1, U2 are_similar holds MSAlg h
is_monomorphism MSAlg U1, (MSAlg U2 Over MSSign U1) implies h is_monomorphism
;
theorem :: MSUHOM_1:24
for U1, U2, h st U1, U2 are_similar holds MSAlg h is_isomorphism MSAlg
U1, (MSAlg U2 Over MSSign U1) implies h is_isomorphism;
theorem :: MSUHOM_1:25
MSAlg (id the carrier of U1) = (id the Sorts of MSAlg U1);
theorem :: MSUHOM_1:26
for U1,U2,U3 st U1,U2 are_similar & U2,U3 are_similar for h1 be
Function of U1,U2, h2 be Function of U2,U3 holds (MSAlg h2) ** (MSAlg h1) =
MSAlg (h2*h1);