Skip to content

feat: product of Coxeter matrices#37160

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

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-group-theory Group theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants