+++ title = "Łukasiewicz logic" author = "Yann Herklotz" tags = [] categories = [] backlinks = ["4e2a"] forwardlinks = ["4e2a"] zettelid = "4e2b" +++ This logic has a different definition of implication. This has many benefits, especially when one wants to differentiate between undefined values and truth/false values. The main benefit is that one can actually have tautologies in this logic, even with undefined values, whereas in the Kleene logic ([\#4e2a]) there can be no tautologies, because assigning all variable to `U` will end up with `U` every time. | A-\>B | F | U | T | |-------|-----|-----|-----| | F | T | T | T | | U | U | T | T | | T | F | U | T | This logic has the same exact definition of AND and OR than Kleene logic ([\#4e2a]), and these connectives can be expressed in terms of Ł3 implication. ```{=latex} \begin{align} A \lor B &= (A \rightarrow B) \rightarrow B \\ A \land B &= \neg (\neg A \lor \neg B) \\ A \Leftrightarrow B &= (A \rightarrow B) \land (B \rightarrow A) \end{align} ``` We can then define additional unary operators using the following: ```{=latex} \begin{align} \mathcal{M} A &= \neg A \rightarrow A \\ \mathcal{L} A &= \neg \mathcal{M} \neg A \\ \mathcal{I} A &= \mathcal{M} A \land \neg \mathcal{L} A \end{align} ``` Especially the last, $\mathcal{I} A$, has interesting properties, because it will be 1 iff A is 0, and will be -1 otherwise. [\#4e2a]: /zettel/4e2a