I'm trying to teach myself logic with Nicholas J.J. Smith's Logic: The Laws of Truth. Right now, I'm working through the chapter on General Predicate Logic, and am having a little bit of difficulty in working out trees that involve the universal quantifier. Here's problem 12.3.1.2.viii:
∀x∀y(∃z(Rzx ⋀ Rzy) → Rxy)
∀xRax
∴ ∀x∀yRxy
I got into 20-something steps three times before I gave up and checked Smith's answer key. His answer is neat and sensible. I don't have any difficulty understanding it as an explanation. What I'm finding difficult is figuring out how you know when to apply which name to the universal quantifier.
Here's how the tree starts:
1. ∀x∀y(∃z(Rzx ⋀ Rzy) → Rxy)
2. ∀xRax
3. ¬∀x∀yRxy
…
7. ¬Rbc (addressing the negation in 3, & then introducing names)
So far, no problem. I then did something a little differently from Smith, which seems harmless enough, which is that I applied the names a, b, & c to the universal quantifier in 2.
8. Raa
9. Rab
10. Rac
Smith does very nearly the same thing later. The change in order doesn't seem important. But what is important is how Smith treats the universal quantifier in 1: He begins by assigning it the name b, and never has to go any further.
11. ∀y(∃z(Rzb ⋀ Rzy) → Rby)
And then he assigns the name c to the universal quantifier in 11:
12. ∃z(Rzb ⋀ Rzc) → Rbc
Which allows then splits into two branches which very quickly close off.
My problem was that I went through and applied each name to each universal quantifier systematically, rapidly developing a fairly unwieldy tree. My question, then, is: How do you know where to begin in assigning universal quantifiers? Do you just develop a sense/an eye for what kinds of patterns might develop? Is this just a matter of experience? Or is there a method?