The have vs let linter #
The have vs let linter flags uses of have to introduce a hypothesis whose Type is not Prop.
The option for this linter is a natural number, but really there are only 3 settings:
0-- inactive;1-- active only on noisy declarations;2or more -- always active.
TODO:
- Also lint
letvshave. haveImay need to change tolet/letI?replace,classical!,classical,tautointernally usehave: should the linter act on them as well?
The have vs let linter emits a warning on haves introducing a hypothesis whose
Type is not Prop.
There are three settings:
0-- inactive;1-- active only on noisy declarations;2or more -- always active.
The default value is 1.
a monadic version of Lean.Elab.InfoTree.foldInfo.
Used to infer types inside a CommandElabM.
Equations
- One or more equations did not get rendered due to their size.
Instances For
given a ContextInfo, a LocalContext and an Array of Expressions es,
areProp_toFormat creates a MetaM context, and returns an array of pairs consisting of
- a
Boolean, answering the question of whether the Type ofeis aPropor not, and - the pretty-printed
Formatofefor eachExpressioneines. Concretely,areProp_toFormatrunsinferTypeinCommandElabM. This is the kind of monadic lift thatnonPropHavesuses to decide whether the Type of ahaveis inPropor not. The outputFormatis just so that the linter displays a better message.
Equations
- One or more equations did not get rendered due to their size.
Instances For
returns the have syntax whose corresponding hypothesis does not have Type Prop and
also a Formatted version of the corresponding Type.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The main implementation of the have vs let linter.
Equations
- One or more equations did not get rendered due to their size.