refactor(FieldStrength): remove basis-representation lemmas - #1615
Conversation
The field-strength-specific basis-representation lemmas (`toTensor_toFieldStrength_basis_repr`, `toFieldStrength_tensor_basis_eq_basis`, `toFieldStrength_eval_eq_basis_repr`) are removed, completing the second TODO. The two generic facts they relied on now live in the tensor library as lemmas about any `F : Vector d ⊗ Vector d`. Antisymmetry, equivariance and linearity of the tensor are derived from their component versions. Four `respectTransparency` options in FieldStrength.lean become unnecessary and are dropped. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Rewrite in one top-level `simp only` and close by `rfl` instead of navigating into subterms; use structured `induction … with`; derive `toFieldStrength_action_eq_sum` from the component equivariance. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Thank you for this pull-request (PR). If this is your first PR, welcome to the community! Below is what will happen next. Please read carefully if you are not familiar with the process. You may open other PRs while this one is being reviewed, and can stack PRs on top of each other, so don't let these steps slow you down.
Tip: The easiest way to get have a fast review is to submit a PR that is small and self-contained, and has clear documentation explaining why things are the way they are in your chages. If you have any problems or questions, please reach out to the community on the Zulip. |
|
claim |
|
Review claim by @nateabr completed — thanks for the review. |
nateabr
left a comment
There was a problem hiding this comment.
Look good to me, one very minor comment
d2e2952 to
0c7b60e
Compare
Resolves the remaining TODO in
Electromagnetism/Kinematics/FieldStrength.lean, following #1614.Changes
toTensor_toFieldStrength_basis_repr,toFieldStrength_tensor_basis_eq_basisandtoFieldStrength_eval_eq_basis_repr, the lemmas about the Mathlib product basisbasis.tensorProduct basisonVector d ⊗ Vector d, together with the TODO.F : Vector d ⊗ Vector d(RealTensor/Vector/Tensorial.lean): Lorentz.Vector.toField_eval_eval_eq_tensorProduct_reprandLorentz.Vector.tensor_basis_repr_toTensor_prod_apply`.toFieldStrength_antisymmetric,toFieldStrength_addandtoFieldStrength_smulare now derived from their_evalcomponent versions throughtoFieldStrength_tensor_basis_repr_eq_eval, rather than the other way round. TheTensor.basisbridge lemmas from refactor(Electromagnetism): replacefieldStrengthMatrixwith index-evaluation components #1614 stay.Why
After #1614 these lemmas had a single consumer each inside
FieldStrength.lean, and nothingabout them was specific to the field strength.
Additional Effect of the series (#1610, #1611, #1614, this PR)
Two root causes fixed rather than worked around:
Lorentz.Vector/CoVectorareimplicit_reducible, and the tensor action outranks theTensorialtransport action, sorw/simpmatch again where therespectTransparencyoption was compensating. One duplicate representation removed: field-strength components go through index evaluation only.Counts against master before #1610:
set_option backward.isDefEq.respectTransparency false553 → 508 library-wide(Electromagnetism 21 → 11, Relativity/Tensors 107 → 72);
the files touched by the series have none. The remaining 72 in the tensor library were checked with
scripts/rm_set_option.pyand are needed for unrelated reasons.mostly prepared by claude, supervised and checked by myself