Documentation

Mathlib.Tactic.Core

#

Generally useful tactics.

Return the modifiers of declaration nm with (optional) docstring newDoc. Currently, recursive or partial definitions are not supported, and no attributes are provided.

Equations
  • One or more equations did not get rendered due to their size.
def Lean.toPreDefinition (nm : Lean.Name) (newNm : Lean.Name) (newType : Lean.Expr) (newValue : Lean.Expr) (newDoc : optParam (Option String) none) :

Make a PreDefinition taking some metadata from declaration nm. You can provide a new type, value and (optional) docstring, but the remaining information is taken from nm. Currently only implemented for definitions and theorems. Also see docstring of toModifiers

Equations
  • One or more equations did not get rendered due to their size.
def Lean.setProtected {m : TypeType} [inst : Lean.MonadEnv m] (nm : Lean.Name) :

Make nm protected.

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.

Extract the arguments from a simpArgs syntax as an array of syntaxes

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

Extract the arguments from a dsimpArgs syntax as an array of syntaxes

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

Extract the arguments from a withArgs syntax as an array of syntaxes

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

Extract the argument from a usingArg syntax as a syntax term

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

repeat1 tac applies tac to main goal at least once. If the application succeeds, the tactic is applied recursively to the generated subgoals until it eventually fails.

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

Given a local context and an array of FVarIds assumed to be in that local context, remove all implementation details.

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

Elaborate syntax for an FVarId in the local context of the given goal.

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

Get the array of FVarIds in the local context of the given goal.

If ids is specified, elaborate them in the local context of the given goal to obtain the array of FVarIds.

If includeImplementationDetails is false (the default), we filter out implementation details (implDecls and auxDecls) from the resulting list of FVarIds.

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

Run a tactic on all goals, and always succeeds.

(This is parallel to Lean.Elab.Tactic.evalAllGoals in core, which takes a Syntax rather than TacticM Unit. This function could be moved to core and evalAllGoals refactored to use it.)

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

Simulates the <;> tactic combinator. First runs tac1 and then runs tac2 on all newly-generated subgoals.

Equations
def Lean.Elab.Tactic.iterateAtMost {m : TypeType u_1} [inst : Monad m] [inst : MonadExcept Lean.Exception m] :
Natm Unitm Unit

Repeats a tactic at most n times, stopping sooner if the tactic fails. Always succeeds.

Equations
def Lean.Elab.Tactic.iterateExactly' {m : TypeType u_1} [inst : Monad m] :
Natm Unitm Unit

iterateExactly' n t executes t n times. If any iteration fails, the whole tactic fails.

Equations
def Lean.Elab.Tactic.iterateRange {m : TypeType u_1} [inst : Monad m] [inst : MonadExcept Lean.Exception m] :
NatNatm Unitm Unit

iterateRange m n t: Repeat the given tactic at least m times and at most n times or until t fails. Fails if t does not run at least m times.

Equations
partial def Lean.Elab.Tactic.iterateUntilFailure {m : TypeType u_1} [inst : Monad m] [inst : MonadExcept Lean.Exception m] (tac : m Unit) :

Repeats a tactic until it fails. Always succeeds.

partial def Lean.Elab.Tactic.iterateUntilFailureWithResults {m : TypeType u_1} [inst : Monad m] [inst : MonadExcept Lean.Exception m] {α : Type} (tac : m α) :
m (List α)

iterateUntilFailureWithResults is a helper tactic which accumulates the list of results obtained from iterating tac until it fails. Always succeeds.

def Lean.Elab.Tactic.iterateUntilFailureCount {m : TypeType u_1} [inst : Monad m] [inst : MonadExcept Lean.Exception m] {α : Type} (tac : m α) :
m Nat

iterateUntilFailureCount is similar to iterateUntilFailure except it counts the number of successful calls to tac. Always succeeds.

Equations

Returns the root directory which contains the package root file, e.g. Mathlib.lean.

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

Returns the mathlib root directory.

Equations