# Three Valued Logic

Another thing that has been bothering me greatly about Zeroth Order Logic is that it makes a closed world assumption: what isn't stated is assumed to be false.

There is much that we don't explicitly state (often for brevity, but sometimes because we genuinely do not know), so finding a way to reason over propositions using an open world assumption is needed: what isn't stated should be assumed as maybe.

There are many variations of three value logics, but all of them assume that propositions can take three values:

• true,
• false and
• maybe.

# Connectives

Kleene's K3 and Priest's P3 logic have the same truth values for the unary connector:

p ~p
F T
T F
? ?

And binary connectors:

p q p or q p and q p => q p <=> q p xor q
F F F F T T F
F T T F T F T
F ? ? F T ? ?
T F T F F F T
T T T T T T F
T ? T ? ? ? ?
? F ? F ? ? ?
? T T ? T ? ?
? ? ? ? ? ? ?

Notably, only lines 1, 2, 4 and 5 are exactly the ones in zeroth order logic, since p and q don't assume values of maybe.

# Tautologies

A logical formula is considered a tautology if it evaluates to a designated truth value in every possible interpretation.

K3 and P3, however, differ in how tautologies are defined. In K3, only true is a designed truth value, whereas in P3, both true and maybe are. So, K3 does not have any tautologies, while P3 has the same tautologies as classical two-valued logic.

For example, p or ~p is a tautology in P3 but it is not in K3.

p ~p p or ~p
F T T
T F T
? ? ?

Because of that, P3 has the same tautologies as classical two-valued logic whereas K3 has none.

# Equivalences

Two propositions `p` and `q` are logically equivalent when `p <=> q` is a tautology (i.e. true regardless of the values of `p` and `q`). For example, take the double negation tautology: `~~p <=> p` is `true` or `maybe` regardless of the value of `p`:

p ~p ~~p ~~p <=> p
F T F T
T F T T
? ? ? ?

Do you think the other equivalences of two-valued logic are kept?

# Implications

Implications are tautologies where you establish a sufficiency `=>` but not a necessity `<=`.

For example, from the following premises:

• `p` and
• `p => q`

Can we conclude `q`? That is, does `(p and p => q) => q`?

If modus ponens was a tautology in P3, you'd be able to enumerate all possible interpretation of `p` and `q` and verify that it is true or maybe for any permutation.

p q p => q (p and p => q) (p and p => q) => q
F F T F T
F T T F T
F ? T F T
T F F F T
T T T T T
T ? ? ? ?
? F ? F T
? T T ? T
? ? ? ? ?

# Rules of Deduction

Recall that in the two-valued propositional logic the implication could also be written as "not (p and not q)" and "(not a) or b":

p q p => q not (p and not q) (not a) or b
F F T T T
F T T T T
T F F F F
T T T T T

But if we take that to the three-valued logic, we get:

p q p => q not (p and not q) (not p) or q
F F T T T
F T T T T
F ? T T T
T F F F F
T T T T T
T ? ? ? ?
? F ? ? ?
? T T T T
? ? ? ? ?

Which, by my calculation, seems to match up.

It is said, though, that modus ponens (and others) cannot be used as a rule of deduction in P3 (which seems embarrasingly limiting)*, which makes me wonder if we we defined implications imprecisely.

* same here

WDYT?

So, more to follow!