# Substitutions for First-Order Logic

## Motivating Example

It is important to be precise about substitutions in first-order logic. For example, we would like to derive from formula formula , denoted that results from substituting a term instead of . For example, from we would like to derive . Consider, however formula

Consider an interpretation in integers. This formula is true in this domain. Now substitute instead of x the term y+1. We obtain

This formula is false. We say that the variable in term was captured during substitution. When doing substitution in first-order logic we must avoid variable capture. One way to do this is to rename bound variables. Suppose we want to instantiate the formula with . Then we first rename variables in the formula, obtaining

and then after substitution we obtain , which is a correct consequence of .

## Naive and Safe Substitutions

Let be a set of variables (that is, ). A *variable substitution* is a function where is the set of terms first-order logic.

We define naive substitution recursively, first for terms:

and then for formulas:

**Lemma:** Let be a variable substitution and a term. Then for every interpretation ,

To avoid variable capture, we introduce in addition to a safe substitution, .

**Lemma:** Let be a variable substitution and a term. Then for every interpretation ,

**Lemma:** .