Physlib

TODO List

This TODO list is automatically created from the Lean files.

Informal DefinitionInformal LemmaSemiformal ResultSorryful ResultTODO ItemGitHub Issue
TODO ItemPhyslib.ClassicalMechanics.DampedHarmonicOscillator.Basic

Create a new file for the geometric model which properly models the position as a configuration space and velocity as its tangent space, see the HarmonicOscillator file.

TODO ItemPhyslib.ClassicalMechanics.DampedHarmonicOscillator.Basic

Define and prove properties of the quality factor Q.

TODO ItemPhyslib.ClassicalMechanics.DampedHarmonicOscillator.Basic

Define and prove properties of the relaxation time τ.

TODO ItemPhyslib.ClassicalMechanics.DampedHarmonicOscillator.Solution

Prove that the selected trajectory is the unique solution of the equation of motion with the given initial conditions.

TODO ItemPhyslib.ClassicalMechanics.FreeParticle.Basic

Prove conservation of linear momentum for the free particle.

Sorryful ResultClassicalMechanics.FreeParticle.velocity_const_of_zero_acc
Sorryful ResultClassicalMechanics.FreeParticle.kineticEnergy_conserved
TODO ItemPhyslib.ClassicalMechanics.HarmonicOscillator.Basic

Create a new folder for the damped harmonic oscillator, initially as a place-holder.

TODO ItemPhyslib.ClassicalMechanics.HarmonicOscillator.Basic

Create a new file for the geometric model which properly models the position as a configuration space and velocity as its tangent space, then show explicitly how this coordinate model is a simplification of the geometric model. A nice reference for such an analysis is: https://web.williams.edu/Mathematics/it3/texts/var_noether.pdf

TODO ItemPhyslib.ClassicalMechanics.HarmonicOscillator.ConfigurationSpace

Configuration Space should be refactored to take `EuclideanSpace ℝ (Fin 1)` as its value.

TODO ItemPhyslib.ClassicalMechanics.HarmonicOscillator.ConfigurationSpace

The API around the configuration space should be improved to allow further development of a proper geometric model of the Harmonic Oscillator.

TODO ItemPhyslib.ClassicalMechanics.HarmonicOscillator.Solution

Implement other initial conditions for the classical harmonic oscillator. For example: - Two positions at different times. - Two velocities at different times. And convert them into the type `InitialConditions` above.

TODO ItemPhyslib.ClassicalMechanics.HarmonicOscillator.Solution

For the classical harmonic oscillator find the time for which it returns to it's initial position and velocity.

TODO ItemPhyslib.ClassicalMechanics.HarmonicOscillator.Solution

For the classical harmonic oscillator find the times for which it passes through zero.

Sorryful ResultClassicalMechanics.CoplanarDoublePendulum.ConfigurationSpace
Sorryful ResultClassicalMechanics.SlidingPendulum.ConfigurationSpace
TODO ItemPhyslib.ClassicalMechanics.RigidBody.Basic

The definition of a rigid body is currently defined via linear maps from the space of smooth functions to ℝ. When possible, it should be change to *continuous* linear maps.

Informal DefinitionRigidBody.kineticEnergy

The kinetic energy of a rigid body.

Informal DefinitionRigidBody.coordinate_system

One can describe the motion of rigid body with a fixed (inertial) coordinate system (X,Y,Z) and a moving system (x₁,x₂,x₃) rigidly attached to the body.

Informal LemmaRigidBody.rigid_body_dof

A rigid body in three-dimensional space has six degrees of freedom: three translational (for the position of its centre of mass) and three rotational (for its orientation).

Informal LemmaRigidBody.velocity_decomposition

The velocity v of any point in a rigid body is v = V + Ω × r, where V is the velocity of the origin of the moving system and Ω is the angular velocity.

Informal LemmaRigidBody.angular_velocity_is_well_defined

The angular velocity of rotation of a rigid body from a system of coordinates fixed in the body is independent of the system chosen.

Informal LemmaRigidBody.decomposition_of_motion

The motion of a rigid body can be decomposed into a translation of some reference point plus a rotation about that point. There exists a time-dependent vector V(t) and angular velocity ω(t) such that v(r) = V + ω × r, where r is measured from the reference point.

Informal LemmaRigidBody.center_of_mass_point_moves_as_particle

The centre of mass of a rigid body moves as if all mass were concentrated at that point and acted upon by the resultant external force: M a_CM = ∑ F_ext.

Informal LemmaRigidBody.angular_momentum_about_point

The total angular momentum about a point O is L = ∫ r × v dm. With v = V + ω × r about the centre of mass, L = R × (M V) + I_CM ω, where R is the centre of mass position.

Informal LemmaRigidBody.translational_equation_inertial

In the inertial frame, the translational equation of motion of a rigid body is given by dP/dt = F, where `P` is the total linear momentum and `F` is the total external force acting on the body.

Informal LemmaRigidBody.rotational_equation_inertial

In the inertial frame, the rotational equation of motion of a rigid body about the center of mass is given by dM/dt = K, where `M` is the total angular momentum and `K` is the total external torque.

Informal LemmaRigidBody.kinetic_energy_decomposition

The kinetic energy decomposes into translational and rotational parts: T = (1/2) M |V|² + (1/2) ω ⋅ I_CM ω. Here V is the velocity of the centre of mass and I_CM is the inertia tensor about that point.

Informal LemmaRigidBody.parallel_axis_theorem

If I_O is the inertia tensor about a point O, then the inertia tensor about a parallel point O' displaced by a is I_{O'} = I_O + M(|a|² 1 − a ⊗ a). This is the parallel-axis theorem.

Informal DefinitionRigidBody.principal_axes_of_inertia

Because the inertia tensor is real symmetric, there exists an orthonormal basis of principal axes in which it is diagonal. The corresponding directions are the principal axes of inertia.

Informal LemmaRigidBody.principal_axes_of_inertia_bound

None of the principal moments of inertia can exceed the sum of other two.

Informal DefinitionRigidBody.asymmetrical_top

An asymmetrical top is when none of the principal moments of inertia are equal.

Informal DefinitionRigidBody.symmetrical_top

A symmetrical top is when only two of the principal moments of inertia are equal.

Informal DefinitionRigidBody.spherical_top

A spherical top is when all three of the principal moments of inertia are equal.

Informal DefinitionRigidBody.RotatingFrame

A rotating body-fixed frame is a coordinate system attached to the body that rotates with the body relative to an inertial (fixed) frame. The frame is characterised by its angular velocity vector Ω(t).

Informal DefinitionRigidBody.rotating_frame_derivative

The time derivative in the rotating frame, d'/dt, is the derivative of the components of a vector with respect to time when expressed in the rotating (body-fixed) frame.

Informal LemmaRigidBody.transport_law_inertial_rotating

For any vector field A(t), its inertial-frame time derivative equals the rotating-frame derivative plus the contribution from the frame rotation: (dA/dt)_inertial = (dA/dt)_rotating + Ω × A. Here Ω is the angular velocity of the rotating frame.

Informal LemmaRigidBody.transport_law_for_momentum

For linear momentum, the relation between inertial and rotating derivatives is (dP/dt)_inertial = d'P/dt + Ω × P. So, d'P/dt + Ω × P = F which is the linear-momentum equation in the rotating frame.

Informal LemmaRigidBody.transport_law_for_angular_momentum

For angular momentum, the relation between inertial and rotating derivatives is (dM/dt)_inertial = d'M/dt + Ω × M, and with the rotational form of Newton's law M_tot = (dM/dt)_inertial this yields d'M/dt + Ω × M = K, the angular-momentum equation in the rotating frame.

Informal LemmaRigidBody.euler_equations

When motion is described in body-fixed principal axes (I₁, I₂, I₃ diagonal), the equations of rotational motion (Euler’s equations) are: I₁ dω₁/dt + (I₃ − I₂) ω₂ ω₃ = M₁, with cyclic permutations. M is the external torque about the centre of mass.

Informal LemmaRigidBody.steady_rotation_conditions

A rigid body can perform steady (uniform) rotation about any principal axis if the torque about that axis vanishes. Stability depends on the ordering of principal moments.

Informal LemmaRigidBody.intermediate_axis_instability

Rotations about the largest and smallest principal axes are stable under small perturbations; rotation about the intermediate axis is unstable (tennis-racket effect).

Informal LemmaRigidBody.reduction_to_two_body

If a rigid body is confined to planar motion, its dynamics reduce to a two-dimensional problem: the inertia reduces to a scalar moment and rotation is described by a single angular velocity.

Informal LemmaRigidBody.rigid_body_work_and_power

The power delivered to a rigid body by forces is P = ∑ Fᵢ ⋅ vᵢ = F_tot ⋅ V + M ⋅ ω, where F_tot is total force, V the reference point velocity, and M the torque. Translational and rotational contributions separate.

Informal LemmaRigidBody.small_oscillations_about_equilibrium

Small oscillations about a stable equilibrium orientation are governed by linearised equations obtained by expanding energy to second order in angular displacements. Normal modes and frequencies depend on inertia and restoring torques.

Sorryful ResultRigidBody.solidSphere_inertiaTensor
TODO ItemPhyslib.ClassicalMechanics.Scattering.RigidSphere

Derive the scattering cross section of a perfectly rigid sphere.

TODO ItemPhyslib.ClassicalMechanics.Vibrations.LinearTriatomic

Derive the frequencies of vibaration of a symmetric linear triatomic molecule.

TODO ItemPhyslib.ClassicalMechanics.WaveEquation.HarmonicWave

Show that the wave equation is invariant under rotations and any direction `s` can be rotated to `EuclideanSpace.single 2 1` if only one wave is concerned.

TODO ItemPhyslib.ClassicalMechanics.WaveEquation.HarmonicWave

Show that any disturbance (subject to certain conditions) can be expressed as a superposition of harmonic plane waves via Fourier integral.

Sorryful ResultCosmology.FLRW
TODO ItemPhyslib.Electromagnetism.Basic

Charge density and current density should be generalized to signed measures, in such a way that they are still easy to work with and can be integrated with with tensor notation. See here: https://leanprover.zulipchat.com/#narrow/channel/479953-Physlib/topic/Maxwell's.20Equations

TODO ItemPhyslib.Electromagnetism.Current.CircularCoil

Prove that the magnetic field around a circular current loop is as given in the reference https://ntrs.nasa.gov/api/citations/20140002333/downloads/20140002333.pdf.

TODO ItemPhyslib.Electromagnetism.Distributional.Basic

Add a constructor for DistElectromagneticPotential from a scalar potential which is a function using an if...then...else... based on IsDistBounded.

TODO ItemPhyslib.Electromagnetism.Distributional.Basic

Add a constructor for DistElectromagneticPotential from vector potentials.

TODO ItemPhyslib.Electromagnetism.Distributional.Basic

Add a constructor for DistElectromagneticPotential from electric and magnetic fields.

TODO ItemPhyslib.Electromagnetism.Distributional.Basic

Remove the definition `deriv` in distributional electromagnetism and replace it with `distTensorDeriv` everywhere.

TODO ItemPhyslib.Electromagnetism.Kinematics.EMPotential

Write lemmas for the various properties (e.g. the electric field) of the electromagnetic potential from the various constructors.

TODO ItemPhyslib.Electromagnetism.Kinematics.EMPotential

Define constructors for the distributional electromagnetic potential, similar to e.g. `ofScalarPotential` and `ofVectorPotential` for `ElectromagneticPotential`.

TODO ItemPhyslib.Electromagnetism.Kinematics.EMPotential

Lift the action on `ElectromagneticPotential d` to a `DistribMulAction`.

TODO ItemPhyslib.Electromagnetism.Kinematics.EMPotential

Add results related to the differentiability of the derivative of the Electromagnetic potential.

TODO ItemPhyslib.Electromagnetism.Kinematics.FieldStrength

Currently the API for the field strength tensor has the definition of `fieldStrengthMatrix`. This is now unneeded, and should be replaced with `toField {A.toFieldStrength x| [μ] [ν]}ᵀ` and suitble API around that. To undertake this TODO, it is likely easier to start building the API around `toField {A.toFieldStrength x| [μ] [ν]}ᵀ` and then remove `fieldStrengthMatrix` once the API is in place.

TODO ItemPhyslib.Electromagnetism.Kinematics.FieldStrength

Generalize the proof of `toFieldStrength_eq_sum_basis_eval` so that any tensor can easily be written as the sum of its components times the basis. The likely location for this is in the `Tensorial` module. The TODO item with tag: 8285454220008908699 is likely a prerequisite to this.

TODO ItemPhyslib.Electromagnetism.Kinematics.FieldStrength

Add a section in this file on the evaluation of the field strength tensor's indices. I.e. equalitites related to `toField {A.toFieldStrength x| [μ] [ν]}ᵀ`.

TODO ItemPhyslib.Electromagnetism.Kinematics.FieldStrength

For the electromagnetic field strength, we have lots of lemmas related to the components of the field strength tensor in terms of the basis. For example, `toTensor_toFieldStrength_basis_repr`, these should be removed. They are used downstream, so there use there should be refactored.

TODO ItemPhyslib.Mathematics.Distribution.Basic

For distributions, prove that the derivative fderivD commutes with integrals and sums. This may require defining the integral of families of distributions although it is expected this will follow from the definition of a distribution.

TODO ItemPhyslib.Mathematics.LinearMaps

Replace the definitions of bi-linear maps in `./Mathematics/LinaerMaps` with definitions from Mathlib.

TODO ItemPhyslib.Meta.TODO.Global

Ensure that all the lines in QuantumInfo are below 100 characters long.

TODO ItemPhyslib.Meta.TODO.Global

Turn the `sorryful` linter on for the QuantumInfo module.

TODO ItemPhyslib.Meta.TODO.Global

Remove all instances of `erw` within Physlib. This usually indicates the need for better API.

TODO ItemPhyslib.Meta.TODO.Global

Refactor: Refactor the code in the QuantumInfo module to mirror the API structure of the rest of Physlib. For example, different key data structures should have their own files or directories. Results should be organized in a general way such that they can be applied more generally.

TODO ItemPhyslib.Meta.TransverseTactics

Find a way to free the environment `env` in `transverseTactics`. This leads to memory problems when using `transverseTactics` directly in loops.

Informal DefinitionGeorgiGlashow.GaugeGroupI

The gauge group of the Georgi-Glashow model, i.e., `SU(5)`.

Informal DefinitionGeorgiGlashow.inclSM

The homomorphism of the Standard Model gauge group into the Georgi-Glashow gauge group, i.e., the group homomorphism `SU(3) × SU(2) × U(1) → SU(5)` taking `(h, g, α)` to `blockdiag (α ^ 3 g, α ^ (-2) h)`. See page 34 of https://math.ucr.edu/home/baez/guts.pdf

Informal LemmaGeorgiGlashow.inclSM_ker

The kernel of the map `inclSM` is equal to the subgroup `StandardModel.gaugeGroupℤ₆SubGroup`. See page 34 of https://math.ucr.edu/home/baez/guts.pdf

Informal DefinitionGeorgiGlashow.embedSMℤ₆

The group embedding from `StandardModel.GaugeGroupℤ₆` to `GaugeGroupI` induced by `inclSM` by quotienting by the kernel `inclSM_ker`.

Informal DefinitionPatiSalam.GaugeGroupI

The gauge group of the Pati-Salam model (unquotiented by ℤ₂), i.e., `SU(4) × SU(2) × SU(2)`.

Informal DefinitionPatiSalam.inclSM

The homomorphism of the Standard Model gauge group into the Pati-Salam gauge group, i.e., the group homomorphism `SU(3) × SU(2) × U(1) → SU(4) × SU(2) × SU(2)` taking `(h, g, α)` to `(blockdiag (α h, α ^ (-3)), g, diag (α ^ 3, α ^(-3))`. See page 54 of https://math.ucr.edu/home/baez/guts.pdf

Informal LemmaPatiSalam.inclSM_ker

The kernel of the map `inclSM` is equal to the subgroup `StandardModel.gaugeGroupℤ₃SubGroup`. See footnote 10 of https://arxiv.org/pdf/2201.07245

Informal DefinitionPatiSalam.embedSMℤ₃

The group embedding from `StandardModel.GaugeGroupℤ₃` to `GaugeGroupI` induced by `inclSM` by quotienting by the kernel `inclSM_ker`.

Informal DefinitionPatiSalam.gaugeGroupISpinEquiv

The equivalence between `GaugeGroupI` and `Spin(6) × Spin(4)`.

Informal DefinitionPatiSalam.gaugeGroupℤ₂SubGroup

The ℤ₂-subgroup of the un-quotiented gauge group which acts trivially on all particles in the standard model, i.e., the ℤ₂-subgroup of `GaugeGroupI` with the non-trivial element `(-1, -1, -1)`. See https://math.ucr.edu/home/baez/guts.pdf

Informal DefinitionPatiSalam.GaugeGroupℤ₂

The gauge group of the Pati-Salam model with a ℤ₂ quotient, i.e., the quotient of `GaugeGroupI` by the ℤ₂-subgroup `gaugeGroupℤ₂SubGroup`. See https://math.ucr.edu/home/baez/guts.pdf

Informal LemmaPatiSalam.sm_ℤ₆_factor_through_gaugeGroupℤ₂SubGroup

The group `StandardModel.gaugeGroupℤ₆SubGroup` under the homomorphism `embedSM` factors through the subgroup `gaugeGroupℤ₂SubGroup`.

Informal DefinitionPatiSalam.embedSMℤ₆Toℤ₂

The group homomorphism from `StandardModel.GaugeGroupℤ₆` to `GaugeGroupℤ₂` induced by `embedSM`.

TODO ItemPhyslib.Particles.BeyondTheStandardModel.RHN.AnomalyCancellation.Ordinary.DimSevenPlane

Remove the definitions of elements `(SM 3).Charges` B₀, B₁ etc, here are use only `B : Fin 7 → (SM 3).Charges`.

Informal DefinitionSpin10Model.GaugeGroupI

The gauge group of the Spin(10) model, i.e., the group `Spin(10)`.

Informal DefinitionSpin10Model.inclPatiSalam

The inclusion of the Pati-Salam gauge group into Spin(10), i.e., the lift of the embedding `SO(6) × SO(4) → SO(10)` to universal covers, giving a homomorphism `Spin(6) × Spin(4) → Spin(10)`. Precomposed with the isomorphism, `PatiSalam.gaugeGroupISpinEquiv`, between `SU(4) × SU(2) × SU(2)` and `Spin(6) × Spin(4)`. See page 56 of https://math.ucr.edu/home/baez/guts.pdf

Informal DefinitionSpin10Model.inclSM

The inclusion of the Standard Model gauge group into Spin(10), i.e., the composition of `embedPatiSalam` and `PatiSalam.inclSM`. See page 56 of https://math.ucr.edu/home/baez/guts.pdf

Informal DefinitionSpin10Model.inclGeorgiGlashow

The inclusion of the Georgi-Glashow gauge group into Spin(10), i.e., the Lie group homomorphism from `SU(n) → Spin(2n)` discussed on page 46 of https://math.ucr.edu/home/baez/guts.pdf for `n = 5`.

Informal DefinitionSpin10Model.inclSMThruGeorgiGlashow

The inclusion of the Standard Model gauge group into Spin(10), i.e., the composition of `inclGeorgiGlashow` and `GeorgiGlashow.inclSM`.

Informal LemmaSpin10Model.inclSM_eq_inclSMThruGeorgiGlashow

The inclusion `inclSM` is equal to the inclusion `inclSMThruGeorgiGlashow`.

TODO ItemPhyslib.Particles.StandardModel.Basic

Redefine the gauge group as a quotient of SU(3) x SU(2) x U(1) by a subgroup of ℤ₆.

Sorryful ResultStandardModel.gaugeGroupℤ₆SubGroup
Sorryful ResultStandardModel.GaugeGroupℤ₆
Informal DefinitionStandardModel.gaugeGroupℤ₂SubGroup

The ℤ₂subgroup of the un-quotiented gauge group which acts trivially on all particles in the standard model, i.e., the ℤ₂-subgroup of `GaugeGroupI` derived from the ℤ₂ subgroup of `gaugeGroupℤ₆SubGroup`. See https://math.ucr.edu/home/baez/guts.pdf

Informal DefinitionStandardModel.GaugeGroupℤ₂

The gauge group of the Standard Model with a ℤ₂ quotient, i.e., the quotient of `GaugeGroupI` by the ℤ₂-subgroup `gaugeGroupℤ₂SubGroup`. See https://math.ucr.edu/home/baez/guts.pdf

Informal DefinitionStandardModel.gaugeGroupℤ₃SubGroup

The ℤ₃-subgroup of the un-quotiented gauge group which acts trivially on all particles in the standard model, i.e., the ℤ₃-subgroup of `GaugeGroupI` derived from the ℤ₃ subgroup of `gaugeGroupℤ₆SubGroup`. See https://math.ucr.edu/home/baez/guts.pdf

Informal DefinitionStandardModel.GaugeGroupℤ₃

The gauge group of the Standard Model with a ℤ₃-quotient, i.e., the quotient of `GaugeGroupI` by the ℤ₃-subgroup `gaugeGroupℤ₃SubGroup`. See https://math.ucr.edu/home/baez/guts.pdf

Informal DefinitionStandardModel.GaugeGroup

The (global) gauge group of the Standard Model given a choice of quotient, i.e., the map from `GaugeGroupQuot` to `Type` which gives the gauge group of the Standard Model for a given choice of quotient. See https://math.ucr.edu/home/baez/guts.pdf

Informal LemmaStandardModel.gaugeGroupI_lie

The gauge group `GaugeGroupI` is a Lie group.

Informal LemmaStandardModel.gaugeGroup_lie

For every `q` in `GaugeGroupQuot` the group `GaugeGroup q` is a Lie group.

Informal DefinitionStandardModel.gaugeBundleI

The trivial principal bundle over SpaceTime with structure group `GaugeGroupI`.

Informal DefinitionStandardModel.gaugeTransformI

A global section of `gaugeBundleI`.

Informal LemmaStandardModel.HiggsVec.stability_group_single

The Higgs boson breaks electroweak symmetry down to the electromagnetic force, i.e., the stability group of the action of `rep` on `![0, Complex.ofReal ‖φ‖]`, for non-zero `‖φ‖`, is the `SU(3) × U(1)` subgroup of `gaugeGroup := SU(3) × SU(2) × U(1)` with the embedding given by `(g, e^{i θ}) ↦ (g, diag (e ^ {3 * i θ}, e ^ {- 3 * i θ}), e^{i θ})`.

Informal LemmaStandardModel.HiggsVec.stability_group

The subgroup of `gaugeGroup := SU(3) × SU(2) × U(1)` which preserves every `HiggsVec` by the action of `StandardModel.HiggsVec.rep` is given by `SU(3) × ℤ₆` where `ℤ₆` is the subgroup of `SU(2) × U(1)` with elements `(α^(-3) * I₂, α)` where `α` is a sixth root of unity.

TODO ItemPhyslib.Particles.StandardModel.HiggsBoson.Basic

Make `HiggsBundle` an associated bundle.

TODO ItemPhyslib.Particles.StandardModel.HiggsBoson.Basic

Define the global gauge action on HiggsField.

TODO ItemPhyslib.Particles.StandardModel.HiggsBoson.Basic

Prove `⟪φ1, φ2⟫_H` invariant under the global gauge action. (norm_map_of_mem_unitary)

TODO ItemPhyslib.Particles.StandardModel.HiggsBoson.Basic

Prove invariance of potential under global gauge action.

Informal DefinitionStandardModel.HiggsField.gaugeAction

The action of `gaugeTransformI` on `HiggsField` acting pointwise through `HiggsVec.rep`.

Informal LemmaStandardModel.HiggsField.guage_orbit

There exists a `g` in `gaugeTransformI` such that `gaugeAction g φ = φ'` iff `φ(x)^† φ(x) = φ'(x)^† φ'(x)`.

Informal LemmaStandardModel.HiggsField.gauge_orbit_surject

For every smooth map `f` from `SpaceTime` to `ℝ` such that `f` is positive semidefinite, there exists a Higgs field `φ` such that `f = φ^† φ`.

Informal LemmaStandardModel.HiggsField.Potential.isBounded_iff_of_𝓵_zero

When there is no quartic coupling, the potential is bounded iff the mass squared is non-positive, i.e., for `P : Potential` then `P.IsBounded` iff `P.μ2 ≤ 0`. That is to say `- P.μ2 * ‖φ‖_H^2 x` is bounded below iff `P.μ2 ≤ 0`.

TODO ItemPhyslib.Particles.SuperSymmetry.SU5.ChargeSpectrum.PhenoClosed

Make the result `viableChargesMultiset` a safe definition, that is to say proof that the recursion terminates.

TODO ItemPhyslib.QFT.AnomalyCancellation.Basic

Anomaly cancellation conditions can be derived formally from the gauge group and fermionic representations using e.g. topological invariants. Include such a definition.

TODO ItemPhyslib.QFT.AnomalyCancellation.Basic

Anomaly cancellation conditions can be defined using algebraic varieties. Link such an approach to the approach here.

TODO ItemPhyslib.QFT.PerturbationTheory.FieldOpFreeAlgebra.NormalOrder

Split the following two lemmas up into smaller parts.

TODO ItemPhyslib.QFT.PerturbationTheory.WickAlgebra.Basic

The lemma `bosonicProjF_mem_ideal` has a proof which is really long. We should either 1) split it up into smaller lemmas or 2) Put more comments into the proof.

Sorryful ResultWickContraction.Perm.isFull_of_isFull
Sorryful ResultWickContraction.Perm.perm_uncontractedList
TODO ItemPhyslib.QFT.QED.AnomalyCancellation.Basic

The implementation of pure U(1) anomaly cancellation conditions is done currently through the type `ACCSystemCharges`. This whole directory could be simplified by refactoring to remove `ACCSystemCharges` defining `PureU1Charges` as `Fin n → ℚ` directly, or this space quotiented by permutations and overall factors.

TODO ItemPhyslib.QFT.QED.AnomalyCancellation.BasisLinear

The definition of `coordinateMap` here may be improved by replacing `Finsupp.equivFunOnFinite` with `Finsupp.linearEquivFunOnFinite`. Investigate this.

Sorryful ResultQuantumMechanics.HydrogenAtom.angularMomentum_commutation_lrl
Sorryful ResultQuantumMechanics.HydrogenAtom.angularMomentum_commutation_lrlSqr
Sorryful ResultQuantumMechanics.HydrogenAtom.angularMomentumSqr_commutation_lrlSqr
TODO ItemPhyslib.QuantumMechanics.DDimensions.Operators.Position

Incorporate normRegularizedPow into Space.Norm

TODO ItemPhyslib.QuantumMechanics.FiniteTarget.Basic

Define a smooth structure on `FiniteTarget`.

TODO ItemPhyslib.QuantumMechanics.FiniteTarget.HilbertSpace

To match this with the results currently in the `QuantumInfo` part of the library, we should: 1. Define `FiniteHilbertSpace` as a structure with a single entry `val`, this should take as an input a finite and decidable type `d`. Below this type is taken as default to be `Fin n`. 2. On this type we should then define the structure of an inner-product space, and a Hilbert space. 3. We could then define the notation `𝓗[d]` to denote the Hilbert space corresponding to the type `d`. 4. The results from `QuantumInfo/Finite/Braket.lean` can then be moved over to Physlib, and related to the definition of the Hilbert space here. Optional. Maybe it is worth moving these files to a directory called `States`, with the idea that it includes this definition of the Hilbert space, the definition of bras and kets, and the definition of mixed states. Maybe also parts of `./ResourceTheory/FreeState`.

Informal LemmacomplexLorentzTensor.contrBispinorUp_eq_metric_contr_contrBispinorDown

`{contrBispinorUp p | α β = εL | α α' ⊗ εR | β β'⊗ contrBispinorDown p | α' β' }ᵀ`. Proof: expand `contrBispinorDown` and use fact that metrics contract to the identity.

Informal LemmacomplexLorentzTensor.coBispinorUp_eq_metric_contr_coBispinorDown

`{coBispinorUp p | α β = εL | α α' ⊗ εR | β β'⊗ coBispinorDown p | α' β' }ᵀ`. proof: expand `coBispinorDown` and use fact that metrics contract to the identity.

TODO ItemPhyslib.Relativity.CliffordAlgebra

Prove injectivity of ofCliffordAlgebra and construct the full isomorphism.

TODO ItemPhyslib.Relativity.LorentzGroup.Basic

Define the Lie group structure on the Lorentz group.

TODO ItemPhyslib.Relativity.LorentzGroup.Orthochronous.Basic

Prove topological properties of the Orthochronous Lorentz Group.

TODO ItemPhyslib.Relativity.LorentzGroup.Restricted.Basic

Prove that every member of the restricted Lorentz group is combination of a boost and a rotation.

Semiformal Resultrestricted_isConnected

The restricted Lorentz group is connected.

TODO ItemPhyslib.Relativity.Special.TwinParadox.Basic

Find the conditions for which the age gap for the twin paradox is zero.

Informal LemmaSpecialRelativity.InstantaneousTwinParadox.ageGap_nonneg

In the twin paradox with instantaneous acceleration, Twin A is always older then Twin B.

TODO ItemPhyslib.Relativity.Special.TwinParadox.Basic

Do the twin paradox with a non-instantaneous acceleration. This should be done in a different module.

TODO ItemPhyslib.Relativity.Tensors.Basic

In this file (Physlib/Relativity/Tensors/Basic.lean), write an overview of the implementation of tensors in Physlib. It should cover the main points: - the definition of a tensor species, - the meaning of color, - the tensorial instances, - other key definitions.

TODO ItemPhyslib.Relativity.Tensors.Basic

Refactor: Throughout the `Tensor` file system are lemmas related to `ComponentIdx`. The definition of `ComponentIdx` and the lemmas about it should be placed in it's own directory. Around `ComponentIdx`, we should build convenient API. Here `ComponentIdx` is the type of values that indices in e.g. Lorentz tensors can take.

TODO ItemPhyslib.Relativity.Tensors.Basic

Define the equivalence between `ComponentIdx ![c]` and `basisIdx c`. Replace Lorentz.Vector.indexEquiv and Lorentz.CoVector.indexEquiv with this more general definition.

TODO ItemPhyslib.Relativity.Tensors.Basic

Prove that if `σ` satisfies `PermCond c c1 σ` then `PermCond.inv σ h` satisfies `PermCond c1 c (PermCond.inv σ h)`.

Informal DefinitionIndexNotation.OverColor.forgetLift

The natural isomorphism between `lift (C := C) ⋙ forget` and `Functor.id (Discrete C ⥤ Rep k G)`.

Informal DefinitionFermion.rightHandedWeylAltEquiv

The linear equivalence between `rightHandedWeyl` and `altRightHandedWeyl` given by multiplying an element of `rightHandedWeyl` by the matrix `εᵃ⁰ᵃ¹ = !![0, 1; -1, 0]]`.

Informal LemmaFermion.rightHandedWeylAltEquiv_equivariant

The linear equivalence `rightHandedWeylAltEquiv` is equivariant with respect to the action of `SL(2,C)` on `rightHandedWeyl` and `altRightHandedWeyl`.

TODO ItemPhyslib.Relativity.Tensors.Contraction.Basic

docs: The files on contractions of tensors are currently lacking documentation. These should be added, mirroring good examples within Physlib.

TODO ItemPhyslib.Relativity.Tensors.Contraction.Pure

Prove lemmas relating to the commutation rules of `dropPair` and `prodP`.

TODO ItemPhyslib.Relativity.Tensors.Contraction.SuccSuccAbove

Determine a way to simplify the definition of `succSuccAbove` using predefined functions from Mathlib, but ensuring tactics such as `decide` still work.

TODO ItemPhyslib.Relativity.Tensors.Evaluation

Add lemmas related to the interaction of evalT and permT, prodT and contrT.

TODO ItemPhyslib.Relativity.Tensors.RealTensor.CoVector.Basic

Split this module on Lorentz co-vectors into two: `Basic.lean` and `Tensorial.lean`. The former should contain the basic definitions and vector space structure of Lorentz co-vectors (e.g. the basis etc.). This should only depend on imports from Mathlib. The latter should contain the tensorial instance and everything which should depend on the `Tensorial` imports. A similar TODO item exists for Lorentz vectors.

TODO ItemPhyslib.Relativity.Tensors.RealTensor.Vector.Basic

Refactor: Split this module on Lorentz vectors into two: `Basic.lean` and `Tensorial.lean`. The former should contain the basic definitions and vector space structure of Lorentz vectors (e.g. the basis etc.). This should only depend on imports from Mathlib. The latter should contain the tensorial instance and everything which should depend on the `Tensorial` imports. A similar TODO item exists for Lorentz co-vectors.

TODO ItemPhyslib.Relativity.Tensors.TensorSpecies.Basic

Replace the definition of `TensorSpecies` with the construction from functions `TensorSpecies.ofFunctions`.

Informal LemmaCanonicalEnsemble.twoState_entropy_eq

A simplification of the `entropy` of the two-state canonical ensemble.

Informal LemmaCanonicalEnsemble.twoState_helmholtzFreeEnergy_eq

A simplification of the `helmholtzFreeEnergy` of the two-state canonical ensemble.

TODO ItemPhyslib.SpaceAndTime.Space.Basic

Fix the manifold structure on `Space d`. In particular, we should not need to define `manifoldStructure`. Instead, we should be able to give `Space d` an instance of `IsManifold` directly.

TODO ItemPhyslib.SpaceAndTime.Space.Derivatives.Basic

Make the version of the derivative described through `deriv_eq_mfderiv_manifoldStructure` the definition of `deriv` and prove the equivalence with the current definition, under suitable conditions.

TODO ItemPhyslib.SpaceAndTime.Space.Derivatives.Curl

Generalize the statement that a div-free field is a curl to time-dependent fields.

TODO ItemPhyslib.SpaceAndTime.Space.Derivatives.Curl

Generalize the statement that a curl-free field is a gradient to time-dependent fields.

TODO ItemPhyslib.SpaceAndTime.Space.DistOfFunction

Add a general lemma specifying the derivative of functions from distributions.

TODO ItemPhyslib.SpaceAndTime.Space.LengthUnit

For each unit of charge give the reference the literature where it's definition is defined.

TODO ItemPhyslib.SpaceAndTime.Space.Module

In the above documentation describe what an instance is, and why it is useful to have instances for `Space d`.

TODO ItemPhyslib.SpaceAndTime.Space.Module

In the above documentation describe the notion of a basis in Lean.

TODO ItemPhyslib.SpaceAndTime.SpaceTime.Basic

SpaceTime should be refactored into a structure, or similar, to prevent casting.

Informal LemmaSpaceTime.space_equivariant

The function `space` is equivariant with respect to rotations.

TODO ItemPhyslib.StringTheory.FTheory.SU5.Charges.OfRationalSection

The results in this file are currently stated, but not proved. They should should be proved following e.g. https://arxiv.org/pdf/1504.05593. This is a large project.

TODO ItemPhyslib.Units.Basic

Make SI : UnitChoices computable, probably by replacing the axioms defining the units. See here: https://leanprover.zulipchat.com/#narrow/channel/479953-Physlib/topic/physical.20units/near/534914807

TODO ItemPhyslib.Units.WithDim.Basic

Induce instances on `WithDim d M` from instances on `M`.

Sorryful ResultCPTPMap.not_achievesRate_gt_log_dim_in
Sorryful ResultCPTPMap.not_achievesRate_gt_log_dim_out
Sorryful ResultCPTPMap.bddAbove_achievesRate
Sorryful ResultCPTPMap.zero_le_quantumCapacity
Sorryful ResultCPTPMap.quantumCapacity_ge_log_dim_in
Sorryful ResultCPTPMap.coherentInfo_le_quantumCapacity
Sorryful ResultCPTPMap.quantumCapacity_eq_piProd_coherentInfo
TODO ItemQuantumInfo.Finite.Qubit.Basic

Improve the module doc-string of the `Qubit` file, to explain the current implementation.

GitHub IssueBump to version: v4.30.0

Version bump

This issue is a tracker issue for bumping Physlib to new versions of Lean. The checklist below should be used to ensure that the bump is done correctly.

Basics

  • Update mathlib rev in lakefile.toml.
  • Update doc-gen4 rev in lakefile.toml.
  • Remove the .lake file, e.g. on unix run rm -rf .lake.
  • Run lake update.
  • Check lean-toolchain updates correctly.
  • Update the Lean version badge in the README.md file.

Build

  • Run lake build and fix any errors.

Scripts

  • Ensure lake exe lint_all runs without errors.
  • Ensure lake exe TODO_to_yml mkFile runs without errors.
  • Ensure lake exe stats mkHTML runs without errors.
  • Ensure lake exe informal mkFile mkDot mkHTML runs without errors.
  • Ensure lake exe make_tag runs without errors.
  • Remove the created files rm ./docs/Informal.md; rm ./docs/InformalDot.dot; rm ./docs/InformalGraph.html; rm ./docs/Stats.html; rm ./docs/_data/TODO.yml.

Afterwards

  • Create a tag for the new version.
  • Put a bump notice on this thread.

Example past bumps

v4.20.0, v4.20.0-rc5 v4.27.0

GitHub IssueRemoving pre-Lorentz vectors `Co`, `Contr` etc.

The current implementation of Lorentz vectors in Lean, defines some preliminary modules and representations, these include Co, Contr etc.

These can be removed and simply replaced with Vector and CoVector, with a careful seperation of definitions into the required modules. Similar for the complex case.

GitHub IssueNaming in Anomaly Cancellation for QED

In ./Odd/BasisLinear and ./Even/BasisLinear, there is a poor choice of variable names splitting the two planes.

An example in the odd case is:

https://github.com/leanprover-community/physlib/blob/a6a22f98b9166549a8d268d38fa9f6ad0deb9108/Physlib/QFT/QED/AnomalyCancellation/Odd/BasisLinear.lean#L282-L291

compared to:

https://github.com/leanprover-community/physlib/blob/a6a22f98b9166549a8d268d38fa9f6ad0deb9108/Physlib/QFT/QED/AnomalyCancellation/Odd/BasisLinear.lean#L506-L515

There should be clearer descriptive naming around these planes. They should also be split into different file systems. The naming is tricky, but I think we should avoid something non-descriptive like plane1 etc.

GitHub IssueTechnical debt counter

It would be nice to set up a technical debt counter for Physlib, similar to that for Mathlib.

There is some discussion on this around:

https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Technical.20Debt.20Counters/near/585615609

GitHub IssueAPI: Spatial Surfaces

Details

Key data structure

This API is not directed around a single key data structure, instead it is centred around the concept of a surface in space. For each type of surface is defined around an embedding into Space d.

Need

This API is needed for a number of reasons, common examples involve any system where distributions in space are important for example in Electromagnetism.

Requirements

For each of the following surface we require that the API has the following requirements:

  • The API shall contain a map corresponding to the embedding of the surface into Space d.
  • The API shall contain a measure on Space d corresponding to integration over the surface.
  • The API shall contain a proof that the above measure has tempered growth.
  • The API shall contain a distribution corresponding to the surface.
  • The API shall where applicable contain a proof that the surface is of measure zero.

The surfaces these apply to are:

  • The spherical shell
  • The line
  • The solid sphere
  • The spherical cylinder
  • The solid cylinder
  • The thin ring
  • The half-plane

Example PRs

Example PRs in this direction include #942.

Corresponding file system

There is as of yet no file system for this API, but we see it sitting in ./SpaceAndTime/Space/Surfaces/

Parent APIs

#854

GitHub IssueAPI: Tensor components

Details

Key data structure

The components of tensor, for example a 2-tensor $T^\mu_\nu$, the components would contain all specifications of the index.

  • is defined as ComponentIdx

Need

This is used to manipulate tensors and extract their components. It is also used with basis of tensors.

What needs doing

  • The data structure ComponentIdx and results related there to are currently spread throughout the Tensors directory. They should be moved into their own file system.

Requirements

  • The API shall contain the combination of components based on taking the product of tensors.
  • The API shall contain the restriction of components based on contraction of indices.

Corresponding file system

Currently these sit in the file system:

https://github.com/lean-phys-community/PhysLean/tree/master/PhysLean/Relativity/Tensors

GitHub IssueAPI: Euclidean group

Details

Key data structure

The isometry group of Euclidean space, this is the Euclidean group.

  • is defined.

Need

This is needed for symmetries of Euclidean space, it contains rotations, reflections and translations.

Requirements

  • The API shall contain the inclusion of the special Euclidean group.
  • The API shall contain the inclusion of translations.
  • The API shall contain the inclusion of rotations about each spatial point.
  • The API shall contain a specification of a group element from a translation and rotation.
  • The API shall contain the inclusion of the Euclidean group into the Affine group.

Corresponding file system

There is no corresponding part of PhysLean for this API yet.

References

There is some coverage of this in:

See the discussion here about the definition of the Euclidean Space:

GitHub IssueAPI: TimeAndSpace

Details

Key data structure

This is Euclidean SpaceTime. The key data structure should be a type TimeAndSpace d which is an abbreviation of Time x Space d.

  • is defined.

Need

This API is needed throughout PhysLean, for example in Euclidean field theory, but also areas such as electromagnetism and classical mechanics.

Requirements

  • The API shall contain isometry projections from TimeAndSpace d to Time and `Space.
  • The API shall contain an action of the Euclidean group on TimeAndSpace d.
  • The API shall contain an action of the Euclidean group on Schwartz maps with targets TimeAndSpace d.

Corresponding file system

The corresponding file system is: https://github.com/lean-phys-community/PhysLean/tree/master/PhysLean/SpaceAndTime/TimeAndSpace

References

Specifics of the material in this section appears here:

Parent APIs

#854 #855 #940

GitHub IssueAPI: Integrate Glimm-Jaffe AQFT Framework into PhysLean

Details

Key data structure

The API is built around the FieldConfiguration type representing tempered distributions as field configurations, combined with Euclidean spacetime and test function spaces:

  • FieldConfiguration := SpaceTime →d[ℝ] ℝ - tempered distributions on Euclidean spacetime 1
  • SpaceTime := EuclideanSpace ℝ (Fin STDimension) - 4D Euclidean spacetime (must remain Euclidean for OS reconstruction)
  • TestFunction := SchwartzMap SpaceTime ℝ - Schwartz test functions
  • GJGeneratingFunctional - generating functional Z[J] = ∫ exp(i⟨ω, J⟩) dμ(ω)

The axioms have been discharged here in the spacetime Hermite model.

Need

This API is needed to provide a mathematically rigorous foundation for constructive quantum field theory in PhysLean using the Osterwalder-Schrader approach. After completion, it will:

  • Enable formalization of Glimm-Jaffe constructive QFT framework
  • Support Schwinger functions and correlation functions via functional derivatives
  • Provide basis for implementing Osterwalder-Schrader axioms
  • Allow rigorous treatment of Euclidean field measures and generating functionals
  • Bridge distribution theory with QFT

Requirements

Core Framework

  • Preserve Euclidean SpaceTime definition (essential for OS reconstruction)
  • Keep STDimension := 4 and related constants
  • Maintain getTimeComponent and spatialPart functions for Euclidean space
  • Retain Lebesgue measure μ := volume

Distribution Integration

  • Replace FieldConfiguration with SpaceTime →d[ℝ] ℝ notation
  • Update distributionPairing to use distribution evaluation
  • Integrate Distribution.fderivD for derivatives 2
  • Ensure measurable space instance works with new type

Test Function Infrastructure

  • Keep schwartzMul operation for complex test functions
  • Preserve schwartz_comp_clm helper function
  • Maintain complex_testfunction_decompose and associated lemmas
  • Keep distributionPairingℂ_real for complex test function pairing

Generating Functionals

  • Preserve GJGeneratingFunctional definition Z[J] = ∫ exp(i⟨ω, J⟩) dμ(ω)
  • Keep GJGeneratingFunctionalℂ for complex analyticity
  • Maintain GJMean for mean field calculations

Documentation and Integration

  • Add module docstring following PhysLean standards
  • Document integration decisions (Euclidean vs Lorentzian)
  • Add references to Osterwalder-Schrader literature
  • Ensure compatibility with existing PhysLean distribution infrastructure

Corresponding file system

The API should be integrated into PhysLean's QFT module hierarchy:

PhysLean/QFT/
├── ConstructiveQFT/
│   ├── EuclideanFramework.lean  # Core framework (minimal changes from user's file)
│   ├── GlimmJaffe.lean         # GJ framework specifics
│   └── OsterwalderSchrader.lean # OS axioms implementation

Related existing PhysLean infrastructure:

  • PhysLean/Mathematics/Distribution/Basic.lean - Distribution types and derivatives
  • PhysLean/SpaceAndTime/Space/Basic.lean - Spatial coordinates (for spatial slices)
  • Note: PhysLean/SpaceAndTime/SpaceTime/Basic.lean uses Lorentzian spacetime and should NOT be used for this Euclidean framework 3

Wiki pages you might want to explore:

Citations

GitHub IssueAPI: Galilean group

Details

Key data structure

The key data structure is the type corresponding to the Galilean group.

  • is defined

Need

The Galilean group is used in newtonian and non-relativistic physics, it contains many of the usual transformations one may want to do on Space and Time.

Requirements

  • The API shall contain an instance of a group on the type corresponding to the Galilean group.
  • The API shall contain an instance of a Lie group on the type corresponding to the Galilean group.
  • The API shall contain an inclusion from the group of rotations.
  • The API shall contain an inclusions from the space-translation group.
  • The API shall contain an inclusion from the time-translation group.
  • The API shall be general for any dimension.

Corresponding file system

A file system is not currently defined for the Galilean group.

GitHub IssueAPI: Time Manifold

Details

Key data structure

The type corresponding to the manifold underlying time. Note that this is not the same as Time which is commonly used in physics.

  • is defined

Need

This manifold is of use in topological field theory, where one does not have a metric on the world-volume. It also can be used to give a precise notion to the meaning of the time unit.

Requirements

  • The API shall contain an instance of a manifold on the type

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/SpaceAndTime/Time

GitHub IssueAPI: Tensors

Details

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on. Details on writing good system requirements can be found here.

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/Relativity/Tensors

Parent APIs

#941

GitHub IssueAPI: Dirac Fermions

Details

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on. Details on writing good system requirements can be found here.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#906

GitHub IssueAPI: Weyl Fermions

Details

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on. Details on writing good system requirements can be found here.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#886

GitHub IssueAPI: Damped harmonic oscillator

Key data structure

The key data structure shall be the input data of the damped harmonic oscillator. Namely, the mass, spring constant and damping coefficient.

  • is defined

Need

The damped harmonic oscillator is a key example of a classical mechanical system, and a simple generalisation of the harmonic oscillator.

Requirements

  • The API shall contain the definition of the kinetic energy.
  • The API shall contain the definition of the potential energy.
  • The API shall contain the definition of the lagrangian.
  • The API shall contain a simplification of the variational gradient of the lagrangian to the Euler-Lagrange equations.
  • The API shall contain a definition of the equation of motion of the system.
  • The API shall contain a definition of the initial conditions of the damped harmonic oscillator.
  • The API shall contain the definition of a trajectory of the damped harmonic oscillator.

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/ClassicalMechanics/DampedHarmonicOscillator

Parent APIs

#846

GitHub IssueAPI: Rigid body

Details

Key data structure

The key data structure shall be the definition of a Rigid Body specified by its mass distribution.

  • is defined

Need

This API is needed to study many examples in classical mechanics, for example rigid spheres.

Requirements

  • The API shall allow the calculation of the total mass of the rigid body.
  • The API shall allow the calculation of the center of mass of the rigid body.
  • The API shall allow the calculation of the moment of inertia of the rigid body.
  • The API shall contain the definition of the angular velocity of rotation of the rigid body.
  • The API shall contain the definition of the velocity of the center of mass of the rigid body.
  • The API shall contain the definition of the kinetic energy of the rigid body.
  • The API shall contain the definition of Euler angles for a rigid body.

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/ClassicalMechanics/RigidBody

References

  • Landau and Lifshitz, Mechanics, Section 32.

Parent APIs

#854 #855

GitHub IssueAPI: Canonical Ensemble

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#861

GitHub IssueAPI: Fluid

Key data structure

The key data structure is a fluid specified by the distribution of its fluid velocity, density and pressure.

  • is defined

Need

This is one of the core definitions fluid dynamics and can be used to define many other properties in this area.

Requirements

  • Flow out of a volume
  • Mass flux density
  • Equation of continuity
  • Euler's equation
  • Definition of an ideal fluid
  • Definition of the entropy flux density
  • Bernoulli's equation
  • Energy flux

Corresponding file system

This does not yet have an API in PhysLean

References

A good reference for this is

  • Landau and Lifshitz, Fluid Mechanics, Chapter 1.

Parent APIs

#854 #855

GitHub IssueAPI: Lorentz Tensors

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#885 #908

GitHub IssueAPI: Lorentz Group

Key data structure

The key data structure here is the Lorentz group, which is the key symmetry group of Minkowski SpaceTime.

  • is defined

Need

This API is needed throughout the project, we use it to define Lorentz tensors which are the foundations to the definition of SpaceTime and many other quantities in the project, such as fermions, the Electromangetic potential etc.

Requirements

  • Instance as a group
  • Instance as a Lie group
  • Inclusion of boosts
  • Inclusion of rotations
  • Different membership conditions
  • Definition of proper Lorentz transforms
  • Definition of orthochronous Lorentz transforms
  • Definition of the restricted Lorentz group

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/Relativity/LorentzGroup

GitHub IssueAPI: Configuration space for pendulum

Key data structure

The key data structure is the configuration space of the pendulum. There are multiple ways that it could be defined, e.g. by an x and y coordinates which are constrained, or by its angle. One should be chosen.

  • is defined

Need

The pendulum is a simple example of a problem in classical mechanics, this API will show the more general power of APIs around classical mechanics.

Requirements

  • The API shall contain the structure of a manifold on the configuration space.
  • The API shall contain a map from the configuration space to Space, giving the position of the pendulum in real space.
  • The API shall contain the definition of a trajectory based on the configuration space
  • The API shall subsequently contain the definition of the lagrangian

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/ClassicalMechanics/Pendulum

Parent APIs

#863

GitHub IssueAPI: Feynman diagrams

Key data structure

The key data structure here is the general notation of a Feynman diagram. It is suspected that getting a good, and general definition for this data structure will be hard, but vital for the building of a good API.

  • is defined

Need

Feynman diagrams are one of the main calculation tools used in particle physics. With Feynman diagrams we will be able to formalise a lot more results within particle physics than is currently possible, and slowly make our way to research level results in this direction.

Requirements

  • The definition shall be general enough to accept any Feynman diagram from any theory.
  • The API shall contain a definition to provably generate all Feynman diagrams up to a given order for a given amplitude.
  • The API shall contain a computable definition of the symmetry factor of a Feynman diagram.
  • The API shall contain a definition permitting the conversion of a Feynman diagram into its underlying algebraic expression.

Corresponding file system

There is a start to this in PhysLean, however this can likely be rewritten.

Parent APIs

#881 #885

GitHub IssueAPI: Operator Algebra

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

GitHub IssueAPI: Z-prime charges for Standard Model

Key data structure

The key data structure here is the collection of integer charges one can assign to the Standard Model particles. Sets of charges which are multiples of each other should be equivalent.

  • is defined

Need

Z-prime models are an important yet simple extension of the standard model. They have been utilized in many phenomenological problems. Having this data structure will allow us to reason more easily about these models.

Requirements

  • The API shall contain an action of the group which permutes families of particles
  • The API shall contain a function returning the charges associated with different terms in the potential
  • The API shall contain a function given the anomaly cancellation conditions on the charges
  • The API shall contain an equivalence class on the charges by addition of hypercharge
  • The API shall contain common named sets of charges

Corresponding file system

Lots of aspect of this API already exist in PhysLean, however, it is not structured around a key data structure, so needs to be rewritten. This content can be found as part of:

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/Particles/StandardModel

Parent APIs

#858

GitHub IssueAPI: Electromagnetic potential

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

The key data structure here is the electromagnetic potential, there are a number of ways one could define this. For example as a function or as a distribution. We need both definitions.

  • is defined

Need

This API will let us solve problems in electromagnetism for example, plane waves, electrostatic problems and electrodynamics problems.

Requirements

  • The API shall contain the definition of the EM potential from a connection on a U(1)-gauge bundle.
  • The API shall contain the definition of the Electric field from the EM potential.
  • The API shall contain the definition of the Magnetic field from the EM potential.
  • The API shall contain the definition of the Kinetic term from the EM potential.
  • The API shall contain the definition of the Lagrangian from the EM potential.

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/Electromagnetism

Parent APIs

#885 #858

GitHub IssueAPI: Standard Model Algebra

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#858

GitHub IssueAPI: Topological field theory

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#909

GitHub IssueAPI: Configuration Space

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

GitHub IssueAPI: Pressure

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

GitHub IssueAPI: Temperature

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

GitHub IssueAPI: Thermodynamical system

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#862 #861

GitHub IssueAPI: Gauge theory

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

GitHub IssueAPI: Standard Model gauge group

Standard model gauge group

Key data structure

The Standard Model gauge group is actually one of a number gauge groups corresponding to a quotient of SU(3)xSU(2)xU(1) by a finite group. The key data structure should take as an input a specification of which quotient, and correspond to said group.

  • Is defined

Need

The standard model gauge group is the most important groups in particle physics, and having a good API around it will open the door for lots of further results in this area.

Requirements

The following are requirements of the API:

  • the instance of a group
  • the instance of a Lie group
  • the center of the group
  • the principal bundle
  • associated bundles
  • common representations, and properties thereof
  • the electroweak subgroup
  • connection to an API around the Lie algebra

Corresponding File System

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/Particles/StandardModel

Contributing to this API

This API is open to contributions from anyone. If you believe that the requirements outlined above need modification, feel free to comment here. If you make a PR which is related to this API, please link it to this issue.

Parent APIs

#859 #856

GitHub IssueAPI: Higgs Field

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API. .

Parent APIs

#856

GitHub IssueAPI: SpaceTime

Key data structure

The key data structure is SpaceTime. This represents the SpaceTime with a given but arbitrary choice of units, with a given by arbitrary choice of zero. It is the usual notion of SpaceTime used by physicists. It corresponds to Minkowski spacetime, and is used in relativity.

  • is defined

Need

This API is heavily used in relativistic physics.

Requirements

  • The API shall contain a map from SpaceTime to Space and Time.
  • The API shall contain the derivatives of functions from SpaceTime to a normed space.
  • The API shall contain the derivatives of functions from SpaceTime to manifolds.
  • The API shall contain derivatives of distributions from SpaceTime to normed spaces.
  • The API shall contain derivatives of distributions from SpaceTime to manifolds.
  • The API shall contain the splitting of integrals over SpaceTime to integrals over Space and Time.
  • The API shall contain an action of the Lorentz group on SpaceTime.

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/SpaceAndTime/SpaceTime

Parent APIs

#854 #855 #886

GitHub IssueAPI: Time

Key data structure

The key data structure is Time consisting of a real value. This represents the Time with a given but arbitrary choice of units, with a given by arbitrary choice of zero. It is the usual notion of Time used by physicists.

  • is defined

Need

This API is heavily used in non-relativistic physics, specifically classical mechanics.

Requirements

  • The API shall contain an instance of a vector space on Time.
  • The API shall contain an ordering on Time
  • The API shall contain a norm on Time.
  • The API shall contain the derivatives of functions from Time to a normed space.
  • The API shall contain the derivatives of functions from Time to manifolds.
  • The API shall contain an action of the translation group on Time.
  • The API shall contain derivatives of distributions from Time to normed spaces.
  • The API shall contain derivatives of distributions from Time to manifolds.

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/SpaceAndTime/Time

Parent APIs

#909 #911

GitHub IssueAPI: Space

Space

Key data structure

The key data structure for the Space Api is a structure with a single value corresponding to a map from Fin n to Real. This corresponds to flat space. It acts as part of the standard world volume for many problems in physics.

  • Is defined

Need

This API is one of the most heavily used in PhysLean and acts as the backbone to many other problems.

Requirements

The following are requirements of the API:

  • the instance of a vector space
  • basis vectors
  • derivatives of functions from space to normed spaces
  • derivatives of functions from space to manifolds
  • the action of the group of rotations
  • translations
  • relation between Spaces of different dimensions
  • derivatives of distributions from Space to normed spaces
  • derivatives of distributions from Space to manifolds
  • The API shall contain a VSub instance to EuclideanSpace.
  • The API shall contain an NormAddTorsor instance from EuclideanSpace, see the conversation here.

Corresponding File System

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/SpaceAndTime/Space

Contributing to this API

This API is open to contributions from anyone. If you believe that the requirements outlined above need modification, feel free to comment here. If you make a PR which is related to this API, please link it to this issue.

References

See

Parent APIs

#911

GitHub IssueAPI: Two Higgs Doublet Model Vector Space

Key data structure

The key data structure shall correspond to the vector space associated with Higgs fields. It shall contain two fields, one for each of the Higgs vectors.

  • is defined.

Need

The two-Higgs doublet model is a key example of a theory beyond the standard model. In is the simplest of a large collection of models called N-doublet models.

Requirements

  • The API shall contain an instance of a vector space on the key-data structure.
  • The API shall contain the action of the global gauge group on the two Higgs doublets.
  • The API shall contain the definition of the potential of the two Higgs doublets.
  • The API shall contain a theorem proving that the potential is invariant under the global gauge group.
  • The API shall contain an action of the group $\mathbb{Z}_2$ swapping the two Higgs vectors.

Corresponding file system

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/Particles/BeyondTheStandardModel/TwoHDM

Parent APIs

#857

GitHub IssueAPI: Inertial frame of reference

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#885

GitHub IssueAPI: QM system on Space

Key data structure

The key data structure here corresponds to Hilbert space of 'square integrable functions from Space d to the complex numbers`. Really one will need the equivalence class of such functions.

  • is defined

Need

This API will be used in, for example, the study of the classical harmonic oscillator, the reflectionless potential and other problems based on potentials in space.

Requirements

  • The API shall contain the definition of the position operator
  • The API shall contain the definition of the momentum operator
  • The key data structure shall carry the instance of a Hilbert space
  • The API shall contain the definition of a bra

Corresponding file system

Aspects of this API already exist, however, they are not structured neatly around the key data structure.

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/QuantumMechanics/OneDimension

Parent APIs

#854

GitHub IssueAPI: Qubit

The details of this issue are not yet completed. The issue is here to track the progress of the API specified by the title. Parts of this API may already be included within the project. There are a number of things we need to specify, help in specifying these points is appreciated.

Key data structure

What is the key data structure the API is built around.

Need

Why is this API needed, after it is completed, what will it make easier or allow us to do.

Requirements

A tickbox list of the requirements of the API. This should include things which have already been done as well as things still to be worked on.

Corresponding file system

If it exists, the part of the PhysLean which corresponds to this API.

Parent APIs

#848

GitHub IssueAPI: Finite dimensional Quantum mechanics system

Finite dimensional Hilbert Space

Key data structure

The key data structure is the finite dimensional Hilbert space, which takes as an input the dimension of the Hilbert space. This is for a general system and not for any specific Hamiltonian.

  • is defined

Need

Finite dimensional quantum mechanical systems are prevalent in lots of aspects of physics, including qubits in quantum information, and the Hilbert space of finite lattices. For example the tight binding chain.

Requirements

The following are requirements of the API:

  • ability to easily define notation for basis vectors
  • statements about the dimensions
  • used in the definition of the qubit
  • used in the definition of the tight binding chain
  • easy conversion between bras and kets
  • tensor products
  • pure states

Corresponding File System

This file system exists, the link needs adding here.

Contributing to this API

This API is open to contributions from anyone. If you believe that the requirements outlined above need modification, feel free to comment here. If you make a PR which is related to this API, please link it to this issue.

GitHub IssueAPI: Configuration space of harmonic oscillator

Configuration space of Harmonic Oscillator

Key data structure

The key data structure of this API is the configuration space of the classical harmonic oscillator. This is a should be defined as a structure with a single value of type Real.

  • Is defined

Need

Currently the classical harmonic oscillator in PhysLean is not defined using a custom defined configuration space. The problem with this is that the physics is hidden, and defining properties on the configuration space is difficult.

This API should act as a template for making other APIs.

Requirements

The following are requirements of the API:

  • the structure of a smooth manifold on the configuration space
  • maps from the configuration space to the actual position of the particle in Space
  • Trajectories should be defined using the configuration space
  • Well defined notion for trajectories, may need interaction with 5e Space API

Corresponding File System

https://github.com/HEPLean/PhysLean/tree/master/PhysLean/ClassicalMechanics/HarmonicOscillator

Parent APIs

#854 #863

GitHub IssueLorentz algebra and Lorentz Group

As suggested by @PrParadoxy in #832, the Lorentz algebra should be derived from the Lorentz group.

  • Include a TODO item in the Lorentz algebra file about this.
  • Introduce the Lorentz algebra from the Lorentz group.
GitHub IssueThoughts on the definition of Hilbert Space and Bra-Ket

Version bump

  1. Why PhysLean decides to define finite Hilbert Space and infinite Hilbert Space separately?
  2. We try to define Ket as a linear map (eg. noncomputable def Ket: ℂ →ₗ[ℂ] H := (innerSL ℂ 1).toLinearMap.smulRight ψ), so that we can use the uniform notation tensor product of map (eg. f "⊗ₘ" g => TensorProduct.map f g) for calculation like this: ((⟨ψ| ⊗ₘ ⟨φ|) ∘ₛₗ (|ψ⟩ ⊗ₘ |φ⟩)). And also, Ket definition can both used for infinite Hilbert Space and finite Hilbert Space. How do you think of this definition? What are pros and cons of doing this?
GitHub IssuePhysLean.ClassicalMechanics.HarmonicOscillator.Basic

This issue is for the improvement of the documentation related to the Harmonic Oscillator. We should check the following:

  • Are there any typos or grammatical errors?
  • Does the structure make sense to someone with a limited understanding of Lean? (if not what can be improved)

The documentation currently is attached:

HarmonicOscillator_basic.pdf

If you have suggestions of improvements feel free to add a comment below, and I can edit the docs accordingly whilst making the suggester a co-author of the commit.

GitHub IssuePhysLean.Electromagnetism.Electrostatics.Basic
GitHub IssueModule doc-string improvements

This issue is to track which module-doc strings are good and which need improving.

If a doc-string for a module is already 'good', please tick it off here, otherwise feel free to improve it.

Doc-string module improvements

Classical mechanics

Condensed matter

Cosmology

Electromagnetism

Mathematics

Meta

Optics

Particles

QFT

Quantum mechanics

Relativity

SpaceAndTime

StatisticalMechanics

StringTheory

Thermodynamics

Units

GitHub IssueImproving on-boarding documentation

This is to track progress in the direction of on-boarding documentation. It is being discussed on the Lean Zulip here. Some possible directions:

  1. Improve the getting started page: https://physlean.com/GettingStarted with information regarding GitHub forking etc.
  2. Update the contributing file in the main PhysLean repository, to include the key information needed to contribute to the project.
  3. Create a frequently asked questions page concerning basic questions within the project.

Feel suggest other points here, or assign yourself to any points. Long-form discussions or questions should be made on the Zulip.

GitHub IssueDefinition of Space and Time via `AddTorsor`

See the discussion here.

GitHub IssueDefinition of a second

We should introduce the notion of a measurement along with an axiom. Ideally this should take account of units but also allow us to work with things abstractly.

There was an attempt at defining a second at #488. See also the discussion here.

GitHub IssueKinematics Module: Definitions and Core Equations

Working on building out the Kinematics module in PhysLean/ClassicalMechanics/Kinematics, starting with:

Definitions.lean → Time, Position, Velocity, Acceleration

Equations.lean → Constant acceleration equations

Theorems.lean → Proofs of derivative-based relationships

GitHub IssueFormalization: Derivatives and SpaceTime

This issue originates from this conversation.

  • Define the epsilon tensor in general dimension. See here.
  • Redefine the spaceCurl in terms of this epsilon tensor.
  • Define a continuous linear equivalence between SpaceTime and Time x Space.
  • Define a map timeSlice taking SpaceTime → M to Time → Space → M with corresponding API.
  • Define ((realLorentzTensor d).tensorBasis _ (fun x => Fin.cast (by simp) μ)) formally as a unit vector in SpaceTime pointing the μ direction.
  • Change SpaceTime.deriv to an abbreviation of fderiv using the above spacetime derivative.
  • Come up with a good way to go from SpaceTime to Space derivatives etc. (e.g. greek derivatives vs latin)
  • Use the above to rewrite Maxwell's equations in a better way.

For more details on individual points see the details of the above conversation.

GitHub IssueImprovement of module documentation

The following modules need their module doc-string improved (this is the first docstring in the file) to include the following information:

  • A description of the physical content of the module (file) (or if it is the Basic module an overall physical description of the physics within that directory).
  • The current status, i.e. what are the important definitions and lemmas in that file or directory.
  • What is left to be done, with referenced TODO items.

An example is given in

If you update one of these please change the status of it here, or write a comment on this issue. More modules may be added to this list.

GitHub IssueDecategorify index notation

The categorification of aspects of index notation is leading to type-theoretic problems. I think it is best to separate the actual implementation of index notation in PhysLean from the formal categorical aspects. I think this will help make proofs etc. in this area smoother.

Subtasks

  • Remove categorical structure of map in perm
GitHub IssueRemove `erw`s

There are lots of erw [...] in PhysLean. These are slow, and thus it is beneficial for them to be removed.

To remove an erw [...] usually means changing the corresponding lemma to simp-normal form.

GitHub IssueMultigoal linter

The whole of PhysLean needs the MultiGoal linter run on it and all the warnings dealt with.

In particular

[leanOptions]
linter.style.multiGoal = true

should be added to lakefile.toml and the project built with lake build. This will generate warnings, some of which may be from Mathlib, but the ones from PhysLean should be dealt. For example:

   exact h 
   exact h2 

should be replaced with:

  · exact h1 
  · exact h2 
GitHub IssueBasic examples for Quantum Mechanics

This issue is tied to the project:

https://github.com/orgs/HEPLean/projects/3

The aim of which is to track progress in quantum mechanics within PhysLean.

GitHub IssueProperties of the Pauli matrices

This is an issue to track the formalization of properties of the Pauli matrices.

The goal is to prove the properties of the Pauli matrices using index notation with HepLean. The properties of the Pauli matrices to be proved are (2.23)-(2.30) of this note.

  • 2.23
  • 2.24
  • 2.25
  • 2.26
  • 2.27
  • 2.28
  • 2.29
  • 2.30

It may be best to complete a number of steps before this:

  • Improve the API around the basis of tensors and tensor trees, to allow calculations to be done by looking at each component (Done in #343)
  • Improve the @[simp]'s lemma around tensor trees and tensors, to make the calculations of the above as simple as possible. (Done in #343)
  • Define an integer version of (coordinates of) tensors, and show that it injects into all tensors. On these decide can be used. (Done in #343)
  • Using the above three, simplify the proof and speed of: pauliCo_contr_pauliContr. (Done in #343)
  • Define the epsilon Lorentz tensor with four four-vector indices.
  • Write the above lemmas out using index notation in Lean.

After these have all been formalized:

  • Make a curated noted containing for Pauli matrices and their properties.

This issue is related to: #286.

Contributions to this issue are very much welcome in any direction.

GitHub IssueImprove meta-programming and display around informal results

There are two parts to this issue:

  • The way informal_lemma and informal_definition currently work in HepLean is that they are turned through elaboration into elements of the type InformalLemma or InformalDefinition. This does not seem like the most optimal approach, and an approach similar to TODO elements will likely work better.
  • The output of informal_lemma and informal_definition on the HepLean website needs improving. Either with an updated form of graph or just a list of them.
GitHub IssueWorkflow alignment

It's preferable to align the workflows of HepLean with that of Mathlib. Here's the task breakdown:

If more tasks are required, feel free to add them to the list above, and link related PRs to the "Development" section on the right of the GitHub web UI.

GitHub IssueAnnouncement Blog Post

Hey, I loved learning about this project (although I am by no means able to understand more than 10% :D)

Just a suggestion: why not write a short blog post at https://github.com/leanprover-community/blog/ announcing this project? I don't know how many people are looking into the blog, but I mean it wouldn't hurt, would it?

If you are interested I can prepare a post for you with the basics (I understand) and you can than add additional infos.

Best wishes for the project, I hope it will attract a lot of contributors!