-- CvxLean/Lib/Math/Data/Vec.lean

import Mathlib.Analysis.NormedSpace.PiLp

import Mathlib.Analysis.InnerProductSpace.PiL2

import CvxLean.Lib.Math.Data.Real

import CvxLean.Lib.Math.Data.Fin

namespace Vec

variable {m : Type u} {n : Type v} [Fintype m] [Fintype n] {α : Type w}

section AddCommMonoid

variable [AddCommMonoid α] {m : Nat} {n : Nat} (x : Fin m → α) (y : Fin n → α)

open BigOperators

open FinsetInterval

end AddCommMonoid

noncomputable section Real

open Real BigOperators

variable (x y : m → ℝ)

end Real

section RealLemmas

variable {a b c : m → ℝ}

-- Repository definitions used:
content: ...

-- Repository lemmas used:
content: theorem List.getElem_append_left{α : Type u_1} {l₁ l₂ : List α} {i : Nat} (hn : i < l₁.length) :\n(l₁ ++ l₂)[i] = l₁[i]

-- Local definitions used:

-- Local lemmas used:

-- Target theorem and proof:
lemma le_div_iff (hc : StrongLT 0 c) : a ≤ b / c ↔ a * c ≤ b
:= by
  constructor
  · intro h i; have hi := h i; simp at hi;
    rw [_root_.le_div_iff (hc i)] at hi; exact hi
  · intro h i; have hi := h i; simp at hi;
    dsimp; rw [_root_.le_div_iff (hc i)]; exact hi