feat(InnerProductSpace/PiL2): det of a linear isometry has unit norm#39192
feat(InnerProductSpace/PiL2): det of a linear isometry has unit norm#39192jayscambler wants to merge 4 commits into
Conversation
For a linear isometry equivalence `R : E ≃ₗᵢ[𝕜] E` of a finite-dimensional inner-product space, the determinant of the underlying linear map has unit norm. This is the natural endomorphism counterpart to `OrthonormalBasis.det_to_matrix_orthonormalBasis : ‖a.toBasis.det b‖ = 1` (already in mathlib). The proof routes through that lemma by expressing `R` as the change-of-basis matrix between `b` and `b.map R` in any orthonormal basis. New lemmas: - `LinearIsometryEquiv.norm_det` (`@[simp]`): the RCLike-generic form. - `LinearIsometryEquiv.abs_det` (`@[simp]`): the real-specific corollary via `Real.norm_eq_abs`. Use case: combined with `Measure.addHaar_preimage_continuousLinearEquiv`, this gives `volume (R⁻¹' T) = volume T` for any set `T` (no measurability needed) on `EuclideanSpace ℝ (Fin n)`.
Welcome new contributor!Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests. We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR. Thank you again for joining our community. |
PR summary f40a8e8c6eImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
wwylele
left a comment
There was a problem hiding this comment.
According to the guideline, could you disclose your usage of AI, if any?
The PR description is suspiciously verbose and it looks like AI-written, which would be prohibited by the guideline. Or perhaps you unfortunately copied the format from other AI-generated PR. In any case, could you make it concise?
| theorem norm_det (R : E ≃ₗᵢ[𝕜] E) : | ||
| ‖LinearMap.det (R : E →ₗ[𝕜] E)‖ = 1 := by |
There was a problem hiding this comment.
Here is a shorter proof
theorem norm_det (R : E ≃ₗᵢ[𝕜] E) : ‖R.toLinearMap.det‖ = 1 := by
rw [← R.toLinearMap.det_toMatrix (stdOrthonormalBasis 𝕜 E).toBasis]
apply CStarRing.norm_of_mem_unitary
exact Matrix.det_of_mem_unitary <| R.toMatrix_mem_unitaryGroup _ _
| have h : ‖LinearMap.det (R : F' →ₗ[ℝ] F')‖ = 1 := norm_det (𝕜 := ℝ) (E := F') R | ||
| rwa [Real.norm_eq_abs] at h |
There was a problem hiding this comment.
does this work?
| have h : ‖LinearMap.det (R : F' →ₗ[ℝ] F')‖ = 1 := norm_det (𝕜 := ℝ) (E := F') R | |
| rwa [Real.norm_eq_abs] at h | |
| simpa using R.norm_det |
ad19edb to
263f08b
Compare
|
Thanks. To disclose: an initial proof and the original PR draft were produced in collaboration with Claude Opus 4.7 (Anthropic) while testing Grey Haven's On the shorter proof: going to try the refactor (moving |
Move `LinearIsometryEquiv.toMatrix_mem_unitaryGroup` from `Adjoint.lean` up to `PiL2.lean` so it is in scope where `norm_det` is stated. The new proof in `PiL2.lean` does not go through `adjoint`; instead it reduces to `OrthonormalBasis.toMatrix_orthonormalBasis_mem_unitary` via `b.map f`. With the lemma available, `norm_det` becomes the three-line form @wwylele suggested.
This comment was marked as low quality.
This comment was marked as low quality.
The previous refactor commit deleted the final theorem in the file but left a trailing blank line, which the `end-of-file-fixer` pre-commit hook flagged in CI.
Use `simpa only [Real.norm_eq_abs] using R.norm_det` instead of the two-line have/rwa version. Suggested by reviewer.
|
Moderation note: per mathlib's contribution guidelines, LLM-written comments on github are not allowed. Your comment looks very LLM-generated. Please write comments by hand in the future. Consider this as official warning. |
Adds
LinearIsometryEquiv.norm_detand the real corollaryLinearIsometryEquiv.abs_det. The proof uses the unitary matrix of a linear isometry in orthonormal bases, viaLinearIsometryEquiv.toMatrix_mem_unitaryGroupandMatrix.det_of_mem_unitary. The supporting matrix lemma is moved fromAdjoint.leantoPiL2.lean, where it no longer depends on adjoints.