Skip to content

Commit 38a9b86

Browse files
seewoo5TobiasLeichtfried
authored andcommitted
feat: IsCoprime.wronskian_eq_zero_iff (#18483)
Add `IsCoprime.wronskian_eq_zero_iff`: For two polynomials $a, b \in k[x]$ over a field, $W(a, b) = 0$ if and only if $a' = b' = 0$. This is a part of PR #15706.
1 parent 5835de3 commit 38a9b86

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

Mathlib/RingTheory/Polynomial/Wronskian.lean

+32-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
/-
2-
Copyright (c) 2024 Jineon Back and Seewoo Lee. All rights reserved.
2+
Copyright (c) 2024 Jineon Baek and Seewoo Lee. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Jineon Baek, Seewoo Lee
55
-/
66
import Mathlib.Algebra.Polynomial.AlgebraMap
77
import Mathlib.Algebra.Polynomial.Derivative
88
import Mathlib.LinearAlgebra.SesquilinearForm
9+
import Mathlib.RingTheory.Coprime.Basic
910

1011
/-!
1112
# Wronskian of a pair of polynomial
@@ -113,4 +114,34 @@ theorem natDegree_wronskian_lt_add {a b : R[X]} (hw : wronskian a b ≠ 0) :
113114
· exact Polynomial.degree_eq_natDegree ha
114115
· exact Polynomial.degree_eq_natDegree hb
115116

117+
variable {k : Type*} [Field k]
118+
119+
@[simp]
120+
theorem dvd_derivative_iff {a : k[X]} : a ∣ derivative a ↔ derivative a = 0 where
121+
mp h := by
122+
by_cases a_nz : a = 0
123+
· simp only [a_nz, derivative_zero]
124+
exact eq_zero_of_dvd_of_degree_lt h (degree_derivative_lt a_nz)
125+
mpr h := by simp [h]
126+
127+
/--
128+
For coprime polynomials `a` and `b`, their Wronskian is zero
129+
if and only if their derivatives are zeros.
130+
-/
131+
theorem IsCoprime.wronskian_eq_zero_iff {a b : k[X]} (hc : IsCoprime a b) :
132+
wronskian a b = 0 ↔ derivative a = 0 ∧ derivative b = 0 where
133+
mp hw := by
134+
rw [wronskian, sub_eq_iff_eq_add, zero_add] at hw
135+
constructor
136+
· rw [← dvd_derivative_iff]
137+
apply hc.dvd_of_dvd_mul_right
138+
rw [← hw]; exact dvd_mul_right _ _
139+
· rw [← dvd_derivative_iff]
140+
apply hc.symm.dvd_of_dvd_mul_left
141+
rw [hw]; exact dvd_mul_left _ _
142+
mpr hdab := by
143+
cases' hdab with hda hdb
144+
rw [wronskian]
145+
rw [hda, hdb]; simp only [MulZeroClass.mul_zero, MulZeroClass.zero_mul, sub_self]
146+
116147
end Polynomial

0 commit comments

Comments
 (0)