CurryInfo: contract-prover-4.0.0 / ESMT.reduceAsInTerm

definition: Info
 
reduceAsInTerm :: Term -> Term
reduceAsInTerm (TConst l) = TConst l
reduceAsInTerm (TSVar  v) = TSVar v
reduceAsInTerm (Let bs t) = Let (map (\ (v,tm) -> (v, reduceAsInTerm tm)) bs)
                                (reduceAsInTerm t)
reduceAsInTerm (Forall vs t) = Forall vs (reduceAsInTerm t)
reduceAsInTerm (Exists vs t) = Exists vs (reduceAsInTerm t)
reduceAsInTerm (TComb f ts) = TComb (simpAs f) (map reduceAsInTerm ts)
 where
  simpAs qid = case qid of As n (SComb s _) | s == "Func" -> Id n
                           _ -> qid
demand: Info
 argument 1
deterministic: Info
 deterministic operation
documentation: Info
 
-----------------------------------------------------------------------
Remove As-identifiers if they are functions (for better readability):
failfree: Info
 _
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {({TConst}) |-> {TConst} || ({TSVar}) |-> {TSVar} || ({Let}) |-> {Let} || ({Forall}) |-> {Forall} || ({Exists}) |-> {Exists} || ({TComb}) |-> {TComb}}
name: Info
 reduceAsInTerm
precedence: Info
 no precedence defined
result-values: Info
 {Exists,Forall,Let,TComb,TConst,TSVar}
signature: Info
 Term -> Term
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 reducible on all ground data terms