Note: This option should never be enabled if Duper will later call the monomorphization procedure because attempting to reduce typeclass instances can interfere with monomorphization. It also does not appear to provide observable benefit even when the monomorphization procedure is not being called, so it is currently disabled at all times. The option is just left around (rather than deleted entirely) for testing purposes.
Equations
Instances For
Equations
- Duper.getReduceInstancesM = do let opts ← Lean.getOptions pure (Duper.getReduceInstances opts)
Instances For
This function is expensive and should only be used in preprocessing
Equations
- One or more equations did not get rendered due to their size.
Instances For
Eta-expand a beta-reduced expression. This function is currently unused
Applies eta reduction to e
and all of its subexpressions
TODO: Make sure that when calling this function from other files,
the term supplied to it does not contain loose bound variables.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instantiates mvars then applies beta and eta reduction exhaustively.
Equations
- Duper.betaEtaReduceInstMVars e = do let e ← Lean.instantiateMVars e let e ← liftM (Lean.Core.betaReduce e) Duper.etaReduce e
Instances For
Applies beta and eta reduction exhaustively
Equations
- Duper.betaEtaReduce e = do let e ← liftM (Lean.Core.betaReduce e) Duper.etaReduce e