| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Language.Fixpoint.Defunctionalize
Description
defunctionalize traverses the query to:
1. "normalize" lambda terms by renaming binders,
2. generate alpha- and beta-equality axioms for
The lambdas and redexes found in the query.
NOTE: defunctionalize should happen **BEFORE**
elaborate as the latter converts all actual EApp
into the (uninterpreted) smt_apply.
We cannot elaborate prior to defunc as we need the
EApp and ELam to determine the lambdas and redexes.
Documentation
Containers defunctionalization --------------------------------------------
Instances
| Defunc Sort Source # | |
| Defunc SortedReft Source # | |
Defined in Language.Fixpoint.Defunctionalize Methods defunc :: SortedReft -> DF SortedReft Source # | |
| Defunc Reft Source # | |
| Defunc Expr Source # | |
| Defunc BindEnv Source # | |
| Defunc a => Defunc [a] Source # | |
Defined in Language.Fixpoint.Defunctionalize | |
| Defunc a => Defunc (Triggered a) Source # | |
| Defunc a => Defunc (SEnv a) Source # | |
| Defunc (SimpC a) Source # | |
| Defunc (WfC a) Source # | |
| Defunc (Symbol, Sort) Source # | |
| Defunc (Symbol, SortedReft) Source # | |
Defined in Language.Fixpoint.Defunctionalize Methods defunc :: (Symbol, SortedReft) -> DF (Symbol, SortedReft) Source # | |
| (Defunc a, Eq k, Hashable k) => Defunc (HashMap k a) Source # | |
Defined in Language.Fixpoint.Defunctionalize | |
| (Defunc (c a), TaggedC c a) => Defunc (GInfo c a) Source # | |