Fresh variable
In formal reasoning, in particular in mathematical logic, computer algebra, and automated theorem proving, a fresh variable is a variable that did not occur in the context considered so far.[1]Template:Cn The concept is often used without explanation.[2]Template:Cn
Fresh variables may be used to replace other variables, to eliminate variable shadowing or capture. For instance, in alpha-conversion, the processing of terms in the lambda calculus into equivalent terms with renamed variables, replacing variables with fresh variables can be helpful as a way to avoid accidentally capturing variables that should be free.[3] Another use for fresh variables involves the development of loop invariants in formal program verification, where it is sometimes useful to replace constants by newly introduced fresh variables.[4]
Example
For example, in term rewriting, before applying a rule to a given term , each variable in should be replaced by a fresh one to avoid clashes with variables occurring in .Template:Cn Given the rule
and the term
- ,
attempting to find a matching substitution of the rule's left-hand side, , within will fail, since cannot match . However, if the rule is replaced by a fresh copyTemplate:Efn
before, matching will succeed with the answer substitution .
Notes
References
- ↑ Template:Cite report Here: slide 13/26.
- ↑ Template:Cite report Here: p.4.
- ↑ Template:Cite book
- ↑ Template:Cite book