Pole analysis for logarithmic derivatives in K(X)
ProvedLiouvilleDiffAlg.ratFunc_liouville_keyThroughout, 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 . Assume that the derivative of every polynomial in is a polynomial, and let be a property of polynomials (the "exceptional" ones) such that every monic irreducible not in does not divide its own derivative . Let , let be constants (), let be nonzero and , and suppose
Then there are nonzero , a finite set of monic irreducible exceptional polynomials, constants () and polynomials with and , such that every monic irreducible factor of is exceptional and
In words: logarithmic derivatives of rational functions only have simple poles, so in such an identity the poles of and the non-exceptional prime factors of the are forced to disappear.
Formalization Note The constants are returned as a function on all polynomials with .
import Mathlib open scoped Differential open Polynomial
namespace LiouvilleDiffAlg
theorem ratFunc_liouville_key {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)
(Exc : K[X] → Prop)
(hExc : ∀ p q : K[X], Monic p → Irreducible p → ¬ Exc p →
(algebraMap K[X] (RatFunc K) p)′ = algebraMap K[X] (RatFunc K) q → ¬ p ∣ q)
{n : ℕ} (c : Fin n → K) (hc : ∀ i, (c i)′ = 0) (h : K)
(u : Fin n → RatFunc K) (hu : ∀ i, u i ≠ 0) (v : RatFunc K)
(hfe : algebraMap K (RatFunc K) h = ∑ i, algebraMap K (RatFunc K) (c i) * ((u i)′ / u i) + v′) :
∃ (a : Fin n → K) (E : Finset K[X]) (C : K[X] → K) (A B : K[X]),
(∀ i, a i ≠ 0) ∧ (∀ p ∈ E, Monic p ∧ Irreducible p ∧ Exc p) ∧ (∀ p, (C p)′ = 0) ∧
B ≠ 0 ∧ v = algebraMap K[X] (RatFunc K) A / algebraMap K[X] (RatFunc K) B ∧
(∀ p, Monic p → Irreducible p → p ∣ B → Exc p) ∧
algebraMap K (RatFunc K) h =
∑ i, algebraMap K (RatFunc K) (c i) * ((algebraMap K (RatFunc K) (a i))′ / algebraMap K (RatFunc K) (a i)) +
∑ p ∈ E, algebraMap K (RatFunc K) (C p) * ((algebraMap K[X] (RatFunc K) p)′ / algebraMap K[X] (RatFunc K) p) + v′ := by sorry
end LiouvilleDiffAlg