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
Equations
- One or more equations did not get rendered due to their size.
Instances For
- simp: Lean.Elab.Tactic.SimpKind
- simpAll: Lean.Elab.Tactic.SimpKind
- dsimp: Lean.Elab.Tactic.SimpKind
Instances For
Equations
Equations
Implement a simp
discharge function using the given tactic syntax code.
Recall that simp
dischargers are in SimpM
which does not have access to Term.State
.
We need access to Term.State
to store messages and update the info tree.
Thus, we create an IO.ref
to track these changes at Term.State
when we execute tacticCode
.
We must set this reference with the current Term.State
before we execute simp
using the
generated Simp.Discharge
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- default: Lean.Elab.Tactic.Simp.DischargeWrapper
- custom: IO.Ref Lean.Elab.Term.State → Lean.Meta.Simp.Discharge → Lean.Elab.Tactic.Simp.DischargeWrapper
Instances For
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
- ctx : Lean.Meta.Simp.Context
- simprocs : Lean.Meta.Simp.SimprocsArray
- starArg : Bool
Instances For
- none: Lean.Elab.Tactic.ResolveSimpIdResult
- expr: Lean.Expr → Lean.Elab.Tactic.ResolveSimpIdResult
- simproc: Lake.Name → Lean.Elab.Tactic.ResolveSimpIdResult
- ext: (ext₁? : Option Lean.Meta.SimpExtension) →
(ext₂? : Option Lean.Meta.Simp.SimprocExtension) →
(Option.isSome ext₁? || Option.isSome ext₂?) = true → Lean.Elab.Tactic.ResolveSimpIdResult
Recall that when we declare a
simp
attribute usingregister_simp_attr
, we automatically create asimproc
attribute. However, if the user createssimp
andsimproc
attributes programmatically, then one of them may be missing. Moreover, when we writesimp [seval]
, we want to retrieve both the simp and simproc sets. We want to hide from users thatsimp
andsimproc
sets are stored in different data-structures.
Instances For
Elaborate extra simp theorems provided to simp
. stx
is of the form "[" simpTheorem,* "]"
If eraseLocal == true
, then we consider local declarations when resolving names for erased theorems (- id
),
this option only makes sense for simp_all
or *
is used.
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
Equations
- One or more equations did not get rendered due to their size.
Instances For
- ctx : Lean.Meta.Simp.Context
- simprocs : Lean.Meta.Simp.SimprocsArray
- dischargeWrapper : Lean.Elab.Tactic.Simp.DischargeWrapper
Instances For
Create the Simp.Context
for the simp
, dsimp
, and simp_all
tactics.
If kind != SimpKind.simp
, the discharge
option must be none
TODO: generate error message if non rfl
theorems are provided as arguments to dsimp
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If stx
is the syntax of a simp
, simp_all
or dsimp
tactic invocation, and
usedSimps
is the set of simp lemmas used by this invocation, then mkSimpOnly
creates the syntax of an equivalent simp only
, simp_all only
or dsimp only
invocation.
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
simpLocation ctx discharge? varIdToLemmaId loc
runs the simplifier at locations specified by loc
,
using the simp theorems collected in ctx
optionally running a discharger specified in discharge?
on generated subgoals.
Its primary use is as the implementation of the
simp [...] at ...
and simp only [...] at ...
syntaxes,
but can also be used by other tactics when a Syntax
is not available.
For many tactics other than the simplifier,
one should use the withLocation
tactic combinator
when working with a location
.
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
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
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
Equations
- One or more equations did not get rendered due to their size.