Skip to content

feat(ClassicalMechanics): add the angular velocity vector of a rigid body#1363

Merged
jstoobysmith merged 1 commit into
leanprover-community:masterfrom
giuseppesorge:rigidbody-angular-velocity-vector
Jul 4, 2026
Merged

feat(ClassicalMechanics): add the angular velocity vector of a rigid body#1363
jstoobysmith merged 1 commit into
leanprover-community:masterfrom
giuseppesorge:rigidbody-angular-velocity-vector

Conversation

@giuseppesorge

Copy link
Copy Markdown
Contributor

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 decomposition v = V + ω × r.

Physlib/Mathematics/CrossProductMatrix.lean

  • crossProductMatrix_crossProductVee: on skew-symmetric matrices the hat map is a right inverse of the vee map (Aᵀ = -A → [Aᵛ]ₓ = A). Together with the existing crossProductVee_crossProductMatrix (left inverse) this exhibits ℝ³ ≃ 𝔰𝔬(3).

Physlib/ClassicalMechanics/RigidBody/AngularVelocity.lean (for RigidBodyMotion 3)

  • angularVelocity ω := (angularVelocityTensor)ᵛ, with angularVelocity_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.yaml

Toward #893. Depends only on merged work (#1320, #1324, #1353).

All declarations reduce to [propext, Classical.choice, Quot.sound].

…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>
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

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 awaiting-author label to your PR, once you have addressed the review comments, please remove that label by adding a comment with -awaiting-author. This helps us keep track of reviews.

@jstoobysmith jstoobysmith left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great - looks good. Approved.

@jstoobysmith jstoobysmith added the ready-to-merge This PR is approved and will be merged shortly label Jul 4, 2026
@jstoobysmith jstoobysmith merged commit e027d24 into leanprover-community:master Jul 4, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge This PR is approved and will be merged shortly

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants