Documentation

Lean.Meta.Tactic.Simp.Simproc

Builtin simproc declaration extension state.

It contains:

  • The discrimination tree keys for each simproc (including symbolic evaluation procedures) name.
  • The actual procedure associated with a name.
Instances For

This global reference is populated using the command builtin_simproc_pattern%.

This reference is then used to process the attributes builtin_simproc and builtin_sevalproc. Both attributes need the keys and the actual procedure registered using the command builtin_simproc_pattern%.

Equations
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.
Equations

Given a declaration name declName, store the discrimination tree keys and the actual procedure.

This method is invoked by the command builtin_simproc_pattern% elaborator.

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.
Equations

Builtin symbolic evaluation procedures.

Equations
  • One or more equations did not get rendered due to their size.
@[implemented_by Lean.Meta.Simp.getSimprocFromDeclImpl]
Equations
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.
Equations
  • One or more equations did not get rendered due to their size.

Implements attributes builtin_simproc and builtin_sevalproc.

Equations
  • One or more equations did not get rendered due to their size.
def Lean.Meta.Simp.Simprocs.add (s : Simprocs) (declName : Name) (post : Bool) :
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.

Similar to try, but only consider DSimproc case. That is, if s.proc is a Simproc, treat it as a .continue.

Equations
  • One or more equations did not get rendered due to their size.
def Lean.Meta.Simp.simprocCore (post : Bool) (s : SimprocTree) (erased : PHashSet Name) (e : Expr) :
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.
Equations
  • One or more equations did not get rendered due to their size.
Equations
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.
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.
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.
def Lean.Meta.Simp.mkSimprocExt (name : Name := by exact decl_name%) (ref? : Option (IO.Ref Simprocs)) :
Equations
  • One or more equations did not get rendered due to their size.
def Lean.Meta.Simp.addSimprocAttr (ext : SimprocExtension) (declName : Name) (stx : Syntax) (attrKind : AttributeKind) :
Equations
  • One or more equations did not get rendered due to their size.
def Lean.Meta.Simp.mkSimprocAttr (attrName : Name) (attrDescr : String) (ext : SimprocExtension) (name : Name) :
Equations
  • One or more equations did not get rendered due to their size.
def Lean.Meta.Simp.registerSimprocAttr (attrName : Name) (attrDescr : String) (ref? : Option (IO.Ref Simprocs)) (name : Name := by exact decl_name%) :
Equations
  • One or more equations did not get rendered due to their size.
Equations
def Lean.Meta.Simp.getSimprocExtension? (simprocAttrNameOrsimpAttrName : Name) :

Try to retrieve the simproc set using the simp or simproc attribute names. Recall that when we declare a simp set using register_simp_attr, an associated simproc set is automatically created. We use the function simpAttrNameToSimprocAttrName to find the simproc associated with the simp attribute.

Equations
  • One or more equations did not get rendered due to their size.