mathlib documentation

data.finset.intervals

Intervals in ℕ as finsets #

For now this only covers Ico n m, the "closed-open" interval containing [n, ..., m-1].

intervals #

def finset.Ico (n m : ℕ) :

Ico n m is the set of natural numbers n ≤ k < m.

Equations
@[simp]
theorem finset.Ico.val (n m : ℕ) :
@[simp]
theorem finset.Ico.image_add (n m k : ℕ) :
theorem finset.Ico.image_sub (n m k : ℕ) (h : k ≤ n) :
finset.image (λ (x : ℕ), x - k) (finset.Ico n m) = finset.Ico (n - k) (m - k)
@[simp]
theorem finset.Ico.card (n m : ℕ) :
(finset.Ico n m).card = m - n
@[simp]
theorem finset.Ico.mem {n m l : ℕ} :
l ∈ finset.Ico n m ↔ n ≤ l ∧ l < m
@[simp, norm_cast]
theorem finset.Ico.coe_eq_Ico {n m : ℕ} :
theorem finset.Ico.eq_empty_of_le {n m : ℕ} (h : m ≤ n) :
@[simp]
@[simp]
theorem finset.Ico.eq_empty_iff {n m : ℕ} :
theorem finset.Ico.subset_iff {m₁ n₁ m₂ n₂ : ℕ} (hmn : m₁ < n₁) :
finset.Ico m₁ n₁ ⊆ finset.Ico m₂ n₂ ↔ m₂ ≤ m₁ ∧ n₁ ≤ n₂
@[protected]
theorem finset.Ico.subset {m₁ n₁ m₂ n₂ : ℕ} (hmm : m₂ ≤ m₁) (hnn : n₁ ≤ n₂) :
finset.Ico m₁ n₁ ⊆ finset.Ico m₂ n₂
theorem finset.Ico.union_consecutive {n m l : ℕ} (hnm : n ≤ m) (hml : m ≤ l) :
theorem finset.Ico.union' {n m l k : ℕ} (hlm : l ≤ m) (hnk : n ≤ k) :
theorem finset.Ico.union {n m l k : ℕ} (h₁ : min n m ≤ max l k) (h₂ : min l k ≤ max n m) :
@[simp]
theorem finset.Ico.inter {n m l k : ℕ} :
@[simp]
theorem finset.Ico.succ_singleton (n : ℕ) :
finset.Ico n (n + 1) = {n}
theorem finset.Ico.succ_top {n m : ℕ} (h : n ≤ m) :
finset.Ico n (m + 1) = insert m (finset.Ico n m)
theorem finset.Ico.succ_top' {n m : ℕ} (h : n < m) :
finset.Ico n m = insert (m - 1) (finset.Ico n (m - 1))
theorem finset.Ico.insert_succ_bot {n m : ℕ} (h : n < m) :
insert n (finset.Ico (n + 1) m) = finset.Ico n m
@[simp]
theorem finset.Ico.pred_singleton {m : ℕ} (h : 0 < m) :
finset.Ico (m - 1) m = {m - 1}
@[simp]
theorem finset.Ico.not_mem_top {n m : ℕ} :
theorem finset.Ico.filter_lt_of_top_le {n m l : ℕ} (hml : m ≤ l) :
finset.filter (λ (x : ℕ), x < l) (finset.Ico n m) = finset.Ico n m
theorem finset.Ico.filter_lt_of_le_bot {n m l : ℕ} (hln : l ≤ n) :
finset.filter (λ (x : ℕ), x < l) (finset.Ico n m) = ∅
theorem finset.Ico.filter_Ico_bot {n m : ℕ} (hnm : n < m) :
finset.filter (λ (x : ℕ), x ≤ n) (finset.Ico n m) = {n}
theorem finset.Ico.filter_lt_of_ge {n m l : ℕ} (hlm : l ≤ m) :
finset.filter (λ (x : ℕ), x < l) (finset.Ico n m) = finset.Ico n l
@[simp]
theorem finset.Ico.filter_lt (n m l : ℕ) :
finset.filter (λ (x : ℕ), x < l) (finset.Ico n m) = finset.Ico n (min m l)
theorem finset.Ico.filter_le_of_le_bot {n m l : ℕ} (hln : l ≤ n) :
finset.filter (λ (x : ℕ), l ≤ x) (finset.Ico n m) = finset.Ico n m
theorem finset.Ico.filter_le_of_top_le {n m l : ℕ} (hml : m ≤ l) :
finset.filter (λ (x : ℕ), l ≤ x) (finset.Ico n m) = ∅
theorem finset.Ico.filter_le_of_le {n m l : ℕ} (hnl : n ≤ l) :
finset.filter (λ (x : ℕ), l ≤ x) (finset.Ico n m) = finset.Ico l m
@[simp]
theorem finset.Ico.filter_le (n m l : ℕ) :
finset.filter (λ (x : ℕ), l ≤ x) (finset.Ico n m) = finset.Ico (max n l) m
@[simp]
theorem finset.Ico.diff_left (l n m : ℕ) :
@[simp]
theorem finset.Ico.diff_right (l n m : ℕ) :
theorem finset.Ico.image_const_sub {k m n : ℕ} (hkn : k ≤ n) :
finset.image (λ (j : ℕ), n - j) (finset.Ico k m) = finset.Ico (n + 1 - m) (n + 1 - k)
def finset.Ico_ℤ (l u : ℤ) :

Ico_ℤ l u is the set of integers l ≤ k < u.

Equations
@[simp]
theorem finset.Ico_ℤ.mem {n m l : ℤ} :
l ∈ finset.Ico_ℤ n m ↔ n ≤ l ∧ l < m
@[simp]
theorem finset.Ico_ℤ.card (l u : ℤ) :