Options for the builders. Most options are only relevant for certain builders.
- indexingMode? : Option Aesop.IndexingMode
- casesPatterns? : Option (Array Aesop.CasesPattern)
- transparency? : Option Lean.Meta.TransparencyMode
The transparency used by the rule tactic.
- indexTransparency? : Option Lean.Meta.TransparencyMode
The transparency used for indexing the rule. Currently, the rule is not indexed unless this is
.reducible
.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Aesop.RuleBuilderOptions.default = { immediatePremises? := none, indexingMode? := none, casesPatterns? := none, pattern? := none, transparency? := none, indexTransparency? := none }
Instances For
Equations
- Aesop.RuleBuilderOptions.instEmptyCollection = { emptyCollection := Aesop.RuleBuilderOptions.default }
- ruleExprName : Lean.Name
- builderName : Aesop.BuilderName
- scopeName : Aesop.ScopeName
- tac : Aesop.RuleTacDescr
- indexingMode : Aesop.IndexingMode
- pattern? : Option Aesop.RulePattern
Instances For
- safe: Aesop.SafeRuleInfo → Aesop.PhaseSpec
- norm: Aesop.NormRuleInfo → Aesop.PhaseSpec
- unsafe: Aesop.UnsafeRuleInfo → Aesop.PhaseSpec
Instances For
Equations
- Aesop.instInhabitedPhaseSpec = { default := Aesop.PhaseSpec.safe default }
Equations
- x.phase = match x with | Aesop.PhaseSpec.safe info => Aesop.PhaseName.safe | Aesop.PhaseSpec.unsafe info => Aesop.PhaseName.unsafe | Aesop.PhaseSpec.norm info => Aesop.PhaseName.norm
Instances For
def
Aesop.PhaseSpec.toRule
(phase : Aesop.PhaseSpec)
(ruleExprName : Lean.Name)
(builder : Aesop.BuilderName)
(scope : Aesop.ScopeName)
(tac : Aesop.RuleTacDescr)
(indexingMode : Aesop.IndexingMode)
(pattern? : Option Aesop.RulePattern)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
- term : Lean.Term
- options : Aesop.RuleBuilderOptions
- phase : Aesop.PhaseSpec
Instances For
Equations
- Aesop.instInhabitedRuleBuilderInput = { default := { term := default, options := default, phase := default } }
Equations
- input.phaseName = input.phase.phase
Instances For
@[reducible, inline]
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
- const: Lean.Name → Aesop.ElabRuleTerm
- term: Lean.Term → Lean.Expr → Aesop.ElabRuleTerm
Instances For
Equations
- x.expr = match x with | Aesop.ElabRuleTerm.const decl => Lean.Meta.mkConstWithFreshMVarLevels decl | Aesop.ElabRuleTerm.term term e => pure e
Instances For
Equations
- x.scope = match x with | Aesop.ElabRuleTerm.const decl => Aesop.ScopeName.global | Aesop.ElabRuleTerm.term term expr => Aesop.ScopeName.local
Instances For
Equations
- x.name = match x with | Aesop.ElabRuleTerm.const decl => pure decl | Aesop.ElabRuleTerm.term term e => Aesop.getRuleNameForExpr e
Instances For
Equations
- x.toRuleTerm = match x with | Aesop.ElabRuleTerm.const decl => Aesop.RuleTerm.const decl | Aesop.ElabRuleTerm.term t expr => Aesop.RuleTerm.term t
Instances For
Equations
- Aesop.ElabRuleTerm.ofElaboratedTerm tm expr = match expr.constName? with | some decl => Aesop.ElabRuleTerm.const decl | x => Aesop.ElabRuleTerm.term tm expr