-1

In natural deduction as far as I know after an $\exists\text{E}$ the resulting symbol is bound to a subcontext preventing us from a subsequent $\forall \text{I}$, then how, if in any way, one introduces new symbols? It seems to me that we can write whatever sentence we want with whatever variable we want, but this way the formulation of these quantification rules hinges on meta-theoretical side notes (like a variable being arbitrary or being bound to a context).

Wouldn't it be easier to require a separate type of "sentence" like "let X" or "c:P(c)" a sort of device of variable creation, where it's truth value determines whether we may use the variable or not (the former would default to true, whereas the latter would be a consequence of $\exists x:P(x)$)?

Adam
  • 686
  • The question is unclear... the natural deduction rules are specified with certain "restrictions" (like that for $\exists$E you are alluding) in order to prevent "unwanted" result (in other words, in order to have sound rules). – Mauro ALLEGRANZA Jul 26 '16 at 15:42
  • It is not that variables "are introduced" ... The E-rules "eliminate" quantifiers, like in the $\forall$ case: from $\forall x (x \ge 0)$, derive $0 \ge 0$. – Mauro ALLEGRANZA Jul 26 '16 at 15:45
  • In the case of $\exists x:P(x)$ we can derive that $P(c)$ for some new variable $c$, that process seems like an introduction to me, because from now on we can use $c$ in a formula – Adam Jul 26 '16 at 15:51
  • Yes; the idea is: if we know that there exists "something" that is a $P$ (i.e. $\exists x P$), then we are licensed to introduce a new "name" for it: let it $c$ and then we know that $c$ is a $P$ (i.e. $P(c)$). $c$ must be "new" to the derivation in order to avoid mistakes. – Mauro ALLEGRANZA Jul 26 '16 at 15:53
  • The restriction on the $\exists$E rule is that the $y$ var used in the subderivation is not free in the conclusion $\psi$ of the rule; this means that we cannot use the rule to derive $P(y)$ from $\exists x P(x)$. If we do it, we can subsequently apply $\forall$I to conclude with $\forall y P(y)$ and this is obviously wrong ! – Mauro ALLEGRANZA Jul 26 '16 at 15:58
  • that's why I would add a new "predicate" (E) meaning "being introduced by $\exists\text{E}$", change the rule of $\exists\text{E}$ to $\exists x:P(x) \implies (P(c) \text{ and } $E$(c))$ (no new subcontext is needed) and expand the requirements for $\forall \text{I}$ with $\neg$E$(c)$ – Adam Jul 26 '16 at 16:39
  • In mathematics, there are only two ways to introduce new free variables: (1) In an assumption, or (2) by $\exists E$ (Existential Specification). In philosophy, you can also use $\forall E$ (Universal Specification). There is no need to introduce new rules of inference. The restrictions on $\exists E$ are quite sufficient to avoid any problems. – Dan Christensen Jul 26 '16 at 22:21
  • Your new "predicate" $E(c)$ is an abomination from a logical point of view, since its meaning depends on the form of $c$ and not on its denotation. So your "wouldn't it be easier ..." question requires much more work on your part. – Rob Arthan Jul 26 '16 at 22:30
  • @DanChristensen: There are more than ten different systems of natural deduction alone and they handle existential elimination in different ways. It has nothing to do with philosophy either. – user21820 Jul 27 '16 at 01:18
  • @RobArthan Thanks for the info. In mathematical proofs, I have only ever seen one way to handle existential elimination: Just drop the quantifier and replace the previously quantified variable with a new, previously unused name. – Dan Christensen Jul 27 '16 at 15:44
  • @DanChristensen: I am not sure what info you are thanking me for, but, even if it was user21820 you meant to thank, you are welcome $\ddot{\smile}$. – Rob Arthan Jul 27 '16 at 19:22
  • @DanChristensen: Yes informally you do that, but formally you're faced with certain design decisions. Either you require that the name has never been used before in the entire preceding part of the proof, or you allow reuse of only names that have gone out of scope (in CS terms). Both of these require global rules (action at a distance), so if you want only local rules in sequent-style, you can't really have either; see my linked post in my answer. – user21820 Jul 28 '16 at 02:36
  • @user21820 You are quite right. I have come across that very issue of reusing variable names in my proof-checking software. You quickly run out of your favourite variable names in a longer proofs. Sometimes it is safe to reuse a variable -- as long as it doesn't lead to confusion. But I didn't want to go into too much detail. – Dan Christensen Jul 28 '16 at 19:21

1 Answers1

0

The answer you're probably looking for has been applied in programming languages for a long long time now. The basic idea is that in a program you can declare a new variable anywhere, and it is only visible in its scope, unless it is shadowed. So if you declare a new variable inside a for-loop it is only accessible within the for-loop and becomes inaccessible once the for-loop is exited. In the same way you can allow introducing subcontexts with universally quantified variables, in the same way as subcontexts with assumptions, and then require that all variables in the logic system be bound, so that existentially introduced variables are effectively dependent on the containing contexts. This corresponds very naturally to programming languages' for-loops and if-structures respectively.

Example 1 $\def\nn{\mathbb{N}}$

Given any $n \in \nn$:

  Let $k = n+1$.

$k > n$.

$\exists m \in \nn\ ( m > n )$.

$\forall n \in \nn\ \exists m \in \nn\ ( m > n )$.

[It is invalid to derive here $\forall n \in \nn\ ( k > n )$, because $k$ is not bound and hence meaningless.]

Example 2

Given any $m,n \in \nn$:

$\forall i \in \nn\ \exists k \in \nn\ ( k > i )$.   [from example 1 but renamed]

  If $m > n$:

    $\exists k \in \nn\ ( k > m )$.

    Let $c \in \nn$ such that $c > m$.

    $c > n$.

    $c > m \land c > n$.

    $\exists k \in \nn\ ( k > m \land k > n )$.

  If $m \le n$:

    $\exists k \in \nn\ ( k > n )$.

    Let $c \in \nn$ such that $c > n$.   [Note that this $c$ is unrelated to the earlier $c$.]

    $c > m$.

    $c > m \land c > n$.

    $\exists k \in \nn\ ( k > m \land k > n )$.

$\exists k \in \nn\ ( k > m \land k > n )$.

$\forall m,n \in \nn\ \exists k \in \nn\ ( k > m \land k > n )$.

See this post for more precise description of the rules used in this system. (Of course many others have invented; see this pdf for a brief comparison.) The program-style presentation of this system makes it quite easy to see that the rules are sound, and makes it natural to use. But the existential elimination rule does make it tricky to convert it to a sequent-style logic system.

Note that some variants of logic systems, especially Hilbert-style systems, have variable shadowing. In practice we should avoid it because it is just confusing.

user21820
  • 57,693
  • 9
  • 98
  • 256