|
definition: |
substTerm :: TPSubst -> SMT.Term -> SMT.Term
substTerm sub term = case term of
SMT.TConst _ -> term
SMT.TComb f args -> SMT.TComb (substQId sub f) (map (substTerm sub) args)
SMT.Forall svs arg -> SMT.Forall (map (substSV sub) svs) (substTerm sub arg)
SMT.Exists svs arg -> SMT.Forall (map (substSV sub) svs) (substTerm sub arg)
SMT.Let bs e -> SMT.Let (map (\ (v,s) -> (v, substTerm sub s)) bs)
(substTerm sub e)
SMT.Match e ps -> SMT.Match (substTerm sub e)
(map (\(p,t) -> (p, substTerm sub t)) ps)
SMT.Annot e as -> SMT.Annot (substTerm sub e) as
|
|
demand: |
argument 2 |
|
deterministic: |
deterministic operation |
|
documentation: |
Applies a sort substitution to a term. |
|
failfree: |
(_, _) |
|
indeterministic: |
referentially transparent operation |
|
infix: |
no fixity defined |
|
iotype: |
{(_,{TConst}) |-> {TConst} || (_,{TComb}) |-> {TComb} || (_,{Forall}) |-> {Forall} || (_,{Exists}) |-> {Forall} || (_,{Let}) |-> {Let} || (_,{Match}) |-> {Match} || (_,{Annot}) |-> {Annot}}
|
|
name: |
substTerm |
|
precedence: |
no precedence defined |
|
result-values: |
_ |
|
signature: |
Data.Map.Map String Language.SMTLIB.Types.Sort -> Language.SMTLIB.Types.Term -> Language.SMTLIB.Types.Term |
|
solution-complete: |
operation might suspend on free variables |
|
terminating: |
possibly non-terminating |
|
totally-defined: |
possibly non-reducible on same data term |