feat(ClassicalMechanics): add the angular velocity vector of a rigid body#1363
Conversation
…body In three dimensions the skew-symmetric angular velocity tensor Ω = Ṙ Rᵀ is dual to the angular velocity vector ω via the hat map. Add: - Matrix.crossProductMatrix_crossProductVee: the hat map is a right inverse of the vee map on skew-symmetric matrices, completing the ℝ³ ≃ 𝖘𝖔(3) iso - RigidBodyMotion.angularVelocity ω := (angularVelocityTensor)ᵛ, with crossProductMatrix_angularVelocity ([ω]ₓ = Ω) and the constant-orientation litmus ω = 0 Also mark the 'angular velocity of rotation' and (already-present, from leanprover-community#1320) 'centre-of-mass velocity' requirements done in the API-map, and extend its Overview to cover the rigid-body motion API. Toward leanprover-community#893. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Thank you for this PR, which will now be reviewed. If submitting to ./Physlib or ./QuantumInfo, please see our review guidelines if you are not familiar with the process. You should expect a back and forth with a reviewer before your PR is merged. See also that link for how to add appropriate labels to your PR. The PR will also go through a number of automated checks. You can learn more about these here, including how to run them locally. If you are submitting to ./PhyslibAlpha there will be a lighter review process, though your PR must still pass the automated checks. If you want to bring attention to this PR, please write a message on this thread of the Lean Zulip. Important: If a reviewer adds an |
jstoobysmith
left a comment
There was a problem hiding this comment.
Great - looks good. Approved.
This PR adds the angular velocity vector
ωof a rigid body, the three-dimensional counterpart of the angular velocity tensorΩ = Ṙ Rᵀadded in #1353.In three dimensions the skew-symmetric tensor
Ω ∈ 𝔰𝔬(3)is dual to a vectorωvia the hat map (Physlib.Mathematics.CrossProductMatrix), characterised by[ω]ₓ = Ω. This is the angular velocityωin the Landau–Lifshitz decompositionv = V + ω × r.Physlib/Mathematics/CrossProductMatrix.leancrossProductMatrix_crossProductVee: on skew-symmetric matrices the hat map is a right inverse of the vee map (Aᵀ = -A → [Aᵛ]ₓ = A). Together with the existingcrossProductVee_crossProductMatrix(left inverse) this exhibitsℝ³ ≃ 𝔰𝔬(3).Physlib/ClassicalMechanics/RigidBody/AngularVelocity.lean(forRigidBodyMotion 3)angularVelocityω := (angularVelocityTensor)ᵛ, withangularVelocity_eq;crossProductMatrix_angularVelocity:[ω]ₓ = Ω(uses the skew-symmetry ofΩ, hence the differentiability hypothesis);angularVelocity_of_orientation_const: a body of constant orientation hasω = 0.API-map.yamlToward #893. Depends only on merged work (#1320, #1324, #1353).
All declarations reduce to
[propext, Classical.choice, Quot.sound].