antaris
Registriertes Mitglied
Interessant.Das ist falsch.
Eine Komplexifizierung ausgehend von GL(R) liefert lediglich GL(C); das liefert keine Hermitizität, die musst du zusätzlich fordern.
-- Definitionen:
-- fullHamiltonian L := fun i j => (L i j : ℂ) -- Komplexifizierung
-- Matrix.IsHermitian H := conjTranspose H = H -- aus Mathlib
Original code:
/-- If `L` is symmetric over `ℝ`, then its complexification is Hermitian. -/
theorem fullHamiltonian_isHermitian_of_transpose_eq
(L : Matrix Ω Ω ℝ) (hL : Matrix.transpose L = L) :
Matrix.IsHermitian (fullHamiltonian (Ω := Ω) L) := by
classical
dsimp [Matrix.IsHermitian, fullHamiltonian]
ext i j
have hij : L j i = L i j := by
have h := congrArg (fun M : Matrix Ω Ω ℝ => M i j) hL
simpa [Matrix.transpose_apply] using h
-- `conj` fixes real scalars; transpose symmetry gives Hermitian symmetry
simp [Matrix.conjTranspose_apply, hij]
Korrekt ist die kanonische Einbettung ℝ ↪ ℂ, Eintrag für Eintrag. Die Hermitizität folgt dann aus der zusätzlich geforderten Hypothese L^T = L, die im Theorem als hL explizit drinsteht.
Nur der Kommentar ist falsch und ggf. bei den vielen Iterationen bei der Codeerstellung nicht mehr aktualisiert worden. Kommentare in lean sind halt auch nur prosa.
Korrekt wäre der folgende Kommentar:
/-- If `L` is symmetric over `ℝ`, then its canonical embedding into `Mat(Ω, ℂ)` is Hermitian. -/
Das bedeutet ich kann den Kommentaren im code nicht vertrauen. Der code ist aber nach wie vor korrekt. Lean würde nicht kompilieren, wenn dem nicht so wäre. Das bedeutet aber auch, dass die Kommentare selbst ein Problem bei der Übersetzung in formalen code sind. Die AI muss viel mehr den code übersetzen und möglichst gar nicht die Kommentare auswerten.
Zuletzt bearbeitet: