Test whether a given inductive type is explicitly and inductive family.
i.e., return false
iff numParams
match the number of arguments of
the type constructor
Equations
- One or more equations did not get rendered due to their size.
Instances For
Test whether a given inductive type is an inductively defined proposition
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether the constructor is monomorphic after all parameters are instantiated.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Returns true iff the inductive type is not explicitly an inductive family,
and all constructors of this inductive type are simple (refer to isSimpleCtor
)
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.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For a given type constructor tyctor
, CollectIndState[tyctor]
is an array of (instantiated_tyctor, [SimpleIndVal associated to tyctor])
- recorded : Std.HashMap Lean.Name (Array Lean.Expr)
- sis : Array (Array SimpleIndVal)
Instances For
@[reducible, inline]
Instances For
Equations
- Auto.setSis field = modify fun (st : Auto.CollectInduct.State) => { recorded := st.recorded, sis := field }
Instances For
Equations
- Auto.getSis = do let st ← get pure st.sis
Instances For
Equations
- Auto.setRecorded field = modify fun (st : Auto.CollectInduct.State) => { recorded := field, sis := st.sis }
Instances For
Equations
- Auto.getRecorded = do let st ← get pure st.recorded
Instances For
Equations
- Auto.collectExprsSimpleInduct es = do let __discr ← StateRefT'.run (Array.mapM Auto.collectExprSimpleInduct es) { } match __discr with | (fst, st) => pure st.sis