File: .lake/packages/lean4/src/lean/Init/Data/Range.lean

full_name: Std.Range.start
code: structure Range where
  start : Nat := 0
  stop  : Nat
  step  : Nat := 1
goal: Nat

full_name: Std.Range
code: structure Range where
  start : Nat := 0
  stop  : Nat
  step  : Nat := 1
goal: Type

full_name: Std.Range.step
code: structure Range where
  start : Nat := 0
  stop  : Nat
  step  : Nat := 1
goal: Nat

full_name: Std.Range.stop
code: structure Range where
  start : Nat := 0
  stop  : Nat
  step  : Nat := 1
goal: Nat

full_name: Std.instMembershipNatRange
code: instance : Membership Nat Range 
goal: Membership Nat Std.Range

full_name: Std.Range.forIn
code: @[inline] protected def forIn {β : Type u} {m : Type u → Type v} [Monad m] (range : Range) (init : β) (f : Nat → β → m (ForInStep β)) : m β 
goal: m β

full_name: Std.Range.forIn.loop
code: @[inline] protected def forIn {β : Type u} {m : Type u → Type v} [Monad m] (range : Range) (init : β) (f : Nat → β → m (ForInStep β)) : m β 
goal: m β

full_name: Std.Range.instForInNat
code: instance : ForIn m Range Nat 
goal: ForIn m Std.Range Nat

full_name: Std.Range.forIn'
code: @[inline] protected def forIn' {β : Type u} {m : Type u → Type v} [Monad m] (range : Range) (init : β) (f : (i : Nat) → i ∈ range → β → m (ForInStep β)) : m β 
goal: m β

full_name: Std.Range.forIn'.loop
code: @[inline] protected def forIn' {β : Type u} {m : Type u → Type v} [Monad m] (range : Range) (init : β) (f : (i : Nat) → i ∈ range → β → m (ForInStep β)) : m β 
goal: m β

full_name: Std.Range.instForIn'NatInferInstanceMembership
code: instance : ForIn' m Range Nat inferInstance 
goal: ForIn' m Std.Range Nat inferInstance

full_name: Std.Range.forM.loop
code: @[inline] protected def forM {m : Type u → Type v} [Monad m] (range : Range) (f : Nat → m PUnit) : m PUnit 
goal: m PUnit

full_name: Std.Range.forM
code: @[inline] protected def forM {m : Type u → Type v} [Monad m] (range : Range) (f : Nat → m PUnit) : m PUnit 
goal: m PUnit

full_name: Std.Range.instForMNat
code: instance : ForM m Range Nat 
goal: ForM m Std.Range Nat

full_name: Std.Range.«term[:_]»
code: syntax:max "[" withoutPosition(":" term) "]" : term
goal: Lean.ParserDescr

full_name: Std.Range.«term[_:_]»
code: syntax:max "[" withoutPosition(term ":" term) "]" : term
goal: Lean.ParserDescr

full_name: Std.Range.«term[:_:_]»
code: syntax:max "[" withoutPosition(":" term ":" term) "]" : term
goal: Lean.ParserDescr

full_name: Std.Range.«term[_:_:_]»
code: syntax:max "[" withoutPosition(term ":" term ":" term) "]" : term
goal: Lean.ParserDescr

full_name: Std.Range.«_aux_.lake_packages_lean4_src_lean_Init_Data_Range___macroRules_Std_Range_term[:_]_1»
code: macro_rules
  | `([ : $stop]) => `({ stop := $stop : Range })
  | `([ $start : $stop ]) => `({ start := $start, stop := $stop : Range })
  | `([ $start : $stop : $step ]) => `({ start := $start, stop := $stop, step := $step : Range })
  | `([ : $stop : $step ]) => `({ stop := $stop, step := $step : Range })
goal: Lean.Macro

full_name: Std.Range.«_aux_.lake_packages_lean4_src_lean_Init_Data_Range___macroRules_Std_Range_term[_:_]_1»
code: macro_rules
  | `([ : $stop]) => `({ stop := $stop : Range })
  | `([ $start : $stop ]) => `({ start := $start, stop := $stop : Range })
  | `([ $start : $stop : $step ]) => `({ start := $start, stop := $stop, step := $step : Range })
  | `([ : $stop : $step ]) => `({ stop := $stop, step := $step : Range })
goal: Lean.Macro

full_name: Std.Range.«_aux_.lake_packages_lean4_src_lean_Init_Data_Range___macroRules_Std_Range_term[:_:_]_1»
code: macro_rules
  | `([ : $stop]) => `({ stop := $stop : Range })
  | `([ $start : $stop ]) => `({ start := $start, stop := $stop : Range })
  | `([ $start : $stop : $step ]) => `({ start := $start, stop := $stop, step := $step : Range })
  | `([ : $stop : $step ]) => `({ stop := $stop, step := $step : Range })
goal: Lean.Macro

full_name: Std.Range.«_aux_.lake_packages_lean4_src_lean_Init_Data_Range___macroRules_Std_Range_term[_:_:_]_1»
code: macro_rules
  | `([ : $stop]) => `({ stop := $stop : Range })
  | `([ $start : $stop ]) => `({ start := $start, stop := $stop : Range })
  | `([ $start : $stop : $step ]) => `({ start := $start, stop := $stop, step := $step : Range })
  | `([ : $stop : $step ]) => `({ stop := $stop, step := $step : Range })
goal: Lean.Macro

full_name: Membership.mem.upper
code: theorem Membership.mem.upper {i : Nat} {r : Std.Range} (h : i ∈ r) : i < r.stop 
goal: i < r.stop

full_name: Membership.mem.lower
code: theorem Membership.mem.lower {i : Nat} {r : Std.Range} (h : i ∈ r) : r.start ≤ i 
goal: r.start ≤ i

full_name: Membership.get_elem_helper
code: theorem Membership.get_elem_helper {i n : Nat} {r : Std.Range} (h₁ : i ∈ r) (h₂ : r.stop = n) :
    i < n 
goal: i < n

full_name: «_aux_.lake_packages_lean4_src_lean_Init_Data_Range___macroRules_tacticGet_elem_tactic_trivial_1»
code: macro_rules
  | `(tactic| get_elem_tactic_trivial) => `(tactic| apply Membership.get_elem_helper; assumption; rfl)
goal: Lean.Macro