:: Representation Theorem for Heyting Lattices
:: by Jolanta Kamie\'nska
::
:: Received July 14, 1993
:: Copyright (c) 1993-2026 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 LATTICE2, FILTER_0, LATTICES, PRE_TOPC, SUBSET_1, XBOOLE_0,
TOPS_1, TARSKI, RCOMP_1, SETFAM_1, BINOP_1, FUNCT_1, EQREL_1, STRUCT_0,
PBOOLE, CARD_FIL, INT_2, RELAT_1, ZFMISC_1, ORDINAL1, GROUP_6, FUNCT_2,
WELLORD1, XBOOLEAN, LATTICE4, OPENLATT;
notations TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, RELAT_1, FUNCT_1, FUNCT_2,
BINOP_1, SETFAM_1, DOMAIN_1, STRUCT_0, PRE_TOPC, TOPS_1, LATTICES,
LATTICE2, FILTER_0, LATTICE4;
constructors BINOP_1, DOMAIN_1, TOPS_1, LATTICE2, FILTER_1, LATTICE4,
RELSET_1, FILTER_0;
registrations XBOOLE_0, SUBSET_1, RELSET_1, STRUCT_0, LATTICES, PRE_TOPC,
FILTER_0, LATTICE2, TOPS_1;
requirements BOOLE, SUBSET;
definitions TARSKI, PRE_TOPC, FILTER_0, LATTICE4, FUNCT_1, STRUCT_0, XBOOLE_0;
equalities FILTER_0, LATTICES, STRUCT_0, SUBSET_1;
expansions TARSKI, PRE_TOPC, FILTER_0, LATTICES, LATTICE4, FUNCT_1, XBOOLE_0,
FUNCT_2;
theorems PRE_TOPC, LATTICES, TOPS_1, ZFMISC_1, FILTER_0, SETFAM_1, TARSKI,
FUNCT_1, FUNCT_2, LATTICE4, RELAT_1, ORDINAL1, XBOOLE_0, XBOOLE_1,
STRUCT_0, EQREL_1;
schemes BINOP_1, DOMAIN_1, FUNCT_1, BINOP_2;
begin
registration
cluster Heyting -> implicative for 0_Lattice;
coherence;
cluster implicative -> upper-bounded for Lattice;
coherence;
end;
reserve T for TopSpace;
reserve A,B for Subset of T;
theorem Th1:
A /\ Int(A` \/ B) c= B
proof
A1: A misses A` by XBOOLE_1:79;
A /\ (A` \/ B) = (A /\ A`) \/ A /\ B by XBOOLE_1:23
.= {} \/ A /\ B by A1
.= A /\ B;
then
A2: A /\ (A` \/ B)c= B by XBOOLE_1:17;
A /\ Int(A` \/ B) c= A /\ (A` \/ B) by TOPS_1:16,XBOOLE_1:26;
hence thesis by A2;
end;
theorem Th2:
for C being Subset of T st C is open & A /\ C c= B holds C c= Int (A` \/ B)
proof
let C be Subset of T;
assume that
A1: C is open and
A2: A /\ C c= B;
A3: C c= C \/ A` by XBOOLE_1:7;
(A /\ C) \/ A` = (A \/ A`) /\ (C \/ A`) by XBOOLE_1:24
.= [#] T /\ (C \/ A`) by PRE_TOPC:2
.= C \/ A` by XBOOLE_1:28;
then C \/ A` c= B \/ A` by A2,XBOOLE_1:9;
then C c= B \/ A` by A3;
then Int(C) c= Int(A` \/ B) by TOPS_1:19;
hence thesis by A1,TOPS_1:23;
end;
definition
let T be TopStruct;
func Topology_of T -> Subset-Family of T equals
the topology of T;
coherence;
end;
registration
let T;
cluster Topology_of T -> non empty;
coherence;
end;
definition
let T be non empty TopSpace, P, Q be Element of Topology_of T;
redefine func P \/ Q -> Element of Topology_of T; :: redefines \/ (XBOOLE_0, definition)
coherence
proof
reconsider A = P, B = Q as Subset of T;
A1: B is open;
A is open;
then P \/ Q is open by A1;
hence thesis;
end;
redefine func P /\ Q -> Element of Topology_of T; :: redefines /\ (XBOOLE_0, definition)
coherence
proof
reconsider A = P, B = Q as Subset of T;
A2: B is open;
A is open;
then P /\ Q is open by A2;
hence thesis;
end;
end;
reserve T for non empty TopSpace;
reserve P,Q for Element of Topology_of T;
definition
let T;
func Top_Union T -> BinOp of Topology_of T means
:Def2:
it.(P,Q) = P \/ Q;
existence
proof
deffunc F(Element of Topology_of T, Element of Topology_of T) = $1 \/ $2;
thus ex F being BinOp of Topology_of T st for P,Q being Element of
Topology_of T holds F.(P,Q) = F(P,Q) from BINOP_1:sch 4;
end;
uniqueness
proof
set A = Topology_of T;
deffunc O(Element of A, Element of A) = $1 \/ $2;
thus for o1,o2 being BinOp of A st (for a,b being Element of A holds o1.(a
,b) = O(a,b)) & (for a,b being Element of A holds o2.(a,b) = O(a,b)) holds o1 =
o2 from BINOP_2:sch 2;
end;
func Top_Meet T -> BinOp of Topology_of T means
:Def3:
it.(P,Q) = P /\ Q;
existence
proof
deffunc F(Element of Topology_of T, Element of Topology_of T) = $1 /\ $2;
thus ex F being BinOp of Topology_of T st for P,Q being Element of
Topology_of T holds F.(P,Q) = F(P,Q) from BINOP_1:sch 4;
end;
uniqueness
proof
set A = Topology_of T;
deffunc O(Element of A, Element of A) = $1 /\ $2;
thus for o1,o2 being BinOp of A st (for a,b being Element of A holds o1.(a
,b) = O(a,b)) & (for a,b being Element of A holds o2.(a,b) = O(a,b)) holds o1 =
o2 from BINOP_2:sch 2;
end;
end;
theorem Th3:
for T being non empty TopSpace holds LattStr(#Topology_of T,
Top_Union T,Top_Meet T#) is Lattice
proof
let T;
set L = LattStr(#Topology_of T,Top_Union T,Top_Meet T#);
A1: now
let p,q be Element of L;
thus p "\/" q = q \/ p by Def2
.= q"\/"p by Def2;
end;
A2: now
let p,q be Element of L;
thus (p"/\"q)"\/"q = p"/\"q \/ q by Def2
.= (p /\ q) \/ q by Def3
.= q by XBOOLE_1:22;
end;
A3: now
let p,q be Element of L;
thus p"/\"(p"\/"q) = p /\ (p"\/"q) by Def3
.= p /\ (p \/ q) by Def2
.= p by XBOOLE_1:21;
end;
A4: now
let p,q,r be Element of L;
thus p"/\"(q"/\"r) = p /\ (q "/\" r) by Def3
.= p /\ (q /\ r) by Def3
.= (p /\ q) /\ r by XBOOLE_1:16
.= p "/\" q /\ r by Def3
.= (p"/\"q)"/\"r by Def3;
end;
A5: now
let p,q be Element of L;
thus p "/\" q =q /\ p by Def3
.= q"/\"p by Def3;
end;
now
let p,q,r be Element of L;
thus p"\/"(q"\/"r) = p \/ q "\/" r by Def2
.= p \/ (q \/ r) by Def2
.= (p \/ q) \/ r by XBOOLE_1:4
.= p "\/" q \/ r by Def2
.= (p"\/"q)"\/"r by Def2;
end;
then L is join-commutative join-associative meet-absorbing meet-commutative
meet-associative join-absorbing by A1,A2,A5,A4,A3;
hence thesis;
end;
definition
let T;
func Open_setLatt(T) -> Lattice equals
LattStr(#Topology_of T,Top_Union T,
Top_Meet T#);
coherence by Th3;
end;
theorem
the carrier of Open_setLatt(T) = Topology_of T;
reserve p,q for Element of Open_setLatt(T);
theorem
p "\/" q = p \/ q & p "/\" q = p /\ q by Def2,Def3;
theorem Th6:
p [= q iff p c= q
proof
p "\/" q = p \/ q by Def2;
hence thesis by XBOOLE_1:7,12;
end;
theorem Th7:
for p9,q9 being Element of Topology_of T st p=p9 & q=q9 holds p
[= q iff p9 c= q9
proof
let p9,q9 be Element of Topology_of T such that
A1: p=p9 and
A2: q=q9;
hereby
assume
A3: p [= q;
p9 \/ q9 = p"\/"q by A1,A2,Def2
.= q9 by A2,A3;
hence p9 c= q9 by XBOOLE_1:7;
end;
assume
A4: p9 c= q9;
p "\/" q = p9 \/ q9 by A1,A2,Def2
.=q by A2,A4,XBOOLE_1:12;
hence thesis;
end;
registration
let T;
cluster Open_setLatt(T) -> implicative;
coherence
proof
set OL=Open_setLatt(T);
let p,q be Element of OL;
reconsider p9=p, q9=q as Element of Topology_of T;
reconsider r9= Int(p9` \/ q9) as Element of Topology_of T by PRE_TOPC:def 2;
reconsider r=r9 as Element of OL;
take r;
A1: p "/\" r = p9 /\ r9 by Def3;
p9 /\ r c= q9 by Th1;
hence p "/\" r [= q by A1,Th7;
let r1 be Element of OL;
reconsider r2 = r1 as Element of Topology_of T;
reconsider r19= r2 as Subset of T;
A2: r19 is open;
assume
A3: p "/\" r1 [= q;
p "/\" r1 = p9 /\ r19 by Def3;
then p9 /\ r2 c= q9 by A3,Th7;
then r19 c= r9 by A2,Th2;
hence r1 [= r by Th7;
end;
end;
theorem Th8:
Open_setLatt(T) is lower-bounded & Bottom Open_setLatt(T) = {}
proof
set OL=Open_setLatt(T);
reconsider r = {} as Element of OL by PRE_TOPC:1;
A1: now
let p;
thus r"/\"p = r /\ p by Def3
.= r;
hence p"/\"r=r;
end;
thus OL is lower-bounded
by A1;
hence thesis by A1,LATTICES:def 16;
end;
registration
let T;
cluster Open_setLatt(T) -> Heyting;
coherence
proof
reconsider OL=Open_setLatt(T) as 0_Lattice by Th8;
OL is I_Lattice;
hence thesis;
end;
end;
theorem Th9:
Top Open_setLatt(T) = the carrier of T
proof
set OL=Open_setLatt(T);
reconsider B = the carrier of T as Element of OL by PRE_TOPC:def 1;
now
let p be Element of OL;
reconsider p9=p as Element of Topology_of T;
thus B"\/"p = (the carrier of T) \/ p9 by Def2
.= B by XBOOLE_1:12;
hence p"\/"B = B;
end;
hence thesis by LATTICES:def 17;
end;
reserve L for D_Lattice;
reserve F for Filter of L;
reserve a,b for Element of L;
reserve x,X,X1,X2,Y,Z for set;
definition
let L;
func F_primeSet(L) -> set equals
{ F: F <> the carrier of L & F is prime};
coherence;
end;
theorem Th10:
F in F_primeSet(L) iff F <> the carrier of L & F is prime
proof
F in F_primeSet(L) iff ex F0 being Filter of L st F0=F & F0 <> the
carrier of L & F0 is prime;
hence thesis;
end;
definition
let L;
func StoneH(L) -> Function means
:Def6:
dom it = the carrier of L & it.a = { F: F in F_primeSet(L) & a in F};
existence
proof
deffunc F(object) = { F :F in F_primeSet(L) & $1 in F};
consider f being Function such that
A1: dom f = the carrier of L &
for x being object st x in the carrier of L holds f.
x = F(x) from FUNCT_1:sch 3;
take f;
thus thesis by A1;
end;
uniqueness
proof
let f1,f2 be Function;
assume that
A2: dom f1 = the carrier of L & f1.a={ F :F in F_primeSet(L) & a in F} and
A3: dom f2 = the carrier of L & f2.a={ F :F in F_primeSet(L) & a in F};
now
let x be object;
assume x in the carrier of L;
then reconsider a=x as Element of L;
thus f1.x = { F :F in F_primeSet(L) & a in F} by A2
.= f2.x by A3;
end;
hence thesis by A2,A3;
end;
end;
theorem Th11:
F in StoneH(L).a iff F in F_primeSet(L) & a in F
proof
StoneH(L).a = {F0 where F0 is Filter of L: F0 in F_primeSet(L) & a in F0
} by Def6;
then
F in StoneH(L).a iff ex F0 being Filter of L st F=F0 & F0 in F_primeSet(
L) & a in F0;
hence thesis;
end;
theorem Th12:
x in StoneH(L).a iff ex F st F=x & F <> the carrier of L & F is
prime & a in F
proof
A1: StoneH(L).a = {F: F in F_primeSet(L) & a in F} by Def6;
hereby
assume x in StoneH(L).a;
then consider F such that
A2: x=F and
A3: F in F_primeSet(L) and
A4: a in F by A1;
A5: F is prime by A3,Th10;
F <> the carrier of L by A3,Th10;
hence ex F st F=x & F <> the carrier of L & F is prime & a in F by A2,A4,A5
;
end;
given F such that
A6: F=x and
A7: F <> the carrier of L and
A8: F is prime and
A9: a in F;
F in F_primeSet(L) by A7,A8;
hence thesis by A1,A6,A9;
end;
definition
let L;
func StoneS(L) -> set equals
rng StoneH(L);
coherence;
end;
registration
let L;
cluster StoneS(L) -> non empty;
coherence
proof
dom StoneH(L) = the carrier of L by Def6;
hence thesis by RELAT_1:42;
end;
end;
theorem Th13:
x in StoneS(L) iff ex a st x=StoneH(L).a
proof
hereby
assume x in StoneS(L);
then consider y be object such that
A1: y in dom StoneH(L) and
A2: x = StoneH(L).y by FUNCT_1:def 3;
reconsider y as Element of L by A1,Def6;
take y;
thus x=StoneH(L).y by A2;
end;
given b such that
A3: x=StoneH(L).b;
b in the carrier of L;
then b in dom StoneH(L) by Def6;
hence thesis by A3,FUNCT_1:def 3;
end;
theorem Th14:
StoneH(L).(a "\/" b) = StoneH(L).a \/ StoneH(L).b
proof
set c = a "\/" b;
hereby
set c = a "\/" b;
let x be object;
assume x in StoneH(L).c;
then consider F such that
A1: x=F and
A2: F <> the carrier of L and
A3: F is prime and
A4: c in F by Th12;
a in F or b in F by A3,A4;
then F in StoneH(L).a or F in StoneH(L).b by A2,A3,Th12;
hence x in StoneH(L).a \/ StoneH(L).b by A1,XBOOLE_0:def 3;
end;
let x be object;
assume x in StoneH(L).a \/ StoneH(L).b;
then x in StoneH(L).a or x in StoneH(L).b by XBOOLE_0:def 3;
then
(ex F st x=F & F <> the carrier of L & F is prime & a in F ) or ex F st
x=F & F <> the carrier of L & F is prime & b in F by Th12;
then consider F such that
A5: x=F and
A6: F <> the carrier of L and
A7: F is prime and
A8: a in F or b in F;
c in F by A7,A8;
hence thesis by A5,A6,A7,Th12;
end;
theorem Th15:
StoneH(L).(a "/\" b) = StoneH(L).a /\ StoneH(L).b
proof
set c = a "/\" b;
hereby
set c = a "/\" b;
let x be object;
assume x in StoneH(L).c;
then consider F such that
A1: x=F and
A2: F <> the carrier of L and
A3: F is prime and
A4: c in F by Th12;
b in F by A4,FILTER_0:8;
then
A5: F in StoneH(L).b by A2,A3,Th12;
a in F by A4,FILTER_0:8;
then F in StoneH(L).a by A2,A3,Th12;
hence x in StoneH(L).a /\ StoneH(L).b by A1,A5,XBOOLE_0:def 4;
end;
let x be object;
assume
A6: x in StoneH(L).a /\ StoneH(L).b;
then x in StoneH(L).b by XBOOLE_0:def 4;
then
A7: ex F st x=F & F <> the carrier of L & F is prime & b in F by Th12;
x in StoneH(L).a by A6,XBOOLE_0:def 4;
then ex F st x=F & F <> the carrier of L & F is prime & a in F by Th12;
then consider F such that
A8: x=F and
A9: F <> the carrier of L and
A10: F is prime and
A11: a in F and
A12: b in F by A7;
c in F by A11,A12,FILTER_0:8;
hence thesis by A8,A9,A10,Th12;
end;
definition
let L, a;
func SF_have a -> Subset-Family of L equals
{ F : a in F };
coherence
proof
set A= { F : a in F};
A c= bool the carrier of L
proof
let x be object;
assume x in A;
then ex F st x=F & a in F;
hence thesis;
end;
hence thesis;
end;
end;
registration
let L;
let a;
cluster SF_have a -> non empty;
coherence
proof
a in <.a.);
then <.a.) in { F : a in F};
hence thesis;
end;
end;
theorem Th16:
x in SF_have a iff x is Filter of L & a in x
proof
x in SF_have a iff ex F st F=x & a in F;
hence thesis;
end;
Lm1: F in SF_have b \ SF_have a iff b in F & not a in F
proof
F in SF_have b \ SF_have a iff F in SF_have b & not F in SF_have a by
XBOOLE_0:def 5;
hence thesis by Th16;
end;
theorem Th17:
x in SF_have b \ SF_have a implies x is Filter of L & b in x & not a in x
proof
assume
A1: x in SF_have b \ SF_have a;
then
A2: not x in SF_have a by XBOOLE_0:def 5;
A3: x in SF_have b by A1,XBOOLE_0:def 5;
then x is Filter of L by Th16;
hence thesis by A3,A2,Th16;
end;
theorem Th18:
for Z st Z <> {} & Z c= SF_have b \ SF_have a & Z is c=-linear
ex Y st Y in SF_have b \ SF_have a & for X1 st X1 in Z holds X1 c= Y
proof
let Z;
assume that
A1: Z <> {} and
A2: Z c= SF_have b \ SF_have a and
A3: Z is c=-linear;
reconsider Z as Subset-Family of L by A2,XBOOLE_1:1;
take Y = union Z;
Y in SF_have b \ SF_have a
proof
set X = the Element of Z;
A4: not a in Y
proof
assume a in Y;
then ex X st a in X & X in Z by TARSKI:def 4;
hence contradiction by A2,Th17;
end;
X in SF_have b \ SF_have a by A1,A2;
then
A5: b in X by Th17;
then
A6: b in Y by A1,TARSKI:def 4;
reconsider Y as non empty Subset of L by A1,A5,TARSKI:def 4;
now
let p,q be Element of L;
thus p in Y & q in Y implies p "/\" q in Y
proof
assume p in Y;
then consider X1 such that
A7: p in X1 and
A8: X1 in Z by TARSKI:def 4;
A9: X1 is Filter of L by A2,A8,Th17;
assume q in Y;
then consider X2 such that
A10: q in X2 and
A11: X2 in Z by TARSKI:def 4;
X1,X2 are_c=-comparable by A3,A8,A11,ORDINAL1:def 8;
then
A12: X1 c= X2 or X2 c= X1;
X2 is Filter of L by A2,A11,Th17;
then p "/\" q in X1 or p "/\" q in X2 by A7,A10,A9,A12,FILTER_0:8;
hence thesis by A8,A11,TARSKI:def 4;
end;
assume p "/\" q in Y;
then consider X1 such that
A13: p "/\" q in X1 and
A14: X1 in Z by TARSKI:def 4;
A15: X1 is Filter of L by A2,A14,Th17;
then
A16: q in X1 by A13,FILTER_0:8;
p in X1 by A13,A15,FILTER_0:8;
hence p in Y & q in Y by A14,A16,TARSKI:def 4;
end;
then Y is Filter of L by FILTER_0:8;
hence thesis by A4,A6,Lm1;
end;
hence thesis by ZFMISC_1:74;
end;
theorem Th19:
not b [= a implies <.b.) in SF_have b \ SF_have a
proof
assume not b [= a;
then not a in <.b.) by FILTER_0:15;
then
A1: not <.b.) in SF_have a by Th16;
b in <.b.);
then <.b.) in SF_have b;
hence thesis by A1,XBOOLE_0:def 5;
end;
theorem Th20:
not b [= a implies ex F st F in F_primeSet(L) & not a in F & b in F
proof
set A = SF_have b \ SF_have a;
assume not b [= a;
then
A1: A <> {} by Th19;
for Z st Z <> {} & Z c= SF_have b \ SF_have a & Z is c=-linear ex Y st Y
in SF_have b\ SF_have a & for X1 st X1 in Z holds X1 c= Y by Th18;
then consider Y such that
A2: Y in A and
A3: for Z st Z in A & Z <> Y holds not Y c= Z by A1,LATTICE4:1;
reconsider Y as Filter of L by A2,Th17;
A4: b in Y by A2,Th17;
A5: not a in Y by A2,Th17;
A6: Y is prime
proof
let a1,a2 be Element of L;
thus a1"\/"a2 in Y implies a1 in Y or a2 in Y
proof
set F2=<.<.a2.) \/ Y.);
set F1=<.<.a1.) \/ Y.);
assume that
A7: a1"\/"a2 in Y and
A8: not a1 in Y and
A9: not a2 in Y;
A10: <.a1.) c= F1 by LATTICE4:2;
a1 in <.a1.);
then
A11: a1 in F1 by A10;
A12: Y c= F1 by LATTICE4:2;
A13: <.a2.) c= F2 by LATTICE4:2;
a2 in <.a2.);
then
A14: a2 in F2 by A13;
A15: Y c= F2 by LATTICE4:2;
not a in F1 or not a in F2
proof
assume that
A16: a in F1 and
A17: a in F2;
consider c1 being Element of L such that
A18: c1 in Y and
A19: a1 "/\" c1 [= a by A16,LATTICE4:3;
consider c2 being Element of L such that
A20: c2 in Y and
A21: a2 "/\" c2 [= a by A17,LATTICE4:3;
set c = c1 "/\" c2;
a2 "/\" c [= a2 "/\" c2 by LATTICES:6,9;
then
A22: a2 "/\" c [= a by A21,LATTICES:7;
a1 "/\" c [= a1 "/\" c1 by LATTICES:6,9;
then a1 "/\" c [= a by A19,LATTICES:7;
then (a1 "/\" c) "\/"( a2 "/\" c) [= a by A22,FILTER_0:6;
then
A23: (a1 "\/" a2) "/\" c [= a by LATTICES:def 11;
c in Y by A18,A20,FILTER_0:8;
then (a1 "\/" a2) "/\" c in Y by A7,FILTER_0:8;
hence contradiction by A5,A23,FILTER_0:9;
end;
then F1 in A or F2 in A by A4,A12,A15,Lm1;
hence contradiction by A3,A8,A9,A11,A14,A12,A15;
end;
thus thesis by FILTER_0:10;
end;
Y <> the carrier of L by A2,Th17;
then Y in F_primeSet(L) by A6;
hence thesis by A5,A4;
end;
theorem Th21:
a <> b implies ex F st F in F_primeSet(L)
proof
assume a <> b;
then not a [= b or not b [= a by LATTICES:8;
then (ex F st F in F_primeSet(L) & not b in F & a in F) or ex F st F in
F_primeSet(L) & not a in F & b in F by Th20;
hence thesis;
end;
theorem Th22:
a <> b implies StoneH(L).a <> StoneH(L).b
proof
assume a <> b;
then not a [= b or not b [= a by LATTICES:8;
then (ex F st F in F_primeSet(L) & not b in F & a in F) or ex F st F in
F_primeSet(L) & not a in F & b in F by Th20;
then consider F such that
A1: F in F_primeSet(L) and
A2: b in F & not a in F or a in F & not b in F;
F in StoneH(L).a & not F in StoneH(L).b or F in StoneH(L).b & not F in
StoneH(L).a by A1,A2,Th11;
hence thesis;
end;
registration
let L;
cluster StoneH(L) -> one-to-one;
coherence
proof
let x1,x2 be object;
assume that
A1: x1 in dom StoneH(L) and
A2: x2 in dom StoneH(L) and
A3: StoneH(L).x1 = StoneH(L).x2;
reconsider a1=x1,a2=x2 as Element of L by A1,A2,Def6;
a1=a2 by A3,Th22;
hence thesis;
end;
end;
definition
let L;
let A,B be Element of StoneS(L);
redefine func A \/ B -> Element of StoneS(L); :: redefines \/ (XBOOLE_0, definition)
coherence
proof
consider b such that
A1: B = StoneH(L).b by Th13;
consider a such that
A2: A = StoneH(L).a by Th13;
A \/ B = StoneH(L).(a "\/" b) by A2,A1,Th14;
hence thesis by Th13;
end;
redefine func A /\ B -> Element of StoneS(L); :: redefines /\ (XBOOLE_0, definition)
coherence
proof
consider b such that
A3: B = StoneH(L).b by Th13;
consider a such that
A4: A = StoneH(L).a by Th13;
A /\ B = StoneH(L).(a "/\" b) by A4,A3,Th15;
hence thesis by Th13;
end;
end;
definition
let L;
func Set_Union L -> BinOp of StoneS(L) means
:Def9:
for A,B being Element of StoneS(L) holds it.(A,B) = A \/ B;
existence
proof
deffunc F(Element of StoneS(L), Element of StoneS(L)) = $1 \/ $2;
thus ex F being BinOp of StoneS(L) st for P,Q being Element of StoneS(L)
holds F.(P,Q) = F(P,Q) from BINOP_1:sch 4;
end;
uniqueness
proof
set A = StoneS(L);
deffunc O(Element of A, Element of A) = $1 \/ $2;
thus for o1,o2 being BinOp of A st (for a,b being Element of A holds o1.(a
,b) = O(a,b)) & (for a,b being Element of A holds o2.(a,b) = O(a,b)) holds o1 =
o2 from BINOP_2:sch 2;
end;
func Set_Meet L -> BinOp of StoneS(L) means
:Def10:
for A,B being Element of StoneS(L) holds it.(A,B) = A /\ B;
existence
proof
deffunc F(Element of StoneS(L), Element of StoneS(L)) = $1 /\ $2;
thus ex F being BinOp of StoneS(L) st for P,Q being Element of StoneS(L)
holds F.(P,Q) = F(P,Q) from BINOP_1:sch 4;
end;
uniqueness
proof
set A = StoneS(L);
deffunc O(Element of A, Element of A) = $1 /\ $2;
thus for o1,o2 being BinOp of A st (for a,b being Element of A holds o1.(a
,b) = O(a,b)) & (for a,b being Element of A holds o2.(a,b) = O(a,b)) holds o1 =
o2 from BINOP_2:sch 2;
end;
end;
theorem Th23:
LattStr(#StoneS(L),Set_Union L,Set_Meet L#) is Lattice
proof
set SL = LattStr(#StoneS(L),Set_Union L,Set_Meet L#);
A1: now
let p,q be Element of SL;
thus p "\/" q = q \/ p by Def9
.= q"\/"p by Def9;
end;
A2: now
let p,q be Element of SL;
thus (p"/\"q)"\/"q = (p"/\"q) \/ q by Def9
.= (p /\ q) \/ q by Def10
.= q by XBOOLE_1:22;
end;
A3: now
let p,q be Element of SL;
thus p"/\"(p"\/"q) = p /\ (p"\/"q) by Def10
.= p /\ (p \/ q) by Def9
.= p by XBOOLE_1:21;
end;
A4: now
let p,q,r be Element of SL;
thus p"/\"(q"/\"r) = p /\ (q "/\" r) by Def10
.= p /\ (q /\ r) by Def10
.= (p /\ q) /\ r by XBOOLE_1:16
.= (p "/\" q) /\ r by Def10
.= (p"/\"q)"/\"r by Def10;
end;
A5: now
let p,q be Element of SL;
thus p "/\" q =q /\ p by Def10
.= q"/\"p by Def10;
end;
now
let p,q,r be Element of SL;
thus p"\/"(q"\/"r) = p \/ (q "\/" r) by Def9
.= p \/ (q \/ r) by Def9
.= (p \/ q) \/ r by XBOOLE_1:4
.= (p "\/" q) \/ r by Def9
.= (p"\/"q)"\/"r by Def9;
end;
then
SL is join-commutative join-associative meet-absorbing meet-commutative
meet-associative join-absorbing by A1,A2,A5,A4,A3;
hence thesis;
end;
definition
let L;
func StoneLatt L -> Lattice equals
LattStr(#StoneS(L),Set_Union L,Set_Meet L
#);
coherence by Th23;
end;
reserve p,q for Element of StoneLatt(L);
theorem
for L holds the carrier of StoneLatt(L) = StoneS(L);
theorem
p "\/" q = p \/ q & p "/\" q = p /\ q by Def9,Def10;
theorem
p [= q iff p c= q
proof
p "\/" q = p \/ q by Def9;
hence thesis by XBOOLE_1:7,12;
end;
definition
let L;
::$N Stone Representation Theorem for Heyting Lattices
redefine func StoneH(L) -> Homomorphism of L,StoneLatt L; :: redefines StoneH (OPENLATT, definition)
coherence
proof
dom StoneH(L) = the carrier of L by Def6;
then reconsider
f=StoneH(L) as Function of the carrier of L, the carrier of
StoneLatt L by FUNCT_2:1;
now
let a,b;
thus f.(a "\/" b) = f.(a) \/ f.(b) by Th14
.=f.a "\/" f.b by Def9;
thus f.(a "/\" b) = f.(a) /\ f.(b) by Th15
.=f.(a) "/\" f.(b) by Def10;
end;
then f is "\/"-preserving "/\"-preserving;
hence thesis;
end;
end;
registration
let L;
cluster StoneH(L) -> bijective for Function of L,StoneLatt L;
coherence
proof
StoneH(L) is one-to-one onto;
hence thesis;
end;
cluster StoneLatt(L) -> distributive;
coherence
proof
StoneH(L) is onto;
hence thesis by LATTICE4:11;
end;
end;
theorem
L,StoneLatt L are_isomorphic
proof
take StoneH(L);
thus thesis;
end;
registration
cluster non trivial for H_Lattice;
existence
proof
set T = the non empty TopSpace;
set OL=Open_setLatt(T);
the carrier of T = Top OL by Th9;
then reconsider a= the carrier of T as Element of OL;
{} = Bottom OL by Th8;
then reconsider b= {} as Element of OL;
take OL,a,b;
thus thesis;
end;
end;
reserve H for non trivial H_Lattice;
reserve p9,q9 for Element of H;
theorem Th28:
StoneH(H).(Top H) = F_primeSet(H)
proof
hereby
let x be object;
assume x in StoneH(H).(Top H);
then
ex F being Filter of H st F=x & F <> the carrier of H & F is prime
& Top H in F by Th12;
hence x in F_primeSet(H);
end;
let x be object;
assume x in F_primeSet(H);
then consider F being Filter of H such that
A1: F=x and
A2: F <> the carrier of H and
A3: F is prime;
Top H in F by FILTER_0:11;
hence thesis by A1,A2,A3,Th12;
end;
theorem Th29:
StoneH(H).(Bottom H) = {}
proof
set x = the Element of StoneH(H).(Bottom H);
assume StoneH(H).(Bottom H) <> {};
then
ex F being Filter of H st F=x & F <> the carrier of H & F is prime &
Bottom H in F by Th12;
hence contradiction by FILTER_0:26;
end;
theorem Th30:
StoneS(H) c= bool F_primeSet(H)
proof
let x be object;
reconsider xx=x as set by TARSKI:1;
assume x in StoneS(H);
then consider p9 such that
A1: x=StoneH(H).p9 by Th13;
A2: x={F where F is Filter of H:F in F_primeSet(H) & p9 in F} by A1,Def6;
xx c= F_primeSet(H)
proof
let y be object;
assume y in xx;
then
ex F being Filter of H st y=F & F in F_primeSet(H) & p9 in F by A2;
hence thesis;
end;
hence thesis;
end;
registration
let H;
cluster F_primeSet(H) -> non empty;
coherence
proof
ex p9,q9 st p9 <> q9 by STRUCT_0:def 10;
then ex F being Filter of H st F in F_primeSet(H) by Th21;
hence thesis;
end;
end;
definition
let H;
func HTopSpace H -> strict TopStruct means
:Def12:
the carrier of it =
F_primeSet(H) & the topology of it =the set of all
union A where A is Subset of StoneS(H);
existence
proof
set FS= F_primeSet(H);
set top=the set of all union A where A is Subset of StoneS(H);
A1: StoneS(H) c= bool FS by Th30;
top c= bool FS
proof
let x be object;
reconsider xx=x as set by TARSKI:1;
assume x in top;
then consider A being Subset of StoneS(H) such that
A2: x=union A;
A c= bool FS by A1;
then xx c= union bool FS by A2,ZFMISC_1:77;
then x is Subset of FS by ZFMISC_1:81;
hence thesis;
end;
then reconsider top as Subset-Family of FS;
take TopStruct(#FS,top#);
thus thesis;
end;
uniqueness;
end;
registration
let H;
cluster HTopSpace H -> non empty TopSpace-like;
coherence
proof
reconsider A1={StoneH(H).(Top H)} as Subset of StoneS(H);
set TS = HTopSpace H;
A1: the topology of TS =the set of all union A where A is Subset of StoneS(H)
by Def12;
A2: the carrier of TS = F_primeSet(H) by Def12;
hence HTopSpace H is non empty;
F_primeSet(H) = StoneH(H).(Top H) by Th28;
then F_primeSet(H)=union A1 by ZFMISC_1:25;
hence the carrier of TS in the topology of TS by A2,A1;
hereby
let a be Subset-Family of TS;
defpred P[set] means union $1 in a;
set B= {A where A is Subset of StoneS(H) :P[A]};
set X= {union A where A is Subset of StoneS(H) : A in B};
assume
A3: a c= the topology of TS;
A4: a = X
proof
hereby
let x be object;
assume
A5: x in a;
then x in the topology of TS by A3;
then consider A be Subset of StoneS(H) such that
A6: x=union A by A1;
A in B by A5,A6;
hence x in X by A6;
end;
let x be object;
assume x in X;
then consider A be Subset of StoneS(H) such that
A7: x=union A and
A8: A in B;
ex A9 be Subset of StoneS(H) st A=A9 & union A9 in a by A8;
hence thesis by A7;
end;
reconsider B as Subset-Family of StoneS H from DOMAIN_1:sch 7;
union union B = union a by A4,EQREL_1:54;
hence union a in the topology of TS by A1;
end;
let a,b be Subset of TS;
assume that
A9: a in the topology of TS and
A10: b in the topology of TS;
consider A being Subset of StoneS(H) such that
A11: a = union A by A1,A9;
consider B being Subset of StoneS(H) such that
A12: b = union B by A1,A10;
INTERSECTION(A,B) c= StoneS(H)
proof
let x be object;
assume x in INTERSECTION(A,B);
then consider X,Y being set such that
A13: X in A and
A14: Y in B and
A15: x = X /\ Y by SETFAM_1:def 5;
consider p9 such that
A16: X=StoneH(H).p9 by A13,Th13;
consider q9 such that
A17: Y=StoneH(H).q9 by A14,Th13;
x = StoneH(H).(p9 "/\" q9) by A15,A16,A17,Th15;
hence thesis;
end;
then reconsider C=INTERSECTION(A,B) as Subset of StoneS(H);
union A /\ union B = union C by SETFAM_1:28;
hence thesis by A1,A11,A12;
end;
end;
theorem
the carrier of Open_setLatt(HTopSpace H) = the set of all
union A where A is Subset
of StoneS(H) by Def12;
theorem Th32:
StoneS(H) c= the carrier of Open_setLatt(HTopSpace H)
proof
let x be object;
set carrO = the carrier of Open_setLatt(HTopSpace H);
assume x in StoneS(H);
then reconsider z={x} as Subset of StoneS(H) by ZFMISC_1:31;
A1: union z = x by ZFMISC_1:25;
carrO = the set of all union A where A is Subset of StoneS(H) by Def12;
hence thesis by A1;
end;
definition
let H;
redefine func StoneH(H) -> Homomorphism of H,Open_setLatt(HTopSpace H); :: redefines StoneH (OPENLATT, definition)
coherence
proof
set LH=Open_setLatt(HTopSpace H);
reconsider g=StoneH(H) as Function of the carrier of H, the carrier of
StoneLatt(H);
StoneS(H) c= the carrier of LH by Th32;
then reconsider f=g as Function of the carrier of H, the carrier of LH by
FUNCT_2:6;
now
let p9,q9;
thus f.(p9 "\/" q9) = StoneH(H).p9 \/ StoneH(H).q9 by Th14
.= f.p9 "\/" f.q9 by Def2;
thus f.(p9 "/\" q9) = StoneH(H).p9 /\ StoneH(H).q9 by Th15
.= f.p9 "/\" f.q9 by Def3;
end;
then f is "\/"-preserving "/\"-preserving;
hence thesis;
end;
end;
theorem Th33:
StoneH(H).(p9 => q9) = (StoneH(H).p9) => (StoneH(H).q9)
proof
A1: the carrier of Open_setLatt(HTopSpace H) = the set of all
union A where A is Subset of
StoneS(H) by Def12;
A2: now
let r be Element of Open_setLatt(HTopSpace H);
r in the carrier of Open_setLatt(HTopSpace H);
then consider A being Subset of StoneS(H) such that
A3: r = union A by A1;
assume StoneH(H).p9 "/\" r [= StoneH(H).q9;
then StoneH(H).p9 "/\" r c= StoneH(H).q9 by Th6;
then StoneH(H).p9 /\ union A c= StoneH(H).q9 by A3,Def3;
then
A4: union INTERSECTION ({StoneH(H).p9}, A) c= StoneH(H).q9 by SETFAM_1:25;
now
let x;
assume
A5: x in A;
then consider x9 being Element of H such that
A6: x=StoneH(H).x9 by Th13;
StoneH(H).p9 in {StoneH(H).p9} by TARSKI:def 1;
then StoneH(H).p9 /\ x in INTERSECTION ({StoneH(H).p9}, A) by A5,
SETFAM_1:def 5;
then StoneH(H).p9 /\ StoneH(H).x9 c= StoneH(H).q9 by A4,A6,SETFAM_1:41;
then StoneH(H).(p9 "/\" x9) c= StoneH(H).q9 by Th15;
then StoneH(H).(p9 "/\" x9) [= StoneH(H).q9 by Th6;
then (p9 "/\" x9) [= q9 by LATTICE4:5;
then x9 [= p9 => q9 by FILTER_0:def 7;
then StoneH(H).x9 [= StoneH(H).(p9 => q9) by LATTICE4:4;
hence x c= StoneH(H).(p9 => q9) by A6,Th6;
end;
then union A c= StoneH(H).(p9 => q9) by ZFMISC_1:76;
hence r [= StoneH(H).(p9 => q9) by A3,Th6;
end;
p9 "/\" (p9 => q9) [= q9 by FILTER_0:def 7;
then StoneH(H).(p9 "/\" (p9 => q9)) [= StoneH(H).q9 by LATTICE4:4;
then StoneH(H).p9"/\" StoneH(H).(p9 => q9) [= StoneH(H).q9
by LATTICE4:def 2;
hence thesis by A2,FILTER_0:def 7;
end;
theorem
StoneH(H) preserves_implication
by Th33;
theorem
StoneH(H) preserves_top
proof
StoneH(H).(Top H) = F_primeSet(H) by Th28
.= the carrier of HTopSpace H by Def12
.= Top (Open_setLatt(HTopSpace H)) by Th9;
hence thesis;
end;
theorem
StoneH(H) preserves_bottom
proof
StoneH(H).(Bottom H) = {} by Th29
.= Bottom (Open_setLatt(HTopSpace H)) by Th8;
hence thesis;
end;