Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Substitutionless first-order logic w/ identity

  1. Sep 18, 2009 #1
    I have been trying to familiarize myself with a particular system of first-order logic with identity, in which the process of substitution is achieved by replacing, one at a time, one occurrence of a variable with a term. (see axiom schemes 6) and 7)). I want to use these axioms to prove the properties of equality (identity), namely reflexivity, symmetry, and transitivity. In particular, I'd like to show that they hold for terms, not just variables. A term could be a variable, a constant or some arithmetic composition of variables and constants. But I'm having trouble doing that. First, some preliminaries:

    Axiom schemes: each axiom scheme stands for infinitely many individual axioms.

    F, G, and H stand for any formulas. x stands for any variable. t stands for any term.[tex]\exists x[/tex] is here taken to be an abbreviation for [tex]\neg\forall x \neg[/tex].

    Propositional calculus:
    1)[tex]F \supset(G \supset F)[/tex]
    2)[tex](F \supset (G \supset H)) \supset ((F \supset G) \supset (F \supset H))[/tex]
    3)[tex](\neg F \supset \neg G) \supset (G \supset F)[/tex]

    Predicate calculus:
    4)[tex]\forall x(F \supset G) \supset (\forall x F \supset \forall x G)[/tex]
    5)[tex]F \supset \forall x F[/tex] provided x does not occur in F
    6)[tex]\exists x (x = t)[/tex] provided x does not occur in the term t
    7)[tex]x = t \supset (Y_1 \supset Y_2)[/tex] where Y2 is obtained from atomic formula Y1 by replacing any one occurrence of x with t. An atomic formula is a formula of the form t1 = t2, where t1 and t2 are terms.

    Rules of inference: Modus Ponens and Universal Generalization, i.e. from theorem F infer [tex]\forall x F[/tex]. Here it doesn't matter whether or not x occurs in F.

    There are also the axiom schemes for arithmetic and mathematical induction, but I'm leaving them out because I don't think they are important here. I might be wrong about that, though. But it is because of the inclusion of arithmetic that I need to consider terms and not just variables.

    I am having trouble proving the usual properties of equality using these axioms. Reflexivity is easy enough:

    From 7), we get [tex]x=t \supset (x=t \supset t=t)[/tex].

    This is equivalent to

    [tex]x=t \supset t=t[/tex]

    And from this we can infer

    [tex]\exists x(x=t) \supset t=t[/tex], which gives us the theorem t = t for any term t. I can show a limited form of symmetry:

    [tex]x=t \supset (x=x \supset t=x)[/tex]
    [tex]x=x \supset (x=t \supset t=x)[/tex]
    [tex]x=t \supset t=x[/tex]

    But I haven't figured out how to show [tex]t=x \supset x=t[/tex], much less [tex]t_1 = t_2 \supset t_2 = t_1[/tex].

    Axiom scheme 7) itself gives a limited form of transitivity, i.e.

    [tex]x=t_1 \supset (x = t_2 \supset t_1=t_2)[/tex]

    But I don't know how to show [tex]x=t_1 \supset (t_1=t_2 \supset x = t_2)[/tex], which I assume is valid. Note that symmetry and transitivity are easily proved when we restrict t to being a variable. But I'm pretty sure these properties of equality are supposed to hold for more general terms. It seems they would have to, or else this method of replacement would not achieve the same results as the more normal method of substitution. Any suggestions on how to prove these? Thanks.

    edit: with my old browser, I can't tell, but it looks like the tildes don't show up in LaTeX, so I guess I'll change them to \neg
    Last edited: Sep 18, 2009
  2. jcsd
  3. Sep 19, 2009 #2

    [itex]x=t_1 \rightarrow (x \neq t_2 \rightarrow t_1 \neq t_2)[/itex], i.e. [itex]x=t_1 \rightarrow (t_1=t_2 \rightarrow x=t_2)[/itex]
    [itex]x=t_2 \rightarrow (x = t_1 \rightarrow t_2 = t_1)[/itex], i.e. [itex]x=t_1 \rightarrow (x=t_2 \rightarrow t_2 = t_1)[/itex], therefore
    [itex](x=t_1) \rightarrow (t_1=t_2 \rightarrow t_2=t_1)[/itex], so
    [itex]\forall x (x=t_1 \rightarrow (t_1=t_2 \rightarrow t_2=t_1))[/itex], i.e. (assuming we've chosen x so that x is not free in [itex]t_1[/itex] or [itex]t_2[/itex]) [itex]\exists x (x=t_1) \rightarrow (t_1 = t_2 \rightarrow t_2 = t_1) [/itex], but
    [itex]\exists x (x=t_1)[/itex], therefore
    [itex]t_1 = t_2 \rightarrow t_2 = t_1[/itex]

    Transitivity is easier:

    [itex]x=t_1 \rightarrow (t_1 = t_2 \rightarrow x=t_2)[/itex]
    [itex]x=t_2 \rightarrow (t_2 = t_3 \rightarrow x=t_3)[/itex]
    [itex](t_1 = t_2) \rightarrow (t_2 = t_3 \rightarrow (x=t_1 \rightarrow x=t_3))[/itex]
    [itex]\forall x ((t_1 = t_2) \rightarrow (t_2 = t_3 \rightarrow (x=t_1 \rightarrow x=t_3)))[/itex]
    [itex]t_1 = t_2 \rightarrow (t_2 = t_3 \rightarrow (t_1=t_1 \rightarrow t_1 = t_3))[/itex], but we already know that [itex]t_1 = t_1[/itex], so:
    [itex]t_1 = t_2 \rightarrow (t_2 = t_3 \rightarrow t_1 = t_3)[/itex]

    Hope I didn't make any blunders there.
    Last edited: Sep 19, 2009
  4. Sep 19, 2009 #3
    Preno, thanks for your reply.

    I see what you're doing in the proof of symmetry...I think it is the right idea. But since [tex]x \neq t_2[/tex] is not an atomic formula, the first line is not an instance of axiom scheme 7). So that line would need to be proved first. Maybe that part is easy and I'm just missing something.

    In going from the 4th line to the 5th line, it looks like you made use of [tex]\forall xF(x) \rightarrow F(t_1)[/tex]. But that is a theorem I haven't been able to prove yet. In fact, I think it depends on the identities we are trying to prove now. However, I can prove

    [tex]\forall xF(x) \rightarrow F(y)[/tex] where y is also a variable. It's really inconvenient not having substitution (of terms for variables) as a rule of inference, but apparently it is helpful for theoretical reasons.
  5. Sep 19, 2009 #4
    Ah, you're right.
    Well, it is a theorem of classical predicate logic (without identity), and I was assuming that we already know that the system includes classical predicate logic and that identity is the problematic bit. But I see I was mistaken, we do have to use the equality axioms to prove it in this system.

    The best I could do is ([itex]\sigma \equiv (t_1 = t_2 \rightarrow (t_2 = t_3 \rightarrow t_1 = t_3))[/itex]):

    [itex]t_1 = t_2 \rightarrow (t_2 = t_3 \rightarrow (x=t_1 \rightarrow x=t_3))[/itex]
    [itex]x=t_1 \rightarrow \sigma[/itex] (7 + propositional logic)
    [itex]\forall x (\neg\sigma \rightarrow x \neq t_1)[/itex]
    [itex]\forall x (\neg\sigma \rightarrow x \neq t_1) \rightarrow (\neg\forall x x\neq t_1 \rightarrow \neg \forall x \neg \sigma)[/itex] (axiom 4)
    [itex]\neg\forall x x \neq t_1[/itex] (axiom 6)
    [itex]\exists x \sigma[/itex] (where [itex]\sigma[/itex] obviously doesn't include [itex]x[/itex])

    This is a curious system you've got there, I'll have to think about it some more.

    [Edit]: ah, I got it:

    [itex]\neg\forall x \neg \sigma[/itex]
    [itex]\neg\sigma\rightarrow \forall x \neg\sigma[/itex] (axiom 5)
    [itex]\sigma[/itex] (propositional logic)

    The same trick works for [itex]\forall x F(x) \rightarrow F(t)[/itex]:
    [itex]\forall x F(x) \rightarrow F(y)[/itex] (y not in F except when substituted for x)
    [itex]y=t \rightarrow (\forall x F(x) \rightarrow F(t))[/itex] (axiom 7 + prop. logic)
    and you use the same method, this time setting [itex]\sigma \equiv \forall x F(x) \rightarrow F(t)[/itex].

    This also proves symmetry, as you already know that [itex]x=t_2 \rightarrow t_2=x[/itex] and can in effect substitute [itex]t_1[/itex] for x.

    edit: out of curiosity, where did you come across this system / who proposed it?
    Last edited: Sep 19, 2009
  6. Sep 19, 2009 #5
    Yes, this system is supposed to do all that classical predicate logic does without using substitution as a rule of inference. I am new to all this, but my understanding is that substitution is hard to arithmetize. In other words, find arithmetic statements which state this formula can be derived from that formula(s). The formulas are referenced by their Godel numbers.

    I follow this proof, but doesn't the first line depend on your earlier assumption that
    [tex]x=t_1 \rightarrow (x \neq t_2 \rightarrow t_1 \neq t_2)[/tex], which is still in doubt?


    I'm not sure about this part. I have only been able to show that

    [tex]x=y \rightarrow (F(x) \rightarrow F(y))[/tex]

    When I try to show this with a term t instead of a variable y, I run into trouble when the formula involves negations.

    It is an improvement by Richard Montague and Donald Kalish on an idea of Alfred Tarski's. I came across it in Raymond Smullyan's book, https://www.amazon.com/Godels-Incom...?ie=UTF8&s=books&qid=1253409312&sr=1-1-spell#

    Here is the abstract of the paper:


    Too bad I don't have free institutional access to the full paper. It's like $34 to buy a copy of it :rolleyes:
    Last edited by a moderator: Apr 24, 2017
  7. Sep 22, 2009 #6
    It seems that

    [tex]x=t_1 \rightarrow (t_1 = t_2 \rightarrow x = t_2) [/tex]

    is the crucial formula that needs to be proved. Everything else falls in place after that, and we get the same results as classical predicate logic. I can show that it follows from

    [tex]y=t_1 \rightarrow(x=y \rightarrow (t_1 = t_2 \rightarrow x = t_2)) [/tex].

    Of course, I can't prove this formula (call it [tex]\psi[/tex]) either, but I can show

    [tex]y=t_2 \rightarrow \psi[/tex].

    So if it could be shown that [tex]y \neq t_2 \rightarrow \psi[/tex] also holds, that would provide a proof by contradiction. Just trying to lay out some possible lines of attack. This really has me stumped.
  8. Sep 24, 2009 #7
    I spoke to soon here. What I really need is another identity formula like axiom scheme 7), but with negations, i.e.

    [tex]x=t \rightarrow (\neg Y_1 \rightarrow \neg Y_2)[/tex] where Y2 is obtained from atomic formula Y1 by replacing one occurrence of x with t. Whether this can be proved or has to be taken as another axiom, I don't know. But using this formula and 7), I can show

    [tex]x=t \rightarrow (Y(x) \rightarrow Y(t))[/tex] and
    [tex]x=t \rightarrow (Y(t) \rightarrow Y(x))[/tex]

    for any atomic formula Y(x) by induction on the number of times the variable x occurs in Y(x). Using this result as a base case, I can further show that

    [tex]x=t \rightarrow (F(x) \rightarrow F(t))[/tex] (*) and
    [tex]x=t \rightarrow (F(t) \rightarrow F(x))[/tex] (**)

    for any formula F(x) (where x occurs only as a free variable) by induction on the degree of F(x). The degree of a formula is the number of occurrences of the symbols [tex]\neg[/tex], [tex]\forall[/tex], and [tex]\rightarrow[/tex] in the formula (in unabbreviated form). An atomic formula obviously has degree zero. A formula F(x) of degree n has one of the following three forms:

    i) [tex]\neg G[/tex] where G is of degree n-1
    ii) [tex]\forall y G[/tex] where G is of degree n-1
    iii) [tex]G \rightarrow H[/tex] where the degrees of G and H add to n-1

    For cases i) and ii), the induction step is very easy. Case iii) goes like this:

    [tex]x=t \rightarrow (H(x) \rightarrow H(t))[/tex]
    [tex]x=t \rightarrow (G(t) \rightarrow G(x))[/tex] by hypothesis since both G and H are of degree less than n.

    From the first we get:
    [tex]x=t \rightarrow ((G(t) \rightarrow H(x)) \rightarrow (G(t) \rightarrow H(t)))[/tex]
    [tex](x=t \rightarrow (G(t) \rightarrow H(x))) \rightarrow (x=t \rightarrow (G(t) \rightarrow H(t)))[/tex]

    from the second:
    [tex]x=t \rightarrow ((G(x) \rightarrow H(x)) \rightarrow (G(t) \rightarrow H(x)))[/tex]
    [tex](G(x) \rightarrow H(x)) \rightarrow (x=t \rightarrow (G(t) \rightarrow H(x)))[/tex]

    and finally

    [tex](G(x) \rightarrow H(x)) \rightarrow (x=t \rightarrow (G(t) \rightarrow H(t)))[/tex]
    [tex]x=t \rightarrow ((G(x) \rightarrow H(x)) \rightarrow (G(t) \rightarrow H(t)))[/tex]

    as hoped for. Of course, [tex]x=t \rightarrow ((G(t) \rightarrow H(t)) \rightarrow (G(x) \rightarrow H(x)))[/tex] is proved the same way with x and t switched throughout.
  9. Sep 24, 2009 #8
    With that out of the way, one can prove some useful theorems.

    T1) [tex]\exists x F \rightarrow F[/tex] provided x does not occur in F

    [tex]\neg F \rightarrow \forall x \neg F[/tex] axiom 5)
    [tex]\neg \forall x \neg F \rightarrow F[/tex]

    T2) [tex]\forall x F \rightarrow \exists xF[/tex] provided x does not occur in F
    (and therefore [tex]\forall x F \rightarrow F[/tex] under those conditions)

    [tex]\neg F \rightarrow (F \rightarrow x \neq t)[/tex] prop. calc.
    [tex]\forall x(\neg F) \rightarrow (\forall x F \rightarrow \forall x (x \neq t))[/tex] Generalization and axiom 4)
    [tex]\forall x F \rightarrow (\forall x(\neg F) \rightarrow \forall x (x \neq t))[/tex]
    [tex]\forall x F \rightarrow (\exists x(x = t) \rightarrow \exists x F)[/tex]
    [tex]\exists x(x = t) \rightarrow (\forall x F \rightarrow \exists x F)[/tex]

    T3) [tex]\forall x F(x) \rightarrow F(t)[/tex]

    from (*) above,
    [tex]x=t \rightarrow (F(x) \rightarrow F(t))[/tex]
    [tex]F(x) \rightarrow (x=t \rightarrow F(t))[/tex]
    [tex]F(x) \rightarrow (\neg F(t) \rightarrow x \neq t)[/tex]
    [tex]\forall xF(x) \rightarrow (\forall x \neg F(t) \rightarrow \forall x(x \neq t))[/tex]
    [tex]\forall xF(x) \rightarrow (\exists x (x=t) \rightarrow \exists xF(t))[/tex]
    [tex]\exists x(x=t) \rightarrow (\forall x F(x) \rightarrow \exists xF(t))[/tex]
    [tex]\forall x F(x) \rightarrow \exists xF(t)[/tex], and then use T1) to get T3)

    T4) [tex]F(t) \rightarrow \exists x F(x)[/tex]
    T5) [tex]\forall x F(x) \rightarrow \exists x F(x)[/tex]

    T6) [tex]\forall x F(x) \rightarrow \forall y F(y)[/tex]

    as a special case of T3)
    [tex]\forall x F(x) \rightarrow F(y)[/tex]
    [tex]\forall y \forall x F(x) \rightarrow \forall yF(y)[/tex] generalization and axiom 4)
    [tex]\forall x F(x) \rightarrow \forall y F(y)[/tex] axiom 5)

    Similarly, [tex]\exists x F(x) \rightarrow \exists y F(y)[/tex]

    This result allows the relaxation of the earlier requirement that x not occur bound in formulas in which it is also free. Now if it occurs bound also, the formula is equivalent to one in which it doesn't. I normally avoid formulas in which the same variable occurs bound and free, but their possibility has to be allowed for.

    T7) [tex] F(t) \rightarrow \forall x(x=t \rightarrow F(x))[/tex]

    from (**)
    [tex]x=t \rightarrow (F(t) \rightarrow F(x))[/tex]
    [tex]F(t) \rightarrow (x=t \rightarrow F(x))[/tex]
    [tex]\forall x F(t) \rightarrow \forall x(x=t \rightarrow F(x))[/tex] , and T7) comes from applying axiom 5)

    T8) [tex]\forall x(x=t \rightarrow F(x)) \rightarrow F(t)[/tex]

    [tex]x=t \rightarrow (F(x) \rightarrow F(t))[/tex]
    [tex](x=t \rightarrow F(x)) \rightarrow (x=t \rightarrow F(t))[/tex]
    [tex](x=t \rightarrow F(x)) \rightarrow (\neg F(t) \rightarrow x \neq t)[/tex]
    [tex]\neg F(t) \rightarrow ((x=t \rightarrow F(x)) \rightarrow x \neq t)[/tex]
    [tex]\neg F(t) \rightarrow (\forall x(x=t \rightarrow F(x)) \rightarrow \forall x (x \neq t))[/tex]
    [tex]\forall x(x=t \rightarrow F(x)) \rightarrow (\neg F(t) \rightarrow \forall x (x \neq t))[/tex]
    [tex]\forall x(x=t \rightarrow F(x)) \rightarrow (\exists x(x=t) \rightarrow F(t))[/tex]
    [tex]\exists x(x=t) \rightarrow (\forall x(x=t \rightarrow F(x)) \rightarrow F(t))[/tex]

    Taken together, T7) and T8) allow you to obtain a formula equivalent to the result of substituting t for all free occurrences of x in F(x), without appealing to substitution as a rule of inference.
    Last edited: Sep 24, 2009
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Similar Discussions: Substitutionless first-order logic w/ identity
  1. First order logic (Replies: 3)

  2. First order Logic (Replies: 6)

  3. First order logic (Replies: 0)