docs(tensors): add Tensors API map - #1491
Conversation
|
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. |
jstoobysmith
left a comment
There was a problem hiding this comment.
Looks good - approved. Will merge shortly
Motivation
Related to #1414, the tracking maps for the tensor API in #908 and the Lorentz tensor API in #886. Both issues are still unfilled templates, so the map supplies the requirement list they ask for. An API map records the implemented status and source location of each requirement, so the gap between a planned API and the current library stays visible in-tree.
Changes
Adds
Physlib/Relativity/Tensors/API-map.yaml, with 22 requirements, 16 of them done. The completed entries coverTensorSpeciesand the typesTensor,PureandComponentIdx; the group action, index permutation, products, contraction of a dual pair, evaluation, and the unit and metric tensors with raising and lowering; the index-notation elaborator andTensorial; conjugation; and the speciesrealLorentzTensorandcomplexLorentzTensorwith the semilinear map between them.Six are recorded as not done: neither Lorentz species is extended to a
ConjTensorSpecies, so reality and Hermiticity cannot yet be stated for them; the metrics and units of the real species are still built fromContrModandCoModrather than as intertwiners ofVectorandCoVector; three commutation lemmas forevalTare absent; there is a Euclidean Levi-Civita symbol but no Euclidean tensor;TensorSpeciescarries no condition relating the metrics to the basis vectors; and the tensor-level epsilon-epsilon identitiesleviCivita_contract_selfandleviCivita_contract_threeare stated but carrysorry, so they are recorded the waysolidSphere_inertiaTensoris in the rigid body map. The componentwise identitieseuclidLeviCivita_symbol_contract_zero,_oneand_twoare proved and stay under the done entry. Nothing outside the new file changes, and no Lean source is touched.Checks
python3 scripts/api_map_linter.py --repo .passes with no missing files and no missing names, resolving 289 declarations against the Lean sources.