Equations
- Lean.mkCasesOnName indDeclName = indDeclName.mkStr Lean.casesOnSuffix
Instances For
Equations
- Lean.mkRecOnName indDeclName = indDeclName.mkStr Lean.recOnSuffix
Instances For
Equations
- Lean.mkBRecOnName indDeclName = indDeclName.mkStr Lean.brecOnSuffix
Instances For
Equations
- Lean.mkBelowName indDeclName = indDeclName.mkStr Lean.belowSuffix
Instances For
Equations
- Lean.markAuxRecursor env declName = Lean.auxRecExt.tag env declName
Instances For
Equations
- Lean.isAuxRecursor env declName = (Lean.auxRecExt.isTagged env declName || declName == `Eq.ndrec || declName == `Eq.ndrecOn)
Instances For
Equations
- Lean.isAuxRecursorWithSuffix env (pre.str s) suffix = ((s == suffix || s.startsWith (toString suffix ++ toString "_")) && Lean.isAuxRecursor env (pre.str s))
- Lean.isAuxRecursorWithSuffix env declName suffix = false
Instances For
Equations
- Lean.isCasesOnRecursor env declName = Lean.isAuxRecursorWithSuffix env declName Lean.casesOnSuffix
Instances For
Equations
- Lean.isRecOnRecursor env declName = Lean.isAuxRecursorWithSuffix env declName Lean.recOnSuffix
Instances For
Equations
- Lean.isBRecOnRecursor env declName = Lean.isAuxRecursorWithSuffix env declName Lean.brecOnSuffix
Instances For
Equations
- Lean.markSparseCasesOn env declName = Lean.sparseCasesOnExt✝.tag env declName
Instances For
Is this a constructor elimination or a sparse casesOn?
Equations
- Lean.isSparseCasesOn env declName = Lean.sparseCasesOnExt✝.isTagged env declName
Instances For
Is this a .casesOn, a constructor elimination or a sparse casesOn?
Equations
- Lean.isCasesOnLike env declName = (Lean.isCasesOnRecursor env declName || Lean.isSparseCasesOn env declName)
Instances For
Shape information for no confusion lemmas.
The arity does not include the final major argument (which is not there when the constructors differ)
The regular no confusion lemma marks the lhs and rhs arguments for the compiler to look at and
find the number of fields.
The per-constructor no confusion lemmas know the number of (non-prop) fields statically.
- regular (arity lhs rhs : Nat) : NoConfusionInfo
- perCtor (arity fields : Nat) : NoConfusionInfo
Instances For
Equations
Equations
- (Lean.NoConfusionInfo.regular arity lhs rhs).arity = arity
- (Lean.NoConfusionInfo.perCtor arity fields).arity = arity
Instances For
Equations
- Lean.markNoConfusion env n info = Lean.noConfusionExt.insert env n info
Instances For
Equations
- Lean.isNoConfusion env n = Lean.noConfusionExt.contains env n
Instances For
Equations
- Lean.getNoConfusionInfo env n = (Lean.noConfusionExt.find? env n).get!