I am in need of some clarification relating to the rules mentioned. I am doing two different courses on Logic (Philosophy / Computer Science departments) and unforunately they use slightly different vocab for different words.
I was working on the proof for $\exists x\,(x=b\;\land\; P(x))\vdash P(b)$, where $b$ is understood to be some term and $x$ is some "variable". I first wrote the following proof
$\begin{array}{ccc} 1 & &\exists x\,(x=b\;\land\; P(x)) &\text{Premise}\\ 2 &|& b=b\land P(b) &\text{Assumption}\\ 3 &|& P(b) &\land\text{-elimination (2)}\\ 4&&P(b) &\exists\text{-elimination (2-3)} \end{array}$
I understand the $\exists$-elimination rule comes with the side condition that the variable you "assume" exists must be free - but I'm not sure the precise condition. The definitions for this course are:
A variable $x$ is free in $\phi$ if it is not within the scope of a quantifier.
A term $t$ is free for $x$ in $\phi$ if nowhere in $\phi$ does an $x$ variable occur within the scope of any variable that occurs in $t$.
$$ \frac{\begin{array}{ccc} &&\phi[x_0/x]\\ &&\vdots\\ \exists x\phi&&\psi \end{array}}{\psi}\exists\text{-elim} $$ I thought the condition was that we needed $b$ to be free for $x$ in $\phi$, but this seems too easy? The philosophy department only put requirements on $x$ not being a free variable in $\psi$ and the assumptions needed "along the way" in the $\vdots$-bit, and even says that $x$ can be a free variable in $\phi$, totally contradictory to the computer science department...!
My questions are
Is my deduction valid as it is?
What are the precise side conditions of the $\exists$-elim and $\forall$-intro rules, using the definitions I mention?
Are there any side conditions on the $=$ rules? My lecture notes don't mention any but I thought they did? Specifically this one:
$$\frac{t_1=t_2\quad \phi[t_1/x]}{\phi[t_2/x]}=\text{-elim}$$ for $t_1,t_2$ terms, $x$ a variable.
Thanks!
(edit, I meant to say: the Term* you "assume" exists [...])