theorem
weierstrass_valuation_bound_proof
{p : ℕ}
[hp : Fact (Nat.Prime p)]
{W : WeierstrassCurve ℚ}
[W.IsElliptic]
(hc :
0 ≤ ((algebraMap ℚ ℚ_[p]) W.a₁).valuation ∧ 0 ≤ ((algebraMap ℚ ℚ_[p]) W.a₂).valuation ∧ 0 ≤ ((algebraMap ℚ ℚ_[p]) W.a₃).valuation ∧ 0 ≤ ((algebraMap ℚ ℚ_[p]) W.a₄).valuation ∧ 0 ≤ ((algebraMap ℚ ℚ_[p]) W.a₆).valuation)
{x y : ℚ_[p]}
(h : (W.baseChange ℚ_[p]).toAffine.Nonsingular x y)
(hni : ¬(0 ≤ x.valuation ∧ 0 ≤ y.valuation))
: