← Back to context

Comment by steve_adams_86

6 hours ago

"The Rees algebra is an algebra over Z[t^−1]"

Such a small sentence and yet it means very little to me. I understand some constituent pieces, but I don't understand what Z is here other than a 'ring' and I don't really grasp how t^-1 converts this into a generalized family of algebra. It would take me a lot of effort to understand this and use it practically. I find that fascinating because it really is such a small statement that seems perfectly cromulent, but there's a lot packed in there that someone like me is totally missing.

I suppose there may be similar concepts in computer science, but nothing comes to mind that ever stumped me. To be frank, the field has been relatively accessible to me because it hasn't been too challenging. Not sure if that's a personal aptitude thing or it is genuinely simpler.

Z is the ring of integers, t is a formal variable allowing us to discuss polynomials whose coefficients are in some ring. That’s what R[t] means: the ring of polynomials of the formal variable t with coefficients in R. Adding in t^-1 lets us include inverted terms like 2t^-3.

An algebra over a ring (call it S so we don’t confuse it with R from the previous paragraph) is a like a vector space over S, with the added structure that you can multiply elements of the algebra together (vector spaces only let you add their elements together). So for example the collection of even integers 2Z is an algebra over the ring of all integers Z. The collection of all polynomials with integer coefficients, Z[t], is another algebra over Z.

This is a great example of how dense language gets in math. There are tons of concepts hiding in the unstated background. Many are quite simple to explain individually, but there are so many of them that an outsider won’t know where to start to tease them apart. There’s a good reason to do it this way though; it would take a very long time to say anything in math without ever increasing levels of information density.

  • But... what is a ring? What is a formal variable? What is a vector space? What does "algebra over the ring" mean?

    His point is the terms are dense too

    • Absolutely agree. All formal statements (like mathematical ones) are going to have some level of assumed background. And as the assumed background expands, the language naturally becomes more information dense.

      As for your specific questions, I believe Wikipedia does a great job of answering two of them for a layperson:

      https://en.wikipedia.org/wiki/Ring_(mathematics)

      https://en.wikipedia.org/wiki/Vector_space

      For the others, I’ll say that a formal variable is just a symbol (literally, like the letter t). With such a symbol, we can construct polynomials like 2t^2 - t + 3. Also, there’s no need to only use integers as the allowed coefficients; you can use any ring you like instead.

      An “algebra over the ring R” is what I was attempting to define in my comment above. The algebra is “over” R if we can multiply an element of the algebra by an element of R. The useful analogy here is scalar multiplication in a vector space: you can multiply a vector by 2 to double it or -1/2 to reflect and shorten it. More generally, it makes perfect sense to consider some more general version of vectors which can be scalar multiplied by elements of any ring R.

      2 replies →

    • > But... what is a ring? What is a formal variable? What is a vector space? What does "algebra over the ring" mean?

      All these terms were taught to computer science (and of course math, physics, ...) students as part of getting their degree in computer science, because these concepts are important for many algorithms.

      6 replies →

It's a class with an array of integers in it with .length() == t - 1 and the same methods as Matrix.

In lean4, even without mathlib4, TCP/IP is way more code than a Rees algebra.

Math uses dense notation that is gigaoverloaded, and the disambiguating context was historically the leisure and proximity to have someone explain what the lexemes even mean.

lean4 is proving to be very revealing as an uncorruptible referee on a lot of things, including the relative difficulty of computer science and complex analysis.

  -- A Rees algebra over ℤ[t⁻¹] is this.
  -- That's it. That's the whole thing.
  structure ReesAlgebra where
    coeffs : Array Int   -- integers, indexed by grade
    -- grade k means the coefficient sits at t^k
    -- negative indices are the t⁻¹ part

  -- The "algebra" part: you can add them
  def ReesAlgebra.add (a b : ReesAlgebra) : ReesAlgebra :=
    ⟨a.coeffs.zipWith b.coeffs (· + ·)⟩

  -- And multiply them (convolution, same as polynomial multiplication)
  def ReesAlgebra.mul (a b : ReesAlgebra) : ReesAlgebra :=
    sorry -- it's Array.foldl over index pairs (i,j) summing into slot (i+j)
    -- exactly how you'd multiply polynomials in a job interview

  -- That's the entire mathematical content of
  -- "The Rees algebra is an algebra over Z[t^{-1}]"
  --
  -- Compare: a minimal TCP SYN handshake in Lean4 would be
  -- ~200 lines before you even get to retransmission.
  --
  -- The notation is the gate, not the math.

  • That's false. Z[n] in rings does not mean "an array of integers of length n", it means the subring generated by Z union with {n}, where n is an element of some other set. For example:

    Z[i], the Gaussian integers, is the subring (of C) generated by Z union {i} where i is the imaginary unit in C, the complex numbers. The Gaussian integers correspond to the integer grid-points of the complex plane, if you want to visualize them.

    • Cher Monsieur Laurent, comment pourrions-nous espérer obtenir un soutien de la part de ℤ ⭢ ℤ? Les polynomials! Tout est grande!