From "Logic Made Easy", by Deborah J. Bennett (c. 2004): "A question from the national teachers' examination, given in 1992 by the Educational Testing Service (ETS), is shown in Figure 2. Of the 25 questions on the mathematics portion of this examination, this question had the lowest percentage of correct responses. Only 11 percent of over 7,000 examinees could answer the question correctly [...]" Figure 2: Given: 1. All education majors student teach. 2. Some education majors have double majors. 3. Some mathematics students are education majors. Which of the following conclusions necessarily follows from 1, 2, and 3 above? A. Some mathematics students have double majors. B. Some of those with double majors student teach. C. All student teachers are education majors. D. All of those with double majors student teach. E. Not all mathematics students are education majors. --- Following is a dialog with logicagent (http://subbot.org/logicagent): --- c:\controlbot\controller\logicagent>logicagent.rb I have loaded C:/controlbot/controller/logicagent/logicagent-api.yaml. > reset graph Okay, I have reset the graph. > All education majors student teach. Okay, All education majors student teach. > Some education majors have double majors. Okay, Some education majors have double majors. > Some mathematics students are education majors. Okay, Some mathematics students are education majors. > Do some of those with double majors student teach? I have no knowledge that some of those with double majors student teach. > double majors are had by some education majors Okay, double majors are had by some education majors. > some education majors are all education majors Okay, some education majors are all education majors. > some of those with double majors are double majors Okay, some of those with double majors are double majors. > Do some of those with double majors student teach? Yes, some of those with double majors student teach. > Why do some of those with double majors student teach? some of those with double majors student teach because: some of those with double majors are double majors, and double majors are had by some education majors, and some education majors are all education majors, and all education majors student teach . > --- Bennett says on page 18: "The correct answer, B, logically follows from the first two given statements". So the bot answers correctly, after providing three additional statements. The first additional statement, "double majors are had by some education majors", is the passive form of the given statement, "Some education majors have double majors." It could be added automatically, by a routine that added "Phrase2 is had by Phrase1" whenever the bot sees "Phrase1 has Phrase2", for example. The second additional statement, "some education majors are all education majors", is meant to give the bot some notion that "all" includes "some". As Lewis Carroll says in "Symbolic Logic", BK. II, CH. III, Paragraph 3: A Proposition of Relation, beginning with "All", asserts (as we already know) that "All Members of the Subject are Members of the Predicate". This evidently contains, as a part of what it tells us, the smaller Proposition "Some Members of the Subject are Members of the Predicate". Thus, the Proposition "All bankers are rich men" evidently contains the smaller Proposition "Some bankers are rich men." So I could have added instead: "Some education majors student teach." The effect is the same. (You can check this by telling logicagent to "forget that some education majors are all education majors", then "some education majors student teach", then re-asking "do some of those with double majors student teach?") The second additional statement could be automated (by adding "some ___ are ___" everytime the bot learns "all ___ are ___"). The third additional statement, "some of those with double majors are double majors", is meant to give the bot some linguistic knowledge, since the two terms seem to be used synonymously here. It is not immediately obvious to me how this statement could be added automatically. So logicagent is able to correctly answer this rather difficult logic question, after the three statements described above are added. Two of those additional statements can be added automatically, and it is hoped the third would be picked up by the bot from experience. ___ As a further illustration of the bot's capabilities, let me ask it if the last statement in Figure 2 is true: > Are "not all mathematics students" "education majors"? I have no knowledge that not all mathematics students are education majors. I have to include the quotation marks in the question because I can't currently split apart the terms "not all mathematics students" and "education majors". Now I'll help by adding a statement similar to one of the ones I added above: > all mathematics students are some mathematics students Okay, all mathematics students are some mathematics students. Still it cannot confirm that "not all mathematics students are education majors." You are free to add a statement that will make the bot inconsistent: > Not all mathematics students are all mathematics students Okay, Not all mathematics students are all mathematics students. > Are "not all mathematics students" "education majors"? Yes, not all mathematics students are education majors. > why are "not all mathematics students" "education majors"? not all mathematics students are education majors because: not all mathematics students are all mathematics students, and all mathematics students are some mathematics students, and some mathematics students are education majors > forget "not all mathematics students are all mathematics students" Okay I have forgotten not all mathematics students are all mathematics students. > why are "not all mathematics students" "education majors"? I have no knowledge that not all mathematics students are education majors In the future, I hope to make the bot detect contradictory statements such as "not all ___ are all ___", and take some action - ask whether to remove them, for example.