0
$\begingroup$

I know a version of this question has been answered here. However my question is slightly different.

Consider the first order logic statement:

$$ \exists x(\varphi(x) \implies \forall x \varphi(x)) $$

which quantifies over $x$ twice. I understand that intuitively the variable name of the internal quantification can be changed but my question is about how this can be understood in terms of the formal semantic interpretation of first order logic (as show, for example, in Enderton).

Consider any first order model $\mathcal{L}$ and variable assignment $v:V \to |\mathcal{L}|$. Then

$$ \begin{align} &\vDash_{\mathcal{L}} \exists x(\varphi(x) \implies \forall x \varphi(x))\ \ [s]\\ \text{ iff for some $d \in |\mathcal{L}|$, } &\vDash_{\mathcal{L}} \varphi(x) \quad \ \implies \forall x \varphi(x) \ \ [s(x|d)]\\ \text{ iff for some $d \in |\mathcal{L}|$, } &\not\vDash_{\mathcal{L}} \varphi(x) \ \ [s(x|d)] \ \text{ or } \ \forall x \varphi(x) \ \ [s(x|d)]\\ \text{ iff for some $d \in |\mathcal{L}|$, } &\not\vDash_{\mathcal{L}} \varphi(x) \ \ [s(x|d)] \ \text{ or for any $e \in |\mathcal{L}|$} \ \vDash_{\mathcal{L}} \varphi(x) \ \ [s(x|d)(x|e)]\\ \end{align} $$

Here the function $s(x|d)$ is defined as

$$ s(x|d)(y) = \begin{cases} d \qquad \text{ if }y = x \\ y \qquad \text{ if } y \neq x \\ \end{cases} $$

I just don't get how the formal logical interpretation reconciles the clashing variables in the last line where you have $[s(x|d)(x|e)]$ i.e. a function that sends $x$ to $d$ and then $x$ to $e$. Because $s(x|d)$ will have no $x$'s, will the second portion not do anything?

Note: I just expanded definitions here and nothing else. No interpretation or reasoning of mine has been applied yet.

Please let me know if I can clarify anything.

1 Answers 1

1

The function $s(x|d)(x|e)$ does not "send $x$ to $d$ and then $x$ to $e$". That doesn't even make sense as it is supposed to be a function. Instead $s(x|d)(x|e)$ just maps $x$ to $e$. How did I work this out? Well $$s(x|d)(x|e)(x) = (s(x|d))(x|e)(x)$$ So just check the definition: What does $(s(x|d))(x|e)$ do to an input? Well, it checks whether that input equals $x$, if it does, it outputs $e$, otherwise it goes and checks what $s(x|d)$ does to that input. As $x=x$ you just spit out $e$.

The semantics works fine.

  • 0
    Ah you're right. For some reason I was thinking it would map the $x$ to $d$ first. Clearly need sleep. Thank you!2017-02-17