mathlib documentation

tactic.​omega.​coeffs

tactic.​omega.​coeffs

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

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]

def omega.​coeffs.​val  :
(ℕ → ℤ) → list ℤ → ℤ

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

Equations
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.func.set a list.nil n) l m = a * v n

@[simp]
theorem omega.​coeffs.​val_set {v : ℕ → ℤ} {m : ℕ} {a : ℤ} :

@[simp]

@[simp]

def omega.​coeffs.​val_except  :
ℕ → (ℕ → ℤ) → 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.​forall_val_dvd_of_forall_mem_dvd {i : ℤ} {as : list ℤ} (a : ∀ (x : ℤ), x ∈ as → i ∣ x) (n : ℕ) :

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