:: Galois Connections
:: by Czes\law Byli\'nski
::
:: Received September 25, 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, STRUCT_0, FUNCT_1, SUBSET_1, ORDERS_2, SEQM_3,
XXREAL_0, RELAT_2, LATTICE3, LATTICES, EQREL_1, WAYBEL_0, YELLOW_1,
YELLOW_0, RELAT_1, CAT_1, WELLORD1, ORDINAL2, TARSKI, REWRITE1, CARD_FIL,
BINOP_1, FUNCT_2, GROUP_6, YELLOW_2, LATTICE2, XBOOLEAN, ZFMISC_1,
XXREAL_2, WAYBEL_1;
notations TARSKI, XBOOLE_0, ZFMISC_1, FUNCT_1, RELSET_1, PARTFUN1, FUNCT_2,
DOMAIN_1, STRUCT_0, WELLORD1, ORDERS_2, LATTICE3, QUANTAL1, ORDERS_3,
YELLOW_0, YELLOW_1, WAYBEL_0, YELLOW_2;
constructors DOMAIN_1, TOLER_1, QUANTAL1, ORDERS_3, YELLOW_2, RELSET_1;
registrations RELAT_1, FUNCT_1, FUNCT_2, STRUCT_0, LATTICE3, YELLOW_0,
WAYBEL_0, YELLOW_1, YELLOW_2, RELSET_1;
requirements SUBSET, BOOLE;
begin :: Preliminaries
definition
let L1,L2 be non empty 1-sorted, f be Function of L1,L2;
redefine attr f is one-to-one means
:: WAYBEL_1:def 1
for x,y being Element of L1 st f.x = f.y holds x=y;
end;
definition
let L1,L2 be non empty RelStr, f be Function of L1,L2;
redefine attr f is monotone means
:: WAYBEL_1:def 2
for x,y being Element of L1 st x <= y holds f.x <= f.y;
end;
theorem :: WAYBEL_1:1
for L being antisymmetric transitive with_infima RelStr, x,y,z
being Element of L st x <= y holds x "/\" z <= y "/\" z;
theorem :: WAYBEL_1:2
for L being antisymmetric transitive with_suprema RelStr, x,y,z
being Element of L st x <= y holds x "\/" z <= y "\/" z;
theorem :: WAYBEL_1:3
for L being non empty lower-bounded antisymmetric RelStr for x
being Element of L holds (L is with_infima implies Bottom L "/\" x = Bottom L)
& (L is with_suprema reflexive transitive implies Bottom L "\/" x = x);
theorem :: WAYBEL_1:4
for L being non empty upper-bounded antisymmetric RelStr for x
being Element of L holds (L is with_infima transitive reflexive implies Top L
"/\" x = x) & (L is with_suprema implies Top L "\/" x = Top L);
definition
let L be non empty RelStr;
attr L is distributive means
:: WAYBEL_1:def 3
for x,y,z being Element of L holds x
"/\" (y "\/" z) = (x "/\" y) "\/" (x "/\" z);
end;
theorem :: WAYBEL_1:5
for L being LATTICE holds L is distributive iff for x,y,z being
Element of L holds x "\/" (y "/\" z) = (x "\/" y) "/\" (x "\/" z);
registration
let X be set;
cluster BoolePoset X -> distributive;
end;
definition
let S be non empty RelStr, X be set;
pred ex_min_of X,S means
:: WAYBEL_1:def 4
ex_inf_of X,S & "/\"(X,S) in X;
pred ex_max_of X,S means
:: WAYBEL_1:def 5
ex_sup_of X,S & "\/"(X,S) in X;
end;
notation
let S be non empty RelStr, X be set;
synonym X has_the_min_in S for ex_min_of X,S;
synonym X has_the_max_in S for ex_max_of X,S;
end;
definition
let S be non empty RelStr, s be Element of S, X be set;
pred s is_minimum_of X means
:: WAYBEL_1:def 6
ex_inf_of X,S & s = "/\"(X,S) & "/\"(X,S ) in X;
pred s is_maximum_of X means
:: WAYBEL_1:def 7
ex_sup_of X,S & s = "\/"(X,S) & "\/"(X,S )in X;
end;
registration
let L be RelStr;
cluster id L -> isomorphic;
end;
definition
let L1,L2 be RelStr;
pred L1,L2 are_isomorphic means
:: WAYBEL_1:def 8
ex f being Function of L1,L2 st f is isomorphic;
reflexivity;
end;
theorem :: WAYBEL_1:6
for L1,L2 be non empty RelStr st L1,L2 are_isomorphic holds L2,L1
are_isomorphic;
theorem :: WAYBEL_1:7
for L1,L2,L3 being RelStr st L1,L2 are_isomorphic & L2,L3 are_isomorphic
holds L1,L3 are_isomorphic;
begin :: Galois Connections
definition
let S,T be RelStr;
mode Connection of S,T -> set means
:: WAYBEL_1:def 9
ex g being Function of S,T, d being Function of T,S st it = [g,d];
end;
definition
let S,T be RelStr, g be Function of S,T, d be Function of T,S;
redefine func [g,d] -> Connection of S,T;
end;
:: Definition 3.1
definition
let S,T be non empty RelStr, gc be Connection of S,T;
attr gc is Galois means
:: WAYBEL_1:def 10
ex g being Function of S,T, d being Function
of T,S st gc = [g,d] & g is monotone & d is monotone & for t being Element of T
, s being Element of S holds t <= g.s iff d.t <= s;
end;
theorem :: WAYBEL_1:8
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S holds [g,d] is Galois iff g is monotone & d is monotone & for t
being Element of T, s being Element of S holds t <= g.s iff d.t <= s;
:: Definition 3.1
definition
let S,T be non empty RelStr, g be Function of S,T;
attr g is upper_adjoint means
:: WAYBEL_1:def 11
ex d being Function of T,S st [g,d] is Galois;
end;
:: Definition 3.1
definition
let S,T be non empty RelStr, d be Function of T,S;
attr d is lower_adjoint means
:: WAYBEL_1:def 12
ex g being Function of S,T st [g,d] is Galois;
end;
theorem :: WAYBEL_1:9
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st [g,d] is Galois holds g is upper_adjoint & d is
lower_adjoint;
:: Theorem 3.2 (1) iff (2)
theorem :: WAYBEL_1:10
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S holds [g,d] is Galois iff g is monotone & for t being Element
of T holds d.t is_minimum_of g"(uparrow t);
:: Theorem 3.2 (1) iff (3)
theorem :: WAYBEL_1:11
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S holds [g,d] is Galois iff d is monotone & for s being Element
of S holds g.s is_maximum_of d"(downarrow s);
:: Theorem 3.3 (first part)
theorem :: WAYBEL_1:12
for S,T being non empty Poset,g being Function of S,T st g is
upper_adjoint holds g is infs-preserving;
registration
let S,T be non empty Poset;
cluster upper_adjoint -> infs-preserving for Function of S,T;
end;
:: Theorem 3.3 (second part)
theorem :: WAYBEL_1:13
for S,T being non empty Poset, d being Function of T,S st d is
lower_adjoint holds d is sups-preserving;
registration
let S,T be non empty Poset;
cluster lower_adjoint -> sups-preserving for Function of S,T;
end;
:: Theorem 3.4
theorem :: WAYBEL_1:14
for S,T being non empty Poset,g being Function of S,T st S is
complete & g is infs-preserving ex d being Function of T,S st [g,d] is Galois &
for t being Element of T holds d.t is_minimum_of g"(uparrow t);
:: Theorem 3.4 (dual)
theorem :: WAYBEL_1:15
for S,T being non empty Poset, d being Function of T,S st T is
complete & d is sups-preserving ex g being Function of S,T st [g,d] is Galois &
for s being Element of S holds g.s is_maximum_of d"(downarrow s);
:: Corollary 3.5 (i)
theorem :: WAYBEL_1:16
for S,T being non empty Poset, g being Function of S,T st S is
complete holds (g is infs-preserving iff g is monotone & g is upper_adjoint);
:: Corollary 3.5 (ii)
theorem :: WAYBEL_1:17
for S,T being non empty Poset, d being Function of T,S st T is
complete holds d is sups-preserving iff d is monotone & d is lower_adjoint;
:: Theorem 3.6 (1) iff (2)
theorem :: WAYBEL_1:18
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st [g,d] is Galois holds d*g <= id S & id T <= g*d;
:: Theorem 3.6 (2) implies (1)
theorem :: WAYBEL_1:19
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st g is monotone & d is monotone & d*g <= id S & id T <= g*d
holds [g,d] is Galois;
:: Theorem 3.6 (2) implies (3)
theorem :: WAYBEL_1:20
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st g is monotone & d is monotone & d*g <= id S & id T <= g*d
holds d = d*g*d & g = g*d*g;
:: Theorem 3.6 (3) implies (4)
theorem :: WAYBEL_1:21
for S,T being non empty RelStr, g being Function of S,T, d being
Function of T,S st g = g*d*g holds g*d is idempotent;
:: Proposition 3.7 (1) implies (2)
theorem :: WAYBEL_1:22
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st [g,d] is Galois & g is onto for t being Element of T holds d
.t is_minimum_of g"{t};
:: Proposition 3.7 (2) implies (3)
theorem :: WAYBEL_1:23
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st for t being Element of T holds d.t is_minimum_of g"{t} holds
g*d = id T;
:: Proposition 3.7 (4) iff (1)
theorem :: WAYBEL_1:24
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st [g,d] is Galois holds g is onto iff d is one-to-one;
:: Proposition 3.7 (1*) implies (2*)
theorem :: WAYBEL_1:25
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st [g,d] is Galois & d is onto for s being Element of S holds g
.s is_maximum_of d"{s};
:: Proposition 3.7 (2*) implies (3*)
theorem :: WAYBEL_1:26
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st for s being Element of S holds g.s is_maximum_of d"{s} holds
d*g = id S;
:: Proposition 3.7 (1*) iff (4*)
theorem :: WAYBEL_1:27
for S,T being non empty Poset,g being Function of S,T, d being
Function of T,S st [g,d] is Galois holds g is one-to-one iff d is onto;
:: Definition 3.8 (i)
definition
let L be non empty RelStr, p be Function of L,L;
attr p is projection means
:: WAYBEL_1:def 13
p is idempotent monotone;
end;
registration
let L be non empty RelStr;
cluster id L -> projection;
end;
registration
let L be non empty RelStr;
cluster projection for Function of L,L;
end;
:: Definition 3.8 (ii)
definition
let L be non empty RelStr, c be Function of L,L;
attr c is closure means
:: WAYBEL_1:def 14
c is projection & id(L) <= c;
end;
registration
let L be non empty RelStr;
cluster closure -> projection for Function of L,L;
end;
registration
let L be non empty reflexive RelStr;
cluster closure for Function of L,L;
end;
registration
let L be non empty reflexive RelStr;
cluster id L -> closure;
end;
:: Definition 3.8 (iii)
definition
let L be non empty RelStr, k be Function of L,L;
attr k is kernel means
:: WAYBEL_1:def 15
k is projection & k <= id(L);
end;
registration
let L be non empty RelStr;
cluster kernel -> projection for Function of L,L;
end;
registration
let L be non empty reflexive RelStr;
cluster kernel for Function of L,L;
end;
registration
let L be non empty reflexive RelStr;
cluster id L -> kernel;
end;
theorem :: WAYBEL_1:28
for L being non empty Poset, c being Function of L,L, X being
Subset of L st c is closure & ex_inf_of X,L & X c= rng c holds inf X = c.(inf X
);
theorem :: WAYBEL_1:29
for L being non empty Poset, k being Function of L,L, X being
Subset of L st k is kernel & ex_sup_of X,L & X c= rng k holds sup X = k.(sup X)
;
definition
let L1, L2 be non empty RelStr, g be Function of L1,L2;
func corestr(g) -> Function of L1,Image g equals
:: WAYBEL_1:def 16
(the carrier of Image g)|`g;
end;
theorem :: WAYBEL_1:30
for L1, L2 being non empty RelStr,g being Function of L1,L2
holds corestr g = g;
registration
let L1, L2 be non empty RelStr, g be Function of L1,L2;
cluster corestr g -> onto;
end;
theorem :: WAYBEL_1:31
for L1, L2 being non empty RelStr, g being Function of L1,L2 st
g is monotone holds corestr g is monotone;
definition
let L1, L2 be non empty RelStr, g be Function of L1,L2;
func inclusion(g) -> Function of Image g,L2 equals
:: WAYBEL_1:def 17
id Image g;
end;
registration
let L1, L2 be non empty RelStr, g be Function of L1,L2;
cluster inclusion g -> one-to-one monotone;
end;
theorem :: WAYBEL_1:32
for L being non empty RelStr, f being Function of L,L holds (
inclusion f)*(corestr f) = f;
::Theorem 3.10 (1) implies (2)
theorem :: WAYBEL_1:33
for L being non empty Poset, f being Function of L,L st f is
idempotent holds (corestr f)*(inclusion f) = id(Image f);
::Theorem 3.10 (1) implies (3)
theorem :: WAYBEL_1:34
for L being non empty Poset, f being Function of L,L st f is
projection ex T being non empty Poset, q being Function of L,T, i being
Function of T,L st q is monotone & q is onto & i is monotone & i is one-to-one
& f = i*q & id(T) = q*i;
::Theorem 3.10 (3) implies (1)
theorem :: WAYBEL_1:35
for L being non empty Poset, f being Function of L,L st (ex T being
non empty Poset, q being Function of L,T, i being Function of T,L st q is
monotone & i is monotone & f = i*q & id(T) = q*i) holds f is projection;
::Theorem 3.10 (1_1) implies (2_1)
theorem :: WAYBEL_1:36
for L being non empty Poset, f being Function of L,L st f is
closure holds [inclusion f,corestr f] is Galois;
::Theorem 3.10 (2_1) implies (3_1)
theorem :: WAYBEL_1:37
for L being non empty Poset, f being Function of L,L st f is closure
ex S being non empty Poset, g being Function of S,L, d being Function of L,S st
[g,d] is Galois & f = g*d;
::Theorem 3.10 (3_1) implies (1_1)
theorem :: WAYBEL_1:38
for L being non empty Poset, f being Function of L,L st f is
monotone & ex S being non empty Poset, g being Function of S,L, d being
Function of L,S st [g,d] is Galois & f = g*d holds f is closure;
::Theorem 3.10 (1_2) implies (2_2)
theorem :: WAYBEL_1:39
for L being non empty Poset, f being Function of L,L st f is
kernel holds [corestr f,inclusion f] is Galois;
::Theorem 3.10 (2_2) implies (3_2)
theorem :: WAYBEL_1:40
for L being non empty Poset, f being Function of L,L st f is kernel ex
T being non empty Poset, g being Function of L,T, d being Function of T,L st [g
,d] is Galois & f = d*g;
::Theorem 3.10 (3_2) implies (1_2)
theorem :: WAYBEL_1:41
for L being non empty Poset, f being Function of L,L st f is monotone
& ex T being non empty Poset, g being Function of L,T, d being Function of T,L
st [g,d] is Galois & f = d*g holds f is kernel;
:: Lemma 3.11 (i) (part I)
theorem :: WAYBEL_1:42
for L being non empty Poset, p being Function of L,L st p is
projection holds rng p = {c where c is Element of L: c <= p.c} /\ {k where k is
Element of L: p.k <= k};
theorem :: WAYBEL_1:43
for L being non empty Poset, p being Function of L,L st p is
projection holds {c where c is Element of L: c <= p.c} is non empty Subset of L
& {k where k is Element of L: p.k <= k} is non empty Subset of L;
:: Lemma 3.11 (i) (part II)
theorem :: WAYBEL_1:44
for L being non empty Poset, p being Function of L,L st p is
projection holds rng(p|{c where c is Element of L: c <= p.c}) = rng p & rng(p|{
k where k is Element of L: p.k <= k}) = rng p;
theorem :: WAYBEL_1:45
for L being non empty Poset, p being Function of L,L st p is
projection for Lc being non empty Subset of L, Lk being non empty Subset of L
st Lc = {c where c is Element of L: c <= p.c} holds p|Lc is Function of
subrelstr Lc,subrelstr Lc;
theorem :: WAYBEL_1:46
for L being non empty Poset, p being Function of L,L st p is
projection for Lk being non empty Subset of L st Lk = {k where k is Element of
L: p.k <= k} holds p|Lk is Function of subrelstr Lk,subrelstr Lk;
:: Lemma 3.11 (i) (part IIIa)
theorem :: WAYBEL_1:47
for L being non empty Poset, p being Function of L,L st p is
projection for Lc being non empty Subset of L st Lc = {c where c is Element of
L: c <= p.c} for pc being Function of subrelstr Lc,subrelstr Lc st pc = p|Lc
holds pc is closure;
:: Lemma 3.11 (i) (part IIIb)
theorem :: WAYBEL_1:48
for L being non empty Poset, p being Function of L,L st p is
projection for Lk being non empty Subset of L st Lk = {k where k is Element of
L: p.k <= k} for pk being Function of subrelstr Lk,subrelstr Lk st pk = p|Lk
holds pk is kernel;
:: Lemma 3.11 (ii) (part I)
theorem :: WAYBEL_1:49
for L being non empty Poset, p being Function of L,L st p is
monotone for Lc being Subset of L st Lc = {c where c is Element of L: c <= p.c}
holds subrelstr Lc is sups-inheriting;
:: Lemma 3.11 (ii) (part II)
theorem :: WAYBEL_1:50
for L being non empty Poset, p being Function of L,L st p is
monotone for Lk being Subset of L st Lk = {k where k is Element of L: p.k <= k}
holds subrelstr Lk is infs-inheriting;
:: Lemma 3.11 (iii) (part I)
theorem :: WAYBEL_1:51
for L being non empty Poset, p being Function of L,L st p is
projection for Lc being non empty Subset of L st Lc = {c where c is Element of
L: c <= p.c} holds (p is infs-preserving implies subrelstr Lc is
infs-inheriting & Image p is infs-inheriting) & (p is filtered-infs-preserving
implies subrelstr Lc is filtered-infs-inheriting & Image p is
filtered-infs-inheriting);
:: Lemma 3.11 (iii) (part II)
theorem :: WAYBEL_1:52
for L being non empty Poset, p being Function of L,L st p is
projection for Lk being non empty Subset of L st Lk = {k where k is Element of
L: p.k <= k} holds (p is sups-preserving implies subrelstr Lk is
sups-inheriting & Image p is sups-inheriting) & (p is directed-sups-preserving
implies subrelstr Lk is directed-sups-inheriting & Image p is
directed-sups-inheriting);
:: Proposition 3.12 (i)
theorem :: WAYBEL_1:53
for L being non empty Poset, p being Function of L,L holds (p is
closure implies Image p is infs-inheriting) & (p is kernel implies Image p is
sups-inheriting);
:: Proposition 3.12 (ii)
theorem :: WAYBEL_1:54
for L being complete non empty Poset, p being Function of L,L st p
is projection holds Image p is complete;
:: Proposition 3.12 (iii)
theorem :: WAYBEL_1:55
for L being non empty Poset, c being Function of L,L st c is closure
holds corestr c is sups-preserving & for X being Subset of L st X c= the
carrier of Image c & ex_sup_of X,L holds ex_sup_of X,Image c & "\/"(X,Image c)
= c.("\/"(X,L));
:: Proposition 3.12 (iv)
theorem :: WAYBEL_1:56
for L being non empty Poset, k being Function of L,L st k is kernel
holds (corestr k) is infs-preserving & for X being Subset of L st X c= the
carrier of Image k & ex_inf_of X,L holds ex_inf_of X,Image k & "/\"(X,Image k)
= k.("/\"(X,L));
begin :: Heyting algebras
:: Proposition 3.15 (i)
theorem :: WAYBEL_1:57
for L being complete non empty Poset holds [IdsMap L,SupMap L]
is Galois & SupMap L is sups-preserving;
:: Proposition 3.15 (ii)
theorem :: WAYBEL_1:58
for L being complete non empty Poset holds (IdsMap L)*(SupMap L) is
closure & Image ((IdsMap L)*(SupMap L)),L are_isomorphic;
definition
let S be non empty RelStr;
let x be Element of S;
func x "/\" -> Function of S,S means
:: WAYBEL_1:def 18
for s being Element of S holds it.s = x"/\"s;
end;
theorem :: WAYBEL_1:59
for S being non empty RelStr, x,t being Element of S holds {s
where s is Element of S: x"/\"s <= t} = (x "/\")"(downarrow t);
theorem :: WAYBEL_1:60
for S being Semilattice, x be Element of S holds x "/\" is monotone;
registration
let S be Semilattice, x be Element of S;
cluster x "/\" -> monotone;
end;
theorem :: WAYBEL_1:61
for S being non empty RelStr, x being Element of S, X being
Subset of S holds (x "/\").:X = {x"/\"y where y is Element of S: y in X};
:: Lemma 3.16 (1) iff (2)
theorem :: WAYBEL_1:62
for S being Semilattice holds (for x being Element of S holds x
"/\" is lower_adjoint) iff for x,t being Element of S holds ex_max_of {s where
s is Element of S: x"/\"s <= t},S;
:: Lemma 3.16 (1) implies (3)
theorem :: WAYBEL_1:63
for S being Semilattice st for x being Element of S holds x "/\"
is lower_adjoint for X being Subset of S st ex_sup_of X,S for x being Element
of S holds x "/\" "\/"(X,S) = "\/"({x"/\"y where y is Element of S: y in X},S);
:: Lemma 3.16 (1) iff (3)
theorem :: WAYBEL_1:64
for S being complete non empty Poset holds (for x being Element of S
holds x "/\" is lower_adjoint) iff for X being Subset of S, x being Element of
S holds x "/\" "\/"(X,S) = "\/"({x"/\"y where y is Element of S: y in X},S);
:: Lemma 3.16 (3) implies (D)
theorem :: WAYBEL_1:65
for S being LATTICE st for X being Subset of S st ex_sup_of X,S
for x being Element of S holds x"/\"("\/"(X,S)) = "\/"({x"/\" y where y is
Element of S: y in X},S) holds S is distributive;
definition
let H be non empty RelStr;
attr H is Heyting means
:: WAYBEL_1:def 19
H is LATTICE & for x being Element of H holds x "/\" is lower_adjoint;
end;
registration
cluster Heyting -> with_infima with_suprema reflexive transitive
antisymmetric for non empty RelStr;
end;
definition
let H be non empty RelStr, a be Element of H;
assume
H is Heyting;
func a => -> Function of H,H means
:: WAYBEL_1:def 20
[it,a "/\"] is Galois;
end;
theorem :: WAYBEL_1:66
for H being non empty RelStr st H is Heyting holds H is distributive;
registration
cluster Heyting -> distributive for non empty RelStr;
end;
definition
let H be non empty RelStr, a,y be Element of H;
func a => y -> Element of H equals
:: WAYBEL_1:def 21
(a=>).y;
end;
theorem :: WAYBEL_1:67
for H being non empty RelStr st H is Heyting for x,a,y being
Element of H holds x >= a "/\" y iff a => x >= y;
theorem :: WAYBEL_1:68
for H being non empty RelStr st H is Heyting holds H is upper-bounded;
registration
cluster Heyting -> upper-bounded for non empty RelStr;
end;
theorem :: WAYBEL_1:69
for H being non empty RelStr st H is Heyting for a,b being
Element of H holds Top H = a => b iff a <= b;
theorem :: WAYBEL_1:70
for H being non empty RelStr st H is Heyting for a being Element of H
holds Top H = a => a;
theorem :: WAYBEL_1:71
for H being non empty RelStr st H is Heyting for a,b being Element of
H st Top H = a => b & Top H = b => a holds a = b;
theorem :: WAYBEL_1:72
for H being non empty RelStr st H is Heyting for a,b being
Element of H holds b <= (a => b);
theorem :: WAYBEL_1:73
for H being non empty RelStr st H is Heyting for a being Element of H
holds Top H = a => Top H;
theorem :: WAYBEL_1:74
for H being non empty RelStr st H is Heyting for b being Element of H
holds b = (Top H) => b;
theorem :: WAYBEL_1:75
for H being non empty RelStr st H is Heyting for a,b,c being
Element of H st a <= b holds (b => c) <= (a => c);
theorem :: WAYBEL_1:76
for H being non empty RelStr st H is Heyting for a,b,c being Element
of H st b <= c holds (a => b) <= (a => c);
theorem :: WAYBEL_1:77
for H being non empty RelStr st H is Heyting for a,b being
Element of H holds a"/\"(a => b) = a"/\"b;
theorem :: WAYBEL_1:78
for H being non empty RelStr st H is Heyting for a,b,c being
Element of H holds (a"\/"b)=> c = (a => c) "/\" (b => c);
definition
let H be non empty RelStr, a be Element of H;
func 'not' a -> Element of H equals
:: WAYBEL_1:def 22
a => Bottom H;
end;
theorem :: WAYBEL_1:79
for H being non empty RelStr st H is Heyting & H is lower-bounded for
a being Element of H holds 'not' a is_maximum_of {x where x is Element of H: a
"/\"x = Bottom H};
theorem :: WAYBEL_1:80
for H being non empty RelStr st H is Heyting & H is
lower-bounded holds 'not' Bottom H = Top H & 'not' Top H = Bottom H;
:: Exercise 3.18 (i)
theorem :: WAYBEL_1:81
for H being non empty lower-bounded RelStr st H is Heyting for a,b
being Element of H holds 'not' a >= b iff 'not' b >= a;
:: Exercise 3.18 (ii)
theorem :: WAYBEL_1:82
for H being non empty lower-bounded RelStr st H is Heyting for a
,b being Element of H holds 'not' a >= b iff a "/\" b = Bottom H;
theorem :: WAYBEL_1:83
for H being non empty lower-bounded RelStr st H is Heyting for a,b
being Element of H st a <= b holds 'not' b <= 'not' a;
theorem :: WAYBEL_1:84
for H being non empty lower-bounded RelStr st H is Heyting for a,b
being Element of H holds 'not' (a"\/"b) = 'not' a"/\"'not' b;
theorem :: WAYBEL_1:85
for H being non empty lower-bounded RelStr st H is Heyting for a,b
being Element of H holds 'not' (a"/\"b) >= 'not' a"\/"'not' b;
definition
let L be non empty RelStr, x,y be Element of L;
pred y is_a_complement_of x means
:: WAYBEL_1:def 23
x "\/" y = Top L & x "/\" y = Bottom L;
end;
definition
let L be non empty RelStr;
attr L is complemented means
:: WAYBEL_1:def 24
for x being Element of L ex y being Element of L st y is_a_complement_of x;
end;
registration
let X be set;
cluster BoolePoset X -> complemented;
end;
:: Exercise 3.19
theorem :: WAYBEL_1:86
for L being bounded LATTICE st L is Heyting & for x being
Element of L holds 'not' 'not' x = x for x being Element of L holds 'not' x
is_a_complement_of x;
:: Exercise 3.19 (1) iff (2)
theorem :: WAYBEL_1:87
for L being bounded LATTICE holds L is distributive complemented
iff L is Heyting & for x being Element of L holds 'not' 'not' x = x;
:: Definition 3.20
definition
let B be non empty RelStr;
attr B is Boolean means
:: WAYBEL_1:def 25
B is LATTICE & B is bounded distributive complemented;
end;
registration
cluster Boolean -> reflexive transitive antisymmetric with_infima
with_suprema bounded distributive complemented for non empty RelStr;
end;
registration
cluster reflexive transitive antisymmetric with_infima with_suprema bounded
distributive complemented -> Boolean for non empty RelStr;
end;
registration
cluster Boolean -> Heyting for non empty RelStr;
end;
registration
cluster strict Boolean non empty for LATTICE;
end;
registration
cluster strict Heyting non empty for LATTICE;
end;