OpenLogicProject / OpenLogic

An open-source, customizable intermediate logic textbook
http://openlogicproject.org/
Creative Commons Attribution 4.0 International
1.04k stars 237 forks source link

Some mixed proposals #289

Closed feffemannen closed 2 years ago

feffemannen commented 2 years ago

A few typos and proposed changes. Main changes:

rzach commented 2 years ago

Thanks, these are all super useful and well taken. The exception is the stuff about removing the use of the conventions about A(x) and A(t) in the ND chapter. The convention about what A(t) means is explained at the end of the section on substitution. We use that convention practically everywhere after that section. I think it would be odd to do it here...at the very least we'd also have to change it in all the other proof system chapters. I could be persuaded to add a paragraph of explanation that makes explicit what instances of, say, \forall E count as correct though (and also in the other proof system chapters). What do you think? Do you gave strong feelings? Why the proposed change?

rzach commented 2 years ago

I'm thinking something like this paragraph added at the end of the section:

Recall the convention that when $!A$ is !!a{formula} with the !!{variable}~$x$ free, we indicate this by 
writing~$!A(x)$. In the same context, $!A(t)$ then is short for~$\Subst{!A}{t}{x}$.  So we could also write 
the $\Intro\lexists$ rule as $\Subst{!A}{t}{x} / \lexists[x][!A]$.  Note that $t$ may already occur  in~$!A$, say, 
$!A$ might be $P(t,x)$.  Thus, inferring $\lexists[x][\Atom{\Obj P}{t,x}]$ from $\Atom{\Obj P}{t,t}$ is a 
correct application of~$\Intro\lexists$---you may ``replace'' one or more, and not necessarily all, 
occurrences of~$t$ in in the premise by the bound !!{variable}~$x$.  However, the eigenvariable conditions 
in $\Intro\lforall$ and $\Elim\lexists$ require that the !!{constant}~$a$ does not occur in~$!A$. So, you 
cannot correctly infer $\lforall[x][\Atom{\Obj P}{a,x}]$ from $\Atom{\Obj P}{a,a}$ using~$\Intro\lforall$.

How's that?

If that's as good as your proposed change to the quantifier rules, then feel free to make that change and push to update the pull request. That'll save me cherry-picking the other commits from the pull request. You can use git reset <path> to undo the changes to content/first-order-logic/natural-deduction/quantifier-rules.tex and then copy (something like) this plus your last paragraph back into the file.

feffemannen commented 2 years ago

That's completely fine with me. Thanks!

Hopefully I got the revert and new commit correct, please check!

rzach commented 2 years ago

Wait what was wrong with the original TM? (The doubler machine always leaves blanks at the beginning--except if the input is blank, but that's another problem.)

feffemannen commented 2 years ago

It halts in state q_9. And even if you modify it with a transition from q_8 to q_10 and an extra transition from q_10 to q_11 (when reading a stroke) it will still write one stroke too much to the tape.