File: .lake/packages/lean4/src/lean/Lean/Meta/Tactic/Intro.lean

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Meta.Tactic.Intro.0.Lean.Meta.introNImp
code: @[inline] private partial def introNImp {σ} (mvarId : MVarId) (n : Nat) (mkName : LocalContext → Name → Bool → σ → MetaM (Name × σ)) (s : σ)
    : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.FVarId × Lean.MVarId)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Meta.Tactic.Intro.0.Lean.Meta.introNImp.loop
code: @[inline] private partial def introNImp {σ} (mvarId : MVarId) (n : Nat) (mkName : LocalContext → Name → Bool → σ → MetaM (Name × σ)) (s : σ)
    : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.Expr × Lean.MVarId)

full_name: Lean.Meta.tactic.hygienic
code: register_builtin_option tactic.hygienic : Bool := {
  defValue := true
  group    := "tactic"
  descr    := "make sure tactics are hygienic"
}
goal: Lean.Option Bool

full_name: Lean.Meta.initFn._@..lake.packages.lean4.src.lean.Lean.Meta.Tactic.Intro._hyg.913
code: register_builtin_option tactic.hygienic : Bool := {
  defValue := true
  group    := "tactic"
  descr    := "make sure tactics are hygienic"
}
goal: IO (Lean.Option Bool)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Meta.Tactic.Intro.0.Lean.Meta.mkFreshBinderNameForTacticCore
code: private def mkFreshBinderNameForTacticCore (lctx : LocalContext) (binderName : Name) (hygienic := true) : MetaM Name 
goal: Lean.MetaM Lean.Name

full_name: Lean.Meta.mkFreshBinderNameForTactic
code: /--
Similar to `mkFreshUserName`, but takes into account `tactic.hygienic` option value.
If `tactic.hygienic = true`, then the current macro scopes are applied to `binderName`.
If not, then an unused (accessible) name (based on `binderName`) in the local context is used.
-/
def mkFreshBinderNameForTactic (binderName : Name) : MetaM Name 
goal: Lean.MetaM Lean.Name

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Meta.Tactic.Intro.0.Lean.Meta.mkAuxNameImp
code: private def mkAuxNameImp (preserveBinderNames : Bool) (hygienic : Bool) (useNamesForExplicitOnly : Bool)
    (lctx : LocalContext) (binderName : Name) (isExplicit : Bool) : List Name → MetaM (Name × List Name)
  
goal: List Lean.Name → Lean.MetaM (Lean.Name × List Lean.Name)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Meta.Tactic.Intro.0.Lean.Meta.mkAuxNameImp.mkAuxNameWithoutGivenName
code: private def mkAuxNameImp (preserveBinderNames : Bool) (hygienic : Bool) (useNamesForExplicitOnly : Bool)
    (lctx : LocalContext) (binderName : Name) (isExplicit : Bool) : List Name → MetaM (Name × List Name)
  
goal: Lean.MetaM (Lean.Name × List Lean.Name)

full_name: Lean.Meta.introNCore
code: def introNCore (mvarId : MVarId) (n : Nat) (givenNames : List Name) (useNamesForExplicitOnly : Bool) (preserveBinderNames : Bool)
    : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.FVarId × Lean.MVarId)

full_name: Lean.MVarId.introN
code: /--
Introduce `n` binders in the goal `mvarId`.
-/
abbrev _root_.Lean.MVarId.introN (mvarId : MVarId) (n : Nat) (givenNames : List Name := []) (useNamesForExplicitOnly := false) : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.FVarId × Lean.MVarId)

full_name: Lean.Meta.introN
code: @[deprecated MVarId.introN (since := "2022-07-15")]
abbrev introN (mvarId : MVarId) (n : Nat) (givenNames : List Name := []) (useNamesForExplicitOnly := false) : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.FVarId × Lean.MVarId)

full_name: Lean.MVarId.introNP
code: /--
Introduce `n` binders in the goal `mvarId`. The new hypotheses are named using the binder names.
The suffix `P` stands for "preserving`.
-/
abbrev _root_.Lean.MVarId.introNP (mvarId : MVarId) (n : Nat) : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.FVarId × Lean.MVarId)

full_name: Lean.Meta.introNP
code: @[deprecated MVarId.introNP (since := "2022-07-15")]
abbrev introNP (mvarId : MVarId) (n : Nat) : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.FVarId × Lean.MVarId)

full_name: Lean.MVarId.intro
code: /--
Introduce one binder using `name` as the the new hypothesis name.
-/
def _root_.Lean.MVarId.intro (mvarId : MVarId) (name : Name) : MetaM (FVarId × MVarId) 
goal: Lean.MetaM (Lean.FVarId × Lean.MVarId)

full_name: Lean.Meta.intro
code: @[deprecated MVarId.intro (since := "2022-07-15")]
def intro (mvarId : MVarId) (name : Name) : MetaM (FVarId × MVarId) 
goal: Lean.MetaM (Lean.FVarId × Lean.MVarId)

full_name: Lean.Meta.intro1Core
code: def intro1Core (mvarId : MVarId) (preserveBinderNames : Bool) : MetaM (FVarId × MVarId) 
goal: Lean.MetaM (Lean.FVarId × Lean.MVarId)

full_name: Lean.MVarId.intro1
code: /-- Introduce one object from the goal `mvarid`, without preserving the name used in the binder.
Returns a pair made of the newly introduced variable (which will have an inaccessible name)
and the new goal. This will fail if there is nothing to introduce, ie when the goal
does not start with a forall, lambda or let. -/
abbrev _root_.Lean.MVarId.intro1 (mvarId : MVarId) : MetaM (FVarId × MVarId) 
goal: Lean.MetaM (Lean.FVarId × Lean.MVarId)

full_name: Lean.Meta.intro1
code: @[deprecated MVarId.intro1 (since := "2022-07-15")]
abbrev intro1 (mvarId : MVarId) : MetaM (FVarId × MVarId) 
goal: Lean.MetaM (Lean.FVarId × Lean.MVarId)

full_name: Lean.MVarId.intro1P
code: /-- Introduce one object from the goal `mvarid`, preserving the name used in the binder.
Returns a pair made of the newly introduced variable and the new goal.
This will fail if there is nothing to introduce, ie when the goal
does not start with a forall, lambda or let. -/
abbrev _root_.Lean.MVarId.intro1P (mvarId : MVarId) : MetaM (FVarId × MVarId) 
goal: Lean.MetaM (Lean.FVarId × Lean.MVarId)

full_name: Lean.Meta.intro1P
code: @[deprecated MVarId.intro1P (since := "2022-07-15")]
abbrev intro1P (mvarId : MVarId) : MetaM (FVarId × MVarId) 
goal: Lean.MetaM (Lean.FVarId × Lean.MVarId)

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Meta.Tactic.Intro.0.Lean.Meta.getIntrosSize
code: private partial def getIntrosSize : Expr → Nat
  
goal: Lean.Expr → Nat

full_name: Lean.MVarId.intros
code: /--
Introduce as many binders as possible without unfolding definitions.
-/
def _root_.Lean.MVarId.intros (mvarId : MVarId) : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.FVarId × Lean.MVarId)

full_name: Lean.Meta.intros
code: @[deprecated MVarId.intros (since := "2022-07-15")]
def intros (mvarId : MVarId) : MetaM (Array FVarId × MVarId) 
goal: Lean.MetaM (Array Lean.FVarId × Lean.MVarId)