:: HEYTING2 semantic presentation
theorem Th1: :: HEYTING2:1
theorem Th2: :: HEYTING2:2
theorem Th3: :: HEYTING2:3
Lemma3:
for b1, b2, b3 being set holds
( b1 = b2 \/ b3 & b1 c= b2 implies b1 = b2 )
theorem Th4: :: HEYTING2:4
theorem Th5: :: HEYTING2:5
theorem Th6: :: HEYTING2:6
theorem Th7: :: HEYTING2:7
for b
1, b
2 being
set for b
3, b
4 being
Element of
SubstitutionSet b
1,b
2 holds
( b
3 ^ b
4 = b
3 implies for b
5 being
set holds
not ( b
5 in b
3 & ( for b
6 being
set holds
not ( b
6 in b
4 & b
6 c= b
5 ) ) ) )
theorem Th8: :: HEYTING2:8
theorem Th9: :: HEYTING2:9
for b
1, b
2 being
set for b
3, b
4 being
Element of
SubstitutionSet b
1,b
2 holds
( ( for b
5 being
set holds
not ( b
5 in b
3 & ( for b
6 being
set holds
not ( b
6 in b
4 & b
6 c= b
5 ) ) ) ) implies
mi (b3 ^ b4) = b
3 )
:: deftheorem Def1 defines Involved HEYTING2:def 1 :
theorem Th10: :: HEYTING2:10
Lemma11:
for b1 being set
for b2 being finite set
for b3 being non empty Element of Fin (PFuncs b1,b2) holds Involved b3 is finite
theorem Th11: :: HEYTING2:11
theorem Th12: :: HEYTING2:12
theorem Th13: :: HEYTING2:13
:: deftheorem Def2 defines - HEYTING2:def 2 :
theorem Th14: :: HEYTING2:14
theorem Th15: :: HEYTING2:15
theorem Th16: :: HEYTING2:16
theorem Th17: :: HEYTING2:17
theorem Th18: :: HEYTING2:18
theorem Th19: :: HEYTING2:19
definition
let c
1 be
set ;
let c
2 be
finite set ;
let c
3, c
4 be
Element of
Fin (PFuncs c1,c2);
func c
3 =>> c
4 -> Element of
Fin (PFuncs a1,a2) equals :: HEYTING2:def 3
(PFuncs a1,a2) /\ { (union { ((b1 . b2) \ b2) where B is Element of PFuncs a1,a2 : b2 in a3 } ) where B is Element of PFuncs a3,a4 : dom b1 = a3 } ;
coherence
(PFuncs c1,c2) /\ { (union { ((b1 . b2) \ b2) where B is Element of PFuncs c1,c2 : b2 in c3 } ) where B is Element of PFuncs c3,c4 : dom b1 = c3 } is Element of Fin (PFuncs c1,c2)
end;
:: deftheorem Def3 defines =>> HEYTING2:def 3 :
theorem Th20: :: HEYTING2:20
Lemma19:
for b1, b2 being set
for b3 being finite set
for b4 being Element of Fin (PFuncs b2,b3)
for b5 being Element of SubstitutionSet b2,b3 holds
not ( b1 in b4 ^ (b4 =>> b5) & ( for b6 being set holds
not ( b6 in b5 & b6 c= b1 ) ) )
theorem Th21: :: HEYTING2:21
Lemma20:
for b1 being set
for b2 being finite set
for b3 being Element of SubstitutionSet b1,b2
for b4 being set holds
( b4 c= b3 implies b4 in SubstitutionSet b1,b2 )
theorem Th22: :: HEYTING2:22
definition
let c
1 be
set ;
let c
2 be
finite set ;
func pseudo_compl c
1,c
2 -> UnOp of the
carrier of
(SubstLatt a1,a2) means :
Def4:
:: HEYTING2:def 4
for b
1 being
Element of
(SubstLatt a1,a2)for b
2 being
Element of
SubstitutionSet a
1,a
2 holds
( b
2 = b
1 implies a
3 . b
1 = mi (- b2) );
existence
ex b1 being UnOp of the carrier of (SubstLatt c1,c2) st
for b2 being Element of (SubstLatt c1,c2)
for b3 being Element of SubstitutionSet c1,c2 holds
( b3 = b2 implies b1 . b2 = mi (- b3) )
correctness
uniqueness
for b1, b2 being UnOp of the carrier of (SubstLatt c1,c2) holds
( ( for b3 being Element of (SubstLatt c1,c2)
for b4 being Element of SubstitutionSet c1,c2 holds
( b4 = b3 implies b1 . b3 = mi (- b4) ) ) & ( for b3 being Element of (SubstLatt c1,c2)
for b4 being Element of SubstitutionSet c1,c2 holds
( b4 = b3 implies b2 . b3 = mi (- b4) ) ) implies b1 = b2 );
func StrongImpl c
1,c
2 -> BinOp of the
carrier of
(SubstLatt a1,a2) means :
Def5:
:: HEYTING2:def 5
for b
1, b
2 being
Element of
(SubstLatt a1,a2)for b
3, b
4 being
Element of
SubstitutionSet a
1,a
2 holds
( b
3 = b
1 & b
4 = b
2 implies a
3 . b
1,b
2 = mi (b3 =>> b4) );
existence
ex b1 being BinOp of the carrier of (SubstLatt c1,c2) st
for b2, b3 being Element of (SubstLatt c1,c2)
for b4, b5 being Element of SubstitutionSet c1,c2 holds
( b4 = b2 & b5 = b3 implies b1 . b2,b3 = mi (b4 =>> b5) )
correctness
uniqueness
for b1, b2 being BinOp of the carrier of (SubstLatt c1,c2) holds
( ( for b3, b4 being Element of (SubstLatt c1,c2)
for b5, b6 being Element of SubstitutionSet c1,c2 holds
( b5 = b3 & b6 = b4 implies b1 . b3,b4 = mi (b5 =>> b6) ) ) & ( for b3, b4 being Element of (SubstLatt c1,c2)
for b5, b6 being Element of SubstitutionSet c1,c2 holds
( b5 = b3 & b6 = b4 implies b2 . b3,b4 = mi (b5 =>> b6) ) ) implies b1 = b2 );
let c
3 be
Element of
(SubstLatt c1,c2);
func SUB c
3 -> Element of
Fin the
carrier of
(SubstLatt a1,a2) equals :: HEYTING2:def 6
bool a
3;
coherence
bool c3 is Element of Fin the carrier of (SubstLatt c1,c2)
correctness
;
func diff c
3 -> UnOp of the
carrier of
(SubstLatt a1,a2) means :
Def7:
:: HEYTING2:def 7
for b
1 being
Element of
(SubstLatt a1,a2) holds a
4 . b
1 = a
3 \ b
1;
existence
ex b1 being UnOp of the carrier of (SubstLatt c1,c2) st
for b2 being Element of (SubstLatt c1,c2) holds b1 . b2 = c3 \ b2
correctness
uniqueness
for b1, b2 being UnOp of the carrier of (SubstLatt c1,c2) holds
( ( for b3 being Element of (SubstLatt c1,c2) holds b1 . b3 = c3 \ b3 ) & ( for b3 being Element of (SubstLatt c1,c2) holds b2 . b3 = c3 \ b3 ) implies b1 = b2 );
end;
:: deftheorem Def4 defines pseudo_compl HEYTING2:def 4 :
:: deftheorem Def5 defines StrongImpl HEYTING2:def 5 :
:: deftheorem Def6 defines SUB HEYTING2:def 6 :
:: deftheorem Def7 defines diff HEYTING2:def 7 :
Lemma25:
for b1 being set
for b2 being finite set
for b3, b4 being Element of (SubstLatt b1,b2) holds
( b3 in SUB b4 implies b3 "\/" ((diff b4) . b3) = b4 )
Lemma26:
for b1 being set
for b2 being finite set
for b3 being Element of (SubstLatt b1,b2)
for b4 being Element of PFuncs b1,b2
for b5 being Element of Fin (PFuncs b1,b2) holds
not ( b4 is finite & b5 = {b4} & ( for b6 being Element of SubstitutionSet b1,b2 holds
not ( b6 in SUB b3 & b6 ^ b5 = {} & ( for b7 being Element of PFuncs b1,b2 holds
( b7 in (diff b3) . b6 implies b7 tolerates b4 ) ) ) ) )
definition
let c
1 be
set ;
let c
2 be
finite set ;
func Atom c
1,c
2 -> Function of
PFuncs a
1,a
2,the
carrier of
(SubstLatt a1,a2) means :
Def8:
:: HEYTING2:def 8
for b
1 being
Element of
PFuncs a
1,a
2 holds a
3 . b
1 = mi {.b1.};
existence
ex b1 being Function of PFuncs c1,c2,the carrier of (SubstLatt c1,c2) st
for b2 being Element of PFuncs c1,c2 holds b1 . b2 = mi {.b2.}
correctness
uniqueness
for b1, b2 being Function of PFuncs c1,c2,the carrier of (SubstLatt c1,c2) holds
( ( for b3 being Element of PFuncs c1,c2 holds b1 . b3 = mi {.b3.} ) & ( for b3 being Element of PFuncs c1,c2 holds b2 . b3 = mi {.b3.} ) implies b1 = b2 );
end;
:: deftheorem Def8 defines Atom HEYTING2:def 8 :
Lemma28:
for b1 being set
for b2 being finite set
for b3 being Element of PFuncs b1,b2 holds
( b3 is finite implies (Atom b1,b2) . b3 = {b3} )
theorem Th23: :: HEYTING2:23
theorem Th24: :: HEYTING2:24
Lemma31:
for b1 being set
for b2 being finite set
for b3, b4 being Element of (SubstLatt b1,b2) holds
( ( for b5 being set holds
not ( b5 in b3 & ( for b6 being set holds
not ( b6 in b4 & b6 c= b5 ) ) ) ) implies b3 [= b4 )
theorem Th25: :: HEYTING2:25
theorem Th26: :: HEYTING2:26
theorem Th27: :: HEYTING2:27
theorem Th28: :: HEYTING2:28
Lemma36:
for b1 being set
for b2 being finite set
for b3, b4 being Element of (SubstLatt b1,b2) holds
( b3 [= b4 implies for b5 being set holds
not ( b5 in b3 & ( for b6 being set holds
not ( b6 in b4 & b6 c= b5 ) ) ) )
theorem Th29: :: HEYTING2:29
theorem Th30: :: HEYTING2:30
deffunc H1( set , set ) -> Relation of [:the carrier of (SubstLatt a1,a2),the carrier of (SubstLatt a1,a2):],the carrier of (SubstLatt a1,a2) = the L_meet of (SubstLatt a1,a2);
theorem Th31: :: HEYTING2:31
theorem Th32: :: HEYTING2:32
E41:
now
let c
1 be
set ;
let c
2 be
finite set ;
let c
3, c
4 be
Element of
(SubstLatt c1,c2);
deffunc H
2(
Element of
(SubstLatt c1,c2),
Element of
(SubstLatt c1,c2))
-> Element of the
carrier of
(SubstLatt c1,c2) =
FinJoin (SUB a1),
(H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff a1),a2));
set c
5 = H
1(c
1,c
2)
.: (pseudo_compl c1,c2),
((StrongImpl c1,c2) [:] (diff c3),c4);
E42:
now
let c
6 be
Element of
(SubstLatt c1,c2);
set c
7 =
(diff c3) . c
6;
set c
8 =
(pseudo_compl c1,c2) . c
6;
set c
9 =
(StrongImpl c1,c2) . ((diff c3) . c6),c
4;
assume
c
6 in SUB c
3
;
then E43:
c
6 "\/" ((diff c3) . c6) = c
3
by Lemma25;
E44: c
6 "/\" (((pseudo_compl c1,c2) . c6) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4)) =
(c6 "/\" ((pseudo_compl c1,c2) . c6)) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4)
by LATTICES:def 7
.=
(Bottom (SubstLatt c1,c2)) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4)
by Th31
.=
Bottom (SubstLatt c1,c2)
by LATTICES:40
;
E45:
((diff c3) . c6) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4) [= c
4
by Th32;
(H1(c1,c2) [;] c3,(H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff c3),c4))) . c
6 =
H
1(c
1,c
2)
. c
3,
((H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff c3),c4)) . c6)
by FUNCOP_1:66
.=
c
3 "/\" ((H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff c3),c4)) . c6)
by LATTICES:def 2
.=
c
3 "/\" (H1(c1,c2) . ((pseudo_compl c1,c2) . c6),(((StrongImpl c1,c2) [:] (diff c3),c4) . c6))
by FUNCOP_1:48
.=
c
3 "/\" (((pseudo_compl c1,c2) . c6) "/\" (((StrongImpl c1,c2) [:] (diff c3),c4) . c6))
by LATTICES:def 2
.=
c
3 "/\" (((pseudo_compl c1,c2) . c6) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4))
by FUNCOP_1:60
.=
(c6 "/\" (((pseudo_compl c1,c2) . c6) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4))) "\/" (((diff c3) . c6) "/\" (((pseudo_compl c1,c2) . c6) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4)))
by E43, LATTICES:def 11
.=
((diff c3) . c6) "/\" (((StrongImpl c1,c2) . ((diff c3) . c6),c4) "/\" ((pseudo_compl c1,c2) . c6))
by E44, LATTICES:39
.=
(((diff c3) . c6) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4)) "/\" ((pseudo_compl c1,c2) . c6)
by LATTICES:def 7
;
then
(H1(c1,c2) [;] c3,(H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff c3),c4))) . c
6 [= ((diff c3) . c6) "/\" ((StrongImpl c1,c2) . ((diff c3) . c6),c4)
by LATTICES:23;
hence
(H1(c1,c2) [;] c3,(H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff c3),c4))) . c
6 [= c
4
by E45, LATTICES:25;
end;
c
3 "/\" H
2(c
3,c
4)
= FinJoin (SUB c3),
(H1(c1,c2) [;] c3,(H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff c3),c4)))
by LATTICE2:83;
hence
c
3 "/\" H
2(c
3,c
4)
[= c
4
by E42, LATTICE2:70;
let c
6 be
Element of
(SubstLatt c1,c2);
reconsider c
7 = c
4 as
Element of
SubstitutionSet c
1,c
2 by SUBSTLAT:def 4;
E43:
c
4 = FinJoin c
7,
(Atom c1,c2)
by Th24;
then E44:
c
3 "/\" c
4 = FinJoin c
7,
(H1(c1,c2) [;] c3,(Atom c1,c2))
by LATTICE2:83;
assume E45:
c
3 "/\" c
4 [= c
6
;
now
let c
8 be
Element of
PFuncs c
1,c
2;
assume E46:
c
8 in c
7
;
then
(H1(c1,c2) [;] c3,(Atom c1,c2)) . c
8 [= c
6
by E44, E45, LATTICE2:46;
then
H
1(c
1,c
2)
. c
3,
((Atom c1,c2) . c8) [= c
6
by FUNCOP_1:66;
then E47:
c
3 "/\" ((Atom c1,c2) . c8) [= c
6
by LATTICES:def 2;
reconsider c
9 =
{.c8.} as
Element of
Fin (PFuncs c1,c2) ;
E48:
c
8 is
finite
by E46, Th2;
then reconsider c
10 =
{c8} as
Element of
SubstitutionSet c
1,c
2 by Th6;
consider c
11 being
Element of
SubstitutionSet c
1,c
2 such that E49:
c
11 in SUB c
3
and E50:
c
11 ^ c
9 = {}
and E51:
for b
1 being
Element of
PFuncs c
1,c
2 holds
( b
1 in (diff c3) . c
11 implies b
1 tolerates c
8 )
by E48, Lemma26;
E52:
c
11 ^ c
10 = {}
by E50;
reconsider c
12 = c
11 as
Element of
(SubstLatt c1,c2) by SUBSTLAT:def 4;
set c
13 =
(diff c3) . c
12;
(diff c3) . c
12 [= c
3
by Th25;
then
((diff c3) . c12) "/\" ((Atom c1,c2) . c8) [= c
3 "/\" ((Atom c1,c2) . c8)
by LATTICES:27;
then E53:
((diff c3) . c12) "/\" ((Atom c1,c2) . c8) [= c
6
by E47, LATTICES:25;
set c
14 =
pseudo_compl c
1,c
2;
set c
15 =
(StrongImpl c1,c2) [:] (diff c3),c
6;
E54:
c
8 is
finite
by E46, Th2;
E55:
(Atom c1,c2) . c
8 [= (pseudo_compl c1,c2) . c
12
by E52, Th27;
(Atom c1,c2) . c
8 [= (StrongImpl c1,c2) . ((diff c3) . c12),c
6
by E51, E53, E54, Th30;
then E56:
(Atom c1,c2) . c
8 [= ((StrongImpl c1,c2) [:] (diff c3),c6) . c
12
by FUNCOP_1:60;
((pseudo_compl c1,c2) . c12) "/\" (((StrongImpl c1,c2) [:] (diff c3),c6) . c12) =
H
1(c
1,c
2)
. ((pseudo_compl c1,c2) . c12),
(((StrongImpl c1,c2) [:] (diff c3),c6) . c12)
by LATTICES:def 2
.=
(H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff c3),c6)) . c
12
by FUNCOP_1:48
;
then
(Atom c1,c2) . c
8 [= (H1(c1,c2) .: (pseudo_compl c1,c2),((StrongImpl c1,c2) [:] (diff c3),c6)) . c
12
by E55, E56, FILTER_0:7;
hence
(Atom c1,c2) . c
8 [= H
2(c
3,c
6)
by E49, LATTICE2:44;
end;
hence
c
4 [= H
2(c
3,c
6)
by E43, LATTICE2:70;
end;
Lemma42:
for b1 being set
for b2 being finite set holds SubstLatt b1,b2 is implicative
theorem Th33: :: HEYTING2:33