mathlib documentation

data.​finset.​intervals

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  :
ℕ → ℕ → finset ℕ

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 : ℕ) :
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

theorem finset.​Ico.​eq_empty_of_le {n m : ℕ} :
m ≤ n → finset.Ico n m = ∅

@[simp]

@[simp]
theorem finset.​Ico.​eq_empty_iff {n m : ℕ} :

theorem finset.​Ico.​subset_iff {m₁ n₁ m₂ n₂ : ℕ} :
m₁ < n₁ → (finset.Ico m₁ n₁ ⊆ finset.Ico m₂ n₂ ↔ m₂ ≤ m₁ ∧ n₁ ≤ n₂)

theorem finset.​Ico.​subset {m₁ n₁ m₂ n₂ : ℕ} :
m₂ ≤ m₁ → n₁ ≤ n₂ → finset.Ico m₁ n₁ ⊆ finset.Ico m₂ n₂

theorem finset.​Ico.​union_consecutive {n m l : ℕ} :
n ≤ m → m ≤ l → finset.Ico n m ∪ finset.Ico m l = finset.Ico n l

@[simp]
theorem finset.​Ico.​succ_singleton (n : ℕ) :
finset.Ico n (n + 1) = {n}

theorem finset.​Ico.​succ_top {n m : ℕ} :
n ≤ m → finset.Ico n (m + 1) = has_insert.insert m (finset.Ico n m)

theorem finset.​Ico.​succ_top' {n m : ℕ} :
n < m → finset.Ico n m = has_insert.insert (m - 1) (finset.Ico n (m - 1))

@[simp]
theorem finset.​Ico.​pred_singleton {m : ℕ} :
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 : ℕ} :
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 : ℕ} :
l ≤ n → finset.filter (λ (x : ℕ), x < l) (finset.Ico n m) = ∅

theorem finset.​Ico.​filter_Ico_bot {n m : ℕ} :
n < m → finset.filter (λ (x : ℕ), x ≤ n) (finset.Ico n m) = {n}

theorem finset.​Ico.​filter_lt_of_ge {n m l : ℕ} :
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 : ℕ} :
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 : ℕ} :
m ≤ l → finset.filter (λ (x : ℕ), l ≤ x) (finset.Ico n m) = ∅

theorem finset.​Ico.​filter_le_of_le {n m l : ℕ} :
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 : ℕ} :
k ≤ n → finset.image (λ (j : ℕ), n - j) (finset.Ico k m) = finset.Ico (n + 1 - m) (n + 1 - k)

def finset.​Ico_ℤ  :
ℤ → ℤ → finset ℤ

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 : ℤ) :