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.