Many-valued logic

From Infogalactic: the planetary knowledge core
(Redirected from Multi-valued logic)
Jump to: navigation, search

Many-valued logic (also multi- or multiple-valued logic) is a propositional calculus in which there are more than two truth values. Traditionally, in Aristotle's logical calculus, there were only two possible values (i.e., "true" and "false") for any proposition. Classical two-valued logic may be extended to n-valued logic for n greater than 2. Those most popular in the literature are three-valued (e.g., Łukasiewicz's and Kleene's, which accept the values "true", "false", and "unknown"), four-valued, nine-valued, the finite-valued (finitely-many valued) with more than three values, and the infinite-valued (infinitely-many-valued), such as fuzzy logic and probability logic.

History

It is wrong that the first known classical logician who did not fully accept the law of excluded middle was Aristotle (who, ironically, is also generally considered to be the first classical logician and the "father of [two-valued] logic"[1]). In fact, Aristotle did not contest the universality of the law of excluded middle, but the universality of the bivalence principle: he admitted that this principle did not all apply to future events (De Interpretatione, ch. IX),[2] but he didn't create a system of multi-valued logic to explain this isolated remark. Until the coming of the 20th century, later logicians followed Aristotelian logic, which includes or assumes the law of the excluded middle.

The 20th century brought back the idea of multi-valued logic. The Polish logician and philosopher Jan Łukasiewicz began to create systems of many-valued logic in 1920, using a third value, "possible", to deal with Aristotle's paradox of the sea battle. Meanwhile, the American mathematician, Emil L. Post (1921), also introduced the formulation of additional truth degrees with n ≥ 2, where n are the truth values. Later, Jan Łukasiewicz and Alfred Tarski together formulated a logic on n truth values where n ≥ 2. In 1932, Hans Reichenbach formulated a logic of many truth values where n→∞. Kurt Gödel in 1932 showed that intuitionistic logic is not a finitely-many valued logic, and defined a system of Gödel logics intermediate between classical and intuitionistic logic; such logics are known as intermediate logics.

Examples

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Kleene (strong) K3 and Priest logic P3

Kleene's "(strong) logic of indeterminacy" K3 (sometimes K_3^S) and Priest's "logic of paradox" add a third "undefined" or "indeterminate" truth value I. The truth functions for negation (¬), conjunction (∧), disjunction (∨), implication (K), and biconditional (K) are given by:[3]

¬  
T F
I I
F T
T I F
T T I F
I I I F
F F F F
T I F
T T T T
I T I I
F T I F
K T I F
T T I F
I T I I
F T T T
K T I F
T T I F
I I I I
F F I T

The difference between the two logics lies in how tautologies are defined. In K3 only T is a designated truth value, while in P3 both T and I are (a logical formula is considered a tautology if it evaluates to a designated truth value). In Kleene's logic I can be interpreted as being "underdetermined", being neither true nor false, while in Priest's logic I can be interpreted as being "overdetermined", being both true and false. K3 does not have any tautologies, while P3 has the same tautologies as classical two-valued logic.[4]

Bochvar's internal three-valued logic

Another logic is Dmitry Bochvar's "internal" three-valued logic B_3^I, also called Kleene's weak three-valued logic. Except for negation and biconditional, its truth tables are all different from the above.[5]

+ T I F
T T I F
I I I I
F F I F
+ T I F
T T I T
I I I I
F T I F
+ T I F
T T I F
I I I I
F T I T

The intermediate truth value in Bochvar's "internal" logic can be described as "contagious" because it propagates in a formula regardless of the value of any other variable.[5]

Belnap logic (B4)

Belnap's logic B4 combines K3 and P3. The overdetermined truth value is here denoted as B and the underdetermined truth value as N.

f¬  
T F
B B
N N
F T
f T B N F
T T B N F
B B B F F
N N F N F
F F F F F
f T B N F
T T T T T
B T B T B
N T T N N
F T B N F

Gödel logics Gk and G

In 1932 Gödel defined[6] a family G_k of many-valued logics, with finitely many truth values Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): 0, \tfrac{1}{k - 1}, \tfrac{2}{k - 1}, \ldots, \tfrac{k - 2}{k - 1}, 1 , for example G_3 has the truth values Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): 0, \tfrac{1}{2}, 1

and G_4 has Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): 0, \tfrac{1}{3}, \tfrac{2}{3}, 1

. In a similar manner he defined a logic with infinitely many truth values, G_\infty, in which the truth values are all the real numbers in the interval [0, 1]. The designated truth value in these logics is 1.

The conjunction \wedge and the disjunction \vee are defined respectively as the minimum and maximum of the operands:

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \begin{align} u \wedge v &:= \min\{u, v\} \\ u \vee v &:= \max\{u, v\} \end{align}


Negation \neg_G and implication \xrightarrow[G]{} are defined as follows:

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \begin{align} \neg_G u &= \begin{cases} 1, & \text{if }u = 0 \\ 0, & \text{if }u > 0 \end{cases} \\[3pt] u \mathrel{\xrightarrow[G]{}} v &= \begin{cases} 1, & \text{if }u \leq v \\ v, & \text{if }u > v \end{cases} \end{align}


Gödel logics are completely axiomatisable, that is to say it is possible to define a logical calculus in which all tautologies are provable. The implication above is the unique Heyting implication defined by the fact that the suprema and minima operations form a complete lattice with an infinite distributive law, which defines a unique complete Heyting algebra structure on the lattice.

Łukasiewicz logics Lv and L

Implication \xrightarrow[L]{} and negation \underset{L}{\neg} were defined by Jan Łukasiewicz through the following functions:

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \begin{align} \underset{L}{\neg} u &:= 1 - u \\ u \mathrel{\xrightarrow[L]{}} v &:= \min\{1, 1 - u + v\} \end{align}


At first Łukasiewicz used these definitions in 1920 for his three-valued logic L_3, with truth values 0, \frac{1}{2}, 1. In 1922 he developed a logic with infinitely many values L_\infty, in which the truth values spanned the real numbers in the interval [0, 1]. In both cases the designated truth value was 1.[7]

By adopting truth values defined in the same way as for Gödel logics Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): 0, \tfrac{1}{v-1}, \tfrac{2}{v-1}, \ldots, \tfrac {v-2} {v-1}, 1 , it is possible to create a finitely-valued family of logics L_v, the abovementioned L_\infty and the logic L_{\aleph_0}, in which the truth values are given by the rational numbers in the interval [0,1]. The set of tautologies in L_\infty and L_{\aleph_0} is identical.

Product logic Π

In product logic we have truth values in the interval [0,1], a conjunction \odot and an implication \xrightarrow [\Pi]{}, defined as follows[8]

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \begin{align} u \odot v &:= uv \\ u \mathrel{\xrightarrow[\Pi]{}} v &:= \begin{cases} 1, & \text{if } u \leq v \\ \frac{v}{u}, & \text{if } u > v \end{cases} \end{align}


Additionally there is a negative designated value \overline{0} that denotes the concept of false. Through this value it is possible to define a negation \underset{\Pi}{\neg} and an additional conjunction \underset{\Pi}{\wedge} as follows:

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \begin{align} \underset{\Pi}{\neg} u &:= u \mathrel{\xrightarrow[\Pi]{}} \overline{0} \\ u \mathbin{\underset{\Pi}{\wedge}} v &:= u \odot \left(u \mathrel{\xrightarrow[\Pi]{}} v\right) \end{align}


and then Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): u \mathbin{\underset{\Pi}{\wedge}} v = \min\{u, v\} .

Post logics Pm

In 1921 Post defined a family of logics P_m with (as in L_v and G_k) the truth values 0, \tfrac 1 {m-1}, \tfrac 2 {m-1}, \ldots, \tfrac {m-2} {m-1}, 1. Negation \underset{P}{\neg} and conjunction Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \underset{P}{\wedge}

and disjunction \underset{P}{\vee}  are defined as follows:
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \begin{align} \underset{P}{\neg} u &:= \begin{cases} 1, & \text{if } u = 0 \\ u - \frac{1}{m - 1}, & \text{if } u \not= 0 \end{cases} \\[6pt] u \mathbin{\underset{P}{\wedge}} v &:= \min\{u,v\} \\[6pt] u \mathbin{\underset{P}{\vee}} v &:= \max\{u,v\} \end{align}


Rose logics

In 1951, Alan Rose defined another family of logics for systems whose truth-values form lattices.[9]

Relation to classical logic

Logics are usually systems intended to codify rules for preserving some semantic property of propositions across transformations. In classical logic, this property is "truth." In a valid argument, the truth of the derived proposition is guaranteed if the premises are jointly true, because the application of valid steps preserves the property. However, that property doesn't have to be that of "truth"; instead, it can be some other concept.

Multi-valued logics are intended to preserve the property of designationhood (or being designated). Since there are more than two truth values, rules of inference may be intended to preserve more than just whichever corresponds (in the relevant sense) to truth. For example, in a three-valued logic, sometimes the two greatest truth-values (when they are represented as e.g. positive integers) are designated and the rules of inference preserve these values. Precisely, a valid argument will be such that the value of the premises taken jointly will always be less than or equal to the conclusion.

For example, the preserved property could be justification, the foundational concept of intuitionistic logic. Thus, a proposition is not true or false; instead, it is justified or flawed. A key difference between justification and truth, in this case, is that the law of excluded middle doesn't hold: a proposition that is not flawed is not necessarily justified; instead, it's only not proven that it's flawed. The key difference is the determinacy of the preserved property: One may prove that P is justified, that P is flawed, or be unable to prove either. A valid argument preserves justification across transformations, so a proposition derived from justified propositions is still justified. However, there are proofs in classical logic that depend upon the law of excluded middle; since that law is not usable under this scheme, there are propositions that cannot be proven that way.

Suszko's thesis

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Functional completeness of many-valued logics

Functional completeness is a term used to describe a special property of finite logics and algebras. A logic's set of connectives is said to be functionally complete or adequate if and only if its set of connectives can be used to construct a formula corresponding to every possible truth function.[10] An adequate algebra is one in which every finite mapping of variables can be expressed by some composition of its operations.[11]

Classical logic: CL = ({0,1}, ¬, →, ∨, ∧, ↔) is functionally complete, whereas no Łukasiewicz logic or infinitely many-valued logics has this property.[11][12]

We can define a finitely many-valued logic as being Ln ({1, 2, ..., n} ƒ1, ..., ƒm) where n ≥ 2 is a given natural number. Post (1921) proves that assuming a logic is able to produce a function of any mth order model, there is some corresponding combination of connectives in an adequate logic Ln that can produce a model of order m+1.[13]

Applications

Known applications of many-valued logic can be roughly classified into two groups.[14] The first group uses many-valued logic to solve binary problems more efficiently. For example, a well-known approach to represent a multiple-output Boolean function is to treat its output part as a single many-valued variable and convert it to a single-output characteristic function (specifically, the indicator function). Other applications of many-valued logic include design of programmable logic arrays (PLAs) with input decoders, optimization of finite state machines, testing, and verification.

The second group targets the design of electronic circuits that employ more than two discrete levels of signals, such as many-valued memories, arithmetic circuits, and field programmable gate arrays (FPGAs). Many-valued circuits have a number of theoretical advantages over standard binary circuits. For example, the interconnect on and off chip can be reduced if signals in the circuit assume four or more levels rather than only two. In memory design, storing two instead of one bit of information per memory cell doubles the density of the memory in the same die size. Applications using arithmetic circuits often benefit from using alternatives to binary number systems. For example, residue and redundant number systems[15] can reduce or eliminate the ripple-through carries that are involved in normal binary addition or subtraction, resulting in high-speed arithmetic operations. These number systems have a natural implementation using many-valued circuits. However, the practicality of these potential advantages heavily depends on the availability of circuit realizations, which must be compatible or competitive with present-day standard technologies. In addition to aiding in the design of electronic circuits, many-valued logic is used extensively to test circuits for faults and defects. Basically all known automatic test pattern generation (ATG) algorithms used for digital circuit testing require a simulator that can resolve 5-valued logic (0, 1, x, D, D').[16] The additional values—x, D, and D'—represent (1) unknown/uninitialized, (2) a 0 instead of a 1, and (3) a 1 instead of a 0.

Research venues

An IEEE International Symposium on Multiple-Valued Logic (ISMVL) has been held annually since 1970. It mostly caters to applications in digital design and verification.[17] There is also a Journal of Multiple-Valued Logic and Soft Computing.[18]

See also

Mathematical logic
Philosophical logic
Digital logic

References

  1. Hurley, Patrick. A Concise Introduction to Logic, 9th edition. (2006).
  2. Jules Vuillemin, Necessity or Contingency, CSLI Lecture Notes, N°56, Stanford, 1996, pp. 133-167
  3. (Gottwald 2005, p. 19)
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 (Bergmann 2008, p. 80)
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Hajek, Petr: Fuzzy Logic. In: Edward N. Zalta: The Stanford Encyclopedia of Philosophy, Spring 2009. ([1])
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. 11.0 11.1 Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Dubrova, Elena (2002). Multiple-Valued Logic Synthesis and Optimization, in Hassoun S. and Sasao T., editors, Logic Synthesis and Verification, Kluwer Academic Publishers, pp. 89-114
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.

Further reading

General

  • Augusto, Luis M. (2017). Many-valued logics: A mathematical and computational introduction. London: College Publications. 340 pages. ISBN 978-1-84890-250-3. Webpage
  • Béziau J.-Y. (1997), What is many-valued logic ? Proceedings of the 27th International Symposium on Multiple-Valued Logic, IEEE Computer Society, Los Alamitos, pp. 117–121.
  • Malinowski, Gregorz, (2001), Many-Valued Logics, in Goble, Lou, ed., The Blackwell Guide to Philosophical Logic. Blackwell.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Cignoli, R. L. O., D'Ottaviano, I, M. L., Mundici, D., (2000). Algebraic Foundations of Many-valued Reasoning. Kluwer.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • S. Gottwald, A Treatise on Many-Valued Logics. Studies in Logic and Computation, vol. 9, Research Studies Press: Baldock, Hertfordshire, England, 2001.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Hájek P., (1998), Metamathematics of fuzzy logic. Kluwer. (Fuzzy logic understood as many-valued logic sui generis.)

Specific

  • Alexandre Zinoviev, Philosophical Problems of Many-Valued Logic, D. Reidel Publishing Company, 169p., 1963.
  • Prior A. 1957, Time and Modality. Oxford University Press, based on his 1956 John Locke lectures
  • Goguen J.A. 1968/69, The logic of inexact concepts, Synthese, 19, 325–373.
  • Chang C.C. and Keisler H. J. 1966. Continuous Model Theory, Princeton, Princeton University Press.
  • Gerla G. 2001, Fuzzy logic: Mathematical Tools for Approximate Reasoning, Kluwer Academic Publishers, Dordrecht.
  • Novák, V., Perfilieva, I., Močkoř, J., (1999), Mathematical Principles of Fuzzy Logic. Kluwer, Boston.
  • Pavelka J. 1979, On fuzzy logic I: Many-valued rules of inference, Zeitschr. f. math. Logik und Grundlagen d. Math., 25, 45–52.
  • Lua error in package.lua at line 80: module 'strict' not found. Covers proof theory of many-valued logics as well, in the tradition of Hájek.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

External links