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 |