Various linters #
This file defines several small linters.
A linter for checking whether a declaration has a namespace twice consecutively in its name.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking for unused arguments.
We skip all declarations that contain sorry
in their value.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking definition doc strings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking theorem doc strings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking whether the correct declaration constructor (definition or theorem) has been used.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking whether statements of declarations are well-typed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking that there are no bad max u v
universe levels.
Checks whether all universe levels u
in the type of d
are "good".
This means that u
either occurs in a level
of d
by itself, or (recursively)
with only other good levels.
When this fails, usually this means that there is a level max u v
, where neither u
nor v
occur by themselves in a level. It is ok if one of u
or v
never occurs alone. For example,
(α : Type u) (β : Type (max u v))
is a occasionally useful method of saying that β
lives in
a higher universe level than α
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking that declarations aren't syntactic tautologies.
Checks whether a lemma is a declaration of the form ∀ a b ... z, e₁ = e₂
where e₁
and e₂
are identical exprs.
We call declarations of this form syntactic tautologies.
Such lemmas are (mostly) useless and sometimes introduced unintentionally when proving basic facts
with rfl when elaboration results in a different term than the user intended.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return a list of unused have/suffices/let_fun terms in an expression. This actually finds all beta-redexes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking that declarations don't have unused term mode have statements. We do not
tag this as @[std_linter]
so that it is not in the default linter set as it is slow and an
uncommon problem.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A linter for checking if variables appearing on both sides of an iff are explicit. Ideally, such variables should be implicit instead.
Equations
- One or more equations did not get rendered due to their size.