An environment in context of multi substition is a list of pairs of variable targets and terms to be substituted for that target
Equations
Instances For
Multi-substitution substitutes all target variables in an environment by their corresponding terms
Equations
Instances For
The free variables of an environment are the union of the free variables of all terms in the environment. The target variables are not necessarily included
Equations
Instances For
An environment is locally closed if all terms in the environment are locally closed
Equations
- Cslib.LambdaCalculus.LocallyNameless.Untyped.Term.env_LC E = ∀ {x : Var} {M : Cslib.LambdaCalculus.LocallyNameless.Untyped.Term Var}, ⟨x, M⟩ ∈ E → M.LC
Instances For
Multi-substitution of a fresh variable does nothing
If x is neither a free variable of an environment Ns or a term M, then x is also not a free variable of the multi-substitution of Ns into M
Multi-substitution propagates recursively through an application
Multi-substitution propagates recursively through an abstraction
Multi-substitution commutes with opening a term with a fresh variable, provided that the variable is not in the domain of the environment and the environment is locally closed