File: .lake/packages/lean4/src/lean/Init/Omega/Coeffs.lean

full_name: Lean.Omega.Coeffs
code: /-- Type synonym for `IntList := List Int`. -/
abbrev Coeffs 
goal: Type

full_name: Lean.Omega.Coeffs.toList
code: /-- Identity, turning `Coeffs` into `List Int`. -/
abbrev toList (xs : Coeffs) : List Int 
goal: List Int

full_name: Lean.Omega.Coeffs.ofList
code: /-- Identity, turning `List Int` into `Coeffs`. -/
abbrev ofList (xs : List Int) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.isZero
code: /-- Are the coefficients all zero? -/
abbrev isZero (xs : Coeffs) : Prop 
goal: Prop

full_name: Lean.Omega.Coeffs.set
code: /-- Shim for `IntList.set`. -/
abbrev set (xs : Coeffs) (i : Nat) (y : Int) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.get
code: /-- Shim for `IntList.get`. -/
abbrev get (xs : Coeffs) (i : Nat) : Int 
goal: Int

full_name: Lean.Omega.Coeffs.gcd
code: /-- Shim for `IntList.gcd`. -/
abbrev gcd (xs : Coeffs) : Nat 
goal: Nat

full_name: Lean.Omega.Coeffs.smul
code: /-- Shim for `IntList.smul`. -/
abbrev smul (xs : Coeffs) (g : Int) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.sdiv
code: /-- Shim for `IntList.sdiv`. -/
abbrev sdiv (xs : Coeffs) (g : Int) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.dot
code: /-- Shim for `IntList.dot`. -/
abbrev dot (xs ys : Coeffs) : Int 
goal: Int

full_name: Lean.Omega.Coeffs.add
code: /-- Shim for `IntList.add`. -/
abbrev add (xs ys : Coeffs) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.sub
code: /-- Shim for `IntList.sub`. -/
abbrev sub (xs ys : Coeffs) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.neg
code: /-- Shim for `IntList.neg`. -/
abbrev neg (xs : Coeffs) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.combo
code: /-- Shim for `IntList.combo`. -/
abbrev combo (a : Int) (xs : Coeffs) (b : Int) (ys : Coeffs) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.length
code: /-- Shim for `List.length`. -/
abbrev length (xs : Coeffs) 
goal: Nat

full_name: Lean.Omega.Coeffs.leading
code: /-- Shim for `IntList.leading`. -/
abbrev leading (xs : Coeffs) : Int 
goal: Int

full_name: Lean.Omega.Coeffs.map
code: /-- Shim for `List.map`. -/
abbrev map (f : Int → Int) (xs : Coeffs) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.findIdx?
code: /-- Shim for `.enum.find?`. -/
abbrev findIdx? (f : Int → Bool) (xs : Coeffs) : Option Nat 
goal: Option Nat

full_name: Lean.Omega.Coeffs.bmod
code: /-- Shim for `IntList.bmod`. -/
abbrev bmod (x : Coeffs) (m : Nat) : Coeffs 
goal: Lean.Omega.Coeffs

full_name: Lean.Omega.Coeffs.bmod_dot_sub_dot_bmod
code: /-- Shim for `IntList.bmod_dot_sub_dot_bmod`. -/
abbrev bmod_dot_sub_dot_bmod (m : Nat) (a b : Coeffs) : Int 
goal: Int

full_name: Lean.Omega.Coeffs.bmod_length
code: theorem bmod_length (x : Coeffs) (m : Nat) : (bmod x m).length ≤ x.length 
goal: (x.bmod m).length ≤ x.length

full_name: Lean.Omega.Coeffs.dvd_bmod_dot_sub_dot_bmod
code: theorem dvd_bmod_dot_sub_dot_bmod (m : Nat) (xs ys : Coeffs) :
    (m : Int) ∣ bmod_dot_sub_dot_bmod m xs ys 
goal: ↑m ∣ Lean.Omega.Coeffs.bmod_dot_sub_dot_bmod m xs ys

full_name: Lean.Omega.Coeffs.get_of_length_le
code: theorem get_of_length_le {i : Nat} {xs : Coeffs} (h : length xs ≤ i) : get xs i = 0 
goal: xs.get i = 0

full_name: Lean.Omega.Coeffs.dot_set_left
code: theorem dot_set_left (xs ys : Coeffs) (i : Nat) (z : Int) :
    dot (set xs i z) ys = dot xs ys + (z - get xs i) * get ys i 
goal: (xs.set i z).dot ys = xs.dot ys + (z - xs.get i) * ys.get i

full_name: Lean.Omega.Coeffs.dot_sdiv_left
code: theorem dot_sdiv_left (xs ys : Coeffs) {d : Int} (h : d ∣ xs.gcd) :
    dot (xs.sdiv d) ys = (dot xs ys) / d 
goal: (xs.sdiv d).dot ys = xs.dot ys / d

full_name: Lean.Omega.Coeffs.dot_smul_left
code: theorem dot_smul_left (xs ys : Coeffs) (i : Int) : dot (i * xs) ys = i * dot xs ys 
goal: Lean.Omega.Coeffs.dot (i * xs) ys = i * xs.dot ys

full_name: Lean.Omega.Coeffs.dot_distrib_left
code: theorem dot_distrib_left (xs ys zs : Coeffs) : (xs + ys).dot zs = xs.dot zs + ys.dot zs 
goal: (xs + ys).dot zs = xs.dot zs + ys.dot zs

full_name: Lean.Omega.Coeffs.sub_eq_add_neg
code: theorem sub_eq_add_neg (xs ys : Coeffs) : xs - ys = xs + -ys 
goal: xs - ys = xs + -ys

full_name: Lean.Omega.Coeffs.combo_eq_smul_add_smul
code: theorem combo_eq_smul_add_smul (a : Int) (xs : Coeffs) (b : Int) (ys : Coeffs) :
    combo a xs b ys = (a * xs) + (b * ys) 
goal: Lean.Omega.Coeffs.combo a xs b ys = a * xs + b * ys

full_name: Lean.Omega.Coeffs.gcd_dvd_dot_left
code: theorem gcd_dvd_dot_left (xs ys : Coeffs) : (gcd xs : Int) ∣ dot xs ys 
goal: ↑xs.gcd ∣ xs.dot ys

full_name: Lean.Omega.Coeffs.map_length
code: theorem map_length {xs : Coeffs} : (xs.map f).length ≤ xs.length 
goal: (Lean.Omega.Coeffs.map f xs).length ≤ xs.length

full_name: Lean.Omega.Coeffs.dot_nil_right
code: theorem dot_nil_right {xs : Coeffs} : dot xs .nil = 0 
goal: xs.dot [] = 0

full_name: Lean.Omega.Coeffs.get_nil
code: theorem get_nil : get .nil i = 0 
goal: Lean.Omega.Coeffs.get [] i = 0

full_name: Lean.Omega.Coeffs.dot_neg_left
code: theorem dot_neg_left (xs ys : IntList) : dot (-xs) ys = -dot xs ys 
goal: Lean.Omega.Coeffs.dot (-xs) ys = -Lean.Omega.Coeffs.dot xs ys