mathlib documentation

tactic.omega.coeffs

@[simp]
def omega.coeffs.val_between (v : ℕ → ℤ) (as : list ℤ) (l : ℕ) :
ℕ → ℤ

val_between v as l o is the value (under valuation v) of the term obtained taking the term represented by (0, as) and dropping all subterms that include variables outside the range [l,l+o)

Equations
@[simp]
theorem omega.coeffs.val_between_nil {v : ℕ → ℤ} {l : ℕ} (m : ℕ) :
def omega.coeffs.val (v : ℕ → ℤ) (as : list ℤ) :

Evaluation of the nonconstant component of a normalized linear arithmetic term.

Equations
@[simp]
theorem omega.coeffs.val_between_eq_of_le {v : ℕ → ℤ} {as : list ℤ} {l : ℕ} (m : ℕ) :
theorem omega.coeffs.val_eq_of_le {v : ℕ → ℤ} {as : list ℤ} {k : ℕ} :
theorem omega.coeffs.val_between_eq_val_between {v w : ℕ → ℤ} {as bs : list ℤ} {l m : ℕ} :
(∀ (x : ℕ), l ≤ x → x < l + m → v x = w x) → (∀ (x : ℕ), l ≤ x → x < l + m → list.func.get x as = list.func.get x bs) → omega.coeffs.val_between v as l m = omega.coeffs.val_between w bs l m
theorem omega.coeffs.val_between_set {v : ℕ → ℤ} {a : ℤ} {l n m : ℕ} :
l ≤ n → n < l + m → omega.coeffs.val_between v list.nil {n ↦ a} l m = a * v n
@[simp]
theorem omega.coeffs.val_set {v : ℕ → ℤ} {m : ℕ} {a : ℤ} :
@[simp]
@[simp]
@[simp]
def omega.coeffs.val_except (k : ℕ) (v : ℕ → ℤ) (as : list ℤ) :

val_except k v as is the value (under valuation v) of the term obtained taking the term represented by (0, as) and dropping the subterm that includes the kth variable.

Equations
theorem omega.coeffs.val_except_eq_val_except {k : ℕ} {is js : list ℤ} {v w : ℕ → ℤ} :
(∀ (x : ℕ), x ≠ k → v x = w x) → (∀ (x : ℕ), x ≠ k → list.func.get x is = list.func.get x js) → omega.coeffs.val_except k v is = omega.coeffs.val_except k w js
@[simp]
theorem omega.coeffs.val_between_map_mul {v : ℕ → ℤ} {i : ℤ} {as : list ℤ} {l m : ℕ} :
theorem omega.coeffs.forall_val_dvd_of_forall_mem_dvd {i : ℤ} {as : list ℤ} :
(∀ (x : ℤ), x ∈ as → i ∣ x) → ∀ (n : ℕ), i ∣ list.func.get n as
theorem omega.coeffs.dvd_val_between {v : ℕ → ℤ} {i : ℤ} {as : list ℤ} {l m : ℕ} :
(∀ (x : ℤ), x ∈ as → i ∣ x) → i ∣ omega.coeffs.val_between v as l m
theorem omega.coeffs.dvd_val {v : ℕ → ℤ} {as : list ℤ} {i : ℤ} :
(∀ (x : ℤ), x ∈ as → i ∣ x) → i ∣ omega.coeffs.val v as
@[simp]
theorem omega.coeffs.val_between_map_div {v : ℕ → ℤ} {as : list ℤ} {i : ℤ} {l : ℕ} (h1 : ∀ (x : ℤ), x ∈ as → i ∣ x) {m : ℕ} :
omega.coeffs.val_between v (list.map (λ (x : ℤ), x / i) as) l m = omega.coeffs.val_between v as l m / i
@[simp]
theorem omega.coeffs.val_map_div {v : ℕ → ℤ} {as : list ℤ} {i : ℤ} :
(∀ (x : ℤ), x ∈ as → i ∣ x) → omega.coeffs.val v (list.map (λ (x : ℤ), x / i) as) = omega.coeffs.val v as / i
theorem omega.coeffs.val_between_eq_zero {v : ℕ → ℤ} {is : list ℤ} {l m : ℕ} :
(∀ (x : ℤ), x ∈ is → x = 0) → omega.coeffs.val_between v is l m = 0
theorem omega.coeffs.val_eq_zero {v : ℕ → ℤ} {is : list ℤ} :
(∀ (x : ℤ), x ∈ is → x = 0) → omega.coeffs.val v is = 0