:: HEYTING1 semantic presentation
theorem Th1: :: HEYTING1:1
:: deftheorem Def1 defines c= HEYTING1:def 1 :
:: deftheorem Def2 defines [ HEYTING1:def 2 :
for b
1 being
set holds
( not b
1 is
empty implies
[b1] = b
1 );
theorem Th2: :: HEYTING1:2
canceled;
theorem Th3: :: HEYTING1:3
:: deftheorem Def3 defines @ HEYTING1:def 3 :
Lemma5:
for b1 being set
for b2, b3 being Element of (NormForm b1) holds mi ((@ b2) ^ (@ b3)) = the L_meet of (NormForm b1) . b2,b3
by NORMFORM:def 14;
Lemma6:
for b1 being set
for b2, b3 being Element of (NormForm b1) holds mi ((@ b2) \/ (@ b3)) = the L_join of (NormForm b1) . b2,b3
by NORMFORM:def 14;
theorem Th4: :: HEYTING1:4
canceled;
theorem Th5: :: HEYTING1:5
canceled;
theorem Th6: :: HEYTING1:6
canceled;
theorem Th7: :: HEYTING1:7
theorem Th8: :: HEYTING1:8
theorem Th9: :: HEYTING1:9
canceled;
theorem Th10: :: HEYTING1:10
:: deftheorem Def4 defines Atom HEYTING1:def 4 :
theorem Th11: :: HEYTING1:11
theorem Th12: :: HEYTING1:12
theorem Th13: :: HEYTING1:13
theorem Th14: :: HEYTING1:14
theorem Th15: :: HEYTING1:15
Lemma15:
for b1 being set
for b2, b3 being Element of (NormForm b1) holds
( b2 [= b3 implies for b4 being Element of [:(Fin b1),(Fin b1):] holds
not ( b4 in b2 & ( for b5 being Element of DISJOINT_PAIRS b1 holds
not ( b5 in b3 & b5 c= b4 ) ) ) )
Lemma16:
for b1 being set
for b2, b3 being Element of (NormForm b1) holds
( ( for b4 being Element of DISJOINT_PAIRS b1 holds
not ( b4 in b2 & ( for b5 being Element of DISJOINT_PAIRS b1 holds
not ( b5 in b3 & b5 c= b4 ) ) ) ) implies b2 [= b3 )
definition
let c
1 be
set ;
func pair_diff c
1 -> BinOp of
[:(Fin a1),(Fin a1):] means :
Def5:
:: HEYTING1:def 5
for b
1, b
2 being
Element of
[:(Fin a1),(Fin a1):] holds a
2 . b
1,b
2 = b
1 \ b
2;
existence
ex b1 being BinOp of [:(Fin c1),(Fin c1):] st
for b2, b3 being Element of [:(Fin c1),(Fin c1):] holds b1 . b2,b3 = b2 \ b3
correctness
uniqueness
for b1, b2 being BinOp of [:(Fin c1),(Fin c1):] holds
( ( for b3, b4 being Element of [:(Fin c1),(Fin c1):] holds b1 . b3,b4 = b3 \ b4 ) & ( for b3, b4 being Element of [:(Fin c1),(Fin c1):] holds b2 . b3,b4 = b3 \ b4 ) implies b1 = b2 );
end;
:: deftheorem Def5 defines pair_diff HEYTING1:def 5 :
definition
let c
1 be
set ;
let c
2 be
Element of
Fin (DISJOINT_PAIRS c1);
func - c
2 -> Element of
Fin (DISJOINT_PAIRS a1) equals :: HEYTING1:def 6
(DISJOINT_PAIRS a1) /\ { [{ (b1 . b2) where B is Element of DISJOINT_PAIRS a1 : ( b1 . b2 in b2 `2 & b2 in a2 ) } ,{ (b1 . b2) where B is Element of DISJOINT_PAIRS a1 : ( b1 . b2 in b2 `1 & b2 in a2 ) } ] where B is Element of Funcs (DISJOINT_PAIRS a1),[a1] : for b1 being Element of DISJOINT_PAIRS a1 holds
( b2 in a2 implies b1 . b2 in (b2 `1 ) \/ (b2 `2 ) ) } ;
coherence
(DISJOINT_PAIRS c1) /\ { [{ (b1 . b2) where B is Element of DISJOINT_PAIRS c1 : ( b1 . b2 in b2 `2 & b2 in c2 ) } ,{ (b1 . b2) where B is Element of DISJOINT_PAIRS c1 : ( b1 . b2 in b2 `1 & b2 in c2 ) } ] where B is Element of Funcs (DISJOINT_PAIRS c1),[c1] : for b1 being Element of DISJOINT_PAIRS c1 holds
( b2 in c2 implies b1 . b2 in (b2 `1 ) \/ (b2 `2 ) ) } is Element of Fin (DISJOINT_PAIRS c1)
correctness
;
let c
3 be
Element of
Fin (DISJOINT_PAIRS c1);
func c
2 =>> c
3 -> Element of
Fin (DISJOINT_PAIRS a1) equals :: HEYTING1:def 7
(DISJOINT_PAIRS a1) /\ { (FinPairUnion a2,((pair_diff a1) .: b1,(incl (DISJOINT_PAIRS a1)))) where B is Element of Funcs (DISJOINT_PAIRS a1),[:(Fin a1),(Fin a1):] : b1 .: a2 c= a3 } ;
coherence
(DISJOINT_PAIRS c1) /\ { (FinPairUnion c2,((pair_diff c1) .: b1,(incl (DISJOINT_PAIRS c1)))) where B is Element of Funcs (DISJOINT_PAIRS c1),[:(Fin c1),(Fin c1):] : b1 .: c2 c= c3 } is Element of Fin (DISJOINT_PAIRS c1)
correctness
;
end;
:: deftheorem Def6 defines - HEYTING1:def 6 :
:: deftheorem Def7 defines =>> HEYTING1:def 7 :
theorem Th16: :: HEYTING1:16
theorem Th17: :: HEYTING1:17
theorem Th18: :: HEYTING1:18
theorem Th19: :: HEYTING1:19
theorem Th20: :: HEYTING1:20
theorem Th21: :: HEYTING1:21
Lemma24:
Fin (DISJOINT_PAIRS {} ) = {{} ,{[{} ,{} ]}}
theorem Th22: :: HEYTING1:22
theorem Th23: :: HEYTING1:23
theorem Th24: :: HEYTING1:24
theorem Th25: :: HEYTING1:25
Lemma30:
for b1 being set
for b2 being Element of DISJOINT_PAIRS b1
for b3 being Element of (NormForm b1)
for b4 being Element of Normal_forms_on b1 holds
not ( b2 in b4 ^ (b4 =>> (@ b3)) & ( for b5 being Element of DISJOINT_PAIRS b1 holds
not ( b5 in b3 & b5 c= b2 ) ) )
theorem Th26: :: HEYTING1:26
definition
let c
1 be
set ;
func pseudo_compl c
1 -> UnOp of the
carrier of
(NormForm a1) means :
Def8:
:: HEYTING1:def 8
for b
1 being
Element of
(NormForm a1) holds a
2 . b
1 = mi (- (@ b1));
existence
ex b1 being UnOp of the carrier of (NormForm c1) st
for b2 being Element of (NormForm c1) holds b1 . b2 = mi (- (@ b2))
correctness
uniqueness
for b1, b2 being UnOp of the carrier of (NormForm c1) holds
( ( for b3 being Element of (NormForm c1) holds b1 . b3 = mi (- (@ b3)) ) & ( for b3 being Element of (NormForm c1) holds b2 . b3 = mi (- (@ b3)) ) implies b1 = b2 );
func StrongImpl c
1 -> BinOp of the
carrier of
(NormForm a1) means :
Def9:
:: HEYTING1:def 9
for b
1, b
2 being
Element of
(NormForm a1) holds a
2 . b
1,b
2 = mi ((@ b1) =>> (@ b2));
existence
ex b1 being BinOp of the carrier of (NormForm c1) st
for b2, b3 being Element of (NormForm c1) holds b1 . b2,b3 = mi ((@ b2) =>> (@ b3))
correctness
uniqueness
for b1, b2 being BinOp of the carrier of (NormForm c1) holds
( ( for b3, b4 being Element of (NormForm c1) holds b1 . b3,b4 = mi ((@ b3) =>> (@ b4)) ) & ( for b3, b4 being Element of (NormForm c1) holds b2 . b3,b4 = mi ((@ b3) =>> (@ b4)) ) implies b1 = b2 );
let c
2 be
Element of
(NormForm c1);
func SUB c
2 -> Element of
Fin the
carrier of
(NormForm a1) equals :: HEYTING1:def 10
bool a
2;
coherence
bool c2 is Element of Fin the carrier of (NormForm c1)
correctness
;
func diff c
2 -> UnOp of the
carrier of
(NormForm a1) means :
Def11:
:: HEYTING1:def 11
for b
1 being
Element of
(NormForm a1) holds a
3 . b
1 = a
2 \ b
1;
existence
ex b1 being UnOp of the carrier of (NormForm c1) st
for b2 being Element of (NormForm c1) holds b1 . b2 = c2 \ b2
correctness
uniqueness
for b1, b2 being UnOp of the carrier of (NormForm c1) holds
( ( for b3 being Element of (NormForm c1) holds b1 . b3 = c2 \ b3 ) & ( for b3 being Element of (NormForm c1) holds b2 . b3 = c2 \ b3 ) implies b1 = b2 );
end;
:: deftheorem Def8 defines pseudo_compl HEYTING1:def 8 :
:: deftheorem Def9 defines StrongImpl HEYTING1:def 9 :
:: deftheorem Def10 defines SUB HEYTING1:def 10 :
:: deftheorem Def11 defines diff HEYTING1:def 11 :
deffunc H1( set ) -> Relation of [:the carrier of (NormForm a1),the carrier of (NormForm a1):],the carrier of (NormForm a1) = the L_join of (NormForm a1);
deffunc H2( set ) -> Relation of [:the carrier of (NormForm a1),the carrier of (NormForm a1):],the carrier of (NormForm a1) = the L_meet of (NormForm a1);
Lemma35:
for b1 being set
for b2, b3 being Element of (NormForm b1) holds
( b3 in SUB b2 implies b3 "\/" ((diff b2) . b3) = b2 )
theorem Th27: :: HEYTING1:27
Lemma37:
for b1 being set
for b2 being Element of DISJOINT_PAIRS b1
for b3 being Element of (NormForm b1) holds
ex b4 being Element of (NormForm b1) st
( b4 in SUB b3 & (@ b4) ^ {b2} = {} & ( for b5 being Element of DISJOINT_PAIRS b1 holds
( b5 in (diff b3) . b4 implies b5 \/ b2 in DISJOINT_PAIRS b1 ) ) )
theorem Th28: :: HEYTING1:28
theorem Th29: :: HEYTING1:29
theorem Th30: :: HEYTING1:30
theorem Th31: :: HEYTING1:31
E42:
now
let c
1 be
set ;
let c
2, c
3 be
Element of
(NormForm c1);
deffunc H
3(
Element of
(NormForm c1),
Element of
(NormForm c1))
-> Element of the
carrier of
(NormForm c1) =
FinJoin (SUB a1),
(H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff a1),a2));
set c
4 = H
2(c
1)
.: (pseudo_compl c1),
((StrongImpl c1) [:] (diff c2),c3);
E43:
now
let c
5 be
Element of
(NormForm c1);
set c
6 =
(diff c2) . c
5;
set c
7 =
(pseudo_compl c1) . c
5;
set c
8 =
(StrongImpl c1) . ((diff c2) . c5),c
3;
assume
c
5 in SUB c
2
;
then E44:
c
5 "\/" ((diff c2) . c5) = c
2
by Lemma35;
E45: c
5 "/\" (((pseudo_compl c1) . c5) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3)) =
(c5 "/\" ((pseudo_compl c1) . c5)) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3)
by LATTICES:def 7
.=
(Bottom (NormForm c1)) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3)
by Th28
.=
Bottom (NormForm c1)
by LATTICES:40
;
E46:
((diff c2) . c5) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3) [= c
3
by Th29;
(H2(c1) [;] c2,(H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff c2),c3))) . c
5 =
H
2(c
1)
. c
2,
((H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff c2),c3)) . c5)
by FUNCOP_1:66
.=
c
2 "/\" ((H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff c2),c3)) . c5)
by LATTICES:def 2
.=
c
2 "/\" (H2(c1) . ((pseudo_compl c1) . c5),(((StrongImpl c1) [:] (diff c2),c3) . c5))
by FUNCOP_1:48
.=
c
2 "/\" (((pseudo_compl c1) . c5) "/\" (((StrongImpl c1) [:] (diff c2),c3) . c5))
by LATTICES:def 2
.=
c
2 "/\" (((pseudo_compl c1) . c5) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3))
by FUNCOP_1:60
.=
(c5 "/\" (((pseudo_compl c1) . c5) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3))) "\/" (((diff c2) . c5) "/\" (((pseudo_compl c1) . c5) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3)))
by E44, LATTICES:def 11
.=
((diff c2) . c5) "/\" (((StrongImpl c1) . ((diff c2) . c5),c3) "/\" ((pseudo_compl c1) . c5))
by E45, LATTICES:39
.=
(((diff c2) . c5) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3)) "/\" ((pseudo_compl c1) . c5)
by LATTICES:def 7
;
then
(H2(c1) [;] c2,(H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff c2),c3))) . c
5 [= ((diff c2) . c5) "/\" ((StrongImpl c1) . ((diff c2) . c5),c3)
by LATTICES:23;
hence
(H2(c1) [;] c2,(H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff c2),c3))) . c
5 [= c
3
by E46, LATTICES:25;
end;
c
2 "/\" H
3(c
2,c
3)
= FinJoin (SUB c2),
(H2(c1) [;] c2,(H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff c2),c3)))
by LATTICE2:83;
hence
c
2 "/\" H
3(c
2,c
3)
[= c
3
by E43, LATTICE2:70;
let c
5 be
Element of
(NormForm c1);
E44:
c
3 = FinJoin (@ c3),
(Atom c1)
by Th15;
then E45:
c
2 "/\" c
3 = FinJoin (@ c3),
(H2(c1) [;] c2,(Atom c1))
by LATTICE2:83;
assume E46:
c
2 "/\" c
3 [= c
5
;
now
let c
6 be
Element of
DISJOINT_PAIRS c
1;
assume
c
6 in @ c
3
;
then
(H2(c1) [;] c2,(Atom c1)) . c
6 [= c
5
by E45, E46, LATTICE2:46;
then
H
2(c
1)
. c
2,
((Atom c1) . c6) [= c
5
by FUNCOP_1:66;
then E47:
c
2 "/\" ((Atom c1) . c6) [= c
5
by LATTICES:def 2;
consider c
7 being
Element of
(NormForm c1) such that E48:
c
7 in SUB c
2
and E49:
(@ c7) ^ {c6} = {}
and E50:
for b
1 being
Element of
DISJOINT_PAIRS c
1 holds
( b
1 in (diff c2) . c
7 implies b
1 \/ c
6 in DISJOINT_PAIRS c
1 )
by Lemma37;
(diff c2) . c
7 [= c
2
by Th27;
then
((diff c2) . c7) "/\" ((Atom c1) . c6) [= c
2 "/\" ((Atom c1) . c6)
by LATTICES:27;
then E51:
((diff c2) . c7) "/\" ((Atom c1) . c6) [= c
5
by E47, LATTICES:25;
set c
8 =
pseudo_compl c
1;
set c
9 =
(StrongImpl c1) [:] (diff c2),c
5;
E52:
(Atom c1) . c
6 [= (pseudo_compl c1) . c
7
by E49, Th30;
(Atom c1) . c
6 [= (StrongImpl c1) . ((diff c2) . c7),c
5
by E50, E51, Th31;
then E53:
(Atom c1) . c
6 [= ((StrongImpl c1) [:] (diff c2),c5) . c
7
by FUNCOP_1:60;
((pseudo_compl c1) . c7) "/\" (((StrongImpl c1) [:] (diff c2),c5) . c7) =
H
2(c
1)
. ((pseudo_compl c1) . c7),
(((StrongImpl c1) [:] (diff c2),c5) . c7)
by LATTICES:def 2
.=
(H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff c2),c5)) . c
7
by FUNCOP_1:48
;
then
(Atom c1) . c
6 [= (H2(c1) .: (pseudo_compl c1),((StrongImpl c1) [:] (diff c2),c5)) . c
7
by E52, E53, FILTER_0:7;
hence
(Atom c1) . c
6 [= H
3(c
2,c
5)
by E48, LATTICE2:44;
end;
hence
c
3 [= H
3(c
2,c
5)
by E44, LATTICE2:70;
end;
Lemma43:
for b1 being set holds NormForm b1 is implicative
theorem Th32: :: HEYTING1:32
canceled;
theorem Th33: :: HEYTING1:33
theorem Th34: :: HEYTING1:34