let L be Lattice; :: thesis: ( L is distributive & L is finite implies L is Heyting )
assume A1: ( L is distributive & L is finite ) ; :: thesis: L is Heyting
then reconsider L = L as D0_Lattice ;
set C = the carrier of L;
L is implicative
proof
let p, q be Element of the carrier of L; :: according to FILTER_0:def 6 :: thesis: ex b1 being Element of the carrier of L st
( p "/\" b1 [= q & ( for b2 being Element of the carrier of L holds
( not p "/\" b2 [= q or b2 [= b1 ) ) )

defpred S1[ Element of the carrier of L] means p "/\" c1 [= q;
set B = { x where x is Element of the carrier of L : S1[x] } ;
A2: { x where x is Element of the carrier of L : S1[x] } c= the carrier of L from FRAENKEL:sch 10();
then { x where x is Element of the carrier of L : S1[x] } is finite by A1, FINSET_1:1;
then reconsider B = { x where x is Element of the carrier of L : S1[x] } as Element of Fin the carrier of L by A2, FINSUB_1:def 5;
take r = FinJoin (B,(id the carrier of L)); :: thesis: ( p "/\" r [= q & ( for b1 being Element of the carrier of L holds
( not p "/\" b1 [= q or b1 [= r ) ) )

A3: now :: thesis: for x being Element of the carrier of L st x in B holds
( the L_meet of L [;] (p,(id the carrier of L))) . x [= q
let x be Element of the carrier of L; :: thesis: ( x in B implies ( the L_meet of L [;] (p,(id the carrier of L))) . x [= q )
assume x in B ; :: thesis: ( the L_meet of L [;] (p,(id the carrier of L))) . x [= q
then A4: ex x9 being Element of the carrier of L st
( x9 = x & p "/\" x9 [= q ) ;
( the L_meet of L [;] (p,(id the carrier of L))) . x = the L_meet of L . (p,((id the carrier of L) . x)) by FUNCOP_1:53
.= p "/\" x ;
hence ( the L_meet of L [;] (p,(id the carrier of L))) . x [= q by A4; :: thesis: verum
end;
p "/\" r = FinJoin (B,( the L_meet of L [;] (p,(id the carrier of L)))) by Th64;
hence p "/\" r [= q by A3, Th54; :: thesis: for b1 being Element of the carrier of L holds
( not p "/\" b1 [= q or b1 [= r )

let r1 be Element of the carrier of L; :: thesis: ( not p "/\" r1 [= q or r1 [= r )
assume p "/\" r1 [= q ; :: thesis: r1 [= r
then A5: r1 in B ;
r1 = (id the carrier of L) . r1 ;
hence r1 [= r by A5, Th28; :: thesis: verum
end;
hence L is Heyting ; :: thesis: verum