Configuration options for Simp
that are not controlled using set_option
.
Recall that we have multiple Simp
passes and they use different configurations.
- etaPoly : Bool
If
etaPoly
is true, we eta expand any global function application when the function takes local instances. The idea is that we do not generate code for this kind of application, and we want all of them to specialized or inlined. - inlinePartial : Bool
If
inlinePartial
istrue
, we inline partial function applications tagged with[inline]
. Note that this option is automatically disabled when processing declarations tagged with[inline]
, marked to be specialized, or instances. - implementedBy : Bool
If
implementedBy
istrue
, we apply theimplemented_by
replacements. Remark: we only applycasesOn
replacements at phase 2 becausecases
constructor may not have enough information for reconstructing the originalcasesOn
application at phase 1. - inlineDefs : Bool
If
inlineDefs
istrue
then top-level definitions are inlined when they are small are annotated with inlining attributes.
Instances For
Equations
- Lean.Compiler.LCNF.Simp.instInhabitedConfig = { default := { etaPoly := default, inlinePartial := default, implementedBy := default, inlineDefs := default } }