This file implements the type analysis pass for the structures and enum inductives pass. It figures out which types and matches that occur either directly or transitively (e.g. through being contained in a structure) qualify for further treatment by the structures or enum pass.
Determine whether declName
is an enum inductive .match_x
definition that is supported, see
MatchKind
for the supported shapes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.Normalize.isSupportedMatch.trySimpleEnum
(defnInfo : DefinitionVal)
(inductiveInfo : InductiveVal)
(xs : Array Expr)
(numCtors : Nat)
(motive : Expr)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.Normalize.isSupportedMatch.verifySimpleCasesOnApp
(inductiveInfo : InductiveVal)
(fn : Expr)
(args params : Array Expr)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.Normalize.isSupportedMatch.verifySimpleEnum
(defnInfo : DefinitionVal)
(inductiveInfo : InductiveVal)
(ctors : Array ConstructorVal)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Lean.Elab.Tactic.BVDecide.Frontend.Normalize.isSupportedMatch.verifyEnumWithDefault
(defnInfo : DefinitionVal)
(inductiveInfo : InductiveVal)
(ctors : Array ConstructorVal)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Returns true if the const is something that we would like to see revealed by case splitting on structures that contain it.
partial def
Lean.Elab.Tactic.BVDecide.Frontend.Normalize.typeAnalysisPass.analyzeStructure
(n : Name)
:
Returns true if the structure is appropriate for case splitting and contains fields of interest.