Skip to content

feat: product of Coxeter matrices#37160

Draft
vihdzp wants to merge 2 commits intoleanprover-community:masterfrom
vihdzp:mul
Draft

feat: product of Coxeter matrices#37160
vihdzp wants to merge 2 commits intoleanprover-community:masterfrom
vihdzp:mul

Conversation

@vihdzp
Copy link
Copy Markdown
Collaborator

@vihdzp vihdzp commented Mar 25, 2026

The Coxeter matrix A * B is the block matrix !![A, 2; 2, B].


I've used multiplication to denote this under the logic that the product of Coxeter groups has a Coxeter matrix given by this construction. Perhaps this isn't desirable, considering it doesn't match matrix multiplication. I'm open to suggestions.

Open in Gitpod

@vihdzp vihdzp added the t-group-theory Group theory label Mar 25, 2026
@vihdzp vihdzp changed the title feat: product of Coxeter matrix feat: product of Coxeter matrices Mar 25, 2026
@github-actions
Copy link
Copy Markdown

PR summary fb131a4c00

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ instance : CoeFun (CoxeterMatrix B) fun _ ↦ Matrix B B ℕ := ⟨M⟩
+ instance : HMul (CoxeterMatrix B) (CoxeterMatrix B') (CoxeterMatrix (B ⊕ B'))
- instance : CoeFun (CoxeterMatrix B) fun _ ↦ (Matrix B B ℕ) := ⟨M⟩

You can run this locally as follows
## summary with just the declaration names:
./scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

theorem reindex_apply (i i' : B') : M.reindex e i i' = M (e.symm i) (e.symm i') := rfl

/-- The Coxeter matrix `A * B` is the block matrix `!![A, 2; 2, B]`. -/
instance : HMul (CoxeterMatrix B) (CoxeterMatrix B') (CoxeterMatrix (B ⊕ B')) where
Copy link
Copy Markdown
Contributor

@tb65536 tb65536 Mar 28, 2026

Choose a reason for hiding this comment

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

Yeah, maybe this should just be a def with API instead?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

a) What should I call this?
b) What API should I put on this? This is mostly intended as a way to prove products of Coxeter groups are Coxeter, should I hold off on adding it before I prove that theorem?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yeah, maybe wait until we have that to look at.

@vihdzp vihdzp marked this pull request as draft April 6, 2026 15:33
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors Bot commented Apr 6, 2026

This pull request is now in draft mode. No active bors state needed cleanup.

While this PR remains draft, bors will ignore commands on this PR. Mark it ready for review before using commands like bors r+ or bors try.

@vihdzp vihdzp added the WIP Work in progress label Apr 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-group-theory Group theory WIP Work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants