Skip to content

Conversation

@themathqueen
Copy link
Collaborator

@themathqueen themathqueen commented Jan 19, 2026

These are operator algebraic ways of describing a classical finite graph.

We show what the convolutive ring on m -> R looks like. In particular, that the convolutive product corresponds to the Hadamard product. That the convolutive unit 1 corresponds to the matrix of all 1s. And that a diagonal of a matrix A is 0 (resp., 1) iff id * A.toLin' = 0 (resp., = id).
As a result, we get that a matrix A is an adjacency matrix iff its linear map is convolutively idempotent, its intrinsic star is equal to its adjoint, and has id * A.toLin' = 0. With the complete simple graph corresponding to 1 - id.

Motivation:
A quantum adjacency matrix is a linear operator that is convolutively idempotent. One then says that it is "real" if it's intrinsically self-adjoint, self-adjoint if it's self-adjoint, and directed when star A = adjoint A. One also says it's "reflexive" if id * f = id and "irreflexive" if id * f = 0.

So, this PR is the first of many on non-commutative graphs. It says that all finite classical adjacency matrix operators are quantum adjacency matrix operators. In particular, a simple graph's adjacency matrix operator is an irreflexive, self-adjoint, directed, and real quantum adjacency matrix operator.


Open in Gitpod

@themathqueen themathqueen added t-analysis Analysis (normed *, calculus) blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) labels Jan 19, 2026
@github-actions
Copy link

github-actions bot commented Jan 19, 2026

PR summary a3a10db0e9

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.RingTheory.Coalgebra.PiLemmas (new file) 1468

Declarations diff

+ LinearMap.ConvolutionProduct.IsIdempotentElem.intrinsicStar_isSelfAdjoint
+ LinearMap.ConvolutionProduct.isIdempotentElem_iff
+ LinearMap.convMul_id_eq_id_iff_diag_toMatrix'_eq_one
+ LinearMap.convMul_id_eq_zero_iff_diag_toMatrix'_eq_zero
+ LinearMap.id_convMul_eq_id_iff_diag_toMatrix'_eq_one
+ LinearMap.id_convMul_eq_zero_iff_diag_toMatrix'_eq_zero
+ LinearMap.toMatrix'_convMul_eq_hadamard
+ LinearMap.toMatrix'_convOne
+ Matrix.ConvolutionProduct.isIdempotentElem_toLin'_iff
+ Matrix.id_convMul_toLin'_eq_id_iff
+ Matrix.id_convMul_toLin'_eq_zero_iff
+ Matrix.isAdjMatrix_iff_toLin'
+ Matrix.isSymm_iff_intrinsicStar_toLin'
+ Matrix.toLin'_convMul_id_eq_id_iff
+ Matrix.toLin'_convMul_id_eq_zero_iff
+ Matrix.toLin'_hadamard_eq_convMul
+ Pi.intrinsicStar_comul
+ SimpleGraph.card_dart_eq_dotProduct
+ SimpleGraph.convolutionProduct_isIdempotentElem_toLin'_adjMatrix
+ SimpleGraph.id_convMul_toLin'_adjMatrix_eq_zero
+ SimpleGraph.intrinsicStar_isSelfAdjoint_toLin'_adjMatrix
+ SimpleGraph.toLin'_adjMatrix_top
+ SimpleGraph.toLin'_convMul_id_adjMatrix_eq_zero
+ SimpleGraph.toMatrix'_convOne_sub_id_eq_adjMatrix_completeGraph
+ update_eq_ite

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

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

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


No changes to technical debt.

You can run this locally as

./scripts/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).

@mathlib4-merge-conflict-bot mathlib4-merge-conflict-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 19, 2026
@mathlib4-merge-conflict-bot
Copy link
Collaborator

This pull request has conflicts, please merge master and resolve them.

@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 19, 2026
@themathqueen themathqueen removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jan 19, 2026
@themathqueen themathqueen marked this pull request as ready for review January 19, 2026 18:35
@themathqueen
Copy link
Collaborator Author

The naming gets kinda weird because there's ConvolutionProduct and IntrinsicStar. I'm not sure how to best name them when IsSelfAdjoint and IsIdempotentElem are involved. They get long and difficult to remember.

@ocfnash ocfnash self-assigned this Jan 20, 2026
@themathqueen themathqueen changed the title feat(Analysis): classical adjacency matrices are quantum adjacency matrices feat(RingTheory/Coalgebra): classical adjacency matrices are quantum adjacency matrices Jan 22, 2026
@themathqueen themathqueen reopened this Jan 22, 2026
@github-actions github-actions bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 22, 2026
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 22, 2026
@themathqueen themathqueen removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jan 23, 2026
@themathqueen themathqueen added t-ring-theory Ring theory t-algebra Algebra (groups, rings, fields, etc) and removed t-analysis Analysis (normed *, calculus) labels Jan 23, 2026
Comment on lines +505 to +507
theorem update_eq_ite {β : Sort*} (f : α → β) (a' : α) (v : β) :
update f a' v = fun w ↦ if w = a' then v else f w := funext <| update_apply _ _ _

Copy link
Member

Choose a reason for hiding this comment

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

I think you'll find you don't need this lemma after #34344 lands

Comment on lines +67 to +69
have (x : n → R) : comul x = ∑ i, x i • (Pi.single i 1 ⊗ₜ[R] Pi.single i 1) := by
simp [comul, Pi.single, Function.update_eq_ite, Pi.smul_def, ← tmul_smul]
ext; simp [this, Pi.single, Function.update_eq_ite]
Copy link
Member

Choose a reason for hiding this comment

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

Can you now drop Pi.single from this call?

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

Labels

t-algebra Algebra (groups, rings, fields, etc) t-ring-theory Ring theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants