:: Inverse Limits of Many Sorted Algebras
:: by Adam Grabowski
::
:: Received June 11, 1996
:: Copyright (c) 1996-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 XBOOLE_0, ORDERS_2, SUBSET_1, STRUCT_0, MSUALG_1, PRALG_2,
FUNCT_1, RELAT_1, CARD_3, RLVECT_2, PBOOLE, XXREAL_0, MEMBER_1, MSUALG_3,
FUNCOP_1, RELAT_2, MCART_1, MSUALG_2, TARSKI, UNIALG_2, MARGREL1,
FUNCT_6, FINSEQ_1, FUNCT_2, COMPLEX1, PARTFUN1, FINSEQ_4, NAT_1, FUNCT_5,
NATTRA_1, PUA2MSS1, ZFMISC_1, MSALIMIT;
notations TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, ORDINAL1, XTUPLE_0, MCART_1,
RELAT_1, FUNCT_1, STRUCT_0, RELAT_2, FUNCT_2, FINSEQ_1, FINSEQ_2,
ORDERS_2, FUNCOP_1, RELSET_1, PARTFUN1, CARD_3, BINOP_1, FUNCT_5,
FUNCT_6, PBOOLE, PRALG_1, MSUALG_1, MSUALG_2, MSUALG_3, PRALG_2,
PUA2MSS1, ORDERS_3;
constructors PRALG_1, PRALG_2, MSUALG_3, PUA2MSS1, ORDERS_3, RELSET_1,
FUNCT_5, XTUPLE_0;
registrations XBOOLE_0, SUBSET_1, RELAT_1, FUNCT_1, FUNCT_2, FUNCOP_1, PBOOLE,
STRUCT_0, ORDERS_2, MSUALG_1, MSUALG_2, PRALG_2, MSUALG_3, ORDERS_3,
PRALG_3, ORDINAL1, CARD_3, RELSET_1, FINSEQ_1;
requirements SUBSET, BOOLE;
begin :: Inverse Limits of Many Sorted Algebras
reserve P for non empty Poset,
i, j, k for Element of P;
reserve S for non void non empty ManySortedSign;
registration
let I be non empty set, S;
let AF be MSAlgebra-Family of I,S;
let i be Element of I;
let o be OperSymbol of S;
cluster ((OPER AF).i).o -> Function-like Relation-like;
end;
registration
let I be non empty set, S;
let AF be MSAlgebra-Family of I,S;
let s be SortSymbol of S;
cluster (SORTS AF).s -> functional;
end;
definition
let P, S;
mode OrderedAlgFam of P,S -> MSAlgebra-Family of the carrier of P,S means
:: MSALIMIT:def 1
ex
F be ManySortedFunction of the InternalRel of P st for i,j,k st i >= j
& j >= k ex f1 be ManySortedFunction of it.i, it.j, f2 be ManySortedFunction of
it.j, it.k st f1 = F.(j,i) & f2 = F.(k,j) & F.(k,i) = f2 ** f1 & f1
is_homomorphism it.i, it.j;
end;
reserve OAF for OrderedAlgFam of P, S;
definition
let P, S, OAF;
mode Binding of OAF -> ManySortedFunction of the InternalRel of P means
:: MSALIMIT:def 2
for
i,j,k st i >= j & j >= k ex f1 be ManySortedFunction of OAF.i, OAF.j,
f2 be ManySortedFunction of OAF.j, OAF.k st f1 = it.(j,i) & f2 = it.(k,j) & it.
(k,i) = f2 ** f1 & f1 is_homomorphism OAF.i, OAF.j;
end;
definition
let P, S, OAF;
let B be Binding of OAF, i,j;
assume
i >= j;
func bind (B,i,j) -> ManySortedFunction of OAF.i, OAF.j equals
:: MSALIMIT:def 3
B.(j,i
);
end;
reserve B for Binding of OAF;
theorem :: MSALIMIT:1
i >= j & j >= k implies bind (B,j,k) ** bind (B,i,j) = bind (B,i, k);
definition
let P, S, OAF;
let IT be Binding of OAF;
attr IT is normalized means
:: MSALIMIT:def 4
for i holds IT.(i,i) = id (the Sorts of OAF.i);
end;
theorem :: MSALIMIT:2
for P,S,OAF,B,i,j st i >= j for f be ManySortedFunction of OAF.i,
OAF.j st f = bind (B,i,j) holds f is_homomorphism OAF.i,OAF.j;
definition
let P, S, OAF, B;
func Normalized B -> Binding of OAF means
:: MSALIMIT:def 5
for i, j st i >= j holds it
.(j,i) = IFEQ (j, i, id (the Sorts of OAF.i), bind (B,i,j) ** id (the Sorts of
OAF.i) );
end;
theorem :: MSALIMIT:3
for i, j st i >= j & i <> j holds B.(j,i) = (Normalized B).(j,i);
registration
let P, S, OAF, B;
cluster Normalized B -> normalized;
end;
registration
let P, S, OAF;
cluster normalized for Binding of OAF;
end;
theorem :: MSALIMIT:4
for NB be normalized Binding of OAF for i, j st i >= j holds (
Normalized NB).(j,i) = NB.(j,i);
definition
let P, S, OAF;
let B be Binding of OAF;
func InvLim B -> strict MSSubAlgebra of product OAF means
:: MSALIMIT:def 6
for s be
SortSymbol of S for f be Element of (SORTS OAF).s holds f in (the Sorts of it).
s iff for i,j st i >= j holds (bind (B,i,j).s).(f.i) = f.j;
end;
theorem :: MSALIMIT:5
for DP be discrete non empty Poset, S for OAF be OrderedAlgFam of DP,S
for B be normalized Binding of OAF holds InvLim B = product OAF;
begin :: Sets and Morphisms of Many Sorted Signatures
reserve x for set,
A for non empty set;
definition
let X be set;
attr X is MSS-membered means
:: MSALIMIT:def 7
x in X implies x is strict non empty non void ManySortedSign;
end;
registration
cluster non empty MSS-membered for set;
end;
registration
cluster strict empty void for ManySortedSign;
end;
theorem :: MSALIMIT:6
for S be void ManySortedSign holds id the carrier of S, id the
carrier' of S form_morphism_between S,S;
definition
::$CD
let A;
func MSS_set A -> set means
:: MSALIMIT:def 9
for x being object holds x in it iff ex S be strict non empty non void
ManySortedSign st x = S & the carrier of S c= A & the carrier' of S c= A;
end;
registration
let A;
cluster MSS_set A -> non empty MSS-membered;
end;
definition
let A be non empty MSS-membered set;
redefine mode Element of A -> strict non empty non void ManySortedSign;
end;
definition
let S1,S2 be ManySortedSign;
func MSS_morph (S1,S2) -> set means
:: MSALIMIT:def 10
x in it iff ex f,g be Function st x = [f,g] & f
,g form_morphism_between S1,S2;
end;