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
@[implicit_reducible]
@[implicit_reducible]
Equations
- Lean.Meta.Tactic.Cbv.instBEqCbvSimprocPhase.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
@[implicit_reducible]
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[implicit_reducible]
Equations
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
- declName : Name
- phase : CbvSimprocPhase
- keys : Array DiscrTree.Key
Instances For
Equations
Instances For
@[implicit_reducible]
- proc : Sym.Simp.Simproc
Instances For
@[implicit_reducible]
Equations
- Lean.Meta.Tactic.Cbv.instBEqCbvSimprocEntry = { beq := fun (e₁ e₂ : Lean.Meta.Tactic.Cbv.CbvSimprocEntry) => e₁.declName == e₂.declName }
@[implicit_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
Equations
Instances For
@[implicit_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
Equations
Instances For
@[implicit_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
@[implicit_reducible]
Equations
Instances For
Instances For
- builtin : Std.HashMap Name (Array DiscrTree.Key)
- newEntries : PHashMap Name (Array DiscrTree.Key)
Instances For
@[implicit_reducible]
Equations
Instances For
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.