Equations
- Lean.instInhabitedNameGenerator = { default := { namePrefix := default, idx := default } }
- all: Lean.Meta.TransparencyMode
unfold all constants, even those tagged as
@[irreducible]
. - default: Lean.Meta.TransparencyMode
unfold all constants except those tagged as
@[irreducible]
. - reducible: Lean.Meta.TransparencyMode
unfold only constants tagged with the
@[reducible]
attribute. - instances: Lean.Meta.TransparencyMode
unfold reducible constants and constants tagged with the
@[instance]
attribute.
Instances For
Equations
Equations
- all: Lean.Meta.EtaStructMode
Enable eta for structure and classes.
- notClasses: Lean.Meta.EtaStructMode
Enable eta only for structures that are not classes.
- none: Lean.Meta.EtaStructMode
Disable eta for structures and classes.
Instances For
Equations
- Lean.Meta.instInhabitedEtaStructMode = { default := Lean.Meta.EtaStructMode.all }
Equations
The configuration for dsimp
.
Passed to dsimp
using, for example, the dsimp (config := {zeta := false})
syntax.
Implementation note: this structure is only used for processing the (config := ...)
syntax, and it is not used internally.
It is immediately converted to Lean.Meta.Simp.Config
by Lean.Elab.Tactic.elabSimpConfig
.
- zeta : Bool
When
true
(default:true
), performs zeta reduction of let expressions. That is,let x := v; e[x]
reduces toe[v]
. See alsozetaDelta
. - beta : Bool
When
true
(default:true
), performs beta reduction of applications offun
expressions. That is,(fun x => e[x]) v
reduces toe[v]
. - eta : Bool
TODO (currently unimplemented). When
true
(default:true
), performs eta reduction forfun
expressions. That is,(fun x => f x)
reduces tof
. - etaStruct : Lean.Meta.EtaStructMode
Configures how to determine definitional equality between two structure instances. See documentation for
Lean.Meta.EtaStructMode
. - iota : Bool
When
true
(default:true
), reducesmatch
expressions applied to constructors. - proj : Bool
When
true
(default:true
), reduces projections of structure constructors. - decide : Bool
- autoUnfold : Bool
When
true
(default:false
), unfolds definitions. This can be enabled using thesimp!
syntax. - failIfUnchanged : Bool
If
failIfUnchanged
istrue
(default:true
), then calls tosimp
,dsimp
, orsimp_all
will fail if they do not make progress. - unfoldPartialApp : Bool
If
unfoldPartialApp
istrue
(default:false
), then calls tosimp
,dsimp
, orsimp_all
will unfold even partial applications off
when we requestf
to be unfolded. - zetaDelta : Bool
When
true
(default:false
), local definitions are unfolded. That is, given a local context containing entryx : t := e
, the free variablex
reduces toe
. - index : Bool
When
index
(default :true
) isfalse
,simp
will only use the root symbol to find candidatesimp
theorems. It approximates Lean 3simp
behavior.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
Equations
- Lean.Meta.Simp.defaultMaxSteps = 100000
Instances For
The configuration for simp
.
Passed to simp
using, for example, the simp (config := {contextual := true})
syntax.
See also Lean.Meta.Simp.neutralConfig
and Lean.Meta.DSimp.Config
.
- maxSteps : Nat
The maximum number of subexpressions to visit when performing simplification. The default is 100000.
- maxDischargeDepth : Nat
When simp discharges side conditions for conditional lemmas, it can recursively apply simplification. The
maxDischargeDepth
(default: 2) is the maximum recursion depth when recursively applying simplification to side conditions. - contextual : Bool
When
contextual
is true (default:false
) and simplification encounters an implicationp → q
it includesp
as an additional simp lemma when simplifyingq
. - memoize : Bool
When true (default:
true
) then the simplifier caches the result of simplifying each subexpression, if possible. - singlePass : Bool
When
singlePass
istrue
(default:false
), the simplifier runs through a single round of simplification, which consists of running pre-methods, recursing using congruence lemmas, and then running post-methods. Otherwise, when it isfalse
, it iteratively applies this simplification procedure. - zeta : Bool
When
true
(default:true
), performs zeta reduction of let expressions. That is,let x := v; e[x]
reduces toe[v]
. See alsozetaDelta
. - beta : Bool
When
true
(default:true
), performs beta reduction of applications offun
expressions. That is,(fun x => e[x]) v
reduces toe[v]
. - eta : Bool
TODO (currently unimplemented). When
true
(default:true
), performs eta reduction forfun
expressions. That is,(fun x => f x)
reduces tof
. - etaStruct : Lean.Meta.EtaStructMode
Configures how to determine definitional equality between two structure instances. See documentation for
Lean.Meta.EtaStructMode
. - iota : Bool
When
true
(default:true
), reducesmatch
expressions applied to constructors. - proj : Bool
When
true
(default:true
), reduces projections of structure constructors. - decide : Bool
- arith : Bool
When
true
(default:false
), simplifies simple arithmetic expressions. - autoUnfold : Bool
When
true
(default:false
), unfolds definitions. This can be enabled using thesimp!
syntax. - dsimp : Bool
- failIfUnchanged : Bool
If
failIfUnchanged
istrue
(default:true
), then calls tosimp
,dsimp
, orsimp_all
will fail if they do not make progress. - ground : Bool
If
ground
istrue
(default:false
), then ground terms are reduced. A term is ground when it does not contain free or meta variables. Reduction is interrupted at a function applicationf ...
iff
is marked to not be unfolded. Ground term reduction applies@[seval]
lemmas. - unfoldPartialApp : Bool
If
unfoldPartialApp
istrue
(default:false
), then calls tosimp
,dsimp
, orsimp_all
will unfold even partial applications off
when we requestf
to be unfolded. - zetaDelta : Bool
When
true
(default:false
), local definitions are unfolded. That is, given a local context containing entryx : t := e
, the free variablex
reduces toe
. - index : Bool
When
index
(default :true
) isfalse
,simp
will only use the root symbol to find candidatesimp
theorems. It approximates Lean 3simp
behavior. - implicitDefEqProofs : Bool
When
true
(default:true
),simp
will not create a proof for a rewriting rule associated with anrfl
-theorem. Rewriting rules are provided by users by annotating theorems with the attribute@[simp]
. If the proof of the theorem is justrfl
(reflexivity), andimplicitDefEqProofs := true
,simp
will not create a proof term which is an application of the annotated theorem.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
A neutral configuration for simp
, turning off all reductions and other built-in simplifications.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- all: Lean.Meta.Occurrences
- pos: List Nat → Lean.Meta.Occurrences
- neg: List Nat → Lean.Meta.Occurrences
Instances For
Equations
- Lean.Meta.instInhabitedOccurrences = { default := Lean.Meta.Occurrences.all }