Journal of Formalized Mathematics
Volume 8, 1996
University of Bialystok
Copyright (c) 1996
Association of Mizar Users
The abstract of the Mizar article:
-
- by
- Artur Kornilowicz
- Received February 7, 1996
- MML identifier: CLOSURE2
- [
Mizar article,
MML identifier index
]
environ
vocabulary PBOOLE, FUNCT_1, BOOLE, MSUALG_2, RELAT_1, TARSKI, FRAENKEL,
FUNCT_2, MATRIX_1, CAT_4, PRALG_2, FINSET_1, COMPLEX1, SETFAM_1, FUNCT_4,
ZF_REFLE, MSSUBFAM, CANTOR_1, CAT_1, GRCAT_1, COHSP_1, RELAT_2, MSAFREE2,
BINOP_1, CLOSURE1, MSUALG_1, PRE_TOPC, CLOSURE2;
notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, STRUCT_0, SETFAM_1, RELAT_1,
FUNCT_1, PARTFUN1, FUNCT_2, CQC_LANG, FINSET_1, FRAENKEL, FUNCT_4,
PBOOLE, MSUALG_1, MSUALG_2, PRALG_2, CANTOR_1, MBOOLEAN, MSSUBFAM;
constructors CQC_LANG, PRALG_2, PRE_CIRC, CANTOR_1, MSSUBFAM;
clusters ALTCAT_1, FINSET_1, FRAENKEL, FUNCT_1, MSSUBFAM, MSUALG_1, PBOOLE,
RELAT_1, CQC_LANG, RELSET_1, SUBSET_1, FUNCT_2;
requirements SUBSET, BOOLE;
begin :: Preliminaries
reserve i, x, I for set,
A, B, M for ManySortedSet of I,
f, f1 for Function;
definition let I, A, B;
redefine pred A in B;
synonym A in' B;
end;
definition let I, A, B;
redefine pred A c= B;
synonym A c=' B;
end;
theorem :: CLOSURE2:1
for M being non empty set
for X, Y being Element of M st X c= Y
holds (id M).X c= (id M).Y;
canceled;
theorem :: CLOSURE2:3
for I being non empty set
for A being ManySortedSet of I
for B being ManySortedSubset of A holds
rng B c= union rng bool A;
definition
cluster empty -> functional set;
end;
definition
cluster empty functional set;
end;
definition let f, g be Function;
cluster { f,g } -> functional;
end;
begin :: Set of Many Sorted Subsets of a Many Sorted Set
definition let I, M;
func Bool M -> set means
:: CLOSURE2:def 1
x in it iff x is ManySortedSubset of M;
end;
definition let I, M;
cluster Bool M -> non empty functional with_common_domain;
end;
definition let I, M;
mode SubsetFamily of M is Subset of Bool M;
canceled;
end;
definition let I, M;
redefine func Bool M -> SubsetFamily of M;
end;
definition let I, M;
cluster non empty functional with_common_domain SubsetFamily of M;
end;
definition let I, M;
cluster empty finite SubsetFamily of M;
end;
reserve SF, SG for SubsetFamily of M;
definition let I, M;
let S be non empty SubsetFamily of M;
redefine mode Element of S -> ManySortedSubset of M;
end;
theorem :: CLOSURE2:4 :: MSSUBFAM:34
SF \/ SG is SubsetFamily of M;
theorem :: CLOSURE2:5 :: MSSUBFAM:35
SF /\ SG is SubsetFamily of M;
theorem :: CLOSURE2:6 :: MSSUBFAM:36
SF \ x is SubsetFamily of M;
theorem :: CLOSURE2:7 :: MSSUBFAM:37
SF \+\ SG is SubsetFamily of M;
theorem :: CLOSURE2:8 :: MSSUBFAM:38
A c= M implies {A} is SubsetFamily of M;
theorem :: CLOSURE2:9 :: MSSUBFAM:39
A c= M & B c= M implies {A,B} is SubsetFamily of M;
reserve E, T for Element of Bool M;
theorem :: CLOSURE2:10
E /\ T in Bool M;
theorem :: CLOSURE2:11
E \/ T in Bool M;
theorem :: CLOSURE2:12
E \ A in Bool M;
theorem :: CLOSURE2:13
E \+\ T in Bool M;
begin :: Many Sorted Operator corresponding
:: to the Operator on Many Sorted Subsets
definition let S be functional set;
func |. S .| -> Function means
:: CLOSURE2:def 3
ex A being non empty functional set st A = S &
dom it = meet { dom x where x is Element of A : not contradiction } &
for i st i in dom it holds
it.i = { x.i where x is Element of A : not contradiction }
if S <> {}
otherwise it = {};
end;
theorem :: CLOSURE2:14
for SF being non empty SubsetFamily of M holds dom |.SF.| = I;
definition let S be empty functional set;
cluster |. S .| -> empty;
end;
definition let I, M;
let S be SubsetFamily of M;
func |: S :| -> ManySortedSet of I equals
:: CLOSURE2:def 4
|. S .| if S <> {}
otherwise [0]I;
end;
definition let I, M;
let S be empty SubsetFamily of M;
cluster |: S :| -> empty-yielding;
end;
theorem :: CLOSURE2:15
SF is non empty implies
for i st i in I holds
|:SF:|.i = { x.i where x is Element of Bool M : x in SF };
definition let I, M;
let SF be non empty SubsetFamily of M;
cluster |: SF :| -> non-empty;
end;
theorem :: CLOSURE2:16
dom |.{f}.| = dom f;
theorem :: CLOSURE2:17
dom |.{f,f1}.| = dom f /\ dom f1;
theorem :: CLOSURE2:18
i in dom f implies |.{f}.|.i = {f.i};
theorem :: CLOSURE2:19
i in I & SF = {f} implies |:SF:|.i = {f.i};
theorem :: CLOSURE2:20
i in dom |.{f,f1}.| implies |.{f,f1}.|.i = { f.i , f1.i };
theorem :: CLOSURE2:21
i in I & SF = {f,f1} implies |:SF:|.i = { f.i , f1.i };
definition let I, M, SF;
redefine func |:SF:| -> MSSubsetFamily of M;
end;
theorem :: CLOSURE2:22
A in SF implies A in' |:SF:|;
theorem :: CLOSURE2:23
SF = {A,B} implies union |:SF:| = A \/ B;
theorem :: CLOSURE2:24 :: SETFAM_1:12
SF = {E,T} implies meet |:SF:| = E /\ T;
theorem :: CLOSURE2:25 :: MSSUBFAM:4
for Z being ManySortedSubset of M st
for Z1 being ManySortedSet of I st Z1 in SF holds Z c=' Z1 holds
Z c=' meet |:SF:|;
theorem :: CLOSURE2:26
|: Bool M :| = bool M;
definition let I, M;
let IT be SubsetFamily of M;
attr IT is additive means
:: CLOSURE2:def 5
for A, B st A in IT & B in IT holds A \/ B in IT;
attr IT is absolutely-additive means
:: CLOSURE2:def 6
for F be SubsetFamily of M st F c= IT holds union |:F:| in IT;
attr IT is multiplicative means
:: CLOSURE2:def 7
for A, B st A in IT & B in IT holds A /\ B in IT;
attr IT is absolutely-multiplicative means
:: CLOSURE2:def 8
for F be SubsetFamily of M st F c= IT holds meet |:F:| in IT;
attr IT is properly-upper-bound means
:: CLOSURE2:def 9
M in IT;
attr IT is properly-lower-bound means
:: CLOSURE2:def 10
[0]I in IT;
end;
definition let I, M;
cluster non empty functional with_common_domain
additive absolutely-additive
multiplicative absolutely-multiplicative
properly-upper-bound properly-lower-bound
SubsetFamily of M;
end;
definition let I, M;
redefine func Bool M -> additive absolutely-additive multiplicative
absolutely-multiplicative properly-upper-bound properly-lower-bound
SubsetFamily of M;
end;
definition let I, M;
cluster absolutely-additive -> additive SubsetFamily of M;
end;
definition let I, M;
cluster absolutely-multiplicative -> multiplicative SubsetFamily of M;
end;
definition let I, M;
cluster absolutely-multiplicative ->
properly-upper-bound SubsetFamily of M;
end;
definition let I, M;
cluster properly-upper-bound -> non empty SubsetFamily of M;
end;
definition let I, M;
cluster absolutely-additive ->
properly-lower-bound SubsetFamily of M;
end;
definition let I, M;
cluster properly-lower-bound -> non empty SubsetFamily of M;
end;
begin :: Properties of Closure Operators
definition let I, M;
mode SetOp of M is Function of Bool M, Bool M;
canceled;
end;
definition let I, M;
let f be SetOp of M;
let x be Element of Bool M;
redefine func f.x -> Element of Bool M;
end;
definition let I, M;
let IT be SetOp of M;
attr IT is reflexive means
:: CLOSURE2:def 12
for x being Element of Bool M holds x c=' IT.x;
attr IT is monotonic means
:: CLOSURE2:def 13
for x, y being Element of Bool M st x c=' y holds IT.x c=' IT.y;
attr IT is idempotent means
:: CLOSURE2:def 14
for x being Element of Bool M holds IT.x = IT.(IT.x);
attr IT is topological means
:: CLOSURE2:def 15
for x, y being Element of Bool M holds IT.(x \/ y) = (IT.x) \/ (IT.y);
end;
definition let I, M;
cluster reflexive monotonic idempotent topological SetOp of M;
end;
theorem :: CLOSURE2:27 :: CLOSURE:11
id (Bool A) is reflexive SetOp of A;
theorem :: CLOSURE2:28 :: CLOSURE:12
id (Bool A) is monotonic SetOp of A;
theorem :: CLOSURE2:29 :: CLOSURE:13
id (Bool A) is idempotent SetOp of A;
theorem :: CLOSURE2:30 :: CLOSURE:15
id (Bool A) is topological SetOp of A;
reserve g, h for SetOp of M;
theorem :: CLOSURE2:31 :: CLOSURE:16
E = M & g is reflexive implies E = g.E;
theorem :: CLOSURE2:32 :: CLOSURE:17
(g is reflexive & for X being Element of Bool M holds g.X c= X)
implies g is idempotent;
theorem :: CLOSURE2:33 :: CLOSURE:18
for A being Element of Bool M st A = E /\ T holds
g is monotonic implies g.A c= g.E /\ g.T;
definition let I, M;
cluster topological -> monotonic SetOp of M;
end;
theorem :: CLOSURE2:34 :: CLOSURE:19
for A being Element of Bool M st A = E \ T holds
g is topological implies g.E \ g.T c= g.A;
definition let I, M, h, g;
redefine func g * h -> SetOp of M;
end;
theorem :: CLOSURE2:35 :: CLOSURE:21
g is reflexive & h is reflexive implies g * h is reflexive;
theorem :: CLOSURE2:36 :: CLOSURE:22
g is monotonic & h is monotonic implies g * h is monotonic;
theorem :: CLOSURE2:37 :: CLOSURE:23
g is idempotent & h is idempotent & g*h = h*g implies g * h is idempotent;
theorem :: CLOSURE2:38 :: CLOSURE:25
g is topological & h is topological implies g * h is topological;
begin :: On the Closure Operator and the Closure System
reserve S for 1-sorted;
definition let S;
struct(many-sorted over S) ClosureStr over S (#
Sorts -> ManySortedSet of the carrier of S,
Family -> SubsetFamily of the Sorts #);
end;
reserve
MS for many-sorted over S;
definition let S;
let IT be ClosureStr over S;
attr IT is additive means
:: CLOSURE2:def 16
the Family of IT is additive;
attr IT is absolutely-additive means
:: CLOSURE2:def 17
the Family of IT is absolutely-additive;
attr IT is multiplicative means
:: CLOSURE2:def 18
the Family of IT is multiplicative;
attr IT is absolutely-multiplicative means
:: CLOSURE2:def 19
the Family of IT is absolutely-multiplicative;
attr IT is properly-upper-bound means
:: CLOSURE2:def 20
the Family of IT is properly-upper-bound;
attr IT is properly-lower-bound means
:: CLOSURE2:def 21
the Family of IT is properly-lower-bound;
end;
definition let S, MS;
func Full MS -> ClosureStr over S equals
:: CLOSURE2:def 22
ClosureStr (#the Sorts of MS, Bool the Sorts of MS#);
end;
definition let S, MS;
cluster Full MS -> strict additive absolutely-additive
multiplicative absolutely-multiplicative
properly-upper-bound properly-lower-bound;
end;
definition let S;
let MS be non-empty many-sorted over S;
cluster Full MS -> non-empty;
end;
definition let S;
cluster strict non-empty additive absolutely-additive
multiplicative absolutely-multiplicative
properly-upper-bound properly-lower-bound ClosureStr over S;
end;
definition let S;
let CS be additive ClosureStr over S;
cluster the Family of CS -> additive;
end;
definition let S;
let CS be absolutely-additive ClosureStr over S;
cluster the Family of CS -> absolutely-additive;
end;
definition let S;
let CS be multiplicative ClosureStr over S;
cluster the Family of CS -> multiplicative;
end;
definition let S;
let CS be absolutely-multiplicative ClosureStr over S;
cluster the Family of CS -> absolutely-multiplicative;
end;
definition let S;
let CS be properly-upper-bound ClosureStr over S;
cluster the Family of CS -> properly-upper-bound;
end;
definition let S;
let CS be properly-lower-bound ClosureStr over S;
cluster the Family of CS -> properly-lower-bound;
end;
definition let S;
let M be non-empty ManySortedSet of the carrier of S;
let F be SubsetFamily of M;
cluster ClosureStr (#M, F#) -> non-empty;
end;
definition let S, MS;
let F be additive SubsetFamily of the Sorts of MS;
cluster ClosureStr (#the Sorts of MS, F#) -> additive;
end;
definition let S, MS;
let F be absolutely-additive SubsetFamily of the Sorts of MS;
cluster ClosureStr (#the Sorts of MS, F#) -> absolutely-additive;
end;
definition let S, MS;
let F be multiplicative SubsetFamily of the Sorts of MS;
cluster ClosureStr (#the Sorts of MS, F#) -> multiplicative;
end;
definition let S, MS;
let F be absolutely-multiplicative SubsetFamily of the Sorts of MS;
cluster ClosureStr (#the Sorts of MS, F#) -> absolutely-multiplicative;
end;
definition let S, MS;
let F be properly-upper-bound SubsetFamily of the Sorts of MS;
cluster ClosureStr (#the Sorts of MS, F#) -> properly-upper-bound;
end;
definition let S, MS;
let F be properly-lower-bound SubsetFamily of the Sorts of MS;
cluster ClosureStr (#the Sorts of MS, F#) -> properly-lower-bound;
end;
definition let S;
cluster absolutely-additive -> additive ClosureStr over S;
end;
definition let S;
cluster absolutely-multiplicative -> multiplicative ClosureStr over S;
end;
definition let S;
cluster absolutely-multiplicative -> properly-upper-bound ClosureStr over S;
end;
definition let S;
cluster absolutely-additive -> properly-lower-bound ClosureStr over S;
end;
definition let S;
mode ClosureSystem of S is absolutely-multiplicative ClosureStr over S;
end;
definition let I, M;
mode ClosureOperator of M is reflexive monotonic idempotent SetOp of M;
end;
theorem :: CLOSURE2:39
for A being ManySortedSet of the carrier of S
for f being reflexive monotonic SetOp of A
for D being SubsetFamily of A st
D = { x where x is Element of Bool A : f.x = x } holds
ClosureStr (#A, D#) is ClosureSystem of S;
definition let S;
let A be ManySortedSet of the carrier of S;
let g be ClosureOperator of A;
func ClOp->ClSys g -> strict ClosureSystem of S means
:: CLOSURE2:def 23
the Sorts of it = A &
the Family of it = { x where x is Element of Bool A : g.x = x };
end;
definition let S;
let A be ClosureSystem of S;
let C be ManySortedSubset of the Sorts of A;
func Cl C -> Element of Bool the Sorts of A means
:: CLOSURE2:def 24
ex F being SubsetFamily of the Sorts of A st
it = meet |:F:| & F = { X where X is Element of Bool the Sorts of A :
C c=' X & X in the Family of A };
end;
theorem :: CLOSURE2:40
for D being ClosureSystem of S
for a being Element of Bool the Sorts of D
for f being SetOp of the Sorts of D st
a in the Family of D &
for x being Element of Bool the Sorts of D holds f.x = Cl x
holds f.a = a;
theorem :: CLOSURE2:41
for D being ClosureSystem of S
for a being Element of Bool the Sorts of D
for f being SetOp of the Sorts of D st
f.a = a &
for x being Element of Bool the Sorts of D holds f.x = Cl x
holds a in the Family of D;
theorem :: CLOSURE2:42
for D being ClosureSystem of S
for f being SetOp of the Sorts of D st
for x being Element of Bool the Sorts of D holds f.x = Cl x
holds f is reflexive monotonic idempotent;
definition let S;
let D be ClosureSystem of S;
func ClSys->ClOp D -> ClosureOperator of the Sorts of D means
:: CLOSURE2:def 25
for x being Element of Bool the Sorts of D holds it.x = Cl x;
end;
theorem :: CLOSURE2:43
for A being ManySortedSet of the carrier of S
for f being ClosureOperator of A holds
ClSys->ClOp (ClOp->ClSys f) = f;
theorem :: CLOSURE2:44
for D being ClosureSystem of S holds
ClOp->ClSys (ClSys->ClOp D) = the ClosureStr of D;
Back to top