Skip to content

refactor: Higgs GaugeGroupI action to a Representation - #1489

Merged
jstoobysmith merged 3 commits into
leanprover-community:masterfrom
doxtor6:higgs-rep-representation
Aug 5, 2026
Merged

refactor: Higgs GaugeGroupI action to a Representation#1489
jstoobysmith merged 3 commits into
leanprover-community:masterfrom
doxtor6:higgs-rep-representation

Conversation

@doxtor6

@doxtor6 doxtor6 commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

Resolves the TODO in HiggsBoson/Basic.lean: the action of GaugeGroupI on HiggsVec is
now a directly-defined Representation ℂ GaugeGroupI HiggsVec (repGaugeGroupI), and the
SMul/MulAction/DistribMulAction/SMulCommClass instance stack is removed, so the
representation is the single spelling of the action on HiggsVec.

  • Lemmas restated in rep form: repGaugeGroupI_apply (and the U1/SU2 variants),
    repGaugeGroupI_inner/_norm, toRealGroupElem_apply_self,
    ofU1Subgroup_repGaugeGroupI_apply, repGaugeGroupI_phase_snd; the orbit lemma becomes
    exists_repGaugeGroupI_eq_iff_norm_eq (stated with an explicit existential).
  • New group-property lemmas (repGaugeGroupI_mul_apply, inverse cancellation simp lemmas,
    repGaugeGroupI_inv_apply_eq_iff) replace mul_smul/inv_smul_smul downstream.
  • EffectivePotential: IsInvariant is stated via the representation; the smul_comm step
    is replaced by linearity (LinearMap.map_smul_of_tower).
  • TwoHDM: TwoHiggsDoublet keeps its MulAction (its orbit API needs it), now defined
    componentwise through repGaugeGroupI; GramMatrix orbit lemmas ported to the rep form.

Carved out of #1415, where the agreed convention is that gauge actions on field target spaces
are Representations rather than MulAction instances; this part is independent of the EFT
algebra work and useful on its own. The corresponding EFTLagrangianExclDeriv hookups stay
in #1415, since those files only exist there.

Built locally (the four changed files and their two downstream importers,
HiggsBoson/Potential and TwoHDM/Potential).

🤖 Generated with Claude Code

Resolves the TODO in HiggsBoson/Basic.lean: the action of GaugeGroupI
on HiggsVec is now a directly-defined Representation (repGaugeGroupI),
and the SMul/MulAction/DistribMulAction/SMulCommClass instances are
removed, so the rep is the single spelling of the action on HiggsVec.

- Lemmas restated in rep form: repGaugeGroupI_apply (and the U1/SU2
  variants), repGaugeGroupI_inner/_norm, toRealGroupElem_apply_self,
  ofU1Subgroup_repGaugeGroupI_apply, repGaugeGroupI_phase_snd; the
  orbit lemma becomes exists_repGaugeGroupI_eq_iff_norm_eq.
- New A.5.3 group-property lemmas (mul_apply, inv cancellation, the
  inv_apply_eq_iff) replace mul_smul/inv_smul_smul downstream.
- EffectivePotential: IsInvariant via the rep; smul_comm use replaced
  by LinearMap.map_smul_of_tower (linearity).
- TwoHDM: TwoHiggsDoublet keeps its MulAction (needed for its orbit
  classification) but it is now defined through repGaugeGroupI, so no
  type carries two spellings; GramMatrix ported.
- StandardModelLT completed: complexScalarRepGaugeGroup wired to
  ComplexScalarIrrep.repGaugeGroupI (moved before StandardModelLT,
  later duplicate removed) and an empty real-boson sector added,
  fixing the missing-fields error from the real-boson commit.
- liftLinear_of_eq proven (via quotKerEquivOfSurjective_symm_apply and
  liftQ_apply); the kernel-inclusion sorry inside liftLinear remains.
- YukawaTerms simp site updated to repGaugeGroupI_apply.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

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.

  1. Some automated checks will be run on your PR. You can see the results of these checks at the buttom of your PR page. If any of these checks fail, you will need to fix the issues before your PR can be merged. You can learn more about these here, including how to run them locally, which is sometimes quicker than relying on the GitHub Actions. If you have never had a PR merged before, you may have to wait for a reviewer to manually start these checks (this is for security).

  2. A reviewer will look at your PR and may ask you to make changes. This may happen a couple of days after you submit your PR, so you may need to be patient. But it should not be longer than that - if it is please bring it to the attention of the community on the Zulip. The level of review will depend on where your PR is submitted. If it is submitted to ./Physlib or ./QuantumInfo, the review will be more thorough than if it is submitted to ./PhyslibAlpha. You can find out more about what the review process is looking for in our review guidelines. If a reviewer adds an awaiting-author label to your PR, address the review comments, then please remove that label by adding a comment with -awaiting-author. This helps us keep track of reviews.

  3. The reviewer will either approve your PR, or request more changes (in which case we return to step 2). Once your PR is approved, it will be merged by a maintainer, this should happen shortly after approval, though you may get more comments at this stage.

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.

@github-actions github-actions Bot added the t-particles Particles label Aug 4, 2026
Jinzheng Li and others added 2 commits August 4, 2026 12:56
The PhyslibAlpha library also uses the GaugeGroupI action on HiggsVec,
which is now the representation repGaugeGroupI rather than a MulAction.

- GaugeTorus.gaugeCartan_smul_eq: restated with repGaugeGroupI (the
  SMul on HiggsVec no longer exists) and proved via repGaugeGroupI_apply.
- OrbitRepresentative: smul_zero becomes map_zero (the rep is linear),
  and toRealGroupElem_smul_self becomes toRealGroupElem_apply_self.
- GaugeSlice: ofU1Subgroup_smul_eq_smul becomes
  ofU1Subgroup_repGaugeGroupI_apply.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The simpNF linter reports repGaugeGroupI_inv_apply_apply and
repGaugeGroupI_apply_inv_apply as provable by simp: they are exact
specialisations of Mathlib's Representation.inv_self_apply and
Representation.self_inv_apply, which already carry @[simp].  Remove
both and use the Mathlib lemmas in repGaugeGroupI_inv_apply_eq_iff.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jstoobysmith

Copy link
Copy Markdown
Member

Looks good to me! @nateabr do you also want to take a look?

@nateabr

nateabr commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Yep looks great to me!

@nateabr nateabr added the ready-to-merge This PR is approved and will be merged shortly label Aug 5, 2026
@jstoobysmith
jstoobysmith merged commit fa696f8 into leanprover-community:master Aug 5, 2026
6 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 t-particles Particles

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants