Derivative with a simple pole forces regularity
ProvedLiouvilleDiffAlg.ratFunc_pole_freeThroughout, is a field of characteristic zero with a derivation , and is the field of rational functions in one variable over , equipped with a derivation (also written ) that extends the derivation of . Let be an irreducible polynomial and put with (the derivative of a polynomial is a polynomial), and assume . Let and suppose the derivative has at most a simple pole at , i.e. for some polynomials with . Then has no pole at : there are polynomials with and .
This is the local statement behind the fact that in the logarithmic derivative of a rational function, all poles are simple: a function with a pole of order at a prime not dividing its own derivative has a derivative with a pole of order exactly .
Formalization Note The hypothesis hpoly states that the derivative of every polynomial is again a polynomial; the conclusion is phrased as in .
import Mathlib open scoped Differential open Polynomial
namespace LiouvilleDiffAlg
theorem ratFunc_pole_free {K : Type*} [Field K] [Differential K] [CharZero K]
[Differential (RatFunc K)] [DifferentialAlgebra K (RatFunc K)]
(hpoly : ∀ r : K[X], ∃ q : K[X], (algebraMap K[X] (RatFunc K) r)′ = algebraMap K[X] (RatFunc K) q)
{p q : K[X]} (hp : Irreducible p) (hq : (algebraMap K[X] (RatFunc K) p)′ = algebraMap K[X] (RatFunc K) q)
(hpq : ¬ p ∣ q) (x : RatFunc K)
(hx : ∃ r s : K[X], ¬ p ∣ s ∧ x′ * algebraMap K[X] (RatFunc K) (p * s) = algebraMap K[X] (RatFunc K) r) :
∃ a b : K[X], ¬ p ∣ b ∧ x * algebraMap K[X] (RatFunc K) b = algebraMap K[X] (RatFunc K) a := by sorry
end LiouvilleDiffAlg