:: Preliminaries to Structures
:: by Library Committee
::
:: Received January 6, 1995
:: Copyright (c) 1995-2018 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, SUBSET_1, SETFAM_1, FUNCT_1, FINSEQ_1, PBOOLE, RELAT_1,
NAT_1, PARTFUN1, SUPINF_2, MESFUNC1, ZFMISC_1, CARD_1, FINSET_1,
XCMPLX_0, FUNCT_7, FUNCOP_1, VALUED_0, BINOP_1, STRUCT_0, ORDINAL1,
MSUALG_6;
notations TARSKI, XBOOLE_0, SUBSET_1, DOMAIN_1, SETFAM_1, FINSET_1, ORDINAL1,
CARD_1, RELAT_1, XCMPLX_0, RELSET_1, PARTFUN1, FUNCT_2, BINOP_1, NAT_1,
FINSEQ_1, FUNCOP_1, ZFMISC_1, PBOOLE, FUNCT_7;
constructors PARTFUN1, PBOOLE, ZFMISC_1, FUNCT_7, SETFAM_1, RELSET_1,
XCMPLX_0, DOMAIN_1;
registrations XBOOLE_0, FUNCT_1, FUNCT_2, ZFMISC_1, ORDINAL1, CARD_1,
FINSET_1, RELSET_1;
requirements BOOLE, SUBSET, NUMERALS;
begin
definition
struct 1-sorted(# carrier -> set #);
end;
definition
let S be 1-sorted;
attr S is empty means
:: STRUCT_0:def 1
the carrier of S is empty;
end;
registration
cluster strict empty for 1-sorted;
end;
registration
cluster strict non empty for 1-sorted;
end;
registration
let S be empty 1-sorted;
cluster the carrier of S -> empty;
end;
registration
let S be non empty 1-sorted;
cluster the carrier of S -> non empty;
end;
definition
let S be 1-sorted;
mode Element of S is Element of the carrier of S;
mode Subset of S is Subset of the carrier of S;
mode Subset-Family of S is Subset-Family of the carrier of S;
end;
:: Added by AK on 2005.09.22
:: Moved from ALG_1, GROUP_6, PRE_TOPC, POLYNOM1
definition
let S be 1-sorted, X be set;
mode Function of S,X is Function of the carrier of S, X;
mode Function of X,S is Function of X, the carrier of S;
end;
definition
let S, T be 1-sorted;
mode Function of S,T is Function of the carrier of S, the carrier of T;
end;
:: from PRE_TOPC, 2006.12.02, AT
definition
let T be 1-sorted;
func {}T -> Subset of T equals
:: STRUCT_0:def 2
{};
func [#]T -> Subset of T equals
:: STRUCT_0:def 3
the carrier of T;
end;
registration
let T be 1-sorted;
cluster {}T -> empty;
end;
registration
let T be empty 1-sorted;
cluster [#]T -> empty;
end;
registration
let T be non empty 1-sorted;
cluster [#]T -> non empty;
end;
registration
let S be non empty 1-sorted;
cluster non empty for Subset of S;
end;
::Moved from TOPREAL1 on 2005.09.22
definition
let S be 1-sorted;
mode FinSequence of S is FinSequence of the carrier of S;
end;
::Moved from YELLOW18, AK, 21.02.2006
definition
let S be 1-sorted;
mode ManySortedSet of S is ManySortedSet of the carrier of S;
end;
::Moved from GRCAT_1, AK, 16.01.2007
definition
let S be 1-sorted;
func id S -> Function of S,S equals
:: STRUCT_0:def 4
id the carrier of S;
end;
::Moved from NORMSP_1, AK, 14.02.2007
definition
let S be 1-sorted;
mode sequence of S is sequence of the carrier of S;
end;
::Moved from NFCONT_1, AK, 14.02.2007
definition
let S be 1-sorted, X be set;
mode PartFunc of S,X is PartFunc of the carrier of S, X;
mode PartFunc of X,S is PartFunc of X, the carrier of S;
end;
definition
let S,T be 1-sorted;
mode PartFunc of S,T is PartFunc of the carrier of S,the carrier of T;
end;
::Moved from RLVECT_1, 2007.02.19, A.T.
definition
let S be 1-sorted;
let x be object;
pred x in S means
:: STRUCT_0:def 5
x in the carrier of S;
end;
:: Pointed structures
definition
struct (1-sorted) ZeroStr
(# carrier -> set, ZeroF -> Element of the carrier #);
end;
registration
cluster strict non empty for ZeroStr;
end;
definition
struct (1-sorted) OneStr(# carrier -> set, OneF -> Element of the carrier #);
end;
definition
struct (ZeroStr,OneStr) ZeroOneStr(# carrier -> set, ZeroF -> Element of the
carrier, OneF -> Element of the carrier #);
end;
definition
let S be ZeroStr;
func 0.S -> Element of S equals
:: STRUCT_0:def 6
the ZeroF of S;
end;
definition
let S be OneStr;
func 1.S -> Element of S equals
:: STRUCT_0:def 7
the OneF of S;
end;
definition
let S be ZeroOneStr;
attr S is degenerated means
:: STRUCT_0:def 8
0.S = 1.S;
end;
definition
let IT be 1-sorted;
attr IT is trivial means
:: STRUCT_0:def 9
the carrier of IT is trivial;
end;
registration
cluster empty -> trivial for 1-sorted;
cluster non trivial -> non empty for 1-sorted;
end;
definition
let S be 1-sorted;
redefine attr S is trivial means
:: STRUCT_0:def 10
for x,y being Element of S holds x = y;
end;
registration
cluster non degenerated -> non trivial for ZeroOneStr;
end;
registration
cluster trivial non empty strict for 1-sorted;
cluster non trivial strict for 1-sorted;
end;
registration
let S be non trivial 1-sorted;
cluster the carrier of S -> non trivial;
end;
registration
let S be trivial 1-sorted;
cluster the carrier of S -> trivial;
end;
begin :: Finite 1-sorted Structures
definition
let S be 1-sorted;
attr S is finite means
:: STRUCT_0:def 11
the carrier of S is finite;
end;
registration
cluster strict finite non empty for 1-sorted;
end;
registration
let S be finite 1-sorted;
cluster the carrier of S -> finite;
end;
registration
cluster -> finite for empty 1-sorted;
end;
notation
let S be 1-sorted;
antonym S is infinite for S is finite;
end;
registration
cluster strict infinite for 1-sorted;
end;
registration
let S be infinite 1-sorted;
cluster the carrier of S -> infinite;
end;
registration
cluster -> non empty for infinite 1-sorted;
end;
:: from YELLOW_13, 2007.04.12, A.T.
registration
cluster trivial -> finite for 1-sorted;
end;
registration
cluster infinite -> non trivial for 1-sorted;
end;
definition
let S be ZeroStr, x be Element of S;
attr x is zero means
:: STRUCT_0:def 12
x = 0.S;
end;
registration
let S be ZeroStr;
cluster 0.S -> zero;
end;
registration
cluster strict non degenerated for ZeroOneStr;
end;
registration
let S be non degenerated ZeroOneStr;
cluster 1.S -> non zero;
end;
definition
let S be 1-sorted;
mode Cover of S is Cover of the carrier of S;
end;
:: from RING_1, 2008.06.19, A.T. (needed in TEX_2)
registration
let S be 1-sorted;
cluster [#]S -> non proper;
end;
begin :: 2-sorted structures, 2008.07.02, A.T.
definition
struct(1-sorted) 2-sorted(#carrier,carrier' -> set#);
end;
definition
let S be 2-sorted;
attr S is void means
:: STRUCT_0:def 13
the carrier' of S is empty;
end;
registration
cluster strict empty void for 2-sorted;
end;
registration
let S be void 2-sorted;
cluster the carrier' of S -> empty;
end;
registration
cluster strict non empty non void for 2-sorted;
end;
registration
let S be non void 2-sorted;
cluster the carrier' of S -> non empty;
end;
:: from BORSUK_1, 2008.07.07, A.T.
definition
let X be 1-sorted, Y be non empty 1-sorted, y be Element of Y;
func X --> y -> Function of X,Y equals
:: STRUCT_0:def 14
(the carrier of X) --> y;
end;
registration
let S be ZeroStr;
cluster zero for Element of S;
end;
registration
cluster strict non trivial for ZeroStr;
end;
registration
let S be non trivial ZeroStr;
cluster non zero for Element of S;
end;
:: comp. NDIFF_1, 2008.08.29, A.T.
definition
let X be set, S be ZeroStr, R be Relation of X, the carrier of S;
attr R is non-zero means
:: STRUCT_0:def 15
not 0.S in rng R;
end;
:: 2008.10.12, A.T.
definition
let S be 1-sorted;
func card S -> Cardinal equals
:: STRUCT_0:def 16
card the carrier of S;
end;
:: 2009.01.11, A.K.
definition
let S be 1-sorted;
mode UnOp of S is UnOp of the carrier of S;
mode BinOp of S is BinOp of the carrier of S;
end;
:: 2009.01.24, A.T.
definition
let S be ZeroStr;
func NonZero S -> Subset of S equals
:: STRUCT_0:def 17
[#]S \ {0.S};
end;
theorem :: STRUCT_0:1
for S being non empty ZeroStr for u being Element of S holds u in
NonZero S iff u is not zero;
definition
let V be non empty ZeroStr;
redefine attr V is trivial means
:: STRUCT_0:def 18
for u being Element of V holds u = 0.V;
end;
registration
let V be non trivial ZeroStr;
cluster NonZero V -> non empty;
end;
registration
cluster trivial non empty for ZeroStr;
end;
registration
let S be trivial non empty ZeroStr;
cluster NonZero S -> empty;
end;
registration
let S be non empty 1-sorted;
cluster non empty trivial for Subset of S;
end;
theorem :: STRUCT_0:2
for F being non degenerated ZeroOneStr holds 1.F in NonZero F;
:: 2011.03.01, A.T.
registration
let S be finite 1-sorted;
cluster card S -> natural;
end;
registration
let S be finite non empty 1-sorted;
cluster card S -> non zero for Nat;
end;
registration
let T be non trivial 1-sorted;
cluster non trivial for Subset of T;
end;
:: 2011.04.05, A.T.
theorem :: STRUCT_0:3 :: COMPOS_1:56
for S being ZeroStr holds not 0.S in NonZero S;
theorem :: STRUCT_0:4 :: COMPOS_1:160
for S being non empty ZeroStr
holds the carrier of S = {0.S} \/ NonZero S;
:: 2011.05.02, A.T.
definition let C be set, X be 1-sorted;
attr X is C-element means
:: STRUCT_0:def 19
the carrier of X is C-element;
end;
registration let C be Cardinal;
cluster C-element for 1-sorted;
end;
registration let C be Cardinal, X be C-element 1-sorted;
cluster the carrier of X -> C-element;
end;
registration
cluster empty -> 0-element for 1-sorted;
cluster 0-element -> empty for 1-sorted;
cluster non empty trivial -> 1-element for 1-sorted;
cluster 1-element -> non empty trivial for 1-sorted;
end;
:: Feasibility, 2011.11.15, A.T.
definition let S be 2-sorted;
attr S is feasible means
:: STRUCT_0:def 20
the carrier of S is empty implies the carrier' of S is empty;
end;
registration
cluster non empty -> feasible for 2-sorted;
cluster void -> feasible for 2-sorted;
cluster empty feasible -> void for 2-sorted;
cluster non void feasible -> non empty for 2-sorted;
end;
definition let S be 2-sorted;
attr S is trivial' means
:: STRUCT_0:def 21
the carrier' of S is trivial;
end;
registration
cluster strict non empty non void trivial trivial' for 2-sorted;
end;
registration let S be trivial' 2-sorted;
cluster the carrier' of S ->trivial;
end;
registration
cluster non trivial' for 2-sorted;
end;
registration let S be non trivial' 2-sorted;
cluster the carrier' of S -> non trivial;
end;
registration
cluster void -> trivial' for 2-sorted;
cluster non trivial -> non empty for 1-sorted;
end;
definition
let x be object, S be 1-sorted;
func In(x,S) -> Element of S equals
:: STRUCT_0:def 22
In(x,the carrier of S);
end;