Skip to content

Commit 9bc51f5

Browse files
committed
refactor(Analysis/Complex/UpperHalfPlane): deprecate old GL2Pos stuff (#38700)
The modular forms code previously used the subtype GL2Pos (2x2 matrices of positive determinant) for actions on the upper half-plane. This has now been changed by extending the action to all of GL(2, R), but some old no-longer-used instances and coercions were left behind. This deprecates them for later removal.
1 parent 4a4b844 commit 9bc51f5

1 file changed

Lines changed: 22 additions & 10 deletions

File tree

Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -364,43 +364,55 @@ namespace ModularGroup -- results specific to `SL(2, ℤ)`
364364
section ModularScalarTowers
365365

366366
/-- Canonical embedding of `SL(2, ℤ)` into `GL(2, ℝ)⁺`. -/
367-
@[coe]
367+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
368368
def coe (g : SL(2, ℤ)) : GL(2, ℝ)⁺ := ((g : SL(2, ℝ)) : GL(2, ℝ)⁺)
369369

370-
@[simp]
370+
set_option linter.deprecated false in
371+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
371372
lemma coe_inj (a b : SL(2, ℤ)) : coe a = coe b ↔ a = b := by
372373
refine ⟨fun h ↦ a.ext b fun i j ↦ ?_, congr_arg _⟩
373374
simp only [Subtype.ext_iff, GeneralLinearGroup.ext_iff] at h
374375
simpa [coe] using h i j
375376

376-
instance : Coe SL(2, ℤ) GL(2, ℝ)⁺ :=
377-
⟨coe⟩
378-
379377
/-- Canonical embedding of `SL(2, ℤ)` into `GL(2, ℝ)⁺`, bundled as a group hom. -/
378+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
380379
def coeHom : SL(2, ℤ) →* GL(2, ℝ)⁺ := toGLPos.comp <| map <| Int.castRingHom _
381380

382-
@[simp] lemma coeHom_apply (g : SL(2, ℤ)) : coeHom g = coe g := rfl
381+
set_option linter.deprecated false in
382+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
383+
lemma coeHom_apply (g : SL(2, ℤ)) : coeHom g = coe g := rfl
383384

384-
@[simp]
385+
set_option linter.deprecated false in
386+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
385387
theorem coe_apply_complex {g : SL(2, ℤ)} {i j : Fin 2} :
386388
(Units.val <| Subtype.val <| coe g) i j = (Subtype.val g i j : ℂ) :=
387389
rfl
388390

389-
@[simp]
391+
set_option linter.deprecated false in
392+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
390393
theorem det_coe {g : SL(2, ℤ)} : det (Units.val <| Subtype.val <| coe g) = 1 := by
391394
simp only [SpecialLinearGroup.coe_GLPos_coe_GL_coe_matrix, SpecialLinearGroup.det_coe, coe]
392395

396+
set_option linter.deprecated false in
397+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
393398
lemma coe_one : coe 1 = 1 := by
394399
simp only [coe, map_one]
395400

396-
instance SLOnGLPos : SMul SL(2, ℤ) GL(2, ℝ)⁺ :=
401+
/-- Multiplication action of `SL(2, ℤ)` on `GL(2, ℝ)⁺`. -/
402+
@[reducible, deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
403+
def SLOnGLPos : SMul SL(2, ℤ) GL(2, ℝ)⁺ :=
397404
fun s g => s * g⟩
398405

406+
attribute [local instance] SLOnGLPos
407+
408+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
399409
theorem SLOnGLPos_smul_apply (s : SL(2, ℤ)) (g : GL(2, ℝ)⁺) (z : ℍ) :
400410
(s • g) • z = ((s : GL(2, ℝ)⁺) * g) • z :=
401411
rfl
402412

403-
instance SL_to_GL_tower : IsScalarTower SL(2, ℤ) GL(2, ℝ)⁺ ℍ where
413+
set_option linter.deprecated false in
414+
@[deprecated "use GL(2, ℝ)" (since := "2026-04-29")]
415+
lemma SL_to_GL_tower : IsScalarTower SL(2, ℤ) GL(2, ℝ)⁺ ℍ where
404416
smul_assoc s g z := by
405417
simp only [SLOnGLPos_smul_apply]
406418
apply mul_smul'

0 commit comments

Comments
 (0)