In logic, a threevalued logic (also trinary logic, trivalent, ternary, or trilean,^{[1]} sometimes abbreviated 3VL) is any of several manyvalued logic systems in which there are three truth values indicating true, false and some indeterminate third value. This is contrasted with the more commonly known bivalent logics (such as classical sentential or Boolean logic) which provide only for true and false.
Emil Leon Post is credited with first introducing additional logical truth degrees in his 1921 theory of elementary propositions.^{[2]} The conceptual form and basic ideas of threevalued logic were initially published by Jan Łukasiewicz and Clarence Irving Lewis. These were then reformulated by Grigore Constantin Moisil in an axiomatic algebraic form, and also extended to nvalued logics in 1945.
Around 1910, Charles Sanders Peirce defined a manyvalued logic system. He never published it. In fact, he did not even number the three pages of notes where he defined his threevalued operators.^{[3]} Peirce soundly rejected the idea all propositions must be either true or false; boundarypropositions, he writes, are "at the limit between P and not P."^{[4]} However, as confident as he was that "Triadic Logic is universally true," he also jotted down that "All this is mighty close to nonsense." Only in 1966, when Max Fisch and Atwell Turquette began publishing what they rediscovered in his unpublished manuscripts, did Peirce's triadic ideas become widely known.^{[5]}
As with bivalent logic, truth values in ternary logic may be represented numerically using various representations of the ternary numeral system. A few of the more common examples are:
Inside a ternary computer, ternary values are represented by ternary signals.
This article mainly illustrates a system of ternary propositional logic using the truth values {false, unknown, true}, and extends conventional Boolean connectives to a trivalent context. Ternary predicate logics exist as well;^{[citation needed]} these may have readings of the quantifier different from classical (binary) predicate logic and may include alternative quantifiers as well.
Boolean logic allows 2^{2} = 4 unary operators, the addition of a third value in ternary logic leads to a total of 3^{3} = 27 distinct operators on a single input value. (This may be made clear by considering all possible truth tables for an arbitrary unary operator. Given 2 possible values of the boolean (input) variable there are four different patterns of output (result of the unary operator operating on the variable): TT,TF,FT,FF. Whereas, given three possible values of a ternary variable, and three possible results of a unary operation, there are twenty seven different output patterns:TTT,TTU,TTF, TUT,TUU,TUF, TFT,TFU,TFF, UTT,UTU,UTF, UUT,UUU,UUF, UFT,UFU,UFF, FTT,FTU,FTF, FUT,FUU,FUF, FFT,FFU, and FFF.) Similarly, where Boolean logic has 2^{2×2} = 16 distinct binary operators (operators with 2 inputs) possible, ternary logic has 3^{3×2} = 729 such operators. Where we can easily name a significant fraction of the Boolean operators (NOT, AND, NAND, OR, NOR, XOR, XNOR, equivalence, implication), it is unreasonable to attempt to name all but a small fraction of the possible ternary operators.^{[9]}
See also: Kleene algebra (with involution) 
Below is a set of truth tables showing the logic operations for Stephen Cole Kleene's "strong logic of indeterminacy" and Graham Priest's "logic of paradox".
(F, false; U, unknown; T, true)  



(−1, false; 0, unknown; +1, true)  



In these truth tables, the unknown state can be thought of as neither true nor false in Kleene logic, or thought of as both true and false in Priest logic. The difference lies in the definition of tautologies. Where Kleene logic's only designated truth value is T, Priest logic's designated truth values are both T and U. In Kleene logic, the knowledge of whether any particular unknown state secretly represents true or false at any moment in time is not available. However, certain logical operations can yield an unambiguous result, even if they involve an unknown operand. For example, because true OR true equals true, and true OR false also equals true, one can infer that true OR unknown equals true, as well. In this example, because either bivalent state could be underlying the unknown state, but either state also yields the same result, a definitive true results in all three cases.
If numeric values, e.g. balanced ternary values, are assigned to false, unknown and true such that false is less than unknown and unknown is less than true, then A AND B AND C... = MIN(A, B, C ...) and A OR B OR C ... = MAX(A, B, C...).
Material implication for Kleene logic can be defined as:
, and its truth table is


which differs from that for Łukasiewicz logic (described below).
Kleene logic has no tautologies (valid formulas) because whenever all of the atomic components of a wellformed formula are assigned the value Unknown, the formula itself must also have the value Unknown. (And the only designated truth value for Kleene logic is True.) However, the lack of valid formulas does not mean that it lacks valid arguments and/or inference rules. An argument is semantically valid in Kleene logic if, whenever (for any interpretation/model) all of its premises are True, the conclusion must also be True. (Note that the Logic of Paradox (LP) has the same truth tables as Kleene logic, but it has two designated truth values instead of one; these are: True and Both (the analogue of Unknown), so that LP does have tautologies but it has fewer valid inference rules).^{[10]}
Further information: Łukasiewicz logic 
The Łukasiewicz Ł3 has the same tables for AND, OR, and NOT as the Kleene logic given above, but differs in its definition of implication in that "unknown implies unknown" is true. This section follows the presentation from Malinowski's chapter of the Handbook of the History of Logic, vol 8.^{[11]}
Material implication for Łukasiewicz logic truth table is


In fact, using Łukasiewicz's implication and negation, the other usual connectives may be derived as:
It is also possible to derive a few other useful unary operators (first derived by Tarski in 1921):^{[citation needed]}
They have the following truth tables:



M is read as "it is not false that..." or in the (unsuccessful) Tarski–Łukasiewicz attempt to axiomatize modal logic using a threevalued logic, "it is possible that..." L is read "it is true that..." or "it is necessary that..." Finally I is read "it is unknown that..." or "it is contingent that..."
In Łukasiewicz's Ł3 the designated value is True, meaning that only a proposition having this value everywhere is considered a tautology. For example, A → A and A ↔ A are tautologies in Ł3 and also in classical logic. Not all tautologies of classical logic lift to Ł3 "as is". For example, the law of excluded middle, A ∨ ¬A, and the law of noncontradiction, ¬(A ∧ ¬A) are not tautologies in Ł3. However, using the operator I defined above, it is possible to state tautologies that are their analogues:
Further information: Intermediate logic 
Further information: Manyvalued logic § Gödel logics Gk and G∞ 
The logic of here and there (HT, also referred as Smetanov logic SmT or as Gödel G3 logic), introduced by Heyting in 1930^{[12]} as a model for studying intuitionistic logic, is a threevalued intermediate logic where the third truth value NF (not false) has the semantics of a proposition that can be intuitionistically proven to not be false, but does not have an intuitionistic proof of correctness.
(F, false; NF, not false; T, true)  


It may be defined either by appending one of the two equivalent axioms (¬q → p) → (((p → q) → p) → p) or equivalently p∨(¬q)∨(p → q) to the axioms of intuitionistic logic, or by explicit truth tables for its operations. In particular, conjunction and disjunction are the same as for Kleene's and Łukasiewicz's logic, while the negation is different.
HT logic is the unique coatom in the lattice of intermediate logics. In this sense it may be viewed as the "second strongest" intermediate logic after classical logic.
Main article: Manyvalued logic § Bochvar's internal threevalued logic (also known as Kleene's weak threevalued logic) 
Some 3VL modular algebras have been introduced more recently, motivated by circuit problems rather than philosophical issues:^{[13]}
The database structural query language SQL implements ternary logic as a means of handling comparisons with NULL field content. NULL was originally intended to be used as a sentinel value in SQL to represent missing data in a database, i.e. the assumption that an actual value exists, but that the value is not currently recorded in the database. SQL uses a common fragment of the Kleene K3 logic, restricted to AND, OR, and NOT tables.
In SQL, the intermediate value is intended to be interpreted as UNKNOWN. Explicit comparisons with NULL, including that of another NULL yields UNKNOWN. However this choice of semantics is abandoned for some set operations, e.g. UNION or INTERSECT, where NULLs are treated as equal with each other. Critics assert that this inconsistency deprives SQL of intuitive semantics in its treatment of NULLs.^{[14]} The SQL standard defines an optional feature called F571, which adds some unary operators, among which is IS UNKNOWN
corresponding to the Łukasiewicz I in this article. The addition of IS UNKNOWN
to the other operators of SQL's threevalued logic makes the SQL threevalued logic functionally complete,^{[15]} meaning its logical operators can express (in combination) any conceivable threevalued logical function.