File: Mathlib/Data/Nat/Lattice.lean

full_name: Nat.instInfSet
code: noncomputable instance : InfSet ℕ 
goal: InfSet ℕ

full_name: Nat.instSupSet
code: noncomputable instance : SupSet ℕ 
goal: SupSet ℕ

full_name: Nat.sInf_def
code: theorem sInf_def {s : Set ℕ} (h : s.Nonempty) : sInf s = @Nat.find (fun n ↦ n ∈ s) _ h 
goal: sInf s = Nat.find h

full_name: Nat.sSup_def
code: theorem sSup_def {s : Set ℕ} (h : ∃ n, ∀ a ∈ s, a ≤ n) :
    sSup s = @Nat.find (fun n ↦ ∀ a ∈ s, a ≤ n) _ h 
goal: sSup s = Nat.find h

full_name: Set.Infinite.Nat.sSup_eq_zero
code: theorem _root_.Set.Infinite.Nat.sSup_eq_zero {s : Set ℕ} (h : s.Infinite) : sSup s = 0 
goal: sSup s = 0

full_name: Nat.sInf_eq_zero
code: @[simp]
theorem sInf_eq_zero {s : Set ℕ} : sInf s = 0 ↔ 0 ∈ s ∨ s = ∅ 
goal: sInf s = 0 ↔ 0 ∈ s ∨ s = ∅

full_name: Nat.sInf_empty
code: @[simp]
theorem sInf_empty : sInf ∅ = 0 
goal: sInf ∅ = 0

full_name: Nat.iInf_of_empty
code: @[simp]
theorem iInf_of_empty {ι : Sort*} [IsEmpty ι] (f : ι → ℕ) : iInf f = 0 
goal: iInf f = 0

full_name: Nat.iInf_const_zero
code: /-- This combines `Nat.iInf_of_empty` with `ciInf_const`. -/
@[simp]
lemma iInf_const_zero {ι : Sort*} : ⨅ i : ι, 0 = 0 
goal: ⨅ i, 0 = 0

full_name: Nat.sInf_mem
code: theorem sInf_mem {s : Set ℕ} (h : s.Nonempty) : sInf s ∈ s 
goal: sInf s ∈ s

full_name: Nat.not_mem_of_lt_sInf
code: theorem not_mem_of_lt_sInf {s : Set ℕ} {m : ℕ} (hm : m < sInf s) : m ∉ s 
goal: m ∉ s

full_name: Nat.sInf_le
code: protected theorem sInf_le {s : Set ℕ} {m : ℕ} (hm : m ∈ s) : sInf s ≤ m 
goal: sInf s ≤ m

full_name: Nat.nonempty_of_pos_sInf
code: theorem nonempty_of_pos_sInf {s : Set ℕ} (h : 0 < sInf s) : s.Nonempty 
goal: s.Nonempty

full_name: Nat.nonempty_of_sInf_eq_succ
code: theorem nonempty_of_sInf_eq_succ {s : Set ℕ} {k : ℕ} (h : sInf s = k + 1) : s.Nonempty 
goal: s.Nonempty

full_name: Nat.eq_Ici_of_nonempty_of_upward_closed
code: theorem eq_Ici_of_nonempty_of_upward_closed {s : Set ℕ} (hs : s.Nonempty)
    (hs' : ∀ k₁ k₂ : ℕ, k₁ ≤ k₂ → k₁ ∈ s → k₂ ∈ s) : s = Ici (sInf s) 
goal: s = Set.Ici (sInf s)

full_name: Nat.sInf_upward_closed_eq_succ_iff
code: theorem sInf_upward_closed_eq_succ_iff {s : Set ℕ} (hs : ∀ k₁ k₂ : ℕ, k₁ ≤ k₂ → k₁ ∈ s → k₂ ∈ s)
    (k : ℕ) : sInf s = k + 1 ↔ k + 1 ∈ s ∧ k ∉ s 
goal: sInf s = k + 1 ↔ k + 1 ∈ s ∧ k ∉ s

full_name: Nat.instLattice
code: /-- This instance is necessary, otherwise the lattice operations would be derived via
`ConditionallyCompleteLinearOrderBot` and marked as noncomputable. -/
instance : Lattice ℕ 
goal: Lattice ℕ

full_name: Nat.instConditionallyCompleteLinearOrderBot
code: noncomputable instance : ConditionallyCompleteLinearOrderBot ℕ 
goal: ConditionallyCompleteLinearOrderBot ℕ

full_name: Nat.sSup_mem
code: theorem sSup_mem {s : Set ℕ} (h₁ : s.Nonempty) (h₂ : BddAbove s) : sSup s ∈ s 
goal: sSup s ∈ s

full_name: Nat.sInf_add
code: theorem sInf_add {n : ℕ} {p : ℕ → Prop} (hn : n ≤ sInf { m | p m }) :
    sInf { m | p (m + n) } + n = sInf { m | p m } 
goal: sInf {m | p (m + n)} + n = sInf {m | p m}

full_name: Nat.sInf_add'
code: theorem sInf_add' {n : ℕ} {p : ℕ → Prop} (h : 0 < sInf { m | p m }) :
    sInf { m | p m } + n = sInf { m | p (m - n) } 
goal: sInf {m | p m} + n = sInf {m | p (m - n)}

full_name: Nat.iSup_lt_succ
code: theorem iSup_lt_succ (u : ℕ → α) (n : ℕ) : ⨆ k < n + 1, u k = (⨆ k < n, u k) ⊔ u n 
goal: ⨆ k, ⨆ (_ : k < n + 1), u k = (⨆ k, ⨆ (_ : k < n), u k) ⊔ u n

full_name: Nat.iSup_lt_succ'
code: theorem iSup_lt_succ' (u : ℕ → α) (n : ℕ) : ⨆ k < n + 1, u k = u 0 ⊔ ⨆ k < n, u (k + 1) 
goal: ⨆ k, ⨆ (_ : k < n + 1), u k = u 0 ⊔ ⨆ k, ⨆ (_ : k < n), u (k + 1)

full_name: Nat.iInf_lt_succ
code: theorem iInf_lt_succ (u : ℕ → α) (n : ℕ) : ⨅ k < n + 1, u k = (⨅ k < n, u k) ⊓ u n 
goal: ⨅ k, ⨅ (_ : k < n + 1), u k = (⨅ k, ⨅ (_ : k < n), u k) ⊓ u n

full_name: Nat.iInf_lt_succ'
code: theorem iInf_lt_succ' (u : ℕ → α) (n : ℕ) : ⨅ k < n + 1, u k = u 0 ⊓ ⨅ k < n, u (k + 1) 
goal: ⨅ k, ⨅ (_ : k < n + 1), u k = u 0 ⊓ ⨅ k, ⨅ (_ : k < n), u (k + 1)

full_name: Nat.iSup_le_succ
code: theorem iSup_le_succ (u : ℕ → α) (n : ℕ) : ⨆ k ≤ n + 1, u k = (⨆ k ≤ n, u k) ⊔ u (n + 1) 
goal: ⨆ k, ⨆ (_ : k ≤ n + 1), u k = (⨆ k, ⨆ (_ : k ≤ n), u k) ⊔ u (n + 1)

full_name: Nat.iSup_le_succ'
code: theorem iSup_le_succ' (u : ℕ → α) (n : ℕ) : ⨆ k ≤ n + 1, u k = u 0 ⊔ ⨆ k ≤ n, u (k + 1) 
goal: ⨆ k, ⨆ (_ : k ≤ n + 1), u k = u 0 ⊔ ⨆ k, ⨆ (_ : k ≤ n), u (k + 1)

full_name: Nat.iInf_le_succ
code: theorem iInf_le_succ (u : ℕ → α) (n : ℕ) : ⨅ k ≤ n + 1, u k = (⨅ k ≤ n, u k) ⊓ u (n + 1) 
goal: ⨅ k, ⨅ (_ : k ≤ n + 1), u k = (⨅ k, ⨅ (_ : k ≤ n), u k) ⊓ u (n + 1)

full_name: Nat.iInf_le_succ'
code: theorem iInf_le_succ' (u : ℕ → α) (n : ℕ) : ⨅ k ≤ n + 1, u k = u 0 ⊓ ⨅ k ≤ n, u (k + 1) 
goal: ⨅ k, ⨅ (_ : k ≤ n + 1), u k = u 0 ⊓ ⨅ k, ⨅ (_ : k ≤ n), u (k + 1)

full_name: Set.biUnion_lt_succ
code: theorem biUnion_lt_succ (u : ℕ → Set α) (n : ℕ) : ⋃ k < n + 1, u k = (⋃ k < n, u k) ∪ u n 
goal: ⋃ k, ⋃ (_ : k < n + 1), u k = (⋃ k, ⋃ (_ : k < n), u k) ∪ u n

full_name: Set.biUnion_lt_succ'
code: theorem biUnion_lt_succ' (u : ℕ → Set α) (n : ℕ) : ⋃ k < n + 1, u k = u 0 ∪ ⋃ k < n, u (k + 1) 
goal: ⋃ k, ⋃ (_ : k < n + 1), u k = u 0 ∪ ⋃ k, ⋃ (_ : k < n), u (k + 1)

full_name: Set.biInter_lt_succ
code: theorem biInter_lt_succ (u : ℕ → Set α) (n : ℕ) : ⋂ k < n + 1, u k = (⋂ k < n, u k) ∩ u n 
goal: ⋂ k, ⋂ (_ : k < n + 1), u k = (⋂ k, ⋂ (_ : k < n), u k) ∩ u n

full_name: Set.biInter_lt_succ'
code: theorem biInter_lt_succ' (u : ℕ → Set α) (n : ℕ) : ⋂ k < n + 1, u k = u 0 ∩ ⋂ k < n, u (k + 1) 
goal: ⋂ k, ⋂ (_ : k < n + 1), u k = u 0 ∩ ⋂ k, ⋂ (_ : k < n), u (k + 1)

full_name: Set.biUnion_le_succ
code: theorem biUnion_le_succ (u : ℕ → Set α) (n : ℕ) : ⋃ k ≤ n + 1, u k = (⋃ k ≤ n, u k) ∪ u (n + 1) 
goal: ⋃ k, ⋃ (_ : k ≤ n + 1), u k = (⋃ k, ⋃ (_ : k ≤ n), u k) ∪ u (n + 1)

full_name: Set.biUnion_le_succ'
code: theorem biUnion_le_succ' (u : ℕ → Set α) (n : ℕ) : ⋃ k ≤ n + 1, u k = u 0 ∪ ⋃ k ≤ n, u (k + 1) 
goal: ⋃ k, ⋃ (_ : k ≤ n + 1), u k = u 0 ∪ ⋃ k, ⋃ (_ : k ≤ n), u (k + 1)

full_name: Set.biInter_le_succ
code: theorem biInter_le_succ (u : ℕ → Set α) (n : ℕ) : ⋂ k ≤ n + 1, u k = (⋂ k ≤ n, u k) ∩ u (n + 1) 
goal: ⋂ k, ⋂ (_ : k ≤ n + 1), u k = (⋂ k, ⋂ (_ : k ≤ n), u k) ∩ u (n + 1)

full_name: Set.biInter_le_succ'
code: theorem biInter_le_succ' (u : ℕ → Set α) (n : ℕ) : ⋂ k ≤ n + 1, u k = u 0 ∩ ⋂ k ≤ n, u (k + 1) 
goal: ⋂ k, ⋂ (_ : k ≤ n + 1), u k = u 0 ∩ ⋂ k, ⋂ (_ : k ≤ n), u (k + 1)