Strict Constant Mappings #
A StrictConstantMapping is an even more confined version of a ConstantMapping where constants are really just mapped to (other) constants and not arbitrary GroundTerms.
The StrictConstantMapping is simply defined as a TermMapping.
Equations
- StrictConstantMapping sig = TermMapping sig.C sig.C
Instances For
A StrictConstantMapping can be transformed to a ConstantMapping in the obvious way.
Equations
Instances For
We lift StrictConstantMappings to VarOrConst in the obvious way.
Equations
- g.apply_var_or_const (VarOrConst.var v) = VarOrConst.var v
- g.apply_var_or_const (VarOrConst.const c) = VarOrConst.const (g c)
Instances For
Applying a StrictConstantMapping to a VarOrConst does not influence the result of VarOrConst.filterVars.
Mapping over the leaves of a PreGroundTerm is the same as calling the FiniteTree.mapLeaves with the toConstantMapping version of the StrictConstantMapping.
We lift StrictConstantMappings to FunctionFreeAtoms in the obvious way.
Instances For
Applying a StrictConstantMapping to a FunctionFreeAtom does not change the variables.
We lift StrictConstantMappings to FunctionFreeConjunctions in the obvious way.
Instances For
Applying a StrictConstantMapping to a FunctionFreeConjunction does not change the variables.