Talk:Ternary logic

From Wikipedia, the free encyclopedia

Socrates This article is within the scope of the WikiProject Philosophy, which collaborates on articles related to philosophy. To participate, you can edit this article or visit the project page for more details.
??? This article has not yet received a rating on the quality scale.
??? This article has not yet received an importance rating on the importance scale.

Contents

[edit] Does attention belong on talk or article page?

RJFJR 22:26, Feb 5, 2005 (UTC)

What is "attention"? --Loqi T. 05:38, 11 October 2006 (UTC)

[edit] Is this article defining 'a' logic or a 'class' of logics?

The intro currently says that ternary logic is a multi-valued logic. But the article is kind of reluctant to say exactly how to implement ternary logic (such as saying that the assignment of ternary values to truth values is or a permutation). Does that mean this is really a description of many different logics?

Am I splitting semantic hairs again? RJFJR 22:24, Feb 5, 2005 (UTC)

c:No, you're absolutely right, ternary logic is a collective name for a wide variety of logics. Qwertyus 13:19, 16 August 2005 (UTC)

There are a number of Ternary logics. The article provides a truth table for ONE of them (Admitedly a common one). The article's underlying assumption is that the third value is "unknown". There are different ternary logics with different truth tables that coorespond to other assumed meanings. Which is the "correct" truth table is still a matter of debate. (Particularly when adding modal operators to the ternary logic). Nahaj 15:35, 17 January 2006 (UTC)

Actually, the currently described truth table is that of Kleene's logic. It is obtained by a continuity (or strictness) principle (cf. J.P.Cleave: A Study of Logics, Oxford University Press 1991). Suggestion: replace the current truth table with an overview of different ternary logics, and create subpages for these. --Tillmo 15:38, 24 March 2006 (UTC)

You are confusing the semantics of the logic (what the values mean) with the relationships of the values in the logics. These are two separate issues.

[edit] 0 → 0

0 → 0 = 0, isn't it? MvR 14:47, 19 October 2005 (UTC)

It is in areas like this that people argue what the "right" truth table is. They are usually heated arguments because the answer is clear For some *specific* "meaning" of the values. And since the specific meaning being used by a speaker is the "obvious" one (to them) they assume that anyone else that doesn't agree is being dense.Bottom line: Yes, there are ternary logics that have 0 → 0 = 0. And there are ternary logics where that is not the case. Each captures a different sense of "unknown" or a different sense of "→".
Personal unsolicited opinion: Wikipedia has a bad tendency, statistically, to take ONE example of something, and write as if it were THE example of something. Nahaj 15:45, 17 January 2006 (UTC)

[edit] Why numbers?

I find the use of 0,1,2 rather confusing. Why not use *, T and F ? --Tillmo 15:42, 24 March 2006 (UTC)

I agree. Also, I think that the conjunctions would be easier to see if they were separated each into their own table. Smmurphy(Talk) 21:54, 2 June 2006 (UTC)
I don't think it needs to be split into separate truth tables, but the values certainly need to be clarified, since (even if we're sticking to one class of ternary logic) different sources will attribute different values to 0, 1, and 2.--Rinn 16:39, 15 July 2006 (UTC)

[edit] Truth Valuation Functions

I believe there should be a discussion of the different truth valuation functions. Definitely Strong vs. Weak Kleene logic should be addressed here. I know this is addressed slightly in George Boole's "Logical Options" to some extent, and the discussion must be carried on further elsewhere.

[edit] Article is problematic

This article is confusing the semantics with logic.

It should be a disambiguation page to different 3-valued logical systems.

[edit] Choice of symbols

I would think that something like -, 0 and + would psychologically be the most satisfying choice to represent the different truth values. Does anyone agree? -- Dissident (Talk) 03:13, 25 August 2006 (UTC)

I disagree on the grounds that 0 is usually associated with false, thus possibly causing confusion between your - and 0. I agree with someone above who suggested that F, *, and T are good choices. Or perhaps 0, 1/2, and 1. I do agree that the current 0, 1, 2 notation is very confusing. --216.254.66.59 23:47, 28 August 2006 (UTC)
  • Using the symbols { -, 0, + } is one of the common notations used in balanced ternary. I agree that { 2, 0, 1 } is confusing. And { 0, ½, 1 } is less confusing, but still represents the unknown value as the same kind of thing as a known value—do two unknowns add up to a true? I think { F, *, T } or { F, ?, T } would be a much better choice of symbols. A question mark intuitively means "unknown" while an asterisk visually scans well for finding patterns.
    __ The reason we use numerical bits in binary logic is because computer memory is customarily designed to address several bits together, for efficient integer arithmetic. It's just a convenience for human engineers to denote the concepts of false and true with the numeric symbols 0 and 1 and then use the same machine for anding and oring that we use for adding and dividing. It's less cumbersome to represent the boolean true as 1 than it is to write the integer ten as FFFFTFTF. But either way, bits are not little zeros and ones or Fs and Ts inside the machine, they're just conceptualized that way by us users.
    __ With the { 2, 0, 1 } symbol scheme, we're asked to re-denote 0 from false to unknown, and to re-designate false as the numeral 2, while true stays as 1. But there doesn't appear to be any corresponding integer arithmetic to go with the numerical symbol scheme. That is, a string of ternary digits (tits?) doesn't normally represent a number, so why bother using numerals to represent the concepts?
    I propose using the symbols { false, unknown, true } (spelled out and italicized) whenever horizontal space is not a consideration, and the symbols { F, ?, T } (not italicized) in truth tables and similar columnized presentation formats. --Loqi T. 06:02, 29 September 2006 (UTC)
Is there any fixed usage by major journals? in the most popular textbooks? Smmurphy(Talk) 02:10, 5 October 2006 (UTC)
  • I don't think there's a standard numerical notation accepted by everyone. { -1, 0, +1 } is preferred for digital hardware. { 0, ½, 1 } is popular with some, and I don't know who came up with { 2, 0, 1 } but I've seen it in more than one place. Using spelled-out words has the additional minor controversy of what word to use for the neither-true-nor-false value. I've seen unknown, maybe, possible, indeterminate, inconclusive, uncollapsed and fictive. I'd go with unknown or possible. --Loqi T. 01:51, 11 October 2006 (UTC)
This probably wouldn't be appropriate since I haven't seen it in use elsewhere, but in my own tinkering I have found { -, *, + } to be the most intuitive. It eliminates the confusion of 0 being misinterpreted as False, and * is also commonly used as a wildcard for "anything" or "unknown". Maghnus 09:05, 19 March 2007 (UTC)

[edit] Article reduced to stub length.

The {{references}} tag has been on the article since April 16, 2006, and it has only gotten worse since then. I have solved the problem by removing the vast majority of the article's content. See WP:RS#Requesting sources. Simões (talk/contribs) 01:48, 5 November 2006 (UTC)

I have replaced the bulk of what was removed. While it is true that the article is not of high quality, it is far more informative than while it was castrated. There is nothing here that is so controversial that it can't stay until the article evolves. It is difficult to provide sources because this is a somewhat obscure topic, and everyone seems to have their own interpretations. Rather than deleting everything, however, it should be sufficient to make note of this situation within the article. And if there is a particular statement that is questionable, then {{fact}} or deletion would apply there. Don't just delete essentially the entire article. WTF. 66.191.103.64 13:17, 25 December 2006 (UTC)
The article has been restubbified. A new version is forthcoming, and the version you restored, besides being unsourced (which warrants any editor to strip it down per WP:CITE, is also misleading in places. Simões (talk/contribs) 15:15, 25 December 2006 (UTC)
Yes, I have read those guidelines and there is nothing that would warrant removing virtually the entire article, even if a better version is forthcoming. "If it is doubtful but not harmful to the whole article, use the {{fact}} tag to ask for source verification, but remember to go back and remove the claim if no source is produced within a reasonable time."
If you have problems with some of the statements, tag those for citations. Otherwise, leave it alone.
Even with its (non-harmful) flaws, this is a fairly decent introduction to the concepts of ternary logic, and you are doing a disservice to anyone who would come across this article. No, most people don't go check the history page to see if someone overzealously wiped the entire article because a few statements didn't yet have references cited. 66.191.103.64 16:03, 25 December 2006 (UTC)
There were no sources, and, as I pointed out back in November, the {{references}} had been there since April. WP:CITE says, "Any material that is challenged and for which no source is provided may be removed by any editor." I challenge all of it. Any restoration of unsourced content will be reverted. I'm sorry if you dislike this application of WP:CITE, but I am of the view that reliability is more important than "informativeness." Simões (talk/contribs) 16:12, 25 December 2006 (UTC)

[edit] Proposed revamp

I’d like to see a section on motivations for three-valued logic (future contingents, quantum mechanics, intuitionism in mathematics, etc.), and then a section on different systems (Strong and Weak Kleene, Sobocinski, Reichenbach, etc.) There should be a brief discussion, at the end, of truth-functional completeness, including mention of Sheffer connectives. If no one objects, I’ll pull this together, incorporating as much previously posted material as I can, and heeding the above comments where possible. I'll cite books by Susan Haack and Nicholas Rescher as primary sources. Comments? --Knorlin 10:50, 25 November 2006

Sounds like a good plan. What about Łukasiewicz, though? An article on trivalent logic seems to be sorrowfully incomplete without mention of him and his work. Simões (talk/contribs) 19:51, 25 November 2006 (UTC)

Right. Actually, I think I would say, "Here's Łukas. system, and the Strong Kleene system is the same except for the following difference with the if-then connective..." --Knorlin 14:07, 25 November 2006

That's reasonable. I look forward to seeing how it turns out! Simões (talk/contribs) 23:12, 25 November 2006 (UTC)

[edit] Ternary_logic

IMHO, You have problem with ternary logic. Plz, change back the article. We maked Setun, we understand it. Ignat99 16:39, 28 November 2006 (UTC)

Aristotlean logic which provides for true and false and \sigma\upsilon\mu\beta\varepsilon\beta\eta\kappa o \zeta.

It is true! Ignat99 14:10, 30 November 2006 (UTC)

I mean the Soviet Union and my schools of thought (Moscow Institute of Electronic Technology) and my teacher ([Nikolai Brusentsov http://www.icfcst.kiev.ua/MUSEUM/Brusentsov.html]) and our (russian) philosophers.
>If you think otherwise, you'll have to cite the work and section number.
Брусенцов Н.П. "Блуждание в трех соснах (Приключения диалектики в информатике)" Москва, SvR - Аргус, 2000. – 16 с. и в сборнике: "Программные системы и инструменты",Труды ф-та ВМиК МГУ, №1, Москва: МАКС Пресс, 2000, с.13-23
Васильев Н.И. Воображаемая логика. Избранные труды. - М.: "Наука,, 1989.
Карпенко А.С. Многозначные логики // Логика и компьютер. Вып.4. - М.: "Наука", 1997.
Лукасевич Я. Аристотелевская силлогистика с точки зрения современной формальной логики. - М.: ИЛ, 1959.
Пиаже Ж. Логика и психология // Ж.Пиаже. Избранные психологические труды. - М.: "Просвещение", 1969.
Порецкий П.С. О способах решения логических равенств и об обратном способе математической логики. - Казань, 1884.
Слинин Я.А. Современная модальная логика. - Л.: Изд-во Ленингр. ун-та, 1976.
Стяжкин Н.И. Формирование математической логики. - М.: "Наука", 1967.
Советская научная школа до сих пор питает все научные идеи и разработки в мире. Ваша буржуазная философия чужда диалектики и направлена только на угнетение народа посредством выдуманной истории и философии и ваших законов. Вас обманывает Ваша наука.
Read Aristotle (Organon) and find there word \sigma\upsilon\mu\beta\varepsilon\beta\eta\kappa o \zeta(attendant, circumstantial) and think. :-)

Ignat99 07:22, 1 December 2006 (UTC)

Greek words do not end in zeta. Obviously sigma is meant...but if we are being asked to go to the original text, you really ought to get your Greek correct in the first place. Also, I just love all the original research going on! Yay Wikipedia! DnP, 19 Feb 2007 —The preceding unsigned comment was added by 24.208.78.163 (talk) 00:03, 20 February 2007 (UTC).

[edit] Trying to avoid an edit war

I wish Ignat99 would give a more specific citation. The Future Sea Battle example in De Interpretatione, ch. 9, is the usual reference on future contingents (see my above note). But near as I can tell (without ready access to the Greek texts and without being a specialist in this area), the word sumbebekos appears elsewhere in the Organon and doesn't directly relate to the topic at hand. I think sumbebekos relates to essential versus nonessential predication, but statements of this type are still either true or false (if I understand correctly). My source on this is http://plato.stanford.edu/entries/aristotle-logic/.

I don't sense that Simoes has a problem with three-valued logic. Just wants to see some references--which is reasonable. I'm still waiting for the libary to tell me that the Rescher book has come in, and then I'll try to get something up.

Meanwhile, let me propose that since Ignat99's interests lie in the direction of computer science applications of ternary logic, maybe we can have two articles? One can be Three-valued logic and the other can be Ternary logic (computer science). To me, tenary and binary seem like terms more current in computer science than philosophical logic, anyway.

Knorlin talk 05:51, 11 December 2006 (UTC).

I don't think Ignat99 will engage in edit warring. He's been civil and is putting talk pages to good use (despite leaving sometimes confusing messages).
As for your article-splitting proposal, it doesn't really seem necessary. I think "trivalent logic" has greater mean currency in computer science and philosophy than either "ternary logic" or "three-valued logic." So maybe the article should be renamed. But since the topics in computer science and philosophy are closely related ("trivalent logic" is not an ambiguous phrase, with one sense used in philosophy and another in CS), I think it might be best to just have sections in a single article with information on specific applications and topical emphases in the respective fields. Simões (talk/contribs) 06:54, 11 December 2006 (UTC)

Okay, one article with multiple sections. Sounds like a plan. I hope to get something up on different 3-valued systems and motivation soon. Knorlin 07:21, 11 December 2006 (UTC)

I just added two basic paragraphs, not realizing that others had major revisions in mind. Reading that the article was a stub, I just assumed it had been ignored. Now I see that this is not the case. I'll leave me edits in should they prove useful in Knorlin's rewrite. If not, trash 'em. :) 2*6 10:53, 24 December 2006 (UTC)

[edit] Draft workspace for new version.

Knorlin has offered to do a load of work offline on a new version of the article, but it's been a while since the article has been cut down. I'd like to see some progress, and there seems to be interest by a few people in collaborating on it.

I've created a page for this collaboration: Talk:Ternary_logic/Draft It's intended as a back-end workspace for the new version of the article, so please use it in place of the live page to develop the article until this sourcing controversy is ironed out.

In the meantime, I, for one, would rather have the long, unsourced version, rather than the short, uninformative version as the live article. --Loqi T. 20:22, 25 December 2006 (UTC)

[edit] Added slight clarification of SQL 3VL

Changed the word "triggers" to "initiates an action" to avoid possible confusion with actual SQL Triggers. Also added that while Unknown and False truth values cause DML statements to disregard rows, only a False truth value will cause a row to fail the validation of a SQL Check Constraint. Both True and Unknown indicate a valid row as far as a SQL Check Constraint is concerned. Info was added to the "Ternary logic in database applications" section. The Null article also provides a more in-depth discussion of SQL's implementation of three-valued logic, so I'm adding a link to that article as well.SqlPac 14:52, 17 April 2007 (UTC)

Oops, I was so wrapped up in "triggers" I initially put trigger in there - corrected to Check Constraints.SqlPac 15:09, 17 April 2007 (UTC)

[edit] Reworked the Ternary logic in database applications section

Are two example of SQL 3VL really necessary here? I think two examples is redundant redundancy, especially since we have several examples of SQL expressions demonstrating how SQL 3VL is handled on the Null page.SqlPac 15:20, 20 April 2007 (UTC)

I don't think the second example was necessary here. If you boil down the second explanation, it's just re-stating the explanation for the previous example again (times two since it has to describe both expressions on either side of the OR). I don't think three copies of the same explanation in the same section of the same page are necessary. I also think it's confusing. So I changed it. SqlPac 15:29, 20 April 2007 (UTC)

Without a logical operation like OR or AND, there's not actually any ternary logic going on. I tried to make the explanation as clear as possible, but for many readers it's inherently confusing material. I want to avoid readers falling into the trap of seeing a null field as a synonym for the unknown truth state—an error I've even seen some writers make in this article. And since this is an article about ternary logic, not SQL, readers must be introduced to the concept of null fields, in order for the example to make sense. Maybe there's a better way to represent an example of ternary logic in SQL, but I'm sure there's gotta be a boolean in it somewhere, otherwise it's not really demonstrating ternary logic. --Loqi T. 07:12, 13 May 2007 (UTC)

"Without a logical operation like OR or AND, there's not actually any ternary logic going on" appears, at first glance, to be a False statement. For ternary logic to be going on, one would think you need a predicate and three possible logical results. Like this:
 The predicate (10 = 10) produces TRUE
 The predicate (10 < 10) produces FALSE
 The predicate (10 > NULL) produces UNKNOWN
Based on your assertion, none of these examples falls under the heading of ternary logic since none have an OR or an AND, so no ternary logic is going on. The example in the article at first appears to be complex, and 3 times redundant. Here's a short introduction to SQL NULL: "SQL Null is a marker that represents a missing value." For a thorough explanation of SQL Null and SQL ternary logic (3VL), see the Good Article, Null (SQL). This article on ternary logic is not my article, so I won't be doing any more editing on it after I add your assertion to it, per Be Afraid!: "Without a logical operation like OR or AND, there's not actually any ternary logic going on." I think it's a wonderful quote that will better inform readers why the complex example is included, and why a simple SQL predicate like (10 = 10) does not fall under the scope of ternary logic (as there's no ternary logic going on). SqlPac 16:56, 13 May 2007 (UTC)
I just helped eliminate the confusion for those who might have mistakenly believed that "ternary logic" applied to simple predicates in SQL as well as compound predicates. I added your assertion that simple predicates do not fall under the scope of ternary logic in SQL (without a logical operation like OR or AND, there's not actually any ternary logic going on), and only compound predicates do. Thanks for the heads up on that fact... I really had no idea ternary logic only applied to compound predicates in SQL, and I'm sure others will be better informed by this fact. Another article might need to be created to discuss the SQL three-valued logic system and simple predicates, since simple predicates do not fall under the scope of ternary logic (or this article). BTW, can you provide a reference for this assertion? Thanks. SqlPac 20:57, 13 May 2007 (UTC)

How utterly charming, SqlPac. Did you really intend for your principal contribution toward solving this problem to be hostile comments on the talk page and vandalism of the article? WP:POINT How could you possibly think it responsible to add this passage to the text of the article? "The simple three-valued logic system employed by SQL does not constitute "ternary logic", however. Simple predicates like the example above do not fall under the scope of "ternary logic" in SQL. In fact, for "ternary logic" to be "going on" in SQL requires a compound predicate with an AND or OR keyword joining two or more simple predicate." The worst part of that contribution is not the horrible grammar or factual inaccuracies, it's that it remained on the live article for nearly two months! --Loqi T. 22:08, 5 July 2007 (UTC)

I was working under the assumption that you knew what you were talking about when you stated that ternary logic only encompasses compound predicates. I think this is a very important concept that needs to be put in the article, as many people might mistakenly believe that ternary logic can actually encompass simple predicates as well. Acusations of vandalism are fairly strong, WP:AGF. I have not made any hostile comments, I simply asked you to further explain your previous assertion and provide a source. I strongly believe that this information needs to be included in the article, and I ask you to please put it back in and source it. Perhaps the reason it was not changed for two months is that your assertion is 100% correct. If there are any factual inaccuracies, that would be an artifact of your previous posts to the talk page where you provided the information. I suppose we really need to decide whether or not your assertion is correct, and if so, source it. If your assertion is actually incorrect, then we'll need to come up with a whole new rationale for over-complicating the examples. Please advise. SqlPac 20:40, 27 July 2007 (UTC)

This really is quite amusing, SqlPac. First, you apply rigorous analysis to a sentence in a casual talk-page comment, thus demonstrating the casual comment is not literally true in all cases. You then re-state that casual comment into its most extreme interpretation and put quotation marks around it, implying attribution to it's original author. You then vandalize (yes, vandalize) the live article, by stating that extreme interpretation as fact, apparently on the strength of your own original research interpretation of a casual comment you found on a Wikipedia talk page. And on top of that, you ask for the casual talk page comment to be footnoted after you used it as a source in the live article. For the record, I hereby acknowledge that ternary logic is, in fact, going on in the expressions "10 = 10", "10 < 10" and "10 > NULL". --Loqi T. (talk) 16:38, 23 November 2007 (UTC)

Your concerns about simple predicates falling under the rubric of ternary logic seem to be covered by this sentence in the introductory paragraph: "For example, the SQL expression "City = 'Paris'" resolves to FALSE for a record with "Chicago" in the City field, but it resolves to UNKNOWN for a record with a NULL City field." This sentence pretty-much sums up your table above, though it admittedly omits the P=P case, "i.e. ...resolves to TRUE for a record with "Paris" in the city field..." ). I'm guessing this sentence is what you're referring to when you talk about a first example, above. When you talk about a second example, I'm pretty sure you're referring to the paragraph that introduces the OR operator. This paragraph builds on the introductory sentence that covers the simplest of cases, giving a concrete example of how UNKNOWN truth states propagate. I'm certain this paragraph could be re-worked to provide more clarity or brevity (preferably both), but deleting it doesn't help explain anything to anyone. --Loqi T. (talk) 16:38, 23 November 2007 (UTC)

[edit] Ternary logic as a natural phenomenon

There is a very important fact: all third values are analogous. The word "unknown" does not convey in terms of known truth, while true and false do. That is okay, but the reader can known what that means in terms of truth and falsehood. Given true and false, one has as the third value "neither true nor false as both true and false". Some examples that prove the naturalness of ternary logic are: negative, positive, neutral; heavy, light-weight, weightless; light, darkness, visual detail; transparent, opague, reflective; do, don't do, multi-task; yes, no, I don't know. A third option is present for every pair of opposites that exist. With that being so, all (dualistic and monistic) phenomenon can be digitally mapped. mcampbell422

[edit] Trivalent logic applied to AI for skeptics

If true, then accept; If false, then reject; If unknown, be skeptical. mcampbell422

[edit] Changed False Statement

This statement was included in the section on SQL 3VL:

Comparing anything to NULL—even another NULL—results in an UNKNOWN truth state (which happens to also be represented by a NULL value).

(Emphasis added by me).

If "NULL=UNKNOWN", then a choice needs to be made to change the 3VL truth table (or not) to reconcile the fact that SQL NULLs propagate through expressions (a basic property of NULL):

Standard SQL 3VL truth table:

( TRUE OR UNKNOWN ) → TRUE
( FALSE AND UNKNOWN ) → FALSE

"NULL=UNKNOWN" SQL 3VL truth table:

( TRUE OR NULL ) → NULL ( = UNKNOWN )
( FALSE AND NULL ) → NULL ( = UNKNOWN )

If NULL = UNKNOWN then the result of ( TRUE OR NULL ) is not TRUE as stated in this article, but rather it is UNKNOWN. In SQL, an easier way to think of it is that NULL is a "placeholder" that represents a missing value. UNKNOWN represents the result of any comparison to a missing value.

(NULL is also not a "value", it's the absence of a value, but we'll save that discussion for another day).

Good call on removing that parenthetical. Not only was it inaccurate, but also irrelevant and confusing. ==Loqi T. (talk) 20:57, 27 February 2008 (UTC)

[edit] Removed reference to Aymara language from "See also"

The article referenced provides no relevant information, other than the one sentence statement that it uses three valued logic. (I.E. going to the page doesn't gain you any information.) And that statment there has the complaint that there is no citation. And I can't find any article on the language that makes the claim. So, since seeing that also provides no information, I removed it. 155.101.224.65 (talk) 16:10, 7 April 2008 (UTC)