The phase at which a cbv_simproc fires during cbv normalization.
pre(↓): Fires on each subexpression before cbv reduction, so arguments are still unreduced. Runs before cbv-specific pre-steps (projection reduction, unfolding, etc.).eval(cbv_eval): Fires during the post phase, after ground evaluation but beforehandleAppattempts equation lemmas, unfolding, and recursion reduction. Arguments have already been reduced.post(↑, default): Fires during the post phase, afterhandleApphas attempted standard reduction. Arguments have already been reduced.
- pre : CbvSimprocPhase
- eval : CbvSimprocPhase
- post : CbvSimprocPhase
Instances For
@[instance_reducible]
@[instance_reducible]
Equations
- Lean.Meta.Tactic.Cbv.instBEqCbvSimprocPhase.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
@[instance_reducible]
Equations
Instances For
@[instance_reducible]
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
- declName : Name
- phase : CbvSimprocPhase
- keys : Array DiscrTree.Key
Instances For
@[instance_reducible]
- proc : Sym.Simp.Simproc
Instances For
@[instance_reducible]
Equations
- Lean.Meta.Tactic.Cbv.instBEqCbvSimprocEntry = { beq := fun (e₁ e₂ : Lean.Meta.Tactic.Cbv.CbvSimprocEntry) => e₁.declName == e₂.declName }
@[instance_reducible]
Equations
- Lean.Meta.Tactic.Cbv.instToFormatCbvSimprocEntry = { format := fun (e : Lean.Meta.Tactic.Cbv.CbvSimprocEntry) => Std.format e.declName }
- pre : DiscrTree CbvSimprocEntry
- eval : DiscrTree CbvSimprocEntry
- post : DiscrTree CbvSimprocEntry
Instances For
@[instance_reducible]
def Lean.Meta.Tactic.Cbv.CbvSimprocs.addCore (s : CbvSimprocs) (keys : Array DiscrTree.Key) (declName : Name) (phase : CbvSimprocPhase) (proc : Sym.Simp.Simproc) :
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
- keys : Std.HashMap Name (Array DiscrTree.Key)
- procs : Std.HashMap Name Sym.Simp.Simproc
Instances For
@[instance_reducible]
def Lean.Meta.Tactic.Cbv.registerBuiltinCbvSimproc (declName : Name) (keys : Array DiscrTree.Key) (proc : Sym.Simp.Simproc) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
- declName : Name
- keys : Array DiscrTree.Key
Instances For
@[instance_reducible]
Instances For
- builtin : Std.HashMap Name (Array DiscrTree.Key)
- newEntries : PHashMap Name (Array DiscrTree.Key)
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.Tactic.Cbv.isCbvSimproc declName = do let __do_lift ← Lean.Meta.Tactic.Cbv.getCbvSimprocDeclKeys? declName pure __do_lift.isSome
Instances For
Equations
- Lean.Meta.Tactic.Cbv.isBuiltinCbvSimproc declName = do let __do_lift ← Lean.getEnv pure ((Lean.Meta.Tactic.Cbv.cbvSimprocDeclExt.getState __do_lift).builtin.contains declName)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible, inline]
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[implemented_by Lean.Meta.Tactic.Cbv.getCbvSimprocFromDeclImpl]
Equations
- Lean.Meta.Tactic.Cbv.toCbvSimprocEntry e = do let __do_lift ← Lean.Meta.Tactic.Cbv.getCbvSimprocFromDecl e.declName pure { toCbvSimprocOLeanEntry := e, proc := __do_lift }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Lean.Meta.Tactic.Cbv.addCbvSimprocAttrCore (declName : Name) (kind : AttributeKind) (phase : CbvSimprocPhase) :
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
def Lean.Meta.Tactic.Cbv.addCbvSimprocAttr (declName : Name) (stx : Syntax) (attrKind : AttributeKind) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Lean.Meta.Tactic.Cbv.addCbvSimprocBuiltinAttrCore (ref : IO.Ref CbvSimprocs) (declName : Name) (phase : CbvSimprocPhase) (proc : Sym.Simp.Simproc) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Lean.Meta.Tactic.Cbv.addCbvSimprocBuiltinAttr (declName : Name) (phase : CbvSimprocPhase) (proc : Sym.Simp.Simproc) :
Equations
- Lean.Meta.Tactic.Cbv.addCbvSimprocBuiltinAttr declName phase proc = Lean.Meta.Tactic.Cbv.addCbvSimprocBuiltinAttrCore Lean.Meta.Tactic.Cbv.builtinCbvSimprocsRef declName phase proc
Instances For
Equations
- Lean.Meta.Tactic.Cbv.getCbvSimprocs = do let __do_lift ← Lean.getEnv pure (Lean.ScopedEnvExtension.getState Lean.Meta.Tactic.Cbv.cbvSimprocExtension __do_lift)
Instances For
def Lean.Meta.Tactic.Cbv.cbvSimprocDispatch (tree : DiscrTree CbvSimprocEntry) (erased : PHashSet Name) :
Equations
- One or more equations did not get rendered due to their size.