Article HEYTING1, MML version 4.99.1005
:: HEYTING1:th 1
theorem
for b1, b2, b3 being non empty set
for b4 being Function-like quasi_total Relation of b1,b2
st for b5 being Element of b1 holds
b4 . b5 in b3
holds b4 is Function-like quasi_total Relation of b1,b3;
:: HEYTING1:prednot 1 => HEYTING1:pred 1
definition
let a1 be non empty set;
let a2, a3 be Element of Fin a1;
redefine pred A2 c= A3 means
for b1 being Element of a1
st b1 in a2
holds b1 in a3;
reflexivity;
:: for a1 being non empty set
:: for a2 being Element of Fin a1 holds
:: a2 c= a2;
end;
:: HEYTING1:dfs 1
definiens
let a1 be non empty set;
let a2, a3 be Element of Fin a1;
To prove
a2 c= a3
it is sufficient to prove
thus for b1 being Element of a1
st b1 in a2
holds b1 in a3;
:: HEYTING1:def 1
theorem
for b1 being non empty set
for b2, b3 being Element of Fin b1 holds
b2 c= b3
iff
for b4 being Element of b1
st b4 in b2
holds b4 in b3;
:: HEYTING1:funcnot 1 => HEYTING1:func 1
definition
let a1 be set;
assume a1 is not empty;
func [A1] -> non empty set equals
a1;
end;
:: HEYTING1:def 2
theorem
for b1 being set
st b1 is not empty
holds [b1] = b1;
:: HEYTING1:th 3
theorem
for b1 being set
for b2 being Element of Fin DISJOINT_PAIRS b1
st b2 = {}
holds mi b2 = {};
:: HEYTING1:exreg 1
registration
let a1 be set;
cluster non empty Element of Normal_forms_on a1;
end;
:: HEYTING1:funcnot 2 => HEYTING1:func 2
definition
let a1 be set;
let a2 be Element of DISJOINT_PAIRS a1;
redefine func {a2} -> Element of Normal_forms_on a1;
end;
:: HEYTING1:funcnot 3 => HEYTING1:func 3
definition
let a1 be set;
let a2 be Element of the carrier of NormForm a1;
func @ A2 -> Element of Normal_forms_on a1 equals
a2;
end;
:: HEYTING1:def 3
theorem
for b1 being set
for b2 being Element of the carrier of NormForm b1 holds
@ b2 = b2;
:: HEYTING1:th 7
theorem
for b1 being set
for b2 being Element of Normal_forms_on b1 holds
mi (b2 ^ b2) = b2;
:: HEYTING1:th 8
theorem
for b1 being set
for b2 being Element of Normal_forms_on b1
for b3 being set
st b3 c= b2
holds b3 in Normal_forms_on b1;
:: HEYTING1:th 10
theorem
for b1 being set
for b2 being Element of the carrier of NormForm b1
for b3 being set
st b3 c= b2
holds b3 is Element of the carrier of NormForm b1;
:: HEYTING1:funcnot 4 => HEYTING1:func 4
definition
let a1 be set;
func Atom A1 -> Function-like quasi_total Relation of DISJOINT_PAIRS a1,the carrier of NormForm a1 means
for b1 being Element of DISJOINT_PAIRS a1 holds
it . b1 = {b1};
end;
:: HEYTING1:def 4
theorem
for b1 being set
for b2 being Function-like quasi_total Relation of DISJOINT_PAIRS b1,the carrier of NormForm b1 holds
b2 = Atom b1
iff
for b3 being Element of DISJOINT_PAIRS b1 holds
b2 . b3 = {b3};
:: HEYTING1:th 11
theorem
for b1 being set
for b2, b3 being Element of DISJOINT_PAIRS b1
st b2 in (Atom b1) . b3
holds b2 = b3;
:: HEYTING1:th 12
theorem
for b1 being set
for b2 being Element of DISJOINT_PAIRS b1 holds
b2 in (Atom b1) . b2;
:: HEYTING1:th 13
theorem
for b1 being set
for b2 being Element of DISJOINT_PAIRS b1 holds
(Atom b1) . b2 = (singleton DISJOINT_PAIRS b1) . b2;
:: HEYTING1:th 14
theorem
for b1 being set
for b2 being Element of Normal_forms_on b1 holds
FinJoin(b2,Atom b1) = FinUnion(b2,singleton DISJOINT_PAIRS b1);
:: HEYTING1:th 15
theorem
for b1 being set
for b2 being Element of the carrier of NormForm b1 holds
b2 = FinJoin(@ b2,Atom b1);
:: HEYTING1:funcnot 5 => HEYTING1:func 5
definition
let a1 be set;
func pair_diff A1 -> Function-like quasi_total Relation of [:[:Fin a1,Fin a1:],[:Fin a1,Fin a1:]:],[:Fin a1,Fin a1:] means
for b1, b2 being Element of [:Fin a1,Fin a1:] holds
it .(b1,b2) = b1 \ b2;
end;
:: HEYTING1:def 5
theorem
for b1 being set
for b2 being Function-like quasi_total Relation of [:[:Fin b1,Fin b1:],[:Fin b1,Fin b1:]:],[:Fin b1,Fin b1:] holds
b2 = pair_diff b1
iff
for b3, b4 being Element of [:Fin b1,Fin b1:] holds
b2 .(b3,b4) = b3 \ b4;
:: HEYTING1:funcnot 6 => HEYTING1:func 6
definition
let a1 be set;
let a2 be Element of Fin DISJOINT_PAIRS a1;
func - A2 -> Element of Fin DISJOINT_PAIRS a1 equals
(DISJOINT_PAIRS a1) /\ {[{b1 . b2 where b2 is Element of DISJOINT_PAIRS a1: b1 . b2 in b2 `2 & b2 in a2},{b1 . b2 where b2 is Element of DISJOINT_PAIRS a1: b1 . b2 in b2 `1 & b2 in a2}] where b1 is Element of Funcs(DISJOINT_PAIRS a1,[a1]): for b2 being Element of DISJOINT_PAIRS a1
st b2 in a2
holds b1 . b2 in b2 `1 \/ (b2 `2)};
end;
:: HEYTING1:def 6
theorem
for b1 being set
for b2 being Element of Fin DISJOINT_PAIRS b1 holds
- b2 = (DISJOINT_PAIRS b1) /\ {[{b3 . b4 where b4 is Element of DISJOINT_PAIRS b1: b3 . b4 in b4 `2 & b4 in b2},{b3 . b4 where b4 is Element of DISJOINT_PAIRS b1: b3 . b4 in b4 `1 & b4 in b2}] where b3 is Element of Funcs(DISJOINT_PAIRS b1,[b1]): for b4 being Element of DISJOINT_PAIRS b1
st b4 in b2
holds b3 . b4 in b4 `1 \/ (b4 `2)};
:: HEYTING1:funcnot 7 => HEYTING1:func 7
definition
let a1 be set;
let a2, a3 be Element of Fin DISJOINT_PAIRS a1;
func A2 =>> A3 -> Element of Fin DISJOINT_PAIRS a1 equals
(DISJOINT_PAIRS a1) /\ {FinPairUnion(a2,(pair_diff a1) .:(b1,incl DISJOINT_PAIRS a1)) where b1 is Element of Funcs(DISJOINT_PAIRS a1,[:Fin a1,Fin a1:]): b1 .: a2 c= a3};
end;
:: HEYTING1:def 7
theorem
for b1 being set
for b2, b3 being Element of Fin DISJOINT_PAIRS b1 holds
b2 =>> b3 = (DISJOINT_PAIRS b1) /\ {FinPairUnion(b2,(pair_diff b1) .:(b4,incl DISJOINT_PAIRS b1)) where b4 is Element of Funcs(DISJOINT_PAIRS b1,[:Fin b1,Fin b1:]): b4 .: b2 c= b3};
:: HEYTING1:th 16
theorem
for b1 being set
for b2 being Element of Fin DISJOINT_PAIRS b1
for b3 being Element of DISJOINT_PAIRS b1
st b3 in - b2
holds ex b4 being Element of Funcs(DISJOINT_PAIRS b1,[b1]) st
(for b5 being Element of DISJOINT_PAIRS b1
st b5 in b2
holds b4 . b5 in b5 `1 \/ (b5 `2)) &
b3 = [{b4 . b5 where b5 is Element of DISJOINT_PAIRS b1: b4 . b5 in b5 `2 & b5 in b2},{b4 . b5 where b5 is Element of DISJOINT_PAIRS b1: b4 . b5 in b5 `1 & b5 in b2}];
:: HEYTING1:th 17
theorem
for b1 being set holds
[{},{}] is Element of DISJOINT_PAIRS b1;
:: HEYTING1:th 18
theorem
for b1 being set
for b2 being Element of Normal_forms_on b1
st b2 = {}
holds - b2 = {[{},{}]};
:: HEYTING1:th 19
theorem
for b1 being set
for b2, b3 being Element of Normal_forms_on b1
st b2 = {} & b3 = {}
holds b2 =>> b3 = {[{},{}]};
:: HEYTING1:th 20
theorem
for b1 being Element of DISJOINT_PAIRS {} holds
b1 = [{},{}];
:: HEYTING1:th 21
theorem
DISJOINT_PAIRS {} = {[{},{}]};
:: HEYTING1:th 22
theorem
for b1 being set holds
{[{},{}]} is Element of Normal_forms_on b1;
:: HEYTING1:th 23
theorem
for b1 being set
for b2, b3 being Element of Fin DISJOINT_PAIRS b1
for b4 being Element of DISJOINT_PAIRS b1
st b4 in b2 =>> b3
holds ex b5 being Element of Funcs(DISJOINT_PAIRS b1,[:Fin b1,Fin b1:]) st
b5 .: b2 c= b3 &
b4 = FinPairUnion(b2,(pair_diff b1) .:(b5,incl DISJOINT_PAIRS b1));
:: HEYTING1:th 24
theorem
for b1 being set
for b2 being Element of DISJOINT_PAIRS b1
for b3 being Element of Normal_forms_on b1
st b3 ^ {b2} = {}
holds ex b4 being Element of DISJOINT_PAIRS b1 st
b4 in - b3 & b4 c= b2;
:: HEYTING1:th 25
theorem
for b1 being set
for b2 being Element of DISJOINT_PAIRS b1
for b3, b4 being Element of the carrier of NormForm b1
st (for b5 being Element of DISJOINT_PAIRS b1
st b5 in b3
holds b5 \/ b2 in DISJOINT_PAIRS b1) &
(for b5 being Element of DISJOINT_PAIRS b1
st b5 in b3
holds ex b6 being Element of DISJOINT_PAIRS b1 st
b6 in b4 & b6 c= b5 \/ b2)
holds ex b5 being Element of DISJOINT_PAIRS b1 st
b5 in (@ b3) =>> @ b4 & b5 c= b2;
:: HEYTING1:th 26
theorem
for b1 being set
for b2 being Element of Normal_forms_on b1 holds
b2 ^ - b2 = {};
:: HEYTING1:funcnot 8 => HEYTING1:func 8
definition
let a1 be set;
func pseudo_compl A1 -> Function-like quasi_total Relation of the carrier of NormForm a1,the carrier of NormForm a1 means
for b1 being Element of the carrier of NormForm a1 holds
it . b1 = mi - @ b1;
end;
:: HEYTING1:def 8
theorem
for b1 being set
for b2 being Function-like quasi_total Relation of the carrier of NormForm b1,the carrier of NormForm b1 holds
b2 = pseudo_compl b1
iff
for b3 being Element of the carrier of NormForm b1 holds
b2 . b3 = mi - @ b3;
:: HEYTING1:funcnot 9 => HEYTING1:func 9
definition
let a1 be set;
func StrongImpl A1 -> Function-like quasi_total Relation of [:the carrier of NormForm a1,the carrier of NormForm a1:],the carrier of NormForm a1 means
for b1, b2 being Element of the carrier of NormForm a1 holds
it .(b1,b2) = mi ((@ b1) =>> @ b2);
end;
:: HEYTING1:def 9
theorem
for b1 being set
for b2 being Function-like quasi_total Relation of [:the carrier of NormForm b1,the carrier of NormForm b1:],the carrier of NormForm b1 holds
b2 = StrongImpl b1
iff
for b3, b4 being Element of the carrier of NormForm b1 holds
b2 .(b3,b4) = mi ((@ b3) =>> @ b4);
:: HEYTING1:funcnot 10 => HEYTING1:func 10
definition
let a1 be set;
let a2 be Element of the carrier of NormForm a1;
func SUB A2 -> Element of Fin the carrier of NormForm a1 equals
bool a2;
end;
:: HEYTING1:def 10
theorem
for b1 being set
for b2 being Element of the carrier of NormForm b1 holds
SUB b2 = bool b2;
:: HEYTING1:funcnot 11 => HEYTING1:func 11
definition
let a1 be set;
let a2 be Element of the carrier of NormForm a1;
func diff A2 -> Function-like quasi_total Relation of the carrier of NormForm a1,the carrier of NormForm a1 means
for b1 being Element of the carrier of NormForm a1 holds
it . b1 = a2 \ b1;
end;
:: HEYTING1:def 11
theorem
for b1 being set
for b2 being Element of the carrier of NormForm b1
for b3 being Function-like quasi_total Relation of the carrier of NormForm b1,the carrier of NormForm b1 holds
b3 = diff b2
iff
for b4 being Element of the carrier of NormForm b1 holds
b3 . b4 = b2 \ b4;
:: HEYTING1:th 27
theorem
for b1 being set
for b2, b3 being Element of the carrier of NormForm b1 holds
(diff b2) . b3 [= b2;
:: HEYTING1:th 28
theorem
for b1 being set
for b2 being Element of the carrier of NormForm b1 holds
b2 "/\" ((pseudo_compl b1) . b2) = Bottom NormForm b1;
:: HEYTING1:th 29
theorem
for b1 being set
for b2, b3 being Element of the carrier of NormForm b1 holds
b2 "/\" ((StrongImpl b1) .(b2,b3)) [= b3;
:: HEYTING1:th 30
theorem
for b1 being set
for b2 being Element of DISJOINT_PAIRS b1
for b3 being Element of the carrier of NormForm b1
st (@ b3) ^ {b2} = {}
holds (Atom b1) . b2 [= (pseudo_compl b1) . b3;
:: HEYTING1:th 31
theorem
for b1 being set
for b2 being Element of DISJOINT_PAIRS b1
for b3, b4 being Element of the carrier of NormForm b1
st (for b5 being Element of DISJOINT_PAIRS b1
st b5 in b3
holds b5 \/ b2 in DISJOINT_PAIRS b1) &
b3 "/\" ((Atom b1) . b2) [= b4
holds (Atom b1) . b2 [= (StrongImpl b1) .(b3,b4);
:: HEYTING1:funcreg 1
registration
let a1 be set;
cluster NormForm a1 -> strict implicative;
end;
:: HEYTING1:th 33
theorem
for b1 being set
for b2, b3 being Element of the carrier of NormForm b1 holds
b2 => b3 = FinJoin(SUB b2,(the L_meet of NormForm b1) .:(pseudo_compl b1,(StrongImpl b1) [:](diff b2,b3)));
:: HEYTING1:th 34
theorem
for b1 being set holds
Top NormForm b1 = {[{},{}]};