Zulip Chat Archive

Stream: maths

Topic: Definition of circulant matrices


Wrenna Robson (Jul 13 2022 at 13:42):

I'm just looking at the definition we have of circulants. https://leanprover-community.github.io/mathlib_docs/linear_algebra/matrix/circulant.html

The definition I am more familiar with has the circulant matrix generated by cycling the rows, not - as here - the columns.

While it doesn't strictly matter - a row-generated circulant is also a column-generated circulant (v : n → α and λ (i : n), v (-i)) respectively)- it does require a slightly tiresome amount of translation, and means that there are some lemmas that are natural and true but not present - for instance, a vec_mul version of matrix.circulant_mul.

What do people think the best way to allow for both the row-form and column-form would be? And does anyone know why it was defined in terms of columns to begin with - is this standard in some other context?

Wrenna Robson (Jul 13 2022 at 13:56):

Sorry, I actually see wikipedia does do it by column! So probably that is the answer. But one can certainly also do it via row (see page 31 in https://bikesuite.org/files/v4.2/BIKE_Spec.2021.09.29.1.pdf).

Wrenna Robson (Jul 13 2022 at 14:12):

One might also want an is_circulant predicate, and certainly it is true that the subring of circulant matrices over a ring R indexed by fin n are isomorphic to polynomials in R[X]/(X^n - 1) (which, per my other recent question, are in turn isomorphic to vectors of the form fin n -> R with the multiplication that corresponds to the convolution operation).

Wrenna Robson (Jul 13 2022 at 14:16):

https://github.com/leanprover-community/mathlib/pull/9011 - looks like this was the only substantive commit to this file. @Johan Commelin @Eric Wieser, sorry to bother you, but it looks like the original author of this file isn't on Zulip and you were the reviewers: do you have any opinions about changes or extensions to this?

Wrenna Robson (Jul 13 2022 at 14:16):

I don't ask arbitrarily - the theory of quasi-cyclic codes is intimately connected to circulant properties.

Eric Wieser (Jul 13 2022 at 14:33):

The PR author is @Alex Zhang

Wrenna Robson (Jul 13 2022 at 15:32):

Ah - thank you. I was looking for the name at the top.

Alex Zhang (Jul 13 2022 at 21:34):

@Wrenna Robson Hi! I am not actively working on PRs currently, but I still keep an eye here. I may be back later and write more things later.

Wrenna Robson (Jul 13 2022 at 21:35):

Hey; love the circulant work! If you have a mo I would appreciate a look at my above questions.

Alex Zhang (Jul 13 2022 at 21:45):

@Wrenna Robson Yes, I don't see there is any substantial difference between the row definition and the column definition. So I think either way is fine. is_circulant may be helpful if you need such a thing very often in your work, but this is also a very simple thing. More interesting things may be to write more algebraic connections (I may have already written some, but I don't remember now..) as the current file is quite basic.

Wrenna Robson (Jul 13 2022 at 22:13):

Yes, it's purely to aid in the construction of the circulants.


Last updated: Dec 20 2023 at 11:08 UTC