File: .lake/packages/aesop/Aesop/Builder/Basic.lean

full_name: Aesop.RuleBuilderOptions.indexingMode?
code: /--
Options for the builders. Most options are only relevant for certain builders.
-/
structure RuleBuilderOptions where
  immediatePremises? : Option (Array Name)
  indexingMode? : Option IndexingMode
  casesPatterns? : Option (Array CasesPattern)
  pattern? : Option Term
  /-- The transparency used by the rule tactic. -/
  transparency? : Option TransparencyMode
  /-- The transparency used for indexing the rule. Currently, the rule is not
  indexed unless this is `.reducible`. -/
  indexTransparency? : Option TransparencyMode
  deriving Inhabited
goal: Option Aesop.IndexingMode

full_name: Aesop.RuleBuilderOptions.pattern?
code: /--
Options for the builders. Most options are only relevant for certain builders.
-/
structure RuleBuilderOptions where
  immediatePremises? : Option (Array Name)
  indexingMode? : Option IndexingMode
  casesPatterns? : Option (Array CasesPattern)
  pattern? : Option Term
  /-- The transparency used by the rule tactic. -/
  transparency? : Option TransparencyMode
  /-- The transparency used for indexing the rule. Currently, the rule is not
  indexed unless this is `.reducible`. -/
  indexTransparency? : Option TransparencyMode
  deriving Inhabited
goal: Option Lean.Term

full_name: Aesop.RuleBuilderOptions.immediatePremises?
code: /--
Options for the builders. Most options are only relevant for certain builders.
-/
structure RuleBuilderOptions where
  immediatePremises? : Option (Array Name)
  indexingMode? : Option IndexingMode
  casesPatterns? : Option (Array CasesPattern)
  pattern? : Option Term
  /-- The transparency used by the rule tactic. -/
  transparency? : Option TransparencyMode
  /-- The transparency used for indexing the rule. Currently, the rule is not
  indexed unless this is `.reducible`. -/
  indexTransparency? : Option TransparencyMode
  deriving Inhabited
goal: Option (Array Lean.Name)

full_name: Aesop.instInhabitedRuleBuilderOptions
code: /--
Options for the builders. Most options are only relevant for certain builders.
-/
structure RuleBuilderOptions where
  immediatePremises? : Option (Array Name)
  indexingMode? : Option IndexingMode
  casesPatterns? : Option (Array CasesPattern)
  pattern? : Option Term
  /-- The transparency used by the rule tactic. -/
  transparency? : Option TransparencyMode
  /-- The transparency used for indexing the rule. Currently, the rule is not
  indexed unless this is `.reducible`. -/
  indexTransparency? : Option TransparencyMode
  deriving Inhabited
goal: Inhabited Aesop.RuleBuilderOptions

full_name: Aesop.RuleBuilderOptions.casesPatterns?
code: /--
Options for the builders. Most options are only relevant for certain builders.
-/
structure RuleBuilderOptions where
  immediatePremises? : Option (Array Name)
  indexingMode? : Option IndexingMode
  casesPatterns? : Option (Array CasesPattern)
  pattern? : Option Term
  /-- The transparency used by the rule tactic. -/
  transparency? : Option TransparencyMode
  /-- The transparency used for indexing the rule. Currently, the rule is not
  indexed unless this is `.reducible`. -/
  indexTransparency? : Option TransparencyMode
  deriving Inhabited
goal: Option (Array Aesop.CasesPattern)

full_name: Aesop.RuleBuilderOptions.transparency?
code: /--
Options for the builders. Most options are only relevant for certain builders.
-/
structure RuleBuilderOptions where
  immediatePremises? : Option (Array Name)
  indexingMode? : Option IndexingMode
  casesPatterns? : Option (Array CasesPattern)
  pattern? : Option Term
  /-- The transparency used by the rule tactic. -/
  transparency? : Option TransparencyMode
  /-- The transparency used for indexing the rule. Currently, the rule is not
  indexed unless this is `.reducible`. -/
  indexTransparency? : Option TransparencyMode
  deriving Inhabited
goal: Option Lean.Meta.TransparencyMode

full_name: Aesop.RuleBuilderOptions
code: /--
Options for the builders. Most options are only relevant for certain builders.
-/
structure RuleBuilderOptions where
  immediatePremises? : Option (Array Name)
  indexingMode? : Option IndexingMode
  casesPatterns? : Option (Array CasesPattern)
  pattern? : Option Term
  /-- The transparency used by the rule tactic. -/
  transparency? : Option TransparencyMode
  /-- The transparency used for indexing the rule. Currently, the rule is not
  indexed unless this is `.reducible`. -/
  indexTransparency? : Option TransparencyMode
  deriving Inhabited
goal: Type

full_name: Aesop.RuleBuilderOptions.indexTransparency?
code: /--
Options for the builders. Most options are only relevant for certain builders.
-/
structure RuleBuilderOptions where
  immediatePremises? : Option (Array Name)
  indexingMode? : Option IndexingMode
  casesPatterns? : Option (Array CasesPattern)
  pattern? : Option Term
  /-- The transparency used by the rule tactic. -/
  transparency? : Option TransparencyMode
  /-- The transparency used for indexing the rule. Currently, the rule is not
  indexed unless this is `.reducible`. -/
  indexTransparency? : Option TransparencyMode
  deriving Inhabited
goal: Option Lean.Meta.TransparencyMode

full_name: Aesop.RuleBuilderOptions.default
code: protected def default : RuleBuilderOptions 
goal: Aesop.RuleBuilderOptions

full_name: Aesop.RuleBuilderOptions.instEmptyCollection
code: instance : EmptyCollection RuleBuilderOptions 
goal: EmptyCollection Aesop.RuleBuilderOptions

full_name: Aesop.CoreRuleBuilderOutput.pattern?
code: structure CoreRuleBuilderOutput where
  ruleExprName : Name
  builderName : BuilderName
  scopeName : ScopeName
  tac : RuleTacDescr
  indexingMode : IndexingMode
  pattern? : Option RulePattern
goal: Option Aesop.RulePattern

full_name: Aesop.CoreRuleBuilderOutput.tac
code: structure CoreRuleBuilderOutput where
  ruleExprName : Name
  builderName : BuilderName
  scopeName : ScopeName
  tac : RuleTacDescr
  indexingMode : IndexingMode
  pattern? : Option RulePattern
goal: Aesop.RuleTacDescr

full_name: Aesop.CoreRuleBuilderOutput.builderName
code: structure CoreRuleBuilderOutput where
  ruleExprName : Name
  builderName : BuilderName
  scopeName : ScopeName
  tac : RuleTacDescr
  indexingMode : IndexingMode
  pattern? : Option RulePattern
goal: Aesop.BuilderName

full_name: Aesop.CoreRuleBuilderOutput.scopeName
code: structure CoreRuleBuilderOutput where
  ruleExprName : Name
  builderName : BuilderName
  scopeName : ScopeName
  tac : RuleTacDescr
  indexingMode : IndexingMode
  pattern? : Option RulePattern
goal: Aesop.ScopeName

full_name: Aesop.CoreRuleBuilderOutput.ruleExprName
code: structure CoreRuleBuilderOutput where
  ruleExprName : Name
  builderName : BuilderName
  scopeName : ScopeName
  tac : RuleTacDescr
  indexingMode : IndexingMode
  pattern? : Option RulePattern
goal: Lean.Name

full_name: Aesop.CoreRuleBuilderOutput
code: structure CoreRuleBuilderOutput where
  ruleExprName : Name
  builderName : BuilderName
  scopeName : ScopeName
  tac : RuleTacDescr
  indexingMode : IndexingMode
  pattern? : Option RulePattern
goal: Type

full_name: Aesop.CoreRuleBuilderOutput.indexingMode
code: structure CoreRuleBuilderOutput where
  ruleExprName : Name
  builderName : BuilderName
  scopeName : ScopeName
  tac : RuleTacDescr
  indexingMode : IndexingMode
  pattern? : Option RulePattern
goal: Aesop.IndexingMode

full_name: Aesop.PhaseSpec
code: inductive PhaseSpec
  | safe (info : SafeRuleInfo)
  | norm (info : NormRuleInfo)
  | «unsafe» (info : UnsafeRuleInfo)
  deriving Inhabited
goal: Type

full_name: Aesop.PhaseSpec.unsafe
code: inductive PhaseSpec
  | safe (info : SafeRuleInfo)
  | norm (info : NormRuleInfo)
  | «unsafe» (info : UnsafeRuleInfo)
  deriving Inhabited
goal: Aesop.PhaseSpec

full_name: Aesop.PhaseSpec.safe
code: inductive PhaseSpec
  | safe (info : SafeRuleInfo)
  | norm (info : NormRuleInfo)
  | «unsafe» (info : UnsafeRuleInfo)
  deriving Inhabited
goal: Aesop.PhaseSpec

full_name: Aesop.instInhabitedPhaseSpec
code: inductive PhaseSpec
  | safe (info : SafeRuleInfo)
  | norm (info : NormRuleInfo)
  | «unsafe» (info : UnsafeRuleInfo)
  deriving Inhabited
goal: Inhabited Aesop.PhaseSpec

full_name: Aesop.PhaseSpec.norm
code: inductive PhaseSpec
  | safe (info : SafeRuleInfo)
  | norm (info : NormRuleInfo)
  | «unsafe» (info : UnsafeRuleInfo)
  deriving Inhabited
goal: Aesop.PhaseSpec

full_name: Aesop.PhaseSpec.phase
code: def phase : PhaseSpec → PhaseName
  
goal: Aesop.PhaseSpec → Aesop.PhaseName

full_name: Aesop.PhaseSpec.toRule
code: def toRule (phase : PhaseSpec) (ruleExprName : Name) (builder : BuilderName)
    (scope : ScopeName) (tac : RuleTacDescr) (indexingMode : IndexingMode)
    (pattern? : Option RulePattern) : BaseRuleSetMember 
goal: Aesop.BaseRuleSetMember

full_name: Aesop.instInhabitedRuleBuilderInput
code: structure RuleBuilderInput where
  term : Term
  options : RuleBuilderOptions
  phase : PhaseSpec
  deriving Inhabited
goal: Inhabited Aesop.RuleBuilderInput

full_name: Aesop.RuleBuilderInput
code: structure RuleBuilderInput where
  term : Term
  options : RuleBuilderOptions
  phase : PhaseSpec
  deriving Inhabited
goal: Type

full_name: Aesop.RuleBuilderInput.phase
code: structure RuleBuilderInput where
  term : Term
  options : RuleBuilderOptions
  phase : PhaseSpec
  deriving Inhabited
goal: Aesop.PhaseSpec

full_name: Aesop.RuleBuilderInput.term
code: structure RuleBuilderInput where
  term : Term
  options : RuleBuilderOptions
  phase : PhaseSpec
  deriving Inhabited
goal: Lean.Term

full_name: Aesop.RuleBuilderInput.options
code: structure RuleBuilderInput where
  term : Term
  options : RuleBuilderOptions
  phase : PhaseSpec
  deriving Inhabited
goal: Aesop.RuleBuilderOptions

full_name: Aesop.RuleBuilderInput.phaseName
code: def phaseName (input : RuleBuilderInput) : PhaseName 
goal: Aesop.PhaseName

full_name: Aesop.RuleBuilder
code: abbrev RuleBuilder 
goal: Type

full_name: Aesop.elabGlobalRuleIdent
code: def elabGlobalRuleIdent (builderName : BuilderName) (term : Term) :
    TermElabM Name 
goal: Lean.Elab.TermElabM Lean.Name

full_name: Aesop.elabInductiveRuleIdent
code: def elabInductiveRuleIdent (builderName : BuilderName) (term : Term) :
    TermElabM InductiveVal 
goal: Lean.Elab.TermElabM Lean.InductiveVal

full_name: Aesop.ElabRuleTerm
code: inductive ElabRuleTerm
  | const (decl : Name)
  | term (term : Term) (expr : Expr)
goal: Type

full_name: Aesop.ElabRuleTerm.const
code: inductive ElabRuleTerm
  | const (decl : Name)
  | term (term : Term) (expr : Expr)
goal: Aesop.ElabRuleTerm

full_name: Aesop.ElabRuleTerm.term
code: inductive ElabRuleTerm
  | const (decl : Name)
  | term (term : Term) (expr : Expr)
goal: Aesop.ElabRuleTerm

full_name: Aesop.ElabRuleTerm.expr
code: def expr : ElabRuleTerm → MetaM Expr
  
goal: Aesop.ElabRuleTerm → Lean.MetaM Lean.Expr

full_name: Aesop.ElabRuleTerm.scope
code: def scope : ElabRuleTerm → ScopeName
  
goal: Aesop.ElabRuleTerm → Aesop.ScopeName

full_name: Aesop.ElabRuleTerm.name
code: def name : ElabRuleTerm → MetaM Name
  
goal: Aesop.ElabRuleTerm → Lean.MetaM Lean.Name

full_name: Aesop.ElabRuleTerm.toRuleTerm
code: def toRuleTerm : ElabRuleTerm → RuleTerm
  
goal: Aesop.ElabRuleTerm → Aesop.RuleTerm

full_name: Aesop.ElabRuleTerm.ofElaboratedTerm
code: def ofElaboratedTerm (tm : Term) (expr : Expr) : ElabRuleTerm 
goal: Aesop.ElabRuleTerm