One confounding variable might be that strange, arbitrary rules cause too much cognitive dissonance (distracting, tangential thoughts) for the test subjects to apply their reasoning skills effectively. When the the rule is more like something one would find in the real world, people would be free to concentrate on the reasoning.<p>We therefore need to think of a 'real life' rules that's equivalent but does not involve cheating... like<p><pre><code> If you became a lawyer, you went to law school.
If you didn't go to law school, you're not a lawyer.
Test:
[Is a lawyer] [Is a doctor] [Went to medical school] [Went to law school]
</code></pre>
Actually, looking at it, there seems to be something counter-intuitive about the phrasing anyway. We usually would clarify by saying something like 'all lawyers started in law school, but not all law students managed to become practicing lawyers.' All calls to the subclass were dispatched from the parent, but the parent could have dispatched the call to a different subclass as it is polymorphic.