Talk:Boolean logic/Archive 4

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Early archiving

Because of the way this article was recreated, most of the talk page was moved to Talk:Boolean algebra (logic). StuRat 21:46, 24 September 2007 (UTC)

It is now archived here: Talk:Boolean algebra (logic)/Archive 1. StuRat (talk) 23:54, 25 January 2008 (UTC)

History

Originally there was a single article named "Boolean algebra". That article was written for PhDs and completely incomprehensible to a general audience. Any attempt to make that article comprehensible resulted in undos by a group of PhDs "protecting their turf". Even one of the original founders of Wikipedia commented on how utterly incomprehensible it was (see [1]), way back in 2002. To solve this problem, we split the article into "Boolean algebra", which remained aimed at PhDs, and "Boolean logic", written for the rest of us. Unfortunately, "Boolean logic" was later renamed to Boolean algebra (logic), with all the material written for a general audience stripped out and replaced with more material written for a PhD audience.

I have now restored the "Boolean logic" article, as it was before the changes were made. We now have two PhD level articles, Boolean algebra (structure) and Boolean algebra (logic). Perhaps they should be merged, but I won't involve myself in that discussion. I will, however, insist that an article remain which is aimed at a general audience (including the computer science and electronics applications). StuRat 22:04, 24 September 2007 (UTC)

Who made the venn diagram

How was the venn diagram made? That looks pretty decent. —Preceding unsigned comment added by 24.146.4.193 (talk) 12:21, 19 November 2007 (UTC)

There are two Venn diagrams, one with two overlapping circles and one with three overlapping squares. If you pick on them you will go to a page with the history for each, including who made them and possibly what software they used. If only the author's name is given, you can post a question on that user's talk page asking for more info on how they made it. StuRat (talk) 22:03, 25 January 2008 (UTC)
If you're interested in ways of making Venn diagrams in general, in the case of the four Venn diagrams in Figure 4 of Boolean algebra (logic) I coded them by hand in raw postscript. (I'd have posted the postscript on Wikimedia except that Wikimedia has, for reasons I do not understand at all, opted for png in place of postscript. ((Added later: Oops, I meant SVG, not PNG, there and below, sorry!)) There never was much support for png in the first place, and what little there was is quickly disappearing, whereas postscript has been strongly supported worldwide for quarter of a century, offers way more capabilities than png (which might be Wikipedia's objection, but then why not use one of the free interpreters such as Ghostscript?), and is at least as easy to write raw code in as png for some people. For those for whom it isn't there are various sufficiently expressive alternatives such as xfig (free) or Adobe Illustrator (far from free!) that can generate postscript output. There being no easy way to translate postscript into png I had to settle for a gif at high resolution, which while adequate for most practical purposes including expanding on Wikipedia does not have the infinite resolution of png or postscript. But then if the end result is a gif postscript is not as ideal as say the Draw package in Star Office, free for students and teachers.) --Vaughan Pratt (talk) 00:15, 27 January 2008 (UTC)
If you're coding by hand, it's almost as easy to generate SVG, a vector format that wikimedia does support. My gallery has many examples of SVG used for mathematical illustration. For the reasons you describe, it is much more appropriate for this purpose than PNG or GIF. It should also not be difficult to find software to convert your postscripts into SVG. —David Eppstein (talk) 00:30, 27 January 2008 (UTC)
Sorry, I meant SVG, not PNG. (PNG is a bitmap format and is not infinite resolution, unlike SVG and postscript.) I struggled for a long time trying to find software to generate SVG, without success. I also tried coding by hand in SVG, but found it way more tedious than postscript---perhaps you have some tricks that speed it up? Even for something as simple as a Venn diagram I couldn't see what to do. One wants to be able to take union, intersection, and complement of regions---how does one do that in SVG? All your examples that come close to that effect seem to achieve it using transparency. What's a short example illustrating union and intersection of shaded regions? This was easy to do in Postscript---the Postscript reference manual is crystal clear about Postscript semantics, where can one find an SVG manual that comes remotely close to it in clarity? --Vaughan Pratt (talk) 07:10, 27 January 2008 (UTC)
Re tricks for SVG: mostly I use Adobe Illustrator, which knows how to generate SVG natively. Image:Point quadtree.svg was generated programmatically, though, and its page shows the source code, which I don't think is especially complicated. I haven't tried doing unions and intersections within SVG, rather than just handling them in Illustrator, though. —David Eppstein (talk) 07:27, 27 January 2008 (UTC)

Requested move

Survey

Feel free to state your position on the renaming proposal by beginning a new line in this section with *'''Support''' or *'''Oppose''', then sign your comment with ~~~~. Since polling is not a substitute for discussion, please explain your reasons, taking into account Wikipedia's naming conventions.
  • Comment regarding "Introduction to boolean logic"...I disagree. This is a perfectly valid level for an encyclopedia. If we must have a Ph.D. class article on Boolean logic, it should be "Advanced Boolean logic for mathematicians" something to indicate as much. Most readers would want to read the present article. Ph.D.'s won't be coming to Wikipedia for a journal level survey of boolean algebra. Ra2007 (talk) 16:06, 18 December 2007 (UTC)
  • disagree As far as I'm aware there is no precedent for articles called "advanced", whereas there's significant precedent for "trampoline articles" called "introduction to...". The article Boolean algebra (logic) is the one that's actually about Boolean logic; that's where Boolean logic ought to redirect. The article is perhaps not as clear as it should be but that's a cleanup issue. --Trovatore (talk) 19:30, 18 December 2007 (UTC)
  • Comment Complicated articles, more suitable to wikiversity or scholarpedia, should not, in my opinion, be the main article on wikipedia, a general purpose encyclopedia. Journal level survey papers are above, in my opinion, were we should be going here on wikipedia. Ra2007 (talk) 19:31, 19 December 2007 (UTC)
  • Response Look, I agree the Boolean algebra (logic) article needs work from the standpoint of readability. Vaughan Pratt writes good stuff but in an idiosyncratic style (and he was relatively new to WP at the time). Still, Boolean logic is the logic of equalities between Boolean expressions, and that's what the general article should be about, not Venn diagrams or English language or what have you. That's not going to turn it into a survey article. The other article should be fine at introduction to Boolean algebra. --Trovatore (talk) 19:59, 19 December 2007 (UTC)
  • Comment Okay. If a readable and accessable article is the goal, I would support it as the main article (as long as it covers the subject in an accessable and reasonable way). Ra2007 (talk) 20:32, 19 December 2007 (UTC)
  • Support There is no other kind of boolean logic. 199.125.109.126 (talk) 01:29, 17 December 2007 (UTC)
  • Support, the present title is silly, but actually the article should be properly merged with Boolean algebra (logic), which starts off with "Boolean algebra (or Boolean logic) is a logical calculus of truth values, developed by George Boole". That article handles exactly the same subject matter in a different way.  --Lambiam 09:42, 17 December 2007 (UTC)
  • So while the two articles exist, it seems necessary to disambiguate between the two. Based on the history of this article, in particular the "PhD-only audience" comment, a merge may be difficult to execute. –Pomte 09:46, 17 December 2007 (UTC)
"Boolean logic for dummies"? :)  --Lambiam 12:39, 17 December 2007 (UTC)
  • cautious support done well this could be a good solution, with a high quality general purpose article linking to more advanced material elsewhere. I actually think Boolean algebra (structure) does a better job than Boolean algebra (logic) which is very wordy, and seems to have lost focus with sections on computer graphics displays. --Salix alba (talk) 23:36, 17 December 2007 (UTC)
Pardon me but how does by far the best example in computer hardware of the use of free Boolean algebras constitute "losing focus"? Usually the criticisms are the other way: too few examples! --Vaughan Pratt (talk) 18:17, 28 January 2008 (UTC)
  • Support. Also, "Boolean logic" should be added to the disambiguation page Boolean algebra, which will then link to no less than 4 articles on the subject. We will need internal links between these articles so that everybody editing one of them is aware of the parallelism. And then we need to think about a strategy to reduce the number of articles. (3 might be reasonable: elementary aspects, computer science aspects, and pure mathematics aspects. Perhaps one could get it down to 2 by merging the first two aspects as well. I am not sure putting everything together into one article is such a good idea though.) --Hans Adler (talk) 23:57, 17 December 2007 (UTC) Weak support. I prefer Trovatore's suggestion to rename the article to Introduction to Boolean algebra to make it absolutely clear that this is the introductory article. But I still think we can discuss this in a second step. (If renaming the article twice is a bad idea for technical reasons I will change my opinion to reject.) --Hans Adler (talk) 09:31, 18 December 2007 (UTC)
  • Rewrite and rename as "trampoline" article. The background is that once upon a time there was only one "Boolean algebra" article, and it was primarily about the algebraic structure. User:StuRat tried to make it more accessible, but had fundamentally misunderstood what it was about. The outcome was that the article was split into two articles, eventually named Boolean algebra (structure) and Boolean algebra (logic); the second started out as a mishmash of various topics associated with the term "Boolean algebra", but was rewritten by User:Vaughan Pratt to be about the equational logic of Boolean algebras (probably what the article at that title should be about). But that meant that once again there was no introductory article, so StuRat stepped back into the breach and supplied the "computer science" article, which is not really about computer science.
Bottom line: There probably does need to be an introductory article. My suggested name would be introduction to Boolean algebra or some such. It needs a thorough revision, though, as the current article is not very well organized and it's not clear what the unifying idea is. --Trovatore (talk) 02:52, 18 December 2007 (UTC)
  • Support, per RA2007 with regard to terminology. Tparameter (talk) 03:07, 18 December 2007 (UTC) Strike per good point by Trovatore below. Not sure now. Tparameter (talk) 14:06, 19 December 2007 (UTC)
    • Question What is RA2007? --Trovatore (talk) 03:12, 18 December 2007 (UTC)
      Belated answer: A sock puppet of a creationist. --Hans Adler (talk) 00:28, 26 January 2008 (UTC)
      • Comment oh, I see above it's a username. Look, I agree the current title is not so good. But I don't think everyone sees the whole picture here. This article is not about content not contained elsewhere; supposedly it's supposed to treat the same content but at a more accessible level. I'm not sure it accomplishes that but that's the idea. So "Boolean logic" is not a good name for it -- rather, "Boolean logic" should point to Boolean algebra (logic). This article should move to a title that emphasizes that it's at an introductory level. --Trovatore (talk) 03:18, 18 December 2007 (UTC)
        • Comment: No, we need to discuss content in order to decide whether this article needs to exist at all, or whether it would be better merged, and if several articles are to exist which content goes in which. Some content may be common, but much is not, see my earlier comment below for an example. It would be good to decide what the article is about before trying to decide what it is to be called! So still no vote from me. Andrewa (talk) 03:25, 18 December 2007 (UTC)
          • Response actually we need to decide, not so much what it is about, as what it should be about. See my remarks in talk:Boolean algebra (structure) about "getting the header files right first".
          • Please, everyone!!! There is a huge history to this discussion. Don't just jump in and opine without understanding why some of the obvious-seeming solutions don't work!!! --Trovatore (talk) 03:28, 18 December 2007 (UTC)
          • Link here is the most relevant discussion. --Trovatore (talk) 03:46, 18 December 2007 (UTC)
  • Oppose move. There is a lot going on here, and this move proposal will just make things worse. See discussion below (and above where it doesn't really belong). Andrewa (talk) 20:24, 19 December 2007 (UTC)

Discussion

Any additional comments:

I think a merge is a very bad idea... content such as the sample code in the Database applications section should be in an article on computing, not in one on logic. I've added a pointer to this article to the see also section of the disambig at Boolean. We need many more such pointers between articles on this subject IMO if excessive duplication of content is to be avoided. Perhaps hatnotes to the disambig at each affected article would be a start.

And IMO the current duplication could and should be reduced a little... but not much. There are several good and compatible explanations in the various articles, and that's good, as each can be (and is! Hooray!) tailored to the particular audience of that particular article. Let's not lose good content unnecessarily. Andrewa (talk) 17:25, 17 December 2007 (UTC)

Above: ...not so much what it is about, as what it should be about... Yes, that's actually what I meant... what the topics are, and which topics should have their own articles.

Above: Please, everyone!!! There is a huge history to this discussion. Don't just jump in and opine without understanding why some of the obvious-seeming solutions don't work!!! Hmmm, there's certainly no point in reinventing the wheel, but if we're all required to read all these archives before we're allowed to comment discussion will probably cease, or at least new people with new ideas are unlikely to join in. There's a balance required. Andrewa (talk) 11:04, 19 December 2007 (UTC)

Yes, certainly. I didn't mean everyone needs to wade through that mountain of text. I'm just concerned that some people might be responding to the isolated issue of whether Boolean logic would be a better name for this article than Boolean logic in computer science, which taken in isolation it certainly would, without knowing anything about the other articles and the relationships among them. --Trovatore (talk) 18:42, 19 December 2007 (UTC)
So, is there a summary somewhere of the previous conclusions? Your link above led me to a broken link which you had indirectly caused by blanking a talk page redirect which was then (incorrectly IMO) speedily deleted. I have restored the redirect so at least the archive page link now points somewhere useful. Andrewa (talk) 20:21, 19 December 2007 (UTC)
No, there's no unique summary anywhere. Stuff's sort of all over the place. My two take-away messages would be (i) there are two quite distinct meanings of the term "Boolean algebra" that should not be conflated, and (ii) that's a separate question from the one about level of difficulty.
Yep, the talk pages are all over the place, and that's one reason the articles are too. Andrewa (talk) 00:43, 20 December 2007 (UTC)
Separate point: I don't know that it makes sense for the talk page for Boolean algebra to redirect to talk:Boolean algebra (structure). Where should people discuss changes to the disambig page Boolean algebra, then? --Trovatore (talk) 20:33, 19 December 2007 (UTC)
I see you've changed it... but do you really think we need yet another talk page? Surely it was better to centralise some of this discussion? Especially since we may well consolidate the two disambigs? Andrewa (talk) 00:43, 20 December 2007 (UTC)
Well, if Boolean and Boolean algebra were to merge, we could figure out what to do with their talk pages at that time. I'm not very enthusiastic about talk pages that redirect when the main page doesn't -- then someone who wants to make an editorial comment about the main page will be redirected to a page where his comments may not seem relevant. --Trovatore (talk) 01:33, 20 December 2007 (UTC)

Disambiguations

I think part of the problem is that we have two disambigs at Boolean and at Boolean algebra. Was there any justification for this in previous discussion, or has it just sort of happened?

And they didn't even link each to the other! Well, that's easily fixed I hope. Andrewa (talk) 20:21, 19 December 2007 (UTC)

"Boolean" is an adjective, and adjectives don't make good article titles -- article titles should usually be nouns. Its natural role is as a disambiguation page. It's a substantially more general term than "Boolean algebra", as you'll note by looking at some of the links included there. --Trovatore (talk) 20:26, 19 December 2007 (UTC)
On second thought, I suppose it might be a cleaner solution to make Boolean a redirect to Boolean algebra, and then use the "see also" section of the latter for articles with "Boolean" in the name that aren't meanings of the term "Boolean algebra". I don't think that solution occurred to me at the time. --Trovatore (talk) 21:49, 19 December 2007 (UTC)
Agree that the two disambigs should be consolidated to one. Agree that Boolean should redirect, to this page, but I'm not yet sure what the disambiguation page should be called.
Perhaps it's Boolean algebra, but I'd like to see some justification and also other views. Links to helpful bits of the previous discussion are a worthwhile exercise, especially where they indicate a consensus that was reached rather than just an individual view. If no such consensus was reached, then the archived discussion is frankly of little value.
The long-term goal is to arrive at a list of articles that cover the subject(s) well, with an appropriate level of duplication so that readers with differing levels of understanding and from different disciplines can all find the information they want. Andrewa (talk) 00:55, 20 December 2007 (UTC)
Well, "Boolean algebra" definitely needs to be a disambiguation page, or at the very least redirect to one. That's because the type of algebraic structure, and the equational theory, are two clearly distinct things, of comparable link-or-search importance, the most common name for both of which is "Boolean algebra". That point at least I think I got at least a reasonable consensus for (finally someone got tired of the endless discussion and went ahead and made the move; see talk:Boolean algebra (structure)#Execution time) [oh, actually it looks like I was the one who did that -- still, I think people understood why]. I do hope you're not proposing to reopen that discussion; it really gets old.
What is your alternative, that "Boolean algebra" might redirect to "Boolean", which would be a dab page? That wouldn't be the worst of all possible worlds, I suppose, but it strikes me as kind of inelegant -- adjectives are sort of secondary search terms, and the "Boolean" disambig page is sort of an afterthought. --Trovatore (talk) 01:24, 20 December 2007 (UTC)
There are many alternatives. I'm inclined to think that you're right, it's good for Boolean algebra to be a disambig. My reasoning is that there are two different meanings in related disciplines: One for abstract algebra, and one for the rest of the world.
So the next question is, can we usefully merge Boolean to it? It's a bit of a stretch, but I think we can manage it.
I just had a look at Boolean operator, thinking this might be a good title for an introductory and interdisciplinary article. Currently it redirects to logical connective, which is quite rightly an article on Boolean operators from a logician's perspective. Hmmmm. Andrewa (talk) 05:53, 20 December 2007 (UTC)
I see a rough consensus for this move, and I've done it. Maxim(talk) 14:01, 2 January 2008 (UTC)

Move/merge -- still unsatisfactory

User:Maxim went ahead and did the previous requested move, which I suppose is OK in isolation, as the name "Boolean logic in computer science" didn't make much sense.

But matters are still not satisfactory, I'm afraid. The most common name is clearly "Boolean algebra", not "Boolean logic". Unfortunately the most common name for the structure is also "Boolean algebra", which is what has always been the cause of the problems here. If Boolean algebras, the structures, were standardly called "Boolean lattices" or "Boolean rings" then we'd be fine, but those are secondary names, so we're stuck.

To recap my views: We clearly need separate articles for the structure (Boolean algebra (structure)) and the equational logic (Boolean algebra (logic)), which are entirely different things. We also need for there to be at least one article that at least starts off at an accessible level, which is what this article is supposed to be for according to User:StuRat.

So the question is how to partition the accessibility requirement with the structure-vs-logic distinction. I see two options:

As could be expected, I'm in favour of option 2. Contentwise, I see no problem with Boolean algebra (logic) mainly consisting of elementary material presented at an accessible level, and the few less elementary bits can also be presented in an accessible way; this is all not very deep stuff. Note also the existence of the articles Propositional formula, Boolean function and Finitary boolean function, which have considerable overlap.  --Lambiam 18:16, 5 January 2008 (UTC)
I think it is probably the better option. But who's going to do it? It looks like a lot of work. --Trovatore (talk) 22:05, 5 January 2008 (UTC)
I prefer the first option. My reasoning is listed in the section following this one. StuRat (talk) 19:22, 24 January 2008 (UTC)

Sorry I haven't been following this discussion about User:StuRat's revival of his old article (of which this is the talk page), I've been tied up with other stuff. When I wrote what is currently Boolean algebra (logic) I intended it as an elementary introduction to the logical aspects of Boolean algebra, which I felt StuRat's article wasn't accomplishing for a number of reasons including the following. Section 1 does not even mention Boolean logic, let alone attempt to define it, instead defining a number of set theoretic concepts such as element, universe, empty set, etc. The closest the section gets to Boolean logic is in "A binary operator applies to two sets. The basic binary operators are logical OR and logical AND. They perform the union and intersection of sets. There are also other derived binary operators, such as XOR (exclusive OR)." This is simply incoherent: logical OR and logical AND are not set operators, they are logical operators. If this section is supposed to be about sets then it should read "The basic binary operators are union and intersection". If it is supposed to be about Boolean logic then it is a very poor explanation of the concept. Section 2 gives an example starting "Let's imagine..." and then spends most of the section on syntactic issues that have little to do with Boolean algebra, being just as relevant to the syntax of ordinary arithmetic. Section 3 begins "Let's define symbols" implying that they are concocted for the occasion when in fact they're the standard symbols. This "Let's..." style of explanation is inappropriately patronizing for a technical article.

Given that I tried to make Boolean algebra (logic) elementary, I'd like to understand why User:StuRat thinks it isn't. If he's talking about sections 3.2 (derivations) and 3.3 (soundness and completeness), I would agree that those are relatively advanced topics, and I would be sympathetic to a proposal to move that material to a separate article on that topic, titled something like Boolean algebra (axiom systems) since that's what they're about.

I'm less clear as to how the material in Boolean algebra (logic) prior to Section 3.2 on derivations is "Ph.D. level". I'd like to understand which sections have that problem and why. For example the lead begins "Boolean algebra (or Boolean logic) is a logical calculus of truth values, developed by George Boole." Is this a Ph.D. level sentence that undergraduates will be incapable of understanding? What about the next sentence, "It resembles the algebra of real numbers as taught in high school, but with the numeric operations of multiplication xy, addition x + y, and negation −x replaced by the logical operations of conjunction x∧y, disjunction x∨y, and complement ¬x." And so on. Which sentences are the ones you're claiming can't be understood by less than a Ph.D. student?

If it is just a matter of too much material I don't mind fixing this by simply removing excess material---those in favor of shortening the article should propose candidate sentences or paragraphs for deletion.

If the order of the material seems inappropriate or hard to follow that too can be addressed. For example my approach of giving each section (on respectively Values, Operations, and Laws) its own applications subsection might be improved by instead moving those three subsections to the end of the article to form a fourth section devoted to applications.

If more figures and diagrams would be helpful, please suggest them. If Figures 1 to 4 would be better broken into 16 figures and spread around more instead of being collected in one place that can be done. Or if no one finds them at all helpful they can easily be removed altogether. Or replaced by the figures at Boolean logic if people think those are better (they're certainly more colorful!).

If the whole point of view on the subject matter strikes you as wrong, misguided, etc. then we should have that discussion.

If the article has some other problem I'd love to understand that too. --Vaughan Pratt (talk) 21:22, 23 January 2008 (UTC)

Ok, here are some of the ways your version is too complex for a general audience (I will add to the list as I find more):
1) As you've noted, the sections on derivation and completeness are way too complex for a general article.
2) You shouldn't use any terms that the average person will need to look up or possibly misunderstand. If you must use them, you should define them first, again using terms in the definition that the average person will understand. Some try to get by this requirement by linking to another article which defines the term, but the problem there is that those articles, in turn, often contain many words the average person doesn't know, and so on, requiring following an infinite number of links in an attempt to understand the concept. Just in your example given here:
a) You used the term "logical calculus", which is sure to be confused with integrals and derivatives. If you don't believe me, try asking some people on the street what that term means (or any non-mathematicians in your family). This could possibly be a common British English expression, but in common use in the US, at least, we use the term "calculation", but not "calculus", so as not to confuse basic calculations with the advanced mathematics topic.
b) "Truth values" is not a common term. When is the last time somebody at McDonald's asked you "I forgot if you wanted ketchup, what's the truth value on that ?". Say "yes or no" or "true or false", instead.
c) You used the terms "conjunction" and "disjunction". I would introduce the more common terms "union" and "intersection" first.
I'm going back to your full article now:
d) "Finitary operations" is not a term commonly used by a general audience.
e) "The laws of Boolean algebra can be defined axiomatically as the equations derivable from a sufficient finite subset of those laws, such as the equations axiomatizing a complemented distributive lattice or a Boolean ring, or semantically as those equations identically true or valid over {0,1}. The axiomatic approach is sound and complete in the sense that it proves respectively neither more nor fewer laws than the validity-based semantic approach." Do I really have to even mention these lines, which are in the INTRODUCTION section ? I can see everyone's eyes glazing over as they swear off Wikipedia forever after reading that. Rather than pointing out all the terms there that a general audience wouldn't understand, it might be easier to pick out the few they would know.
That's just the intro, I think I'll stop there, at least for now, as this many terms in the intro which are incomprehensible to a general audience is enough of an example of how that article is aimed at PhDs. I don't want to sound mean here, but if you can't tell how incomprehensible that material is to a general audience, then you simply aren't qualified to write or edit articles intended for a general audience, and should restrict yourself to those aimed at a PhD-level audience. (And my apologies if somebody else added some of the complex passages I've mentioned here). And, for my part, I don't consider myself qualified to write articles intended for a PhD-level audience, and avoid doing so whenever possible (it's not always clear who the intended audience is, however). There are probably very few people who are qualified to write at both levels, as this requires not only a great deal of knowledge, but also meta-knowledge ("Did I learn that detail in middle school or during my doctoral thesis ?").
3) Splitting the discussion up between "sets" articles and "logic" articles is something only a PhD would do. To the general audience, this is a trivial distinction, and splitting along those lines makes little sense. For an analogy, people think of tomatoes as vegetables, even though they are technically a fruit, since we don't usually sit down and eat a tomato by itself or slice it and put it on our breakfast cereal. So, if they went to a web site about vegetables to compare the nutritional value of other vegetables with tomatoes, and didn't find tomatoes listed there, they would be confused.
4) Any technical article written for a general audience should contain many basic examples with illustrations. Most of the examples and illustrations from this article have been stripped out in your article. StuRat (talk) 16:37, 24 January 2008 (UTC)
Concerning 2 a), the word "calculus" means (in both American and British English) a method of computation. Thus "calculation" is not a synonym and is not used in American English as an alternative to the word "calculus". If we are worried that our readers will not understand the word "calculus" then the phrase "method of computation" could be substituted for it. Concerning 2 b), I think the term "truth value" will be understood by most readers of this article, however I've linked "truth value" to Logical value, so perhaps this will be sufficient for those who don't. Paul August 17:44, 24 January 2008 (UTC)
I am aware that "calculus" has that meaning, my concern was that it's not a meaning used by a general audience, at least in the US. There are many definitions of words which are obscure or archaic, or, in this case, simply "not common". These words and terms should be avoided, whenever possible. As for linking "truth values", that has the same problem, since the article linked to also uses terms a general audience will not understand (in this case, logical value contains such gems as "intuitionistic logic", "Heyting algebras", "topos theory", and "subobject classifier"). Why not simply say "yes or no" or "true or false", terms which everyone understands without having to jump to another article ? StuRat (talk) 18:05, 24 January 2008 (UTC)
It is not necessary to be familiar with the terms "intuitionistic logic", "Heyting algebras" to figure out from that article what "truth value" means. Nevertheless why don't you suggest an alternative formulation for that sentence? Paul August 18:34, 24 January 2008 (UTC)
I would rewrite "Boolean algebra (or Boolean logic) is a logical calculus of truth values, developed by George Boole" as "Boolean algebra (or Boolean logic), developed by George Boole, is a system for performing mathematical operations on true and false values". However, I really don't want to get far into a discussion of how that article should be rewritten for a general audience, since that discussion belongs on that article's talk page, not here. It's also so far off that I consider it a "lost cause". Any attempt to merge this article with that one will no doubt result in a similar PhD-level article. Thus, I prefer to leave that article to remain at the PhD-level and wash my hands of it entirely. StuRat (talk) 18:44, 24 January 2008 (UTC)
"true and false values" seems a bit clumsy---how about simply bits?
Now that I look at logical value I realize the term is too general since it also includes three-valued logic and the elements of Heyting algebras, a more subtle notion than Boolean algebra. Your point is well taken, Boolean domain would have been better.
I wasn't proposing splitting sets and logic into separate articles, merely objecting to the way you treat them as synonymous, jumping back and forth between them as if there were no difference. There is indeed a sense in which they are synonymous, but you write as though your readers already understand that sense. To your objection that I pitched my article at too high a level to be understood (unintended but if true then I need to fix it) I would counter that your article organizes the relevant material too incoherently to make sense to anyone not already familiar with the concepts. --Vaughan Pratt (talk) 05:55, 25 January 2008 (UTC)
Ok, so I have at least some idea of which terms and ideas might be inaccessible to a "general" audience (whatever that means---do we have any lower limit on the age of a general audience?). Take a look at Boolean algebra (introduction) and let me know which bits are still impenetrable. --Vaughan Pratt (talk) 09:27, 25 January 2008 (UTC)
1) Regarding your new article: It's a distinct improvement, but needs pics and specific real-world examples to make it more accessible. Also, is it your intention to have yet another article, in addition to this one, that attempts to introduce the concepts ?
2) Regarding the target audience: The standard should be that everything should be written for as young of an audience as can possibly understand it. In the case of Boolean logic, there are parts that are introduced in preschool, such as the concepts of NOT ("which objects are NOT inside the circle ?") and AND ("which objects are inside the circle AND the square ?"). OR might be a bit more complex, in that you need to distinguish between regular OR and XOR, but that could be covered in grammar school. I would say any introductory article should probably stop at a level that high school students would be expected to understand. In the case of Boolean logic, I'd go up to DeMorgan's laws.
3) "True or false" versus "bits": "Bits" is a term that computer programmers use, and is certainly one term that should be introduced when discussing Boolean logic, but terms like "true and false" and "yes or no" are understood by a wider audience, so should be introduced first.
4) Sets versus logic: I've added clarifications to this article. If you suggest additional places where I should add clarifications on whether I'm talking about sets or logic, I'll consider adding those.
5) I forgot to respond to one of your earlier comments, that you didn't like the "Let's imagine..." informality. Here is another difference between PhD-level writing, which is expected to be formal ("When one considers...") whereas an introductory-level article should be informal. That level of formality scares off people who aren't familiar with it. StuRat (talk) 15:15, 25 January 2008 (UTC)
I'd like as few articles as possible, and would have preferred not to write yet another article. Boolean algebra (introduction) should be understood as a kind of feasibility study---e.g. are simplicity and coherence compatible?---prior to attempting to shrink the article count back down to something reasonable by merging the winning ideas that emerge from these experiments.
Regarding the optimal number of articles, the options seem to be to cater for n independent desiderata with 2n articles, or to make some compromises regarding just how breezy etc. the article gets. I would be opposed to creating additional articles merely because the existing articles are insufficiently breezy. But I would be in favor of expressing the concepts as simply as possible---your point that I've used complex notions where simple ones suffice in some places is well taken.
Regarding additional places where you can make your article more coherent, the problem is not that you're missing a sentence here or there but that your overall order of development of ideas is incoherent. The natural development in algebra is values (0 and 1 for Boolean algebra), then operations (and-or-not for Boolean algebra), then laws (associativity, commutativity, etc). You're ok with the laws but your account of the values and operations is all over the shop. --Vaughan Pratt (talk) 10:10, 26 January 2008 (UTC)
I think the decision we made long ago to split into an accessible article covering basic material (this one) and an inaccessible article covering advanced material (which was later split into two) was the best way to go. The problem is that, even if it was somehow possible to initially achieve a balanced article, it would immediately be edited by both groups trying to pull the article into the direction they want, resulting in edit wars, anger, Admin involvement, etc.
As for you idea of starting with just elements 0 and 1, this isn't as easy to understand as starting with natural numbers, using them to explain concepts like NOT, AND, and OR, then restricting the universe to elements 0 and 1. You should always start out with material most familiar to the audience, then transition to new ways of thinking about things. StuRat (talk) 16:27, 26 January 2008 (UTC)

StuRat's comments on the move/rename

Ideally, I would like PhD-level articles to be identified as such, with article names that don't specify the intended audience all aimed at a general audience. However, even though Wikipedia is supposed to be aimed at a general audience, this isn't the reality. Articles without the audience specified in the name have been and, I believe, will continue to be, edited to make them incomprehensible to a general audience. Therefore, the only way around this is to put "Introduction to..." in front of any article we don't want to be so mangled. So, that's my recommendation for this article, change it to either "Introduction to Boolean logic" or "Introduction to Boolean algebra" (with a redirect from the one title to the other). That may be the only hope at preventing this article from yet again being made incomprehensible to a general audience. This will also have the advantage of attracting general audience readers from related PhD-level articles (hopefully before they swear off Wikipedia) when they spot the link in the dab at the top of those article. StuRat (talk) 19:02, 24 January 2008 (UTC)

Where are we now?

I think we all agree that the current situation is far from desirable. As it is getting more and more complicated, I wanted to get an overview before commenting. Since others are likely to be as confused as I am, I put the result here: a commented list of the existing articles on Boolean algebra(s). I have excluded the disambiguation page Boolean algebra and also the article Boolean algebras canonically defined, which can be regarded as a subarticle to one or more of the other articles.

Boolean algebra (structure)

25 KB, 1 picture, 3 tables, talk page, history.

Started in 2001, looks like a true community effort.

Notation used: .

Illustrations: "Boolean lattice of subsets", operation tables.

Sections: Formal definition; Examples; Order theoretic properties; Principle of duality; Other notation; Homomorphisms and isomorphisms; Generalized Boolean algebras; Boolean rings, ideals and filters; Representing Boolean algebras; Axiomatics for Boolean algebras; History.

Accessible to a general audience ?: No.

Boolean algebra (logic)

45 KB, talk page, history

Started in 2005 by StuRat. Main contributors: Initially StuRat, then Vaughan Pratt.

Notation used: .

Illustrations: "Various representations of Boolean algebras".

Sections: Values (Conventions; Applications); Operations (Basic operations; Derived operations; All Boolean operations; Applications of Boolean operations); Laws (Axioms; Derivations; Soundness and completeness).

Accessible to a general audience ?: No.

Boolean logic (this article)

17 KB, history

Started in 2007 after long discussions; main contributor: StuRat.

Notation used: 0/false,1/true,, but also set theoretical notation.

Illustrations: 2 Venn diagrams, 2 operation tables.

Sections: Set logic versus Boolean logic; Terms; Example (Chaining operations together; Use of parentheses); Properties; Truth tables; Other notations; Basic mathematics use of Boolean terms; English language use of Boolean terms; Applications (Digital electronic circuit design; Database applications; Search engine queries).

Accessible to a general audience ?: Yes.

Boolean algebra (introduction)

15 KB, talk page, history

Started in 2008 by Vaughan Pratt.

Notation used: .

Sections: Values; Operations; Laws; Boolean algebras; Abstract Boolean algebras.

Accessible to a general audience ?: Somewhat.

--Hans Adler (talk) 00:18, 26 January 2008 (UTC)

You didn't mention how accessible to a general audience each article is, so I added that info. StuRat (talk) 01:14, 26 January 2008 (UTC)
This seems to have become a group effort, as intended. I have removed comments/signatures above by StuRat and Vaughan Pratt, as I felt that they were not helping legibility. Removing other people's comments on a talk page is somewhat unorthodox, so if you don't agree please revert. (And I won't mind if you remove this comment in the process.) --Hans Adler (talk) 12:45, 26 January 2008 (UTC)
I'm fine with your deleting my comment on my changing + back to ∨ etc. since your update reflects that change. --Vaughan Pratt (talk) 00:26, 27 January 2008 (UTC)

Random collection of ideas and resources

Boolean algebra as a calculus

  • We clearly need an elementary level article on this.
  • Essential for computer science. E.g. the values of the int datatype in C form a Boolean algebra. In this case the notation is 0,-1,&,|,~.
  • Strongly related to propositional logic and to set theory.
  • In some countries this is taught in schools.

Boolean algebras as structures

  • We clearly need a graduate level article on this.
  • Related to Boolean rings, with a simple but non-trivial translation.
  • They are orthocomplemented distributive lattices. ----[No, just complemented. Vaughan Pratt (talk) 10:19, 26 January 2008 (UTC)]----
  • They form a variety in the sense of universal algebra.

Resources

Comments

These lists are intended as a basis for brainstorming. Everybody is welcome to edit/extend. I think the resources contain some excellent ideas for a simple article. --Hans Adler (talk) 01:47, 26 January 2008 (UTC)

US English note: in the US what we call "Boolean logic" seems to match what you call "Boolean algebra as a calculus", while the term "Boolean algebra" can be used for either what you call "Boolean algebra as a calculus" or "Boolean algebras as structures". Also, the term "algebra" is both the singular and plural form in the US, the same as "math", so phrases like "algebras" and "maths" sound like poor grammar here (like "sheeps" would sound to others). Hopefully we can come up with names for articles that sound correct in both US English and British English (as well as the other variants). StuRat (talk) 04:11, 26 January 2008 (UTC)
No, as an American, I can't agree with what you say about the plural of "algebra". "Algebras" is just fine, for the count noun meaning. Structure A is one Boolean algebra, structure B is a different Boolean algebra; together, they make two Boolean algebras.
This is not a US/UK difference but a difference between the two meanings. In the mass noun meaning ("Boolean algebra as a logical calculus"), there is no plural. Wouldn't make sense, really. --Trovatore (talk) 04:27, 26 January 2008 (UTC)
Well, if I had two algebra problems to solve, I would NEVER say "I have to do my algebras" or "I have to do my maths". My US English spellchecker also flags "algebras" as an incorrect word. StuRat (talk) 04:38, 26 January 2008 (UTC)
I wouldn't say "I have to do my algebras" either. That's not what we're talking about. When Boolean algebra is something you do, then there is no plural -- we're completely on the same page there. But a Boolean algebra, in the sense of a structure, is not something you do, it's just something that is. --Trovatore (talk) 04:49, 26 January 2008 (UTC)
(ec) Trovatore is right, see structure (mathematical logic) where algebras as generalisations of groups, rings, fields, lattices etc. are defined. And no, the mathematics required to know this is not PhD level but at most graduate level. (I learned these things in my second year.) I think the continuum between what you have in mind for a basic article and PhD level is by far wider than you imagine, and encyclopedia articles are typically somewhere in the middle. This is part of our problem here.
What your spellchecker does is absolutely irrelevant; the UK version would probably do the same because it isn't tuned for mathematics either. The German spellchecker of MS Word was once famous for replacing "Körpererweiterung" (field extension) by "Körperbehinderung" (disability). There is an entire branch of mathematics called universal algebra that examines algebras as its main objects. We have several Wikipedians who work (or used to work) in this branch. Would you please accept the fact that you are working with professionals here. --Hans Adler (talk) 04:51, 26 January 2008 (UTC)
Well, let's all try to keep cool. I haven't really seen StuRat suggesting that the experts don't know what they're talking about, or not very often anyway. The more serious problem is that he still seems to think it's an "expert version" of the same concept, which it just isn't.
StuRat, I really wish you would take the trouble to learn the basics here, then maybe you could help us make them more accessible. It really isn't that hard. I mean, it can get as hard as you want, but the basic ideas aren't hard, and the only reason I can see that you don't understand them already is that you first have to unlearn some preconceived notions, like the idea that the mass-noun and count-noun senses of the term "Boolean algebra" mean the same thing. --Trovatore (talk) 08:08, 26 January 2008 (UTC)
Trovatore, I don't want to learn the advanced topics associated with Boolean algebra, as then I could no longer provide the "general audience" perspective that is so sorely lacking in Wikipedia mathematical articles now. We have far too many mathematicians writing these articles already, that's how we got into the situation of having so many articles which are utterly inaccessible to a general audience. As a computer programmer, I often ask non-programmers to review my work, for their perspective. I've gained valuable insight from them, such as not knowing what I meant by the term "default", which, as a programmer, I had assumed everyone knew.
And I do understand that they are different topics, with some overlap. Specifically, what I call "Boolean logic" appears to be a proper subset of what you call "Boolean algebras". I also think it's proper to call "Boolean algebras" the "expert version" of "Boolean logic", though, in that it contains extrapolations of "Boolean logic" in which only mathematicians would have an interest. I do question whether material by and for mathematicians really belongs on Wikipedia (which is supposed to be a general knowledge encyclopedia) versus at the numerous mathematics-only sites. However, I will continue to honor the truce between those of us who want articles for a general audience and those who want articles by and for mathematicians. We can make room for both here. StuRat (talk) 15:58, 26 January 2008 (UTC)
StuRat, you see, this is where the disconnect is! "Boolean logic" is not a "subset of "Boolean algebras". As long as you think that, you're talking at cross purposes with the rest of us, and you come up with non-sequiturs like this supposed "US/UK difference" that you've invented (apparently by overgeneralizing the "maths/math" thing). A Boolean algebra is not an "extrapolation" of Boolean logic. Rather, the same Boolean logic applies to different Boolean algebras.
If you would bother to understand, just at a very basic level, what a Boolean algebra actually is (would take you an hour, maybe), then you would see that this is not a distinction made on the basis of accessibility. And maybe you could then make useful suggestions on how to make the material on Boolean algebras, the structures, more accessible. --Trovatore (talk) 18:40, 26 January 2008 (UTC)
I didn't say that there definitely is a US/British English difference here, just that this is one possibility, since many people here seem to use British English and I use US English. I still consider applying Boolean logic to different Boolean algebras to be an extrapolation from the most common and basic case. Yes, there is also a difference in the material covered as well as the target audience, but you seem to be saying it is ONLY a difference in the material, and that the "Boolean algebras" material can be made just as accessible as the "Boolean logic" material. Here I disagree. The "Boolean algebras" material is inherently more complex.
Let me give an analogy. Let's say we have an article on "cats". There would then be two groups of people, one who wants the article to be about house cats (felis sylvestris catus) and one group which wanted it to be about the feline family. The house cat article will be inherently simpler, since people are already familiar with house cats, there is only one species to deal with, and you won't have exceptions to the rule as you do in the larger group ("all felines are solitary animals in nature, except for lions", "all felines hate water except...", etc.). The article on felines would also need to talk about the evolutionary relationship between the various felines, necessitating an understanding of the Theory of Evolution. The result is that you can make an article on house cats aimed at a younger audience than the article on felines. StuRat (talk) 19:20, 26 January 2008 (UTC)
I agree that there's inherently a higher barrier to entry to understanding the structures, even at a basic level. It's not as high as you seem to think, but yes, it's higher. Nevertheless that's an entirely separate issue from the distinction between the structures and the logic. The distinction itself is not one of "level".
Here's what's wrong with your analogy, though. In the case of your analogy the cat article would be about the structure, because that's the thing rather than the method. The "Boolean logic" article would be analagous to, I don't know, cat husbandry physiology of the cat or something. --Trovatore (talk) 20:16, 26 January 2008 (UTC)
You are right, Trovatore. It was quite late for me, and I was more frustrated than necessary under the circumstances. StuRat, I am sorry for what I wrote, particularly so because I didn't make it clear (while I did feel it) that I appreciate your efforts and the point of view you bring in. I want generally accessible articles on basic mathematical topics, and to achieve this we need to cooperate and try to understand each other's positions. Btw, even though my work is relatively close to the subject I would guess that my knowledge is only about halfway between yours and Vaughan Pratt's. I really admire his patience in trying to produce an elementary article that everybody is happy with. --Hans Adler (talk) 11:09, 26 January 2008 (UTC)
Hans, thanks. It sounds like you use British English, from your spelling of "generalisations". While "algebras" may be a common term in British English (I don't know either way), all I'm saying is it isn't a common term in US English. If a US English spellchecker doesn't recognize it, that doesn't necessarily mean it isn't a word at all, but does mean it's not a very common word in US English. So, what I'm saying is that any article written for a general audience should avoid using the term "algebras", as it "sounds very wrong", at least in US English, to a general audience. For those articles which are not aimed at a general audience, the term is probably fine. StuRat (talk) 15:53, 26 January 2008 (UTC)
Yes it's probably better to avoid use of this word as much as possible in a basic article. But we can't avoid it completely, because we must somehow link to the expert article and hint what it is about; and there is no other word for the subject of the expert article than "Boolean algebra" in the countable sense. I checked a few featured articles on straightforward topics: bird mentions polygyny, amniotic egg etc.; frog mentions hybrid zone, tympanum, metatarsal etc.; blues mentions chitterlings and Yoruba mythology. Cricket is full of terms that look very strange to me (there are probably similarities to American football so you don't see the extent of the problem). Every featured article seems to use technical language that is not generally known. --Hans Adler (talk) 17:10, 26 January 2008 (UTC)
Those articles, though, are not split into "accessible" and "inaccessible" articles, so must necessarily contain the whole range of complexity. As long as we have both introductory and advanced level articles on this topic, however, we can avoid using complex terminology in the basic article, with the exception of links, as you've noted. StuRat (talk) 17:41, 26 January 2008 (UTC)
My impression is that by "Ph.D. level" StuRat is referring to the knowledge of modern algebra acquired by all undergraduate math majors, but very few undergraduate CS majors; such knowledge would be helpful in understanding what is meant here by an algebra and how it differs from what one learns as algebra in high school. To some extent this is not helped by the focus in Boolean algebra (structure) on individual elements and operations rather than on Boolean algebras as mathematical objects to be considered in the plural. —David Eppstein (talk) 08:41, 26 January 2008 (UTC)
Could you explain this a bit further? It does cover homomorphisms, ideals and filters, and it at least mentions Stone's theorem. I would see the fact that it starts self-contained, in the sense that no knowledge of lattice theory or universal algebra is assumed, as an advantage. I am not happy with it, but I am more concerned about the undue weight of applications and about missing advanced stuff. --Hans Adler (talk) 11:09, 26 January 2008 (UTC)

New Boolean algebra (introduction) article created

I decided to go for broke and add two structure sections to Boolean algebra (introduction). The first is just called "Boolean algebras" but focuses exclusively on concrete Boolean algebras consisting of either bit vectors or subsets. The second, called "Abstract Boolean algebras," draws the distinction between a Boolean algebra that satisfies the Boolean laws because its elements are comprised of bits one way or another (even subsets can viewed as bit vectors), and one that satisfies those laws by fiat without assuming that the elements have anything to do with bits. This leads naturally into Boolean algebra (structure). --Vaughan Pratt (talk) 11:34, 26 January 2008 (UTC)

I only saw this message after finishing the section below. Perhaps you can comment on it. My personal feeling is that your new article is somewhere between what I have in mind for the "basic" and "expert" articles. StuRat's article is more accessible in some ways, but it's not obvious how to preserve this when fixing the obvious flaws such as confusion between Boolean algebra and algebra of sets. I would like to do some actual editing rather than talking, but with two competing articles I am in a funny situation. I don't want to start another fork, either. --Hans Adler (talk) 12:57, 26 January 2008 (UTC)
I just added some transitions and clarifications between the two subjects to this article. If it still needs more work, tell me where and I will be glad to fix it. StuRat (talk) 15:29, 26 January 2008 (UTC)
Hans, let me comment on your proposal below. Meanwhile, regarding your thinking that Boolean algebra (introduction) is currently more than basic, how about an article which starts out being the basic treatment but which then gradually brings in the more advanced material, expressed in the simplest and most natural way possible consistent with its intrinsic difficulty (Stone duality >> homomorphisms >> {0,1} in intrinsic difficulty) as a strategy for minimizing the number of articles?
If this makes sense, then my first question would be, what bits of the current Boolean algebra (introduction) make it more than basic in your thinking? Since this issue seems to be the main one responsible for the current proliferation of articles, others should weigh in on this question. Perhaps it should limit itself to single bits in the beginning, then cover the operations as defined on {0,1}, perhaps Venn diagrams next, then logic gates, then the laws of Boolean algebra explained by analogy with those of high school algebra.
An excellent question is when to bring in other Boolean domains besides {0,1}? If the goal is the simplest possible explanation of Boolean algebra while avoiding the concept of Boolean algebras plural, how do examples of other Boolean algebras besides {0,1} do anything but confuse matters when explaining the operations, digital logic gates, even Venn diagrams? (It is a distraction to view a Venn diagram from the outset as Boolean combinations of sets of points---each circle denotes a one-bit input whose values correspond to its interior and exterior, bringing in the fact that regions are comprised of points is not only irrelevant but potentially confusing when done at the outset.)
The only reason I can see for bringing in other examples of a Boolean algebra in a treatment of the algebra of 0 and 1 would be to illustrate the point that there are other Boolean algebras besides 0 and 1. (This is one of the many things that makes StuRat's article incoherent---on the one hand he doesn't want to acknowledge the notion of a Boolean algebra, on the other he wants to motivate the whole subject by starting with sophisticated examples of Boolean algebras such as sets before mentioning the simple example of bits. StuRat, why do you think computer scientists view sets as more basic than bits? The Foundations of Mathematics mailing list run by Martin Davis is forever debating whether the concept of set is even well-defined, quite hotly in the past couple of weeks, but I've never seen anyone question whether the concept of bit is well-defined.)
It seems to me that the right time to bring in bit vectors, sets, and other examples such as square-free positive integers with least-common-multiple as ∨ and greatest-common-divisor as ∧, is after covering operations, Venn diagrams, logic gates, and laws and just before the concept of a Boolean algebra as a set of such values that is closed under the Boolean operations, which it leads into very naturally. Since all these examples are concrete Boolean algebras this in turn leads naturally into a section on abstract Boolean algebras as the real McCoy when talking about the general concept of a Boolean algebra. (Any finite initial segment of the set of all square-free positive integers provides a nice stepping stone for the concrete-to-abstract transition because it can be viewed either concretely or abstractly: a square-free positive integer can be identified with the set of its prime factors, or such a set of square-free positive integers can be shown to satisfy the Boolean axioms.) This then leads into a section on the organization of axiom systems for Boolean algebra, which further leads into a section on the concept of basis (the lattice basis and-or-not vs. the ring basis and-xor, and other bases). Such an article would ideally then need at most two other articles, one on structure covering homomorphisms, filters, ultrafilters, etc. and one on logic covering soundness and completeness of axioms, Post's criteria for complete bases of operations, etc. --Vaughan Pratt (talk) 18:32, 26 January 2008 (UTC)
"StuRat, why do you think computer scientists view sets as more basic than bits?": I didn't say that computer scientists do, but a general audience does. Set concepts are introduced, at least in the US, as early as preschool, with kids asked to identify which objects are inside the circle, NOT inside the circle, inside both circles, inside just one of two circles, and not inside either circle. This is sometimes done even before they know numbers; with blocks, apples, stuffed animals, fire engines, etc., used as the objects. The circles are also given meanings like "all red objects" and "all foods". StuRat (talk) 18:47, 26 January 2008 (UTC)
Is it actually the case that sets are introduced before bits in primary education? Given that bits are simpler than either numbers or sets, and also are the datatypes out of which all modern computers are built, what would motivate educators to teach sets before bits? I bet if you asked a bunch of third-graders the difference between a bit and a decimal digit, or between binary and decimal numbers, you'd get way more correct answers than if you asked them to name any differences between a set and a list. They're unlikely to be aware that order matters for lists but not sets, or that a set can have only one instance of a given thing whereas a list can have many. But if they don't know those differences then how can you argue that they understand set operations if they can't see that they're not applicable to lists? You can lead a horse to water, and you can lead preschoolers to sets, but did anyone check whether they were really drinking it in or just faking it? Any K-12 educators want to weigh in on this? --Vaughan Pratt (talk) 20:58, 26 January 2008 (UTC)
Yes, it is the case. For example, there is a children's show on PBS aimed at kids aged 8 and up, called Cyberchase, which featured an episode on sets. StuRat (talk) 21:56, 26 January 2008 (UTC)
Having already claimed here that I am a professional mathematician and a former computer programmer, I suppose I had better not claim that I am also a K-12 educator. Instead I make the outrageous claim that I learned set theory in my first year at school. It was an experiment at the time, and the idea was abandoned because many parents complained. (They felt that they had to help their children with their homework - something they are not supposed to do, actually - and they didn't understand it.) AFAIK the children had no particular problems, but the teachers needed a lot of training. Once you have seen enough equations like {1,2,3}={2,1,3}={1,1,2,1,3} you understand what a set is. (In reality they didn't use numbers. I think the most complicated thing we had to do was to check in a picture the truth of a statement like "The set of all persons with green hats is a subset of the set of men with blue shirts union the set of women with red skirts.") --Hans Adler (talk) 21:18, 26 January 2008 (UTC)
I've never taught K-12, but have taught and developed class materials and lessons for some rather remedial groups of adults, some of which were high school drop outs and some of which, unfortunately, suffered from brain damage (two couldn't spell their own names). So, I consider myself qualified to offer insights on remedial adult education, which may be a more difficult audience than K-12, in many respects. And, while it's true that the version of set theory taught in K-12 is not comprehensive, it certainly covers what is needed for this article on Boolean logic. That is, the concepts of NOT, AND, OR, XOR, SET, SUBSET, SUPERSET, EMPTY SET, and the UNIVERSE. I'm not sure if binary numbers are taught in K-12 at all, unless you take a computer class. That is where I first learned them. They might also be covered along with various other bases in an elective math class. StuRat (talk) 21:34, 26 January 2008 (UTC)
So one good thing that might come out of all this (if it ever reaches the right people) could be to get educators to consider the question of whether the concept of a bit might easier to teach than that of a set. Mathematicians have viewed sets as both important and fundamental since they began to base the foundations of mathematics on them towards the end of the 19th century, so it's not surprising for them to have felt the urge to promote sets as early as possible. Information technology is suffering incredibly badly in education today, maybe it's time for IT educators to put their foot down and insist that at least some of the most elementary IT concepts such as the bit get taught an early stage.
Meanwhile pending more input from K-12 educators, StuRat makes a good point about people being more familiar with numbers 0,1,2,3,... than with most other concepts including sets. So perhaps instead of scaring people off with unfamiliar words like "bit" (as I understand his argument) it might be better to say that Boolean algebra is arithmetic restricted to the numbers 0 and 1. This works for multiplication, and almost works for addition, the one problem being that 1+1 = 2, which Boolean algebra fixes with 1+1 = 1. Complement is simply subtraction from 1, that is, x' = 1-x. Does that approach solve any of the problems that have been raised so far? With this approach the notation change from x+y to xy and xy to xy could be postponed a bit, bearing in mind that some authors even today, e.g. the Berkeley school, still prefer the arithmetic notation over ∨∧. --Vaughan Pratt (talk) 00:49, 27 January 2008 (UTC)
I would be all for teaching binary numbers at an early age (showing kids they can count to 1023 on their fingers using binary numbers is a particularly good example of how useful they can be). But, in the current world, they seem to be emphasized less in early education than set theory, so we should adjust our articles accordingly. StuRat (talk) 01:40, 27 January 2008 (UTC)

Ideas on splitting the subject

The number of resources on Boolean algebra on the web (and of closely related Wikipedia articles that we are not discussing right now) shows that this subject is interesting for a wide range of people. Therefore it is probably necessary to split the subject by audience. My impression is that we have more or less the following groups:

  1. Children (school).
  2. Engineers (electrical circuits)
  3. Software developers and computer scientists (boolean operations)
  4. Mathematicians and theoretical computer scientists (universal algebras as objects)

The subject splits in a natural way into Boolean logic (or Boolean algebra as an uncountable noun) on one hand, and Boolean algebras on the other hand. It seems natural to have a basic article for groups 1-3 and an expert article called "Boolean algebra (structure)" for group 4. The basic article could then be called "Boolean algebra" and "Boolean logic". Alternatively, "Boolean algebra" could be an extended disambiguation page, i.e. an extremely short and accessible introduction to the subject (without any explanations or applications), and pointing to the basic and expert articles.

In thinking of group 1 we should not dilute our standards to a point where it becomes unencyclopedic. An article on a technical subject need not be in fundamentally more simple language than the average article on a basic word like house, king, street, map etc. There is a need for such an extremely simplified article, but this only means that we should view simple:Boolean algebra as part of our group effort, improve it, and link to it. It does not mean that we should treat Wikipedia as a children's encyclopedia.

Boolean algebra was invented by a mathematician and as mathematics. Initially it was presented in terms of traditional algebra, and so a complete treatment of the history of the subject clearly belongs into the article for group 4.

I have not considered the philosophers; they have to learn propositional logic, which is essentially Boolean algebra, and so they are likely to be interested as well. With the basic article at hand (where they can ignore the more technically oriented stuff about electrical circuits and programming) they might be happy with being catered to by the expert article. But the best solution might actually be a section on Boolean algebra in the article on propositional logic, which already lives in the area between mathematics and philosophy. --Hans Adler (talk) 12:36, 26 January 2008 (UTC)

I agree that groups 1-3 should be handled in a separate article, and that's my intention with this article. However, Group 1: Children (school) is a very wide group, extending from preschool concepts (NOT) through high school concepts (DeMorgan's laws). I haven't aimed at the preschool and elementary school audiences, however, and that portion could be addressed at Simple English Wikipedia (although the current article there doesn't appear to do so). StuRat (talk) 15:27, 26 January 2008 (UTC)
Hans, I was going to respond to your proposal after writing the piece above responding to your shorter piece, but now that I get to it I see that my long answer to your short bit has covered most of what I was going to say. I think my main point boils down to the conjecture that Boolean algebra can be clearly explained at a very elementary level in the beginning, and that there is a natural progression for gradually bringing in the more sophisticated concepts, up to the point that the article needs to fork into articles on structure (homomorphisms etc.), logic (soundness, completeness, bases, relation to propositional calculus), and complexity (for which there's already an article that no one is proposing to incorporate into a more unified Boolean algebra article). I'm inclined to agree with you that your audiences 1-3 can all be accommodated with the same introductory article, though perhaps those audiences should be polled about that after they've had a chance to look at the offering(s) claiming to cater to them all. I doubt whether a single article can accommodate 4 however because of the scope of the subject. In fact Stone duality already exists as a reasonably comprehensive article in its own right, although I have the same objection to it as StuRat has been raising to my articles: it imposes far too many unnecessary prerequisites on the reader by starting out assuming a familiarity with locale theory. --Vaughan Pratt (talk) 20:02, 26 January 2008 (UTC)
Wow! I wasn't even aware of the Stone duality article. If you want to tackle its simplification, I am prepared to bring in the point of view of the ignorant. (And I promise not to fork the article.)
I am replying to several of your comments here. I like your detailed outline very much; in fact, if I had a few days in isolation now to write "my" articles from scratch, then I would probably use your outline up to Boolean algebras as structures for the "basic" article. My "expert" article would start with this and a more cursory treatment of the axioms; then it would continue with your outline. It would subsume your additional article on homomorphisms etc., following the principle that when you define an object you should also define the entire category.
So the main difference is whether to cut off the basic stuff or the homomorphisms etc. I think the advantage of cutting off the basic stuff is that it maximises the number of people who get an article that contains more or less exactly what they expect. Most mathematicians would skip everything up to the point where most general readers would stop reading. Why not divide the article there?
I am not sure if it is a good idea to distinguish "Boolean algebras" and "abstract Boolean algebras". Wouldn't it be more standard to pick out the "concrete Boolean algebras" instead? It might be even better not to treat them specially, and just to put in a link to algebra of sets somewhere.
As to bits and sets, I agree that an individual bit is easier to understand than the Boolean algebra of subsets of a set. E.g.: "What would calculus look like if we only had the numbers 0 and 1? It's going to be a little different, so we write for +. Instead of multiplication we define as follows etc. Let's examine what laws hold for these operations…". The next step probably depends on the audience. For people with prior exposure to set theory it would be best to continue with power sets. For programmers it would be best to continue with bit vectors. But I am afraid we are going to lose the others no matter what we do at this stage. --Hans Adler (talk) 21:03, 26 January 2008 (UTC)
Those who prefer to define abstract algebras and then point to some concrete examples are exactly the people StuRat is trying not to cater to. You're absolutely right that this is the usual order of business in modern algebra, but it isn't in the more pragamatic world StuRat is counseling us to cater for, witness linear algebra which starts with vector spaces in math courses and with matrices in engineering courses. The concept of a matrix and how they multiply seems to come more naturally to practical people than the concept of a vector space as a set closed under linear combinations satisfying a fairly long list of equations. Modern algebra is very much an acquired taste, like wine. One can get quite drunk with it, witness my own papers some of which got quite evangelical about abstract algebra in the 1980s. I claim to be able to go cold turkey on modern algebra but StuRat is dubious, perhaps rightly so.
But I do sense that some consensus might be emerging here that will allow shrinking the proliferation of articles back down to some smaller mutually agreeable set. We do need to agree however on which bits in the present crop are most badly broken and what's the right fix. --Vaughan Pratt (talk) 01:05, 27 January 2008 (UTC)
I've now taken Boolean algebra (introduction) as far as an introductory article should probably go, and then some. The next question is to identify the "and then some" parts. For example people may prefer not to raise in an introductory article the question whether all Boolean algebras are isomorphic to power sets. Or it could be raised but without the examples I give: just say that it's true for finite Boolean algebras but false for infinite ones, see Boolean algebra (structure) for examples of the latter. In fact I think I'll make that change right now.
Meanwhile please do suggest other things to move to more advanced articles, delete, or modify. By all means hack on it yourself, bearing in mind that any changes that get a sufficiently large chorus of opposition might be reverted. Also is there anything I've left out that should go in such an introduction? --Vaughan Pratt (talk) 10:23, 27 January 2008 (UTC)
Material too complex for an introductory article:
In the "Values" section: Mentions of the terms complex numbers and radices. Using the term "vectors of bits" without defining it first (isn't there a term for this that doesn't use "vectors" in it ?).
All sections from "Concrete Boolean algebras" on. Rather than being in the introductory article, I would say those sections should be in the introduction paragraph of the main articles on each topic.
Your use the symbols for not, conjunction, and disjunction when you should use the simpler terms: AND, OR, and NOT. The symbols should be introduced at some point, but using them right from the start increases the difficulty level of the article unnecessarily. Also, I didn't see the obvious links to the UNION and INTERSECTION of sets listed in your article until the above sections (which are too complex for an introductory article). Those concepts are simple, so should appear sooner.
Your comparison with addition and negation is not as good as a comparison with set operations, as you have to modify the addition and negation operations to "make them match", while set operations match exactly:

x∨y = x + y - xy

¬x = 1 - x

Also, please add some color to the Venn diagrams. Color makes a big diff between material being interesting and "just another boring old textbook". You also need more applications, the only one you currently list is digital circuit design using logic gates. StuRat (talk) 15:14, 27 January 2008 (UTC)
I also suggest that you merge your two articles, Boolean algebra (introduction) and Boolean algebra (logic). The first suffers from the problem that it goes beyond introductory level material and the second that it lacks introductory level material. If you merge them you could possibly solve both problems and stop this proliferation of articles, as well. StuRat (talk) 16:21, 27 January 2008 (UTC)
Sorry, StuRat, while you have a small number of valid points (e.g. concerning the word "vector"), most of your advice is just a worthless distraction. Not mentioning complex numbers because they are too complicated? Elsewhere you talked about cat and feline being an example for an introductory article and an advanced article. When was the last time you actually looked at these articles?
The Cat (Felis silvestris catus), also known as the Domestic Cat or House Cat to distinguish it from other felines, is a small carnivorous species of crepuscular mammal that is often valued by humans for its companionship and its ability to hunt vermin. It has been associated with humans for at least 9,500 years.
Please stop assuming that an article on this subject can only be good if it 1. leaves the general reader in the same state of confusion that you are obviously in (e.g. in your section "Terms" you do not define what a term is, but only list some operations and relations, most of which are only vaguely related with Boolean algebra; you never indicate or even hint which are the important ones), and 2. does not go a single step beyond what you, personally, happen to know (and what apparently is the exact extent of what you want to know) about the subject. If you are not sufficiently interested in the subject to learn something new about it, then I don't know why you try to write an article on it. --Hans Adler (talk) 16:15, 27 January 2008 (UTC)
Hans, please skip the insults, we're trying to have a productive discussion, not a flame war here. I've explained my reasons for not wanting to go further into the mathematicians world many times now, but will explain it once again for you. Once I learn all the advanced material, I will no longer be able to provide the "general audience perspective" which is so sorely lacking here. The problem is that we have the perspective of numerous mathematicians here, but I appear to be the only non-mathematician providing "the other viewpoint". This is precisely how we arrived at the situation where each article on any mathematical concept is steadily changed to become more obscure and inaccessible to the general public. We do not lack mathematicians, and the last thing this article needs is yet another voice from that perspective. I know that it's uncomfortable for you to deal with people coming from different backgrounds, but Wikipedia simply is not a site just for and by mathematicians, it's for everyone, and our articles need to reflect that. StuRat (talk) 16:30, 27 January 2008 (UTC)
In my analogy I simply stated that an article about house cats can be presented at a more basic level than one on felines, and explained why; whether the current Wikipedia articles are that way or not is quite irrelevant to that point. However, in your passage, there was only one word I would describe as unknown to a general audience ("crepuscular").
Also, can you please explain why we need to talk about complex numbers in a discussion of Boolean logic ? Complex numbers aren't generally covered until elective high school math classes, and I would prefer that an introductory level article not use terms that many in the audience won't be familiar with. And, if you're assuming that I am unfamiliar with complex numbers, you're wrong, I'm quite familiar with them and have answered many student questions on them on a Homework Helper bulletin board. My background goes up to basic calculus (integrals and derivatives, that is), which is already well beyond the target audience for an introductory article on Boolean logic. StuRat (talk) 16:38, 27 January 2008 (UTC)
May I ask on what articles you have practised your radical "simplification" before, and where it was with success? I am asking because I am under the impression that you are trying an experiment here that is bound to fail. I have gone through many featured articles, and every single one of them seems to need your "simplifications" very urgently—which I doubt. Therefore I am not sure that you are trying to build the same kind of encyclopedia as most other people here.
Why complex numbers need to be mentioned in this article? First, almost every reader will have heard of them (although admittedly a few will believe it's a "PhD-level" thing), and many will have had some exposure to them. Especially those who actually need Boolean algebra in electrical engineering. Second, it's just a word that you can skip like "crepuscular" if you don't know it. And third, if you have seen complex numbers, then that was very likely the point where you first realised (or came closest to realising) that laws like the distributive law can hold for things other than real numbers as well. Which is precisely the kind of experience the general readers should be reminded of, to open their minds in the proper direction for the article. In other words: It's there not because mathematicians think it belongs there (the contrary is true; in a "PhD-level" article the real or complex numbers would never be mentioned in this way), but to help a certain class of readers who are likely to need this help, while not affecting the others. It's saying: "You remember how you transformed equations at school? And then, perhaps, you learned how to do the same with complex numbers? Now what happens when we do the same kind of thing, but instead of enlarging to the complex numbers we restrict to {0,1}? Done the right way, that's Boolean algebra." --Hans Adler (talk) 17:20, 27 January 2008 (UTC)
Complex numbers are far more complicated than Boolean logic because the imaginary component isn't tangible. It's difficult for non-mathematicians to understand what i represents because it can't easily be visualized in the real world (i apples ?), whereas 0 and 1 can easily be visualized (0 apples or 1 apple). The difference in the use of the word "crepuscular" is that it is at least necessary to discuss if cats are nocturnal, or "crepuscular", as the case may be, in an article on cats (although they probably should have just said "active in the evening" instead). However, it's completely unnecessary to discuss complex numbers in an introductory article on Boolean algebra. StuRat (talk) 18:14, 27 January 2008 (UTC)
I agree with StuRat's "completely unnecessary" here and have deleted complex numbers and radices as inessential to getting the idea. (Martin Gardner took a strict stand against depending on any understanding of complex numbers in his many years of Scientific American articles, which I hadn't realized until I suggested to him some simplifications of his material by exploiting complex numbers.) Hans nicely took care of the bit vector definition with his edit of 18:51 Jan 27. Where the article should stop is a much harder question and I propose to leave the sections on concrete and general Boolean algebras stand until there's some clear consensus on where to draw that line. Wikipedia readers should not complain about articles that get into more technical detail near the end so long as those details are at most a few sentences. All comments fielded on an equal-opportunity basis. --Vaughan Pratt (talk) 05:02, 28 January 2008 (UTC)
"At most a few sentences ?" I counted 61 sentences (give or take a few) in the sections titled Boolean algebras (Concrete Boolean algebras & General Boolean algebras) and Axiomatizing Boolean algebras. Don't you think that's a bit excessive in an introductory level article ? StuRat (talk) 06:33, 28 January 2008 (UTC)
Hard to win here. First you complain about too few examples, then when I give a whole bunch illustrating a number of issues you complain about too many sentences. Moreover you've said in the past that you neither have any interest in this material (Boolean algebras) nor even want to learn about it, and have objected that "algebra" can't be plural, so you have some nerve criticizing an account of it. This article is not Boolean algebra (logic), it is Boolean algebra (introduction), the latter should spend a fraction of its sentences on Boolean algebras, the fraction in the present article is about a quarter. --Vaughan Pratt (talk) 10:01, 28 January 2008 (UTC)
The 61 sentences doesn't include the new application sections, and I've named the sections it does include above. If you think 61 "non-application" sentences is "a few sentences", then I'm afraid we disagree. Now you're getting abusive, for some reason. You asked for comments on your new article here and I provided them. Perhaps you really only wanted comments from the mathematician's perspective. If you don't want feedback from the general audience perspective I suggest you remove the "Introduction" from the title and stop soliciting comments here. The Project Mathematics talk page should be a good place to solicit comments from mathematicians only. StuRat (talk) 14:29, 28 January 2008 (UTC)
Point taken and I'm sorry for snapping at your feedback. Let me mull it over and see what I can do to fix the problems. It's good to have the "general audience perspective," but some feedback on this from those familiar with this material would also be in order. --Vaughan Pratt (talk) 02:17, 2 February 2008 (UTC)
I've now read over Boolean algebra (introduction)#Boolean_algebras with an eye to reducing the number of sentences as you requested. What I ended up with was a better understanding of the pedagogy of algebras plural. There would seem to be two choices: first explain the concept of an abstract algebra at the beginning, and then give examples, or first show how Boolean algebras arise naturally (sets and bit vectors) and then pass to the general concept. I opted for the latter, but whatever the pedagogical advantages if any of the former, shorter exposition doesn't seem to be among them: you're stuck with a lot of sentences however you go about it. It's a difficult notion either way, and you have my sympathy if you find it hard going.
There remains the question of how long a section on Boolean algebras should be in Boolean algebra (introduction). Those who believe Boolean algebras are of no practical interest would argue for less than 10%. Those who see practical applications of Boolean algebras such as in datatypes might be justified in aiming for 25%. I've followed the latter. In order to shorten Boolean algebra (introduction)#Boolean_algebras from its present length I would need to shorten the whole article. That might be a good idea, but I would like input from more than one person on how best to accomplish that. --Vaughan Pratt (talk) 08:01, 4 February 2008 (UTC)

Rename suggestion

Vaughan, your Boolean algebra (introduction) article seems to be using "Boolean algebra", AKA "Boolean logic", just as a way of introducing the more general topic of Boolean algebras. As teaching BAs appears to be the end goal of the article, I suggest renaming the article accordingly to Boolean algebras (introduction). The added "s" should make it clear to those looking for an intro just to "Boolean algebra", AKA "Boolean logic", and nothing more, that your article is far more ambitious than what they seek. At the same time, mathematicians should be able to identify your article as an intro to the topic in which they are interested. StuRat (talk) 21:20, 4 February 2008 (UTC)

(Somehow I overlooked your remark here back in February, it's getting easy for contributions to this large talk page to get lost.) As I've said before, the introduction is intended to introduce the important facets of the subject. I've organized these into (currently) eight sections. Boolean algebras plural is one of these eight, namely section 5. Why should the name of section 5 be made the name of the whole article, which covers seven other facets of Boolean algebra? I do understand your argument that you can explain Boolean algebra better if you don't know what a Boolean algebra is; however I don't believe it, in fact I have trouble believing you still don't know what a Boolean algebra is after seeing how accurately you were able to compute the sizes of the free Boolean algebras on n generators. However this article is not written for you but for people wanting an introduction to Boolean algebra. There being a number of facets to Boolean algebra, there are a number of sections each introducing one of them. The concept of a Boolean algebra is an important facet of Boolean algebra, and it would be wrong to omit it merely because of the insistence of a single individual that it should not be in an introductory article. --Vaughan Pratt (talk) 14:37, 8 March 2008 (UTC)
I may be the only non-mathematician adding comments on this talk page, but I am by no means the only person who objects to making simple topics overly complicated. If you look through the history on each of the talk pages, you will see many objections raised to this, going back to one of the founders of Wikipedia objecting to the use of the word "lattice", among other overly complex terminology. There is a serious discrepancy between the commenters here and the general public, however. While less than 1% of the general public may be mathematicians, over 50% of the comments here seem to be from them, which leads one to think that the comments of mathematicians somehow represent the majority, when they do not. StuRat (talk) 20:14, 11 March 2008 (UTC)

Color

Following StuRat's suggestion I merged in the applications sections from Boolean algebra (logic). I hadn't intended the section on logic gates to be about applications so much as about yet another representation of and point of view on Boolean operations. The only other suggestion of StuRat's that I'm currently contemplating is color for the Venn diagrams, which of course would be very easy to do. However I found the variety of colors in StuRat's Venn diagrams to be confusing because they weren't adequately conveying the two-value aspect, making it hard to interpret what each color was meant to convey and to separate the color scheme from the basic principle of a Venn diagram, which is intrinsically a two-color system. In particular my article points out that commutativity of AND and OR can be read off from the symmetry of their Venn diagrams, but this is false for StuRat's Venn diagrams because he colors his two circles differently! I could use red and green, or blue and yellow, for 0 and 1, which as StuRat says would look "interesting"; however dark and light have the benefit of being printable on a black-and-white printer, and also my gut feeling is that dark and light convey the complementary sense of 1 and 0 better than any other color pair (but maybe I'm just a boring old monochromatic fogey). Regarding using set operations in place of arithmetic operations, I'd like the article to be readable by all generations including those old-timers who missed out on sets in their education---just because StuRat and the 9-year-old computer repair-child next door are as comfortable with union and intersection as with plus and times doesn't mean that your average waiter who spends his evenings adding up bills and multiplying by 1.1 or 1.2 for the tip is equally at home with Boolean combinations of sets of dishes. --Vaughan Pratt (talk) 05:30, 28 January 2008 (UTC)
I used the color as a method of talking about the various regions which constitute the union and intersection of the two sets. I suppose you could also use vertical stripes, horizontal stripes, and the cross hatched area (to represent the union). I'm sure the colorblind would prefer this approach. Perhaps colored stripes could work for both those who hate to look at grey pages and the colorblind, as well. StuRat (talk) 06:14, 28 January 2008 (UTC)
Where was the explanation of how the colors were supposed to indicate union and intersection? Those who already understand the concept don't need the colors and those who don't won't understand their significance. The color scheme seems like an exercise in wishful thinking. --Vaughan Pratt (talk) 10:01, 28 January 2008 (UTC)
The explanation is in the caption: 'Venn diagram showing the intersection of sets "A AND B" (in violet), the union of sets "A OR B" (all the colored regions), and the exclusive OR case "set A XOR B" (all the colored regions except the violet).' Without using color or stripes it would become necessary to use multiple Venn diagrams to show the concepts of union, intersection and exclusive OR, as you've done in your article (although you showed union, intersection, and NOT in your article, and used more complex terms for these concepts). StuRat (talk) 14:52, 28 January 2008 (UTC)
Pluses of color: cheerful, welcoming, succinct (one diagram for three operations). Minuses: Original research (no standard text color-codes multiple operations into one Venn diagram), unclear (you have to explain in the caption how to read off OR, AND, and XOR, without which it is impossible to tell which binary operations the diagram is supposed to represent, it could be any of the 16), misleading (it's not really a Venn diagram at all but three truth-tables masquerading as one Venn diagram, with white, blue, red, violet playing the role of the row names 00, 01, 10, 11 and your caption giving the three columns for AND, OR, XOR), law-obscuring (a Venn diagram represents a commutative operation just when it is symmetric, easily seen with standard Venn diagrams but not at all with your color-coding scheme), not scalable (how would you pack x⊕y⊕z and (x→y)→z into the same Venn diagram?), and forces the article to be printed in color (otherwise the references to violet etc. become meaningless---the rest of the article is B&W making it undemanding to print and photocopy). For me the cons outweigh the pros. --Vaughan Pratt (talk) 21:44, 2 February 2008 (UTC)
I did suggest a method for dealing with most of those negatives above. The idea was to use horizontal and vertical stripes in addition to color; so, for example, red vertical stripes could be set A, blue horizontal stripes could be set B, and the intersection would then be the red and blue cross-hatched area. Also note that there is value in printing in color to see links, as well. As for red, blue, and violet being "nonstandard", is there really a standard that says black = true or black = false ? StuRat (talk) 22:11, 2 February 2008 (UTC)
That deals with 1/6 negatives (printability) while eliminating 2/63 positives. What were the other negatives stripes deal with? The reason Venn diagrams are so effective is that one can see at a glance whether any given point is inside or outside any given circle. Stripes add no information because in the caption you can replace "vertical stripes" by "inside A" and "cross-hatched" by "inside A and B". And then you're still left with having to say in the caption for each operation which combinations of stripes yield 1 and which 0. That's truth tables, not Venn diagrams. Venn diagrams give the truth table of the operation explicitly in the diagram, without a caption, using just two colors. (Dark and light is standard but I'm not opposed in principle to red and green or indigo and chartreuse.) And it's still only two colors when there's three circles, which is the beauty of Venn diagrams---they scale. Your approach does not scale: for each operation in the diagram your caption has to account one way or another for the eight possible combinations of colors or stripes or "inside/outside A/B/C".
Venn diagrams encode the inputs with circles and the outputs with shading. Your approach encodes the inputs with shading and the outputs in the caption. Superficially it looks like a Venn diagram but it doesn't work like a Venn diagram. --Vaughan Pratt (talk) 01:24, 3 February 2008 (UTC)
Another negative it removes is the problem the colorblind would have with color alone. Which 2/6 positives does it remove ? Saying "the cross-hatched area" is also far clearer than saying "the area inside A and B". In Boolean logic AND has a specific meaning, but this is not so in English (as I explain in this article). This is a case where AND could be confused with OR. And before you say we expect the reader to know the difference between AND and OR, remember that this is where we first introduce the formal meanings. As for your "original research" argument, I certainly am not the first person to use a color Venn diagram. Do a Google image search on "Venn diagram" and you will find many examples. StuRat (talk) 03:20, 3 February 2008 (UTC)
Thanks, I'd neglected the colorblind. Good catch.
Sorry, 2/6 was a typo, I meant 2/3 (eliminates "cheerful", "welcoming" while leaving "succinct").
While "far clearer" is a debatable value judgment, I'll grant that color or stripes gives an alternative way of identifying each circle, although Venn in his original treatment didn't see that need (neither colors nor stripes) and used letters to label his circles. All standard textbooks I've ever seen follow Venn's example in that regard, e.g. Copi Introduction to Logic 2-5-VI and 2-6-III, Stoll Set Theory and Logic 1.4, Suppes Introduction to Logic 9.8. (Incidentally Venn used dark for 0, see e.g. http://plato.stanford.edu/entries/diagrams/, while modern authors usually reverse this, see e.g. http://www.cimt.plymouth.ac.uk/projects/mepres/book7/bk7_1.pdf .)
You make an excellent point about the ambiguity of "inside A and B" that I'd overlooked, although that's easily fixed by replacing "inside" by "common to" which is unambiguous.
I see what you mean about others using color, and I take back my Original research objection. So you've now removed 2/6 of the negatives I listed. Thinking about color some more, it occurs to me that there are two orthogonal issues here:
whether to label the circles with letters (L) or colors (C), and
whether by "Venn diagram" one means (1) just the n curves and their 2n regions or (2) a specified subset of these regions.
(1) is what most serious math articles mean by "Venn diagram," the canonical problem there being to find a regular set of n curves that gets all 2n regions, for which considerable progress has been made even in this decade. In those articles (2) never arises, being irrelevant to the problem. However since (2) is what Venn drew and is also what all logic texts refer to as a Venn diagram, one way of distinguishing (1) from (2) when both (1) and (2) arise in the same context would be to call (1) a Venn schema.
Logicians have traditionally followed Venn by using (L) (letters) but as you point out there are a great many Venn diagrams on the web these days that use (C) (color) so your point is well taken when understood to be about how to identify the circles. (Taking no chances, you've used both (L) and (C) in your diagram.)
(1) (schemas) and (2) (diagrams) are equally important. Schemas that use letters (L1) don't need to further identify the regions though some authors do so anyway with one formula identifying each region. Schemas that use colors (C1) could just color the perimeter of the circle as at http://www.teach-nology.com/worksheets/graphic/venn3/.
However many prefer colored disks in which case they need to be overlapped appropriately, as for example at the stained glass window most clearly displayed on p.13 of http://caialumni.admn.cai.cam.ac.uk/alumni/devoffice/OACIssue2.pdf . (Being viewed from the inside it works with transmitted rather than reflected light and so must use subtractive colors, whence the choice of yellow/cyan/magenta for the primary colors. These overlap doubly in green/blue/red and triply in black while the outside is white, constituting the subtractive mapping of the binary color cube onto the plane; the additive mapping, obtained by shining red, green and blue disks on a white reflective surface, puts white in the middle and black (no light) on the outside.)
This C/L/1/2 analysis would place your Venn diagram squarely in C1, a colored schema. You don't treat (2) in the sense that you don't identify particular binary operations with shading the way Venn did, instead you describe them in English in a caption, which was the basis for my original complaint. However I now realize that the case for color per se is not unreasonable once the C vs. L and 1 vs. 2 choices have been teased apart.
Thus far my diagrams have been L2 while yours have been C1 plus a caption. (We both have captions but without the caption my L2 diagrams still uniquely identify the operation whereas your C1 diagrams don't.) This leads to the question of what C2 (which would uniquely identify the operation without a caption) would look like. I'd be fine with using colors the way you do and adding stripes to them to indicate the designated operation. Sadly this would be Original research unless there's an example of a workable C2 somewhere on the web. With that approach one could even retain your succinctness advantage by designating different operations with different orientations of stripe, e.g. AND with vertical, OR with horizontal, and XOR with diagonal, though that might tend to reduce the readability of Venn diagrams, making it somewhat harder to see such properties as commutativity and idempotence.
Although now that I think of it that needn't be the only approach to C2. Coloring just the perimeters of the circles to give C1 leaves the interiors white and now one can get to C2 by shading selected regions some other color than white, e.g. dark gray. (But not multiple operations in the one diagram; while it might be feasible for the reader to visualize the horizontally striped area from the vertically striped one, this would become far harder with overlapping colors.) --Vaughan Pratt (talk) 09:06, 3 February 2008 (UTC)
I think you're going overboard with your original research claim here. Specifically, from our article on OR: "The purpose of the original research is to produce new knowledge, rather than to present the existing knowledge in a new form (e.g., summarized or classified)". The concepts I present with the color Venn diagram are not new (AND, OR, XOR), I am simply presenting existing knowledge in a new form, classsified by color (and not even all that new, as there are numerous color Venn diagrams out there, including this one using rectangles: [2]). I still find colored and striped Venn diagrams more "cheerful" and "welcoming" than black and white or even shades of grey. BTW, I did a print of my Venn diagram and it still works in greyscale, as the intersection prints out with darker grey than the rest of the shaded area. Therefore, the stripes don't even seem necessary to overcome the greyscale printing and colorblind viewer complaints. I will now update my caption to indicate this. StuRat (talk) 14:36, 3 February 2008 (UTC)
Let's list each of your objections (and one of mine):
1) Original research. Dealt with above.
2) Unclear: Your argument here seems to be that any pic which requires a caption is unacceptable. I strongly disagree, Wikipedia has many pics which require captions, that doesn't make them unclear. I also think your Venn diagrams would be clearer with captions (you could say if black equals true or false, for example).
3) Misleading: Your argument here is that Venn diagrams with color aren't really Venn diagrams. The authors of the many color Venn diagrams out there would disagree.
4) Law-obscuring: I don't see how color makes it unclear that the diagram is symmetrical.
5) Not scalable: I would say the color version is more scalable. For example, my single color Venn diagram with three sets can show A B C, A B C, (A B) C, A (B C), (A C) B, etc., while your system would require many Venn diagrams to show all these concepts. Also, not all models need to be scalable, they only need to work for the purpose intended. A globe of the Earth, for example, can't be used to show individual streets like a map can, but that doesn't mean we should never use globes.
6) Printability: Dealt with previously.
7) Colorblind viewers: Dealt with previously. StuRat (talk) 15:06, 3 February 2008 (UTC)
Yes, 1,6,7 dealt with. On 2 the purpose of a Venn diagram is to present an operation purely diagrammatically (emphasis on purely), which all logic texts do as well as the articles on the web I cited above, and which you, and some others according to you, do not. For 3 your argument seems to be that sufficiently many wrongs make a right, which is how the wrong guy gets elected sometimes. Where there is conflict Wikipedia articles should favor authoritative sources over random ones selected to support an opinion. On 4, the operation A→B (all regions except the colored region on the left) is not commutative---the asymmetry should leap out at you from the diagram which it doesn't in your approach. Regarding 5, the purpose of a Venn diagram has been, for over a century of logic literature, to represent one operation; those who try to pack multiple operations into one diagram are defying logic (so to speak). But even with one n-ary operation your approach does not scale because your average caption size grows exponentially with n, a fact that your straw man examples do not come to grips with. With Venn's approach the caption "black = true" that you suggested does not grow with n, which is as scalable as it gets. Likewise with the color names of the regions: with the three-variable examples you give you could use cyan, magenta, yellow, red, green, blue, black, white, but what 16 colors would you use for a four-variable Venn diagram and would their meaning be clear? These problems don't arise in the system Venn invented. --Vaughan Pratt (talk) 03:38, 4 February 2008 (UTC)
2, 3, & 4: Your remaining objections seem to be "that isn't a real Venn diagram". In that case, we can call it whatever you like, since, as this article isn't about Venn diagrams, it simply doesn't matter whether my illustrations qualify according to your formal definition of a Venn diagram.
5: How do you figure the caption would grow "exponentially" ? Also, you seem to have ignored my comment that scalability simply doesn't matter, an illustration only needs to work for the scale intended. If I made some statement that "all Venn diagrams must henceforth use color to identify each set", then you would have had a valid point. But we are dealing with only the cases of 2 or 3 sets in the illustrations for each of our articles. StuRat (talk) 07:03, 4 February 2008 (UTC)
These are all good points/questions. Regarding the first, I'll agree not to argue with you how to use Venn diagrams in Boolean logic if you agree not to argue with me how to define them in Boolean algebra (introduction). On the second, the caption grows exponentially on average because there are doubly exponentially many operations which therefore cannot be coded on average with fewer than exponentially many bits. Happy to do the math in more detail, but it's a fundamental and well-known theorem about the average size in bits of any representation of Boolean operations. Your concluding argument is also valid if you're just exhibiting AND, OR, XOR. In Boolean algebra (introduction) however the subsection on Venn diagrams begins with the general definition "A Venn diagram is a representation of a Boolean operation using shaded overlapping regions," which does not limit the number of overlapping regions to 3, and would be promptly fixed by someone else if it did as it then wouldn't be true. --Vaughan Pratt (talk) 07:39, 4 February 2008 (UTC)
Note that your method of adding a new Venn diagram for each case also dramatically increases the complexity when you go to 3 or 4 sets and decide to show every combo instead of just AND, OR, and XOR. I thus fail to see the advantage in your method. StuRat (talk) 21:02, 4 February 2008 (UTC)
(I've "exdented" this some, it was getting too indented.) It's not my method, it's Venn's. With 4 sets it's impractical to show every operation, there are far too many, so I assume you're bringing it up out of theoretical interest. Fair enough, as a purely theoretical question let's compare the size of all the Venn diagrams vs the size of your one caption when there's 4 sets. There are 65,536 4-ary operations; to identify each of these in your caption requires 421,328 references to regions, an average of 6.43 region references per operation. This is because each operation requires your caption to identify possibly as many as half of the 16 regions. Adding one more set brings the region count to 32 and the operation count to 4,294,967,296 needing 59,102,190,496 region references, averaging 13.76 (tending to 2n-1 for n sets) of your region references for each of Venn's diagrams. So with increasing number of sets the length of your single caption grows faster than the number of diagrams by a factor of 2n-1, which only picked up one extra curve in going from 4 sets to 5.
And that only counted the number of your region references, not the size of a reference, which grows linearly with the number of sets since identifying a region requires specifying which sets it is in. For n sets as n grows larger, a region reference will require n/2 references to sets on average. The bottom line then is that whereas Venn's method for n sets requires D diagrams where D = 22n, your method requires n2n-2D mentions of sets. --Vaughan Pratt (talk) 00:15, 5 February 2008 (UTC)
OK, but one factor you've neglected is that a "mention of a set" in a caption takes up less space than an entire diagram. This is somewhat true of screen space, but far more so when the disk space is considered. If I understand what you said, you're using an average of 13.76 characters per mention of a set. Using a 16-bit character set, that would be 220 bits per set mention. Using 8-bit bytes, as well, that's back to 27.5 bytes. Your current 3 Venn diagram illustration is 12KB, or 4000 bytes per diagram. That's 145 times more disk space. So, when comparing disk space, your method should be written as (4000)22n bytes and mine as (27.5)n2n-222n bytes. Let's make a chart:
n    22n     n2n-2   Your method (bytes)   My method (bytes)
-   -----   -----  ------------------   ----------------
2      16      2             64,000                  880
3     256      6          1,024,000               42,272   
4   65536     16        262,144,000           28,856,812
5   4.3B      40       17.2T                4.8T
So, my method takes up less disk space right up to the absurd case of listing every possible combo with 5 sets (and even 6 or 7 sets, by my calcs). StuRat (talk) 01:22, 5 February 2008 (UTC)
Agreed. Measured by disk space Venn doesn't overtake you until n = 8. Very good. --Vaughan Pratt (talk) 02:06, 5 February 2008 (UTC)

Merge ?

You don't seem to have merged the two articles I suggested, in order to reduce the proliferation of articles, but instead copied material from one of your articles into another, increasing the duplication of material. StuRat (talk) 06:22, 28 January 2008 (UTC)
You made a large number of suggestions, including "I also suggest that you merge your two articles, Boolean algebra (introduction) and Boolean algebra (logic)", and now that I've followed through on the first part of that particular suggestion (which I did without any resulting duplication---maybe you saw an inconsistent mid-merge state) you're complaining about it because it isn't one of your other suggestions. Hard man to please. --Vaughan Pratt (talk) 10:01, 28 January 2008 (UTC)
Does "merge" mean something different to mathematicians ? To me it means "combine two things together to make one", in this case, the two articles would become one. Looking again it does appear that you moved some material over, as opposed to copying it. So perhaps you are working toward the goal of a merge, as the one article is at least getting smaller. Is merging the two articles into one your goal ? StuRat (talk) 14:36, 28 January 2008 (UTC)
Sorry, I should have said "move" rather than "merge". I'm not thinking of merging the whole of Boolean algebra (logic) into Boolean algebra (introduction) because the former is not intended to be introductory but to be an area-specific article focusing on logical issues such as soundness and completeness of Boolean axiomatizations, some of which would be too advanced for Boolean algebra (introduction). One benefit of the introductory article is that more advanced articles can hit the ground running with just a pointer at the beginning to the introductory article. So the goal would be to realize more of the potential of that benefit by cutting out more of the introductory material in Boolean algebra (logic), while adding other worthwhile logic-relevant material that would be too advanced for the introduction. By the same token, as people see fit, the more advanced parts of the general introduction might usefully be moved into the area-specific articles---where exactly to draw that line can be quite unclear. For example ultrafilters are so fundamental to Boolean algebra that they arguably deserve at least a mention in an introduction, but probably not to the point of actually defining them (they are readily defined as the homomorphisms to the two-element Boolean algebra but first one must define "homomorphism"). So far I haven't mentioned them at all in Boolean algebra (introduction), in fact now that I think of it I haven't even mentioned atoms, which are what ultrafilters amount to in finite Boolean algebras and more generally complete atomic Boolean algebras. Anyone care to offer an opinion as to whether atoms in a Boolean algebra constitute appropriate introductory material? I'm sure StuRat would disapprove of them given his strong stand against Boolean algebras plural. --Vaughan Pratt (talk) 19:54, 28 January 2008 (UTC)
I have no objection to those topics per se, but I certainly do object to including them in an allegedly introductory article. As for applications, if there are any real world applications that actually use "Boolean algebras", then those belong in the inaccessible articles. However, as far as I know, all real world applications use what I call Boolean logic, therefore the applications belong there, which means an introductory article (this one and/or the one you've created). StuRat (talk) 21:46, 28 January 2008 (UTC)

"Bit vectors" vs "bit arrays" vs datatypes

Well, I had already come to the conclusion earlier that you weren't qualified to make such judgments based on your confession of ignorance about the subject matter, but this really bears that out. You're saying basically that real-world hardware designers and programmers who use bit vectors think only about individual bit vectors and never about the totality of all bit vectors of a given length such as 8 or 16 or 32 or 64 bits. It sounds like you aren't familiar with the concept of a datatype, which is exactly that notion. A datatype is a set of values and operations and relations thereon (and if you really want to get technical, more generally a whole category of such algebras and their morphisms). This is what algebraic structures (and hence algebras plural) are all about. I strongly advise you to learn more about algebras before claiming that there is no such thing and that they have no real-world applications. Most ridiculous statement I've heard all month. --Vaughan Pratt (talk) 04:23, 30 January 2008 (UTC)
Settle down. First off, I certainly am aware of bit arrays (one dimensional, two dimensional, etc.). I've never called them "bit vectors", though, that must be something mathematicians do (note that "bit vector" redirects to "bit array", which tells me that I'm using the more common term, not you). And while I certainly have performed Boolean operations on bit arrays, this is nothing I would ever have called "applying Boolean algebras". Again, that must be terminology only mathematicians use. You really need to stop this condescending practice of considering anyone in a different field than you to be "beneath you", simply because they use different terminology than you. StuRat (talk) 02:28, 31 January 2008 (UTC)
I'm gonna go with Stuie here, minus the polemics. It really wouldn't occur to me either to call that "applying Boolean algebras". --Trovatore (talk) 02:33, 31 January 2008 (UTC)
Et tu, Trovatore?  :) Are you saying you don't see a connection between algebras and datatypes? StuRat obviously doesn't but perhaps I underestimated the scope of the problem. Try typing   algebras datatypes   (without quotes) to Google. --Vaughan Pratt (talk) 11:54, 1 February 2008 (UTC)
I would say bit vectors [this is the traditional term programmers use; I just double checked by googling "bit vector" C and "bit array" C] are great if we want to explain to competent programmers what a Boolean algebra is: just an abstraction of doing &,|,~,^ in parallel on ints or longs. An introduction to Boolean algebra, even one directed to a general audience, would be incomplete without at least a brief discussion of its homonym. Otherwise people who see the countable use of the word somewhere will think that there is more than one way of doing Boolean algebra, and they will get confused. If bit vectors are also an application in the sense that the abstract approach is helpful in hardware design, then I would like to learn about this. --Hans Adler (talk) 08:14, 31 January 2008 (UTC)
Hmm, there must be two schools of thought on what to call them, then. "Vector" doesn't make sense to me since that means something with both a value and a direction, at least in physics, and a bit array doesn't have a direction, so I will continue to call it a "bit array". StuRat (talk) 12:43, 31 January 2008 (UTC)
Think "vector" in the STL sense, not the physics or manifold theory sense. --Trovatore (talk) 18:08, 31 January 2008 (UTC)
Actually the term (which is really more from hard-core programming than from mathematics) does not necessarily (or even usually) imply a dynamic data structure like the STL container type, but is equally used for fixed-length vectors, as for example for this fixed-size Java class.  --Lambiam 06:20, 1 February 2008 (UTC)
To add to all this, I'd point out to StuRat that, unlike physicists, mathematicians are perfectly happy with vectors that do not separate into value and direction; a bitvector is not unlike an element of a vector space over the two-element field. —David Eppstein (talk) 06:24, 1 February 2008 (UTC)
Sorry if I lost my cool. I'm fine with "bit array" in place of "bit vector." (That said, googling "bit vector" (in quotes) turns up 172,000 hits while "bit array" gets 113,000 hits, so I think the Wikipedia editor who decided "bit array" took priority got that backwards.) More importantly, my point about algebras as a foundation for datatypes seems to have gotten lost starting with StuRat's response that "I certainly am aware of bit arrays" which wasn't in dispute and moreover is about the application of operations to values and does not bear directly on either datatypes or algebras. If I'm the only one in this discussion who believes that algebras are foundational for datatypes and datatypes are useful then I'll go with the majority for the sake of consensus but in that case I will go on record with a strongly worded minority opinion. As a reminder my position is that the notion of algebras as providing datatypes with theoretical foundations justifies a section introducing Boolean algebras in the introductory article that begins with a link to the main article on Boolean algebras. StuRat argues the opposite. --Vaughan Pratt (talk) 11:41, 1 February 2008 (UTC)
While I don't want to argue for "bit vector" over "bit array," the claim made earlier that bit arrays are not vectors should not go unchallenged. An array of n bits is every bit (so to speak) a vector in n-dimensional space over the finite field GF(2). The origin is the all-zero bit array, the unit or basis vectors are the bit arrays with a single 1, vectors are added using exclusive-or, and the only scalars are 0 and 1 (the elements of the Galois Field GF(2)). Dot product xy of two vectors is the parity of xy, namely 0 or 1 according to whether xy has an even or odd number of ones respectively. It follows that two bit vectors are orthogonal just when their conjunction has an even number of ones (for distinct unit vectors the conjunction has zero ones which is even making them orthogonal). Linear transformations from n-dimensional to m-dimensional vector space is realized as usual with m×n matrices multiplying in the usual way, with ∧ as multiplication and ⊕ as addition (the Boolean ring basis, with 0 as the only constant since 1 is a constant for Boolean algebras but not for vector spaces over GF(2)). All the usual equational laws of vector spaces over the reals remain true for bit vectors. And yes a bit vector x does have a direction, visualizable as the straight line from the origin to x in the hypercube whose 2n vertices correspond to the bit vectors. Moreover vector spaces form a metric space with metric the Hamming distance, which satisfies the triangle inequality. I hope people won't think the worse of me for getting annoyed with those who are adamant that bit vectors are not vectors. --Vaughan Pratt (talk) 01:26, 2 February 2008 (UTC)
The reason I said above that bitvectors are "not unlike" vectors over GF2, rather than just saying that they're the same, is that the repertoire of operations one typically performs on bitvectors is larger than the usual vector addition, scalar multiplication, and inner product that one typically thinks of for mathematical vectors. —David Eppstein (talk) 01:45, 2 February 2008 (UTC)
Yes, sorry I overlooked that. n-dimensional vectors over GF(2) is one abstraction; the additive group of integers mod 2^n is another; and the Boolean algebra of n-bit bit vectors together with the shift operators forms a normal modal algebra meaning a model of normal modal logic (since the shift of a zero vector is zero and shift distributes over join (disjunction, OR)). This makes n-bit arrays simultaneously integers, vectors, and (modal) Booleans, just like relation algebras are simultaneously Boolean algebras and monoids. It should be possible for a reader of the introductory material to find their way easily into any related (possibly more advanced) material that interests them, e.g. connections of this sort with datatypes and type disciplines. --Vaughan Pratt (talk) 06:53, 2 February 2008 (UTC)
Incidentally the recent retitling of this subsection to "bit vectors vs. bit arrays" does indeed reflect what almost everyone has been addressing, however it's not the issue I raised (I apologize for the unnecessarily sharp tone) in the first paragraph of the subsection, which had to do instead with the totality of all bit arrays/vectors as a datatype and its formalization as a Boolean algebra. The second paragraph misinterpreted the first as trying to promote "bit vector" over "bit array" which wasn't the case at all, but we all got sucked into the debate over "vector" vs. "array" thereby derailing the intent of the original paragraph, which was to defend Boolean algebras plural as appropriate for an introductory article on the ground that they formalize the Boolean datatype. I've added "and datatypes" to the heading. --Vaughan Pratt (talk) 20:50, 4 February 2008 (UTC)

Where application examples belong

Getting back to the discussion of applications, and whether they belong in introductory or advanced articles, I would say they belong in the simplest article which contains all the information necessary to perform that application. If it is actually necessary to understand the material presented in an advanced article in order to define a data type, for example, then the application example belongs there. If not, then it belongs in an introductory article. StuRat (talk) 14:39, 2 February 2008 (UTC)

I don't see that. The introductory articles, by their nature, should discuss all the important applications. More advanced articles may be needed to see how those applications work. We fortunately can use links to the more advanced articles within the simpler ones. A reader looking at the introductory article needs to suspend disbelief, in a a certain sense, because such a reader will most likely not really understand what is going on. — Carl (CBM · talk) 15:38, 2 February 2008 (UTC)
You appear to be agreeing with me that applications belong in introductory articles (unless they actually require an understanding of the more advanced material). So, I don't get what the "I don't see that" means. StuRat (talk) 02:53, 5 February 2008 (UTC)
Quite right. An introduction to the internal combustion engine will probably not give all the information necessary to apply it to an automobile, but that shouldn't stop the author saying that automobiles are an application of the internal combustion engine. What I'd like to know is, what word in "A Boolean algebra is a set with operations satisfying the Boolean laws" doesn't StuRat understand? Boolean algebra does have advanced concepts but that's not one of them. As Trovatore said more than a week ago, "StuRat, I really wish you would take the trouble to learn the basics here, then maybe you could help us make them more accessible. It really isn't that hard. I mean, it can get as hard as you want, but the basic ideas aren't hard, and the only reason I can see that you don't understand them already is that you first have to unlearn some preconceived notions, like the idea that the mass-noun and count-noun senses of the term "Boolean algebra" mean the same thing." Trovatore isn't the only one who feels that way. --Vaughan Pratt (talk) 01:30, 5 February 2008 (UTC)
Vaughan, your indentation level seems to indicate that the "quite right" is a response to me. Am I correct ? Also, if you wish to repeat Trovatore's statement, you should repeat my response, as well, which explains exactly why I don't want to do that. StuRat (talk) 02:53, 5 February 2008 (UTC)
Yeah, frankly that's wasn't one of the more convincing arguments you've ever given. You claim to be afraid that learning this forbidden knowledge will somehow make you unable to communicate with your desired audience. It really doesn't work that way, and I'm not very convinced that you even think it does. --Trovatore (talk) 03:07, 5 February 2008 (UTC)
I certainly am convinced of this, when I see what the mathematicians here actually think is accessible to a general audience. I'm utterly amazed that they actually expect that the obscure, opaque technical language they use will actually be understood by all. I guess it's "ivory tower" syndrome, something I very much want to avoid. StuRat (talk) 03:18, 5 February 2008 (UTC)
To be blunt, I think that's pretty silly. Knowing what the terminology means, you can use it or not use it, but you'll be more likely to see what other participants are talking about, and you'll be less likely to commit these clanging non-sequiturs that mar otherwise sensible discourses. Like the one about "Boolean algebras" being a construction from other-than-American English. --Trovatore (talk) 03:34, 5 February 2008 (UTC)
It would be nice if mathematicians could "just turn it off" and talk like normal people, but the evidence proves otherwise. Vaughan was apparently actually trying to be clear when, in the introduction section of his "introduction" article, he included this little gem: "The laws of Boolean algebra can be defined axiomatically as the equations derivable from a sufficient finite subset of those laws, such as the equations axiomatizing a complemented distributive lattice or a Boolean ring, or semantically as those equations identically true or valid over {0,1}. The axiomatic approach is sound and complete in the sense that it proves respectively neither more nor fewer laws than the validity-based semantic approach". That's ample evidence that a mathematics degree interferes with communication to non-mathematicians. StuRat (talk) 04:06, 5 February 2008 (UTC)
Even if it is in fact the case that spending decades in heavy-duty research in mathematics can impair one's judgment about what a more general audience can follow -- which I concede is not impossible on its face -- it's not going to happen to you from spending a little time figuring out what a (relatively) simple definition is talking about. Don't worry, I promise they're not going to shove a math Ph.D. at you just for that. --Trovatore (talk) 04:21, 5 February 2008 (UTC)
It's all a matter of degree. If I knew what a "complemented distributive lattice" means, then I might not see it as too complex for a general audience any more, even though it still is. StuRat (talk) 04:45, 5 February 2008 (UTC)
From time to time StuRat is right. I toned down the lead of Boolean algebra (logic) to assume less background, even though it isn't Boolean algebra (introduction) where the lead indeed needs to be simple, which it was from the outset. --Vaughan Pratt (talk) 06:44, 5 February 2008 (UTC)
Testing StuRat's hypothesis (that if he knew more about Boolean algebra he would explain it less clearly), what about the converse? If he knew even less about Boolean algebra would he explain it more clearly than in Boolean logic? --Vaughan Pratt (talk) 06:51, 5 February 2008 (UTC)
To a certain point, yes, but you don't want to know less than you're trying to explain to your audience, any more than you want to know more than you're trying to explain to your audience. This is why I haven't edited the articles which are about Boolean algebras (plural). Ideally we should have only mathematicians edit those articles (other than minor issues like grammar fixes) and only non-mathematician editors working on Boolean logic. In the case of the Boolean logic article, it might also be helpful to have someone completely unfamiliar with all the concepts review it for accessibility, as they might provide some insight which I lack. I wouldn't go so far as to say that they should edit it, however, as some knowledge of the material is needed to do a good job there. Similarly, I could point out portions of the BAs articles which are inaccessible, but shouldn't edit them. I don't think I will even do that, however, as the authors don't seem to appreciate my efforts at improving accessibility. StuRat (talk) 14:01, 5 February 2008 (UTC)
StuRat, you do want to know more than you want to explain to your audience. Or anyway you should want to. If you know only up to the borders of what you're explaining, and no further, you're going to make errors at the edges; it's inevitable. You need a margin around the outside where you understand the connection to the bigger picture. This is really really fundamental. --Trovatore (talk) 19:44, 5 February 2008 (UTC)
You seem to be talking about the connection from Boolean logic to Boolean algebras. Since I don't include that in this article (as I don't think it's appropriate material for an introductory article on BL), this really isn't an issue. So far I haven't seen anyone other than mathematicians who think that's essential. StuRat (talk) 21:30, 5 February 2008 (UTC)
I don't know what Trovatore is talking about, but it definitely applies to the fundamental flaws in your article that I have already told you about. They could be easily avoided if you had a bit more of an overview. If you want to explain to visitors the way from your village to the next one, is it really reasonable to actively avoid ever climbing the little hill that overlooks the entire path, and to avoid visiting the little town beyond the next village at least once? That's what you are arguing here. And we are just not buying it. --Hans Adler (talk) 21:39, 5 February 2008 (UTC)
Hmm, I'd rather take the scenic foot path to the next village than have to go to the big city and deal with all the hostile people there. And I wouldn't expect the hostile city-goers to agree, as they are, after all, from the city, not the villages, and, as such, are utterly incapable of seeing things from a villager's perspective. StuRat (talk) 23:10, 5 February 2008 (UTC)
For all your talk about other people being unable to see things from certain perspectives, you are the only one here who is refusing to even try. —David Eppstein (talk) 23:54, 5 February 2008 (UTC)
The difference is that I'm not trying to edit articles aimed at mathematicians, so I don't need to understand their perspective. The mathematicians, on the other hand, do seem to insist on editing articles written for a general audience, which requires a general audience perspective, which, unfortunately, they lack. StuRat (talk) 00:44, 6 February 2008 (UTC)
Sorry, that's not going to cut it. We're trying to find a global solution here, not a solution for one article. You don't get an article that's your own private sandbox; that's not the way WP works. If you want to influence the global outcome -- and I think you should; we do need your perspective -- then you need to know at least something about the global issues. --Trovatore (talk) 01:19, 6 February 2008 (UTC)
My own personal sandbox: No. Written for and by a general audience: Yes. That's the purpose of this article. It has been edited by several others since I restored it here. It was also edited by many before the restore, most of which were able to keep it aimed at a general audience (Vaughan, however, was not able to do this and made it completely inaccessible, necessitating the restore under a different name). The only global issue I need to consider is that this article is for a general audience and the rest are not. StuRat (talk) 05:09, 6 February 2008 (UTC)
No, you are simply wrong about that. We are going to have a global solution. You can be part of it or not. If you want to be part of it you have to know what's going on. --Trovatore (talk) 06:38, 6 February 2008 (UTC)

Propositional logic

(←) I didn't realize when I looked at some other propositional-logic related topics today that this discussion was going on. I think that it might be more productive to take a broader viewpoint on how things are arranged, rather than focusing on splits and merges two articles at a time. As this page shows, there is plenty to see from up high. — Carl (CBM · talk) 20:01, 28 January 2008 (UTC)

StuRat's use of the term "PhD-level"

OK, so this is an approximate term, as those with degrees in mathematics may encounter these concepts earlier while those in most other fields will never encounter these concepts at all. Perhaps a longer way to describe such concepts would be "not accessible to a general audience". This includes both topics which can be made accessible to a general audience, like those I address in this article, and "those topics which are not accessible to a general audience and can likely never be made accessible to a general audience". Since these terms are quite lengthy, I will continue to use the term "PhD-level" as a short way to convey the advanced level of the material. StuRat (talk) 15:39, 26 January 2008 (UTC)

Boolean algebra task force started

I am organizing a group of editors to discuss the overall layout of our articles on Boolean algebra, propositional logic, and their applications. As the task force page shows, we have a complicated spiderweb of articles on the subject. The goal of the task force is to work towards a proposal on how to organize this material across various articles. In addition to benefiting our readers, a clear structure may help ease tensions about material being omitted or being too difficult. Everyone is invited to join the discussion at WT:BATF. — Carl (CBM · talk) 19:10, 28 January 2008 (UTC)

Carl's organization page has the benefits of neutrality (not hosted by the talk pages of any of the disputed articles) and the big picture (all relevant topics neatly collected and alphabetized, showing that the problem goes far beyond merely minimizing the set of articles of the form "Boolean algebra (subtopic)"). Seems to me a great forum for those who've participated in the Boolean algebra debates long enough to be thoroughly familiar with the issues (and there have been a lot of issues!). One strategy would be to start grouping the many extant articles listed on Carl's page as a step towards understanding the extent of the overlap and the appropriate connections between the groups. One candidate target might be a single introduction feeding into an unspecified number of articles on subtopics of Boolean algebra such as its structures, axiom systems (completeness), complexity theory, connections with propositional logic, close neighbors such as Heyting algebras and De Morgan algebras, etc., suitably grouped to optimally minimize the size and number of articles. The Stanford Encyclopedia Article on Boolean algebras by Don Monk is pitched at a very high level even by the standards of Boolean algebra (structure), suggesting that there is room for the latter to serve as an introduction in its own right to yet more advanced subtopics of the kind Monk addresses. --Vaughan Pratt (talk) 20:30, 28 January 2008 (UTC)

Let's continue this discussion at WT:BATF. I'll copy your comment there and respond. — Carl (CBM · talk) 20:40, 28 January 2008 (UTC)

Article considered substandard

I'm going to be my blunt Australian self here, for which I apologize in advance. I found writing this incredibly hard. On the one hand it may be inappropriately harsh for a Wikipedia talk page, on the other I've had quite a few months to think about it and after a great many exchanges with StuRat my opinion has firmed up to the point where I feel pretty confident that it's close to correct.

The article Boolean logic is a great illustration of the point the above commenters are making about those who write up to the limit of their knowledge without any understanding of what lies just beyond. The result is like an amateur singer trying to reach their very highest note---painful to experience. Here's the pain I experienced when I first read this appallingly bad article and realized that local patches to it weren't going to help much, necessitating starting from scratch.

0. The lead conveys nothing about Boolean algebra except a snippet of its history. The only sentence with anything to say about Boolean logic itself is "Boolean logic is a complete system for logical operations." This sentence remains true with any of hundreds of words in place of "Boolean," such as "predicate," "modal", "quantifier-free," etc. and so conveys nothing not already present in the title "Boolean logic" itself.

1. One would hope that Section 1 would make up for it by explaining what Boolean logic is, but instead it is a two-sentence heads-up promising an explanation of "set logic" and Boolean logic (the only appearance of the word "Boolean" in sections 1 or 2).

2. Section 2 opens with "Let X be a set." This is the standard caricature opening of a dry mathematical article. However there are only two subsequent appearances of X, namely "The universe is the set X," and then much later, "X < 2". So X serves no purpose at all and could be eliminated.

Section 2 treats membership and nonmembership , the empty set , the set operations NOT, OR, and AND (set operations?), and concludes with the subset and proper-subset relations and their converses . Either this is the promised material on "set logic" if there's such a thing or we've made the promised transition to Boolean logic; in either case membership and subset are apparently core notions of the subject.

3. Section 3, Example, exercises the concepts of section 2. Still no explicit definition of "Boolean logic" but in subsection 3.1 on syntax ("chaining operations together") we encounter the word "Boolean" for the first time in the adverbial phrase "While at most two sets are joined in any Boolean operation." "Boolean operation" has not previously been defined, and never is. The rest of the Example section seems to be about the same sort of syntactic issues that arise not just in algebra in general but even in arithmetic in elementary school. How is this part of the example, and what is it doing in a Boolean logic article if it applies to all expressions?

4. Section 4 begins "Let's define symbols for the two primary binary operations as (logical AND/set intersection) and (logical OR/set union), and for the single unary operation / ~ (logical NOT/set complement)." What this seems to be saying is that it will be convenient at this point to introduce new symbols . What should be said here instead is that these are the standard, or at least commonly used, symbols for the Boolean operations (a term that needs to be defined at some point). But even this is wrong since are the symbols for abstract lattice operations while are the symbols for concrete set operations, whereas the article implies that and are synonyms and likewise and . My understanding of the author's position on this from what he's written above is that those insisting on this unnecessary distinction between and know too much about Boolean algebra to be capable of explaining it clearly.

Then follows a sound and complete axiomatization of Boolean algebra, with no accompanying explanation. This is like reproducing Maxwell's equations perfectly, with no hints as to what's going on, and expecting readers to figure out the equations on their own. Since the author has already said that he knows nothing beyond what he's written, one has to infer that he does not understand the roles of the individual axioms. In particular he has said repeatedly that he does not know what a Boolean algebra is and that this knowledge would handicap him, whence he is unaware that he has just defined the concept. He also presumably has no idea how these laws are used to put terms in one or another normal form.

5. Section 5 gives two examples of truth tables, makes the claim that these generalize, and that they have applications in logic. No definition, properties, or other explanations of truth table are offered. Definition purely by example is not exactly outstanding exposition.

6. Section 6 is dedicated to alternative symbols for the Boolean operations. This is good, though it's not clear why it needs a whole section of its own.

7-9. Sections 7-10 concern applications. This is good, not to mention thorough, in fact the section on "English language use of Boolean terms" (another undefined concept) is longer than that on "set logic."

On the plus side the spelling and grammar are correct. On the minus side, nowhere does the article Boolean logic say what "Boolean logic" is, though apparently set membership and subset/superset are among its concepts. This article has to be among the worst expositions of a mathematical subject on Wikipedia. The author's explanation is that it is targeted to computer scientists. What is it about computer scientists that makes it easier for them to follow incoherently organized writing? As a computer scientist should I be insulted or flattered?

I'm not saying that others including myself don't make errors of exposition from time to time. However they don't occur with anything like the density in the article Boolean logic, but rather as isolated instances easily fixed when pointed out. Here the exposition is so incoherent throughout as to be impossible to fix by rewriting the occasional sentence. The core problem is that there is no overall plan of exposition within which to judge the efficacy of local repairs. Nothing short of a wholesale rewrite starting from a well-organized plan can fix this article.

Particularly mystifying is that he can work out a table like the one above on disk space, including the extrapolation to 6 and 7 (and probably 8) sets, with not a single error (if one accepts the 880 byte number priming the table). He's not at all error-prone, he just doesn't seem capable of pulling together a coherent organization plan. But what I really have trouble believing after seeing that perfect table is that he couldn't, with just a little willingness and effort, understand "A Boolean algebra is a set with operations satisfying the Boolean laws." How could he list those laws perfectly in his article and not understand their significance to Boolean algebras?

At this point I would be interested in hearing from those who feel the article Boolean logic is a valuable exposition of the subject that Wikipedia can be proud of. I'll be happy to engage with any supporters save its author, with whom I've gone around in sufficiently many circles above that every possible relevant issue should have been addressed one way or another by now. --Vaughan Pratt (talk) 12:00, 6 February 2008 (UTC)

I've got to go to work now, but will respond to these issues later, and change the article where needed. One comment so far, though, is that there is a link on truth table, which will take the reader to an article explaining what a truth table is, etc. Since this article isn't actually about truth tables, I don't feel we need to go into a discussion of them here, that's what the article at the link is for. StuRat (talk) 15:40, 6 February 2008 (UTC)
About formal definitions: These may be appropriate for articles aimed at mathematicians, but they are problematic for articles aimed at a general audience, since the formal definitions necessarily refer to concepts unfamiliar to the reader. If links are provided in an attempt to define those concepts, they, in turn, use formal definitions which rely on terms unfamiliar to the reader. So, unless the reader has the time to follow all the links, and all of the subsequent links, etc., (which would take several years and by which time they will have themselves become a mathematician), those formal defs are of no value to a general audience and only serve to obscure the topic. I therefore much prefer demonstrating a concept, using real world examples whenever possible, over formal definitions. StuRat (talk) 16:32, 8 February 2008 (UTC)
Examples are helpful, of course. But I don't see why you promote lobotomizing our articles so they only have vague illustrative examples and no actual technical detail. What's wrong with having articles that can be read at both an introductory nontechnical level by skipping the technical sections and that also provide relevant content to more sophisticated readers? —David Eppstein (talk) 17:42, 8 February 2008 (UTC)
I would have actually preferred to have a single article which starts out basic and then proceeds into the more complex material. However, when this has been tried in the past, all the introductory material was later taken out and replaced with material which was completely inaccessible to a general audience. That's how we ended up with this article aimed at a general audience and (now) at least 3 articles aimed at mathematicians. Since we have the complex material covered quite well with all those articles, I see no need to cover it yet again in the one article aimed at a general audience (this one). StuRat (talk) 10:27, 10 February 2008 (UTC)
How do you reconcile the mathematician's belief that informal definitions obscure the subject matter with your belief that formal definitions obscure it? If we accept that both are right we have the interesting situation where greater precision simultaneously increases and decreases clarity. Something's gotta give. --Vaughan Pratt (talk) 01:56, 10 February 2008 (UTC)
The mathematician's belief is correct when the audience is mathematicians, while my belief is correct when the audience is non-mathematicians. Different audiences demand different approaches. StuRat (talk) 10:27, 10 February 2008 (UTC)
Unless you're claiming mathematicians can't understand articles written for a lay audience, there's an asymmetry here. Granted laypersons will have trouble with heavy math, but why should mathematicians be unable to judge articles written for laypeople? --Vaughan Pratt (talk) 03:35, 12 February 2008 (UTC)
This is the same thing I've been saying all along; it's an absolutely fundamental concept of communication that you need to tailor your message to match the intended audience. The higher your level of education on any topic, the less able you are to relate to the time when you didn't know the material, and understand what is needed for someone without that high level of understanding to grasp the concepts. A case of this is formal definitions which use terms the target audience won't understand (possibly with links to more formal defs using more terms the reader won't understand). Someone with the same background as the target audience will know that the audience won't understand those terms, while, to mathematicians, it seems like everybody must know those terms, because they, and their associates, use those terms constantly.
As an example of this effect, my dad once attended a lecture by Albert Einstein at Princeton. My dad isn't a physicist, but is quite intelligent (he was a chemical engineer who produced crystals used in laser applications). Nonetheless, he said he couldn't understand anything that Einstein taught. Had he attended a lecture by a high school physics teacher, instead, he probably would have understood everything. If we continue with the example of the atomic model, I wouldn't attempt to teach S, P, D, and F orbitals, or quantum mechanics, to beginning chemistry students. All that they need to know about electron shells is how many electrons are in the valence shell. Even if they understood those more advanced concepts, it would take away from time that could be used to teach them actual introductory chemistry skills, like pH measurements. StuRat (talk) 16:36, 12 February 2008 (UTC)
It is quite on the cards that you have your own internally consistent picture of Boolean algebra. Unfortunately you've been doing a miserable job of conveying it, for want of any overall plan in your article. The upshot is that your informality leaves the reader, including those well versed in the art, in the dark as to the details of whatever that picture might be. With a little more formality the experts might be able to figure out what your private picture of Boolean algebra is and explain it better than you've been able to. Meanwhile we've settled for explaining the more commonly accepted picture, in the spirit of Wikipedia. --Vaughan Pratt (talk) 01:56, 10 February 2008 (UTC)
Again, whether the "experts" are able to figure out my approach isn't relevant, as this article isn't written for them, it's written for a general audience. StuRat (talk) 10:27, 10 February 2008 (UTC)
So what exactly are you saying here? That the more mathematics one knows the harder it becomes to follow an article? Or just harder to follow elementary articles? I would have thought that if the experts can't follow you what hope is there for the average reader? --Vaughan Pratt (talk) 08:39, 14 February 2008 (UTC)
There are two possibilities for what you are trying to say here:
1) "Experts are incapable of learning anything about Boolean logic from this article." This is probably quite true, as they would already know all the material covered in this article, so there will be nothing new for them here. This is to be expected when experts on a topic read introductory material.
2) "Experts believe that novices will be incapable of learning anything about Boolean logic from this article." Here is where their bias comes into play. As mathematicians already know the material (and presumably were already mathematically gifted even before they knew the material), they don't appreciate the slow approach using real world examples but would much prefer that articles on material they already know proceed directly to formal definitions and how this material relates to more complex topics in which they have an interest.
Quite simply, experts are only qualified to determine if articles aimed at them hit the target audience, while only novices are qualified to determine if articles aimed at them hit the target audience. StuRat (talk) 16:09, 14 February 2008 (UTC)