Fitting (1994): Kleene's three valued logics and their children #
Fitting shows that Kleene's strong three-valued logic is the consistent part x ≤ₖ −x of
Belnap's FOUR, and that the guard connective P : Q, which is Q if P is at least true and
⊥ otherwise, extends Belnap's logic so that Kleene's weak logic and the asymmetric Lisp logic
become definable there (Definition 5.1). Both generalize to Ginsberg's product bilattices L ⊙ L,
where the guard is ⟨a, b⟩ : ⟨c, d⟩ = ⟨a ∧ c, a ∧ d⟩ (Definition 9.4).
The main results are the identities of Figure 4 for the guard, the closure theorems for exact
and consistent values (Theorems 9.2 and 9.3, not_isExact_kTop, isConsistent_kSup), the
identification of the Lisp and weak connectives on Kleene's values with SignType.meetMiddle
and SignType.meetWeak, and the collapse for bilinear bilattices: an equivalence of formulas
holds in L ⊙ L for a linear L iff it holds in FOUR (Theorem 10.5, equivalent_iff_four).
Implementation notes #
- The product, its negation and the conflation of §§6–7 are
Bilattice.Productwith itsComplandConflationinstances; a De Morgan lattice is a bounded distributive lattice with anInvolutiveCompl. §3's identification of Kleene's values with the consistent part ofFOURisTrivalent.orderIsoConsistent, and the closure clauses of Theorems 9.2 and 9.3 areIsExact.inf,IsConsistent.compland their kin; the study keeps what the substrate lacks. - The representation theorems of §8, with their negation- and conflation-preserving refinements (Theorems 8.2 and 8.3), and the tableau system of §4 are not formalized.
- Theorem 10.5 is stated for products of linear bounded lattices;
ofFourembedsFOURby sending the Boolean coordinates to the bounds, andθ_⊤reads it back.
References #
Formulas and the semantics behind the tableaux (§4) #
Formulas over the bilattice connectives, namely the truth connectives and negation, consensus
⊓ₖ, gullibility ⊔ₖ, and the guard P : Q of §5.
- atom {Atom : Type u_1} : Atom → Formula Atom
- inf {Atom : Type u_1} : Formula Atom → Formula Atom → Formula Atom
- sup {Atom : Type u_1} : Formula Atom → Formula Atom → Formula Atom
- neg {Atom : Type u_1} : Formula Atom → Formula Atom
- kInf {Atom : Type u_1} : Formula Atom → Formula Atom → Formula Atom
- kSup {Atom : Type u_1} : Formula Atom → Formula Atom → Formula Atom
- guard {Atom : Type u_1} : Formula Atom → Formula Atom → Formula Atom
Instances For
Evaluation in L ⊙ L under a valuation of the atoms (Definition 4.1).
Equations
- Fitting1994.Formula.eval v (Fitting1994.Formula.atom a) = v a
- Fitting1994.Formula.eval v (φ.inf ψ) = Fitting1994.Formula.eval v φ ⊓ Fitting1994.Formula.eval v ψ
- Fitting1994.Formula.eval v (φ.sup ψ) = Fitting1994.Formula.eval v φ ⊔ Fitting1994.Formula.eval v ψ
- Fitting1994.Formula.eval v φ.neg = (Fitting1994.Formula.eval v φ)ᶜ
- Fitting1994.Formula.eval v (φ.kInf ψ) = Bilattice.kInf (Fitting1994.Formula.eval v φ) (Fitting1994.Formula.eval v ψ)
- Fitting1994.Formula.eval v (φ.kSup ψ) = Bilattice.kSup (Fitting1994.Formula.eval v φ) (Fitting1994.Formula.eval v ψ)
- Fitting1994.Formula.eval v (φ.guard ψ) = (Fitting1994.Formula.eval v φ).guard (Fitting1994.Formula.eval v ψ)
Instances For
X restricts Y when, under every valuation in FOUR, Y is at most true (⊥ or true)
whenever X is (Definition 4.2).
Equations
- φ.Restricts ψ = ∀ (v : Atom → Bilattice.FOUR), Bilattice.kLE (Fitting1994.Formula.eval v φ) Bilattice.FOUR.T → Bilattice.kLE (Fitting1994.Formula.eval v ψ) Bilattice.FOUR.T
Instances For
X requires Y when, under every valuation in FOUR, Y is at least true (true or ⊤)
whenever X is (Definition 4.2).
Equations
- φ.Requires ψ = ∀ (v : Atom → Bilattice.FOUR), Bilattice.kLE Bilattice.FOUR.T (Fitting1994.Formula.eval v φ) → Bilattice.kLE Bilattice.FOUR.T (Fitting1994.Formula.eval v ψ)
Instances For
X ≡ Y when the two formulas take the same value in FOUR under every valuation.
Equations
- φ.Equivalent ψ = ∀ (v : Atom → Bilattice.FOUR), Fitting1994.Formula.eval v φ = Fitting1994.Formula.eval v ψ
Instances For
Two formulas are equivalent iff each restricts and requires the other (§4).
The guard connective (§5) #
On FOUR, P : Q is Q when P is at least true and ⊥ otherwise.
The Figure 4 identity (P ⊓ₖ Q) : R = (P ∧ Q) : R.
The Figure 4 identity (P ⊓ₖ Q) : R = (P : R) ⊓ₖ (Q : R).
The Figure 4 identity (P ⊓ₖ Q) : R = (P : Q) : R.
The Figure 4 identity (P ⊓ₖ Q) : R = P : (Q : R).
The Figure 4 identity (P ⊔ₖ Q) : R = (P ∨ Q) : R.
The Figure 4 identity (P ⊔ₖ Q) : R = (P : R) ⊔ₖ (Q : R).
The Figure 4 identity P : ¬Q = ¬(P : Q).
The Figure 4 identity P : (Q ∧ R) = (P : Q) ∧ (P : R).
The Figure 4 identity P : (Q ∨ R) = (P : Q) ∨ (P : R).
The Figure 4 identity P : Q ⊓ₖ R = (P : Q) ⊓ₖ (P : R).
The Figure 4 identity P : Q ⊔ₖ R = (P : Q) ⊔ₖ (P : R).
The Figure 4 identity P ⊔ₖ (Q : P) = P.
The Figure 4 identity P ⊓ₖ (Q : P) = Q : P.
The guard is truth-monotone in its second input.
In the "curious property" of the guard, P₁ ≤ₜ P₂ gives (P₁ : Q) ≤ₖ (P₂ : Q).
The guard is not truth-monotone in its first input, since ⊥ ≤ₜ true in FOUR while
⊥ : false = ⊥ is not below true : false = false.
Lisp and weak Kleene connectives through the guard (§5) #
Lisp conjunction P ∧⃗ Q = P ∧ (P : Q) (Definition 5.1), which consults the second conjunct
only past the guard of the first.
Equations
- Fitting1994.landL x y = x ⊓ x.guard y
Instances For
Lisp disjunction P ∨⃗ Q = P ∨ (¬P : Q) (Definition 5.1).
Equations
- Fitting1994.lorL x y = x ⊔ xᶜ.guard y
Instances For
Weak Kleene conjunction P ∧ʷ Q = (P ∧⃗ Q) ⊓ₖ (Q ∧⃗ P) (Definition 5.1), the consensus of
the two evaluation orders.
Equations
- Fitting1994.landW x y = Bilattice.kInf (Fitting1994.landL x y) (Fitting1994.landL y x)
Instances For
Weak Kleene disjunction P ∨ʷ Q = (P ∨⃗ Q) ⊓ₖ (Q ∨⃗ P) (Definition 5.1).
Equations
- Fitting1994.lorW x y = Bilattice.kInf (Fitting1994.lorL x y) (Fitting1994.lorL y x)
Instances For
Strong Kleene conjunction is the gullible combination of the two Lisp evaluations,
P ∧ Q = (P ∧⃗ Q) ⊔ₖ (Q ∧⃗ P), in every product.
Strong Kleene disjunction is the gullible combination of the two Lisp evaluations,
P ∨ Q = (P ∨⃗ Q) ⊔ₖ (Q ∨⃗ P).
On Kleene's values Lisp conjunction is the middle Kleene conjunction of [Pet79].
On Kleene's values Lisp disjunction is middle Kleene disjunction.
Lisp conjunction distributes over Lisp disjunction on three values.
The distributivity law fails on four values, P = R = ⊤ and Q = ⊥ falsifying it.
Bilattices and the product construction (§§6–7) #
The extremal identities (§6) true ⊔ₖ false = ⊤, true ⊓ₖ false = ⊥, ⊤ ∧ ⊥ = false and
⊤ ∨ ⊥ = true hold in L ⊙ L, with (⊤, ⊤) and (⊥, ⊥) the knowledge bounds.
Kleene's logics generalized (§9) #
Definition 9.1's exact and consistent values are IsExact and IsConsistent, read off the
coordinates by Product.isExact_iff and Product.isConsistent_iff; their closure under the
truth connectives and negation (Theorems 9.2 and 9.3) is IsExact.inf, IsExact.sup,
IsExact.compl, IsConsistent.inf, IsConsistent.sup and IsConsistent.compl. The guard of
Definition 9.4 is guard, with its characterization in the bilattice operations
guard_eq_kSup_compl.
The knowledge top ⊤ = (⊤, ⊤) is not exact (Theorem 9.2).
The knowledge bottom ⊥ = (⊥, ⊥) is not exact (Theorem 9.2).
The exact values are not closed under ⊓ₖ, since true ⊓ₖ false = ⊥ (Theorem 9.2).
The exact values are not closed under ⊔ₖ, since true ⊔ₖ false = ⊤ (Theorem 9.2).
The consistent values are closed under gullibility ⊔ₖ below a common consistent upper bound
(Theorem 9.3).
The guard of a consistent value is consistent (§9).
Lisp conjunction is knowledge-monotone (§9).
Lisp disjunction is knowledge-monotone (§9).
Weak conjunction is knowledge-monotone (§9).
Weak disjunction is knowledge-monotone (§9).
The consistent values are closed under the four Kleene connectives (§9).
Bilinear bilattices (§10) #
A bilattice is bilinear when any two members are comparable in at least one of the two orders (Definition 10.1).
Equations
- Fitting1994.Bilinear B = ∀ (x y : B), x ≤ y ∨ y ≤ x ∨ Bilattice.kLE x y ∨ Bilattice.kLE y x
Instances For
A product is bilinear iff each factor is linearly ordered (Proposition 10.2).
θ_a reads a member of L ⊙ L into FOUR coordinatewise by a → x, which is true iff
a ≤ x (Definition 10.3).
Equations
- Fitting1994.theta a x = Bilattice.Product.mk (decide (a ≤ x.pro)) (decide (a ≤ x.con))
Instances For
θ_a preserves ∧ when L is linear (Lemma 10.4).
θ_a is a homomorphism for every connective, so it commutes with evaluation (Lemma 10.4).
Distinct members of L ⊙ L are separated by some θ_a (the proof of Theorem 10.5).
The embedding of FOUR into L ⊙ L sends the Boolean coordinates to the bounds.
Equations
- Fitting1994.ofFour z = Bilattice.Product.mk (if Bilattice.Product.pro z = true then ⊤ else ⊥) (if Bilattice.Product.con z = true then ⊤ else ⊥)
Instances For
θ_⊤ reads ofFour back.
An equivalence is valid in the bilinear product L ⊙ L iff it is valid in FOUR
(Theorem 10.5).