Skip to content

Conversation

@Taneb
Copy link
Member

@Taneb Taneb commented Nov 3, 2025

On top of #2855, taken from #2729

@jamesmckinna
Copy link
Contributor

jamesmckinna commented Nov 3, 2025

As with the (admittedly fiddly) factorisation of the Binomial Theorem in #1928 , consider refactoring this so that:

  • the principal ideal of a general Ring is well-defined for any element which commutes with everything in the ring
  • hence, for a CommutativeRing, the principal ideal is always well-defined.

UPDATED: might usefully need to define the Centre Center of an algebra, commutator subgroup of a group, ... etc. as free-standing concepts, for subsequent (refactored) deployment in this context? #2863

@Taneb
Copy link
Member Author

Taneb commented Nov 3, 2025

As with the (admittedly fiddly) factorisation of the Binomial Theorem, consider refactoring this so that:

* the principal ideal of a general `Ring` is well-defined for _any_ element which commutes with everything in the ring

* hence, for a `CommutativeRing`, the principal ideal is _always_ well-defined.

To help justify this to future me who may have forgotten this, the scalar multiples of the identity matrix commute with all square matrices (over a commutative ring)

Copy link
Contributor

@JacquesCarette JacquesCarette left a comment

Choose a reason for hiding this comment

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

I know it's still draft, I'm still approving!

Comment on lines +27 to +31
; _+ᴹ_ = _+_
; _*ₗ_ = _*_
; _*ᵣ_ = _*_
; 0ᴹ = 0#
; -ᴹ_ = -_
Copy link
Contributor

@jamesmckinna jamesmckinna Nov 5, 2025

Choose a reason for hiding this comment

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

Can these be recreated by record { RawBimodule rawBimodule hiding (_≈ᴹ_); _≈ᴹ_ = _≈_ on a *_ }, with rawBimodule brought into scope by the opening of subbimodule in Ideal?

Copy link
Contributor

Choose a reason for hiding this comment

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

Can we even lift out the definition ι = a *_ in a where clause, so that this could 'just' be _≈ᴹ_ = _≈_ on ι ?

; 0ᴹ = 0#
; -ᴹ_ = -_
}
; ι = a *_
Copy link
Contributor

Choose a reason for hiding this comment

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

... and here?

; ⁻¹-homo = λ x → sym (-‿distribʳ-* a x)
}
; *ₗ-homo = x∙yz≈y∙xz a
; *ᵣ-homo = λ r x → sym (*-assoc a x r)
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there nothing under Algebra.Properties.(Commutative)Semigroup that could be deployed here, as on the previous line, mentioning only a?

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't think so, and certainly not with this argument order

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants