let B be B_Lattice; for a being Element of B holds B,[:(B /\/ <.a.)),(latt <.a.)):] are_isomorphic
let a be Element of B; B,[:(B /\/ <.a.)),(latt <.a.)):] are_isomorphic
set F = <.a.);
set E = equivalence_wrt <.a.);
deffunc H3( set ) -> Element of bool the carrier of B = Class ((equivalence_wrt <.a.)),$1);
consider g being Function such that
A1:
( dom g = the carrier of B & ( for x being set st x in the carrier of B holds
g . x = H3(x) ) )
from FUNCT_1:sch 3();
A2:
for b being Element of B holds (b "\/" (b <=> a)) <=> b = b "\/" a
proof
let b be
Element of
B;
(b "\/" (b <=> a)) <=> b = b "\/" a
A3:
(b "\/" (b <=> a)) ` = (b `) "/\" ((b <=> a) `)
by LATTICES:51;
A4:
(b `) "/\" ((b "/\" (a `)) "\/" ((b `) "/\" a)) = ((b `) "/\" (b "/\" (a `))) "\/" ((b `) "/\" ((b `) "/\" a))
by LATTICES:def 11;
A5:
(Bottom B) "/\" (a `) = Bottom B
by LATTICES:40;
A6:
b "\/" ((b "/\" a) "\/" ((b `) "/\" (a `))) = (b "\/" (b "/\" a)) "\/" ((b `) "/\" (a `))
by LATTICES:def 5;
A7:
(Bottom B) "\/" ((b `) "/\" a) = (b `) "/\" a
by LATTICES:39;
A8:
b <=> a = (b "/\" a) "\/" ((b `) "/\" (a `))
by Th51;
A9:
(b `) "/\" b = Bottom B
by LATTICES:47;
A10:
b "/\" b = b
by LATTICES:18;
A11:
(b `) "/\" ((a `) "/\" b) = ((b `) "/\" (a `)) "/\" b
by LATTICES:def 7;
A12:
b "\/" (Bottom B) = b
by LATTICES:39;
A13:
(b `) "/\" (b `) = b `
by LATTICES:18;
A14:
(b `) "/\" ((b `) "/\" a) = ((b `) "/\" (b `)) "/\" a
by LATTICES:def 7;
A15:
(b <=> a) ` = (b "/\" (a `)) "\/" ((b `) "/\" a)
by Th52;
A16:
(b `) "/\" (b "/\" (a `)) = ((b `) "/\" b) "/\" (a `)
by LATTICES:def 7;
A17:
(b "\/" ((b `) "/\" (a `))) "/\" b = (b "/\" b) "\/" (((b `) "/\" (a `)) "/\" b)
by LATTICES:def 11;
A18:
(b "/\" a) "\/" b = b
by LATTICES:def 8;
(b "\/" (b <=> a)) <=> b = ((b "\/" (b <=> a)) "/\" b) "\/" (((b "\/" (b <=> a)) `) "/\" (b `))
by Th51;
hence (b "\/" (b <=> a)) <=> b =
b "\/" ((b "/\" a) "\/" ((b `) "/\" a))
by A3, A15, A4, A16, A9, A14, A13, A5, A7, A8, A6, A18, A17, A11, A10, A12, LATTICES:def 5
.=
b "\/" ((b "\/" (b `)) "/\" a)
by LATTICES:def 11
.=
b "\/" ((Top B) "/\" a)
by LATTICES:48
.=
b "\/" a
by LATTICES:43
;
verum
end;
set S = LattRel [:(B /\/ <.a.)),(latt <.a.)):];
A19:
field (LattRel [:(B /\/ <.a.)),(latt <.a.)):]) = the carrier of [:(B /\/ <.a.)),(latt <.a.)):]
by Th33;
reconsider o1 = H1(B), o2 = H2(B) as BinOp of equivalence_wrt <.a.) by Th13, Th14;
A21:
LattStr(# (Class (equivalence_wrt <.a.))),(o1 /\/ (equivalence_wrt <.a.))),(o2 /\/ (equivalence_wrt <.a.))) #) = B /\/ <.a.)
by Def5;
set R = LattRel B;
deffunc H4( Element of B) -> Element of the carrier of B = ($1 "\/" ($1 <=> a)) <=> $1;
consider h being UnOp of the carrier of B such that
A22:
for b being Element of B holds h . b = H4(b)
from FUNCT_2:sch 4();
take f = <:g,h:>; WELLORD1:def 8,FILTER_1:def 9 f is_isomorphism_of LattRel B, LattRel [:(B /\/ <.a.)),(latt <.a.)):]
A23:
field (LattRel B) = the carrier of B
by Th33;
A24:
dom h = dom g
by A1, FUNCT_2:def 1;
hence A25:
dom f = field (LattRel B)
by A1, A23, FUNCT_3:70; WELLORD1:def 7 ( proj2 f = field (LattRel [:(B /\/ <.a.)),(latt <.a.)):]) & f is one-to-one & ( for b1, b2 being set holds
( ( not [b1,b2] in LattRel B or ( b1 in field (LattRel B) & b2 in field (LattRel B) & [(f . b1),(f . b2)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] ) ) & ( not b1 in field (LattRel B) or not b2 in field (LattRel B) or not [(f . b1),(f . b2)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] or [b1,b2] in LattRel B ) ) ) )
A26:
for b being Element of B holds h . b is Element of (latt <.a.))
thus
rng f c= field (LattRel [:(B /\/ <.a.)),(latt <.a.)):])
XBOOLE_0:def 10 ( field (LattRel [:(B /\/ <.a.)),(latt <.a.)):]) c= proj2 f & f is one-to-one & ( for b1, b2 being set holds
( ( not [b1,b2] in LattRel B or ( b1 in field (LattRel B) & b2 in field (LattRel B) & [(f . b1),(f . b2)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] ) ) & ( not b1 in field (LattRel B) or not b2 in field (LattRel B) or not [(f . b1),(f . b2)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] or [b1,b2] in LattRel B ) ) ) )proof
let x be
set ;
TARSKI:def 3 ( not x in rng f or x in field (LattRel [:(B /\/ <.a.)),(latt <.a.)):]) )
assume
x in rng f
;
x in field (LattRel [:(B /\/ <.a.)),(latt <.a.)):])
then consider y being
set such that A28:
y in dom f
and A29:
x = f . y
by FUNCT_1:def 5;
reconsider y =
y as
Element of
B by A1, A24, A28, FUNCT_3:70;
reconsider z2 =
h . y as
Element of
(latt <.a.)) by A26;
g . y = EqClass (
(equivalence_wrt <.a.)),
y)
by A1;
then reconsider z1 =
g . y as
Element of
(B /\/ <.a.)) by A21;
x = [z1,z2]
by A28, A29, FUNCT_3:def 8;
hence
x in field (LattRel [:(B /\/ <.a.)),(latt <.a.)):])
by A19;
verum
end;
A30:
the carrier of (latt <.a.)) = <.a.)
by FILTER_0:63;
thus
field (LattRel [:(B /\/ <.a.)),(latt <.a.)):]) c= rng f
( f is one-to-one & ( for b1, b2 being set holds
( ( not [b1,b2] in LattRel B or ( b1 in field (LattRel B) & b2 in field (LattRel B) & [(f . b1),(f . b2)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] ) ) & ( not b1 in field (LattRel B) or not b2 in field (LattRel B) or not [(f . b1),(f . b2)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] or [b1,b2] in LattRel B ) ) ) )proof
let x be
set ;
TARSKI:def 3 ( not x in field (LattRel [:(B /\/ <.a.)),(latt <.a.)):]) or x in rng f )
assume
x in field (LattRel [:(B /\/ <.a.)),(latt <.a.)):])
;
x in rng f
then consider y being
Element of
Class (equivalence_wrt <.a.)),
z being
Element of
<.a.) such that A31:
x = [y,z]
by A19, A30, A21, DOMAIN_1:9;
consider b being
Element of
B such that A32:
y = Class (
(equivalence_wrt <.a.)),
b)
by EQREL_1:45;
set ty =
b "\/" (b <=> a);
(b "\/" (b <=> a)) <=> ((b "\/" (b <=> a)) <=> z) = z
by Th54;
then
((b "\/" (b <=> a)) <=> z) <=> (b "\/" (b <=> a)) = z
;
then A33:
[((b "\/" (b <=> a)) <=> z),(b "\/" (b <=> a))] in equivalence_wrt <.a.)
by FILTER_0:def 12;
b "\/" (b <=> a) in y
by A32, Th61;
then
y = Class (
(equivalence_wrt <.a.)),
(b "\/" (b <=> a)))
by A32, EQREL_1:31;
then A34:
(b "\/" (b <=> a)) <=> z in y
by A33, EQREL_1:27;
then A35:
y = Class (
(equivalence_wrt <.a.)),
((b "\/" (b <=> a)) <=> z))
by A32, EQREL_1:31;
then A36:
b "\/" (b <=> a) [= ((b "\/" (b <=> a)) <=> z) "\/" (((b "\/" (b <=> a)) <=> z) <=> a)
by A32, Th61;
y = Class (
(equivalence_wrt <.a.)),
((b "\/" (b <=> a)) <=> z))
by A32, A34, EQREL_1:31;
then A37:
g . ((b "\/" (b <=> a)) <=> z) = y
by A1;
((b "\/" (b <=> a)) <=> z) "\/" (((b "\/" (b <=> a)) <=> z) <=> a) [= b "\/" (b <=> a)
by A32, A35, Th61;
then A38:
((b "\/" (b <=> a)) <=> z) "\/" (((b "\/" (b <=> a)) <=> z) <=> a) = b "\/" (b <=> a)
by A36, LATTICES:26;
h . ((b "\/" (b <=> a)) <=> z) = (((b "\/" (b <=> a)) <=> z) "\/" (((b "\/" (b <=> a)) <=> z) <=> a)) <=> ((b "\/" (b <=> a)) <=> z)
by A22;
then
h . ((b "\/" (b <=> a)) <=> z) = z
by A38, Th54;
then
x = f . ((b "\/" (b <=> a)) <=> z)
by A23, A25, A31, A37, FUNCT_3:def 8;
hence
x in rng f
by A23, A25, FUNCT_1:def 5;
verum
end;
thus
f is one-to-one
for b1, b2 being set holds
( ( not [b1,b2] in LattRel B or ( b1 in field (LattRel B) & b2 in field (LattRel B) & [(f . b1),(f . b2)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] ) ) & ( not b1 in field (LattRel B) or not b2 in field (LattRel B) or not [(f . b1),(f . b2)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] or [b1,b2] in LattRel B ) )proof
let x be
set ;
FUNCT_1:def 8 for b1 being set holds
( not x in proj1 f or not b1 in proj1 f or not f . x = f . b1 or x = b1 )let y be
set ;
( not x in proj1 f or not y in proj1 f or not f . x = f . y or x = y )
assume that A39:
x in dom f
and A40:
y in dom f
;
( not f . x = f . y or x = y )
reconsider x9 =
x,
y9 =
y as
Element of
B by A1, A24, A39, A40, FUNCT_3:70;
assume A41:
f . x = f . y
;
x = y
A42:
g . y9 = Class (
(equivalence_wrt <.a.)),
y9)
by A1;
A43:
h . y9 = (y9 "\/" (y9 <=> a)) <=> y9
by A22;
A44:
h . x9 = (x9 "\/" (x9 <=> a)) <=> x9
by A22;
A45:
g . x9 = Class (
(equivalence_wrt <.a.)),
x9)
by A1;
A46:
f . y = [(g . y9),(h . y9)]
by A23, A25, FUNCT_3:def 8;
A47:
f . x = [(g . x9),(h . x9)]
by A23, A25, FUNCT_3:def 8;
then A48:
g . x = g . y
by A46, A41, ZFMISC_1:33;
then A49:
y9 "\/" (y9 <=> a) [= x9 "\/" (x9 <=> a)
by A45, A42, Th61;
x9 "\/" (x9 <=> a) [= y9 "\/" (y9 <=> a)
by A45, A42, A48, Th61;
then A50:
y9 "\/" (y9 <=> a) = x9 "\/" (x9 <=> a)
by A49, LATTICES:26;
h . x = h . y
by A47, A46, A41, ZFMISC_1:33;
hence
x = y
by A44, A43, A50, Th53;
verum
end;
let x, y be set ; ( ( not [x,y] in LattRel B or ( x in field (LattRel B) & y in field (LattRel B) & [(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] ) ) & ( not x in field (LattRel B) or not y in field (LattRel B) or not [(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] or [x,y] in LattRel B ) )
A51:
the carrier of (latt <.a.)) = <.a.)
by FILTER_0:63;
thus
( [x,y] in LattRel B implies ( x in field (LattRel B) & y in field (LattRel B) & [(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] ) )
( not x in field (LattRel B) or not y in field (LattRel B) or not [(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] or [x,y] in LattRel B )proof
assume A52:
[x,y] in LattRel B
;
( x in field (LattRel B) & y in field (LattRel B) & [(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] )
then reconsider x9 =
x,
y9 =
y as
Element of
B by A23, RELAT_1:30;
A53:
x9 [= y9
by A52, Th32;
thus
(
x in field (LattRel B) &
y in field (LattRel B) )
by A52, RELAT_1:30;
[(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):]
A54:
Top B in <.a.)
by FILTER_0:12;
x9 "/\" (Top B) = x9
by LATTICES:43;
then
Top B [= x9 => y9
by A53, FILTER_0:def 8;
then
x9 => y9 in <.a.)
by A54, FILTER_0:9;
then A55:
x9 /\/ <.a.) [= y9 /\/ <.a.)
by Th16;
A56:
h . x9 = (x9 "\/" (x9 <=> a)) <=> x9
by A22;
A57:
y9 "\/" (y9 <=> a) in Class (
(equivalence_wrt <.a.)),
y9)
by Th61;
A58:
(y9 "\/" (y9 <=> a)) <=> y9 = y9 "\/" a
by A2;
A59:
(x9 "\/" (x9 <=> a)) <=> x9 = x9 "\/" a
by A2;
A60:
h . y9 = (y9 "\/" (y9 <=> a)) <=> y9
by A22;
x9 "\/" (x9 <=> a) in Class (
(equivalence_wrt <.a.)),
x9)
by Th61;
then reconsider hx =
h . x,
hy =
h . y as
Element of
(latt <.a.)) by A51, A56, A60, A57, Lm4;
A61:
Class (
(equivalence_wrt <.a.)),
x9)
= g . x9
by A1;
x9 "\/" a [= y9 "\/" a
by A53, FILTER_0:1;
then
hx [= hy
by A56, A60, A59, A58, FILTER_0:65;
then A62:
[(x9 /\/ <.a.)),hx] [= [(y9 /\/ <.a.)),hy]
by A55, Th37;
A63:
y9 /\/ <.a.) = Class (
(equivalence_wrt <.a.)),
y9)
by Def6;
A64:
Class (
(equivalence_wrt <.a.)),
y9)
= g . y9
by A1;
A65:
f . y9 = [(g . y9),(h . y9)]
by A23, A25, FUNCT_3:def 8;
A66:
f . x9 = [(g . x9),(h . x9)]
by A23, A25, FUNCT_3:def 8;
x9 /\/ <.a.) = Class (
(equivalence_wrt <.a.)),
x9)
by Def6;
hence
[(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):]
by A61, A63, A64, A66, A65, A62;
verum
end;
assume that
A67:
x in field (LattRel B)
and
A68:
y in field (LattRel B)
; ( not [(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):] or [x,y] in LattRel B )
reconsider x9 = x, y9 = y as Element of B by A67, A68, Th33;
A69:
h . x9 = (x9 "\/" (x9 <=> a)) <=> x9
by A22;
A70:
f . y9 = [(g . y9),(h . y9)]
by A23, A25, FUNCT_3:def 8;
A71:
y9 /\/ <.a.) = Class ((equivalence_wrt <.a.)),y9)
by Def6;
A72:
Class ((equivalence_wrt <.a.)),x9) = g . x9
by A1;
A73:
(y9 "\/" (y9 <=> a)) <=> y9 = y9 "\/" a
by A2;
A74:
(x9 "\/" (x9 <=> a)) <=> x9 = x9 "\/" a
by A2;
A75:
y9 "/\" x9 [= y9
by LATTICES:23;
A76:
y9 "\/" (y9 <=> a) in Class ((equivalence_wrt <.a.)),y9)
by Th61;
A77:
h . y9 = (y9 "\/" (y9 <=> a)) <=> y9
by A22;
x9 "\/" (x9 <=> a) in Class ((equivalence_wrt <.a.)),x9)
by Th61;
then reconsider hx = h . x, hy = h . y as Element of (latt <.a.)) by A51, A69, A77, A76, Lm4;
assume A78:
[(f . x),(f . y)] in LattRel [:(B /\/ <.a.)),(latt <.a.)):]
; [x,y] in LattRel B
A79:
f . x9 = [(g . x9),(h . x9)]
by A23, A25, FUNCT_3:def 8;
A80:
Class ((equivalence_wrt <.a.)),y9) = g . y9
by A1;
x9 /\/ <.a.) = Class ((equivalence_wrt <.a.)),x9)
by Def6;
then A81:
[(x9 /\/ <.a.)),hx] [= [(y9 /\/ <.a.)),hy]
by A71, A72, A80, A79, A70, A78, Th32;
then
x9 /\/ <.a.) [= y9 /\/ <.a.)
by Th37;
then A82:
x9 => y9 in <.a.)
by Th16;
x9 => y9 = (x9 `) "\/" y9
by FILTER_0:55;
then
a [= (x9 `) "\/" y9
by A82, FILTER_0:18;
then A83:
x9 "/\" a [= x9 "/\" ((x9 `) "\/" y9)
by LATTICES:27;
A84:
(Bottom B) "\/" (x9 "/\" y9) = x9 "/\" y9
by LATTICES:39;
hx [= hy
by A81, Th37;
then
x9 "\/" a [= y9 "\/" a
by A69, A77, A74, A73, FILTER_0:65;
then A85:
x9 "/\" (x9 "\/" a) [= x9 "/\" (y9 "\/" a)
by LATTICES:27;
A86:
x9 "/\" (x9 `) = Bottom B
by LATTICES:47;
x9 "/\" ((x9 `) "\/" y9) = (x9 "/\" (x9 `)) "\/" (x9 "/\" y9)
by LATTICES:def 11;
then
x9 "/\" a [= y9
by A83, A86, A84, A75, LATTICES:25;
then A87:
(x9 "/\" y9) "\/" (x9 "/\" a) [= y9
by A75, FILTER_0:6;
x9 [= x9 "\/" a
by LATTICES:22;
then
x9 "/\" (x9 "\/" a) = x9
by LATTICES:21;
then
x9 [= (x9 "/\" y9) "\/" (x9 "/\" a)
by A85, LATTICES:def 11;
then
x9 [= y9
by A87, LATTICES:25;
hence
[x,y] in LattRel B
; verum