Equations
Instances For
Which constants should be unfolded?
- all : TransparencyModeUnfolds all constants, even those tagged as @[irreducible].
- default : TransparencyModeUnfolds all constants except those tagged as @[irreducible].
- reducible : TransparencyModeUnfolds only constants tagged with the @[reducible]attribute.
- instances : TransparencyModeUnfolds reducible constants and constants tagged with the @[instance]attribute.
Instances For
Equations
- Lean.Meta.instBEqTransparencyMode.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Which structure types should eta be used with?
- all : EtaStructModeEnable eta for structure and classes. 
- notClasses : EtaStructModeEnable eta only for structures that are not classes. 
- none : EtaStructModeDisable eta for structures and classes. 
Instances For
Equations
- Lean.Meta.instBEqEtaStructMode.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
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
- beta : BoolWhen true(default:true), performs beta reduction of applications offunexpressions. That is,(fun x => e[x]) vreduces toe[v].
- eta : BoolTODO (currently unimplemented). When true(default:true), performs eta reduction forfunexpressions. That is,(fun x => f x)reduces tof.
- etaStruct : EtaStructModeConfigures how to determine definitional equality between two structure instances. See documentation for Lean.Meta.EtaStructMode.
- iota : BoolWhen true(default:true), reducesmatchexpressions applied to constructors.
- proj : BoolWhen true(default:true), reduces projections of structure constructors.
- decide : Bool
- autoUnfold : BoolWhen true(default:false), unfolds applications of functions defined by pattern matching, when one of the patterns applies. This can be enabled using thesimp!syntax.
- failIfUnchanged : BoolIf failIfUnchangedistrue(default:true), then calls tosimp,dsimp, orsimp_allwill fail if they do not make progress.
- unfoldPartialApp : BoolIf unfoldPartialAppistrue(default:false), then calls tosimp,dsimp, orsimp_allwill unfold even partial applications offwhen we requestfto be unfolded.
- zetaDelta : BoolWhen true(default:false), local definitions are unfolded. That is, given a local context containingx : t := e, then the free variablexreduces toe. Otherwise,xmust be provided as asimpargument.
- index : BoolWhen index(default :true) isfalse,simpwill only use the root symbol to find candidatesimptheorems. It approximates Lean 3simpbehavior.
- zetaUnused : BoolWhen true(default :true), thensimpwill remove unusedletandhaveexpressions:let x := v; esimplifies toewhenxdoes not occur ine.
- zetaHave : BoolWhen false(default:true), then disables zeta reduction ofhaveexpressions. Ifzetaisfalse, then this option has no effect. Unusedhaves are still removed ifzetaorzetaUnusedare true.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
- Lean.Meta.DSimp.instBEqConfig.beq x✝¹ x✝ = false
Instances For
Equations
Equations
- Lean.Meta.Simp.defaultMaxSteps = 100000
Instances For
The configuration for simp.
Passed to simp using, for example, the simp +contextual or simp (maxSteps := 100000) syntax.
See also Lean.Meta.Simp.neutralConfig and Lean.Meta.DSimp.Config.
- maxSteps : NatThe maximum number of subexpressions to visit when performing simplification. The default is 100000. 
- maxDischargeDepth : NatWhen 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 : BoolWhen contextualis true (default:false) and simplification encounters an implicationp → qit includespas an additional simp lemma when simplifyingq.
- memoize : BoolWhen true (default: true) then the simplifier caches the result of simplifying each sub-expression, if possible.
- singlePass : BoolWhen singlePassistrue(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
- beta : BoolWhen true(default:true), performs beta reduction of applications offunexpressions. That is,(fun x => e[x]) vreduces toe[v].
- eta : BoolTODO (currently unimplemented). When true(default:true), performs eta reduction forfunexpressions. That is,(fun x => f x)reduces tof.
- etaStruct : EtaStructModeConfigures how to determine definitional equality between two structure instances. See documentation for Lean.Meta.EtaStructMode.
- iota : BoolWhen true(default:true), reducesmatchexpressions applied to constructors.
- proj : BoolWhen true(default:true), reduces projections of structure constructors.
- decide : Bool
- arith : BoolWhen true(default:false), simplifies simple arithmetic expressions.
- autoUnfold : BoolWhen true(default:false), unfolds applications of functions defined by pattern matching, when one of the patterns applies. This can be enabled using thesimp!syntax.
- dsimp : Bool
- failIfUnchanged : BoolIf failIfUnchangedistrue(default:true), then calls tosimp,dsimp, orsimp_allwill fail if they do not make progress.
- ground : BoolIf groundistrue(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 ...iffis marked to not be unfolded. Ground term reduction applies@[seval]lemmas.
- unfoldPartialApp : BoolIf unfoldPartialAppistrue(default:false), then calls tosimp,dsimp, orsimp_allwill unfold even partial applications offwhen we requestfto be unfolded.
- zetaDelta : BoolWhen true(default:false), local definitions are unfolded. That is, given a local context containingx : t := e, then the free variablexreduces toe. Otherwise,xmust be provided as asimpargument.
- index : BoolWhen index(default :true) isfalse,simpwill only use the root symbol to find candidatesimptheorems. It approximates Lean 3simpbehavior.
- implicitDefEqProofs : BoolIf implicitDefEqProofs := true,simpdoes not create proof terms when the input and output terms are definitionally equal.
- zetaUnused : Bool
- catchRuntime : BoolWhen true(default :true), thensimpcatches runtime exceptions and converts them intosimpexceptions.
- zetaHave : BoolWhen false(default:true), then disables zeta reduction ofhaveexpressions. Ifzetaisfalse, then this option has no effect. Unusedhaves are still removed ifzetaorzetaUnusedare true.
- letToHave : BoolWhen true(default :true), thensimpwill attempt to transformlets intohaves if they are non-dependent. This only applies whenzeta := false.
- congrConsts : BoolWhen true(default:true),simptries to realize constantf.congr_simpwhen constructing an auxiliary congruence proof forf. This option exists because the termination prover usessimpandwithoutModifyingEnvwhile constructing the termination proof. Thus, any constant realized bysimpis deleted.
- bitVecOfNat : BoolWhen true(default:true), the bitvector simprocs useBitVec.ofNatfor representing bitvector literals.
- warnExponents : BoolWhen true(default:true), the^simprocs generate an warning it the exponents are too big.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
- Lean.Meta.Simp.instBEqConfig.beq x✝¹ x✝ = false
Instances For
Instances For
A neutral configuration for simp, turning off all reductions and other built-in simplifications.
Equations
Instances For
Instances For
Configuration for which occurrences that match an expression should be rewritten.
- all : OccurrencesAll occurrences should be rewritten. 
- pos
(idxs : List Nat)
 : OccurrencesA list of indices for which occurrences should be rewritten. 
- neg
(idxs : List Nat)
 : OccurrencesA list of indices for which occurrences should not be rewritten. 
Instances For
Equations
Equations
Equations
- Lean.Meta.instBEqOccurrences.beq Lean.Meta.Occurrences.all Lean.Meta.Occurrences.all = true
- Lean.Meta.instBEqOccurrences.beq (Lean.Meta.Occurrences.pos a) (Lean.Meta.Occurrences.pos b) = (a == b)
- Lean.Meta.instBEqOccurrences.beq (Lean.Meta.Occurrences.neg a) (Lean.Meta.Occurrences.neg b) = (a == b)
- Lean.Meta.instBEqOccurrences.beq x✝¹ x✝ = false
Instances For
Equations
Configuration for the extract_lets tactic.
- proofs : BoolIf true (default: false), extract lets from subterms that are proofs. Top-level lets are always extracted. 
- types : BoolIf true (default: true), extract lets from subterms that are types. Top-level lets are always extracted. 
- implicits : BoolIf true (default: false), extract lets from subterms that are implicit arguments. 
- descend : Bool
- underBinder : BoolIf true (default: true), descend into forall/lambda/let bodies when extracting. Only relevant when descendis true.
- usedOnly : BoolIf true (default: false), eliminate unused lets rather than extract them. 
- merge : BoolIf true (default: true), reuse local declarations that have syntactically equal values. Note that even when false, the caching strategy for extract_lets may result in fewer extracted let bindings than expected.
- useContext : BoolWhen merging is enabled, if true (default: true), make use of pre-existing local definitions in the local context. 
- onlyGivenNames : BoolIf true (default: false), then once givenNamesis exhausted, stop extracting lets. Otherwise continue extracting lets.
- preserveBinderNames : BoolIf true (default: false), then when no name is provided for a 'let' expression, the name is used as-is without making it be inaccessible. The name still might be inaccessible if the binder name was. 
- lift : BoolIf true (default: false), lift non-extractable lets as far out as possible.
Instances For
Configuration for the lift_lets tactic.