1) the properties of a field is missing closure under the operation. This is kind of assumed from context, but I would include it.
2) the reduction step up multiplication of nth order polynomials (to keep them nth order) is missing (or at least I missed it after a couple of readings.)
Apart from those quibbles, this was really good overall though. I enjoyed it.
A binary operation on a set is closed on the set by definition. If an operation isn’t closed, then it isn’t considered a binary operation on that set. Of course, it doesn’t hurt to state the closure property explicitly.
Root reason & comp sci application is mentioned near start :
“ Many moons back I was self-learning Galois Fields for some erasure coding theory applications.”
Erasure codes are based on finite fields, e.g. Galois fields.
The author is fraustrated by access to Galois fields for the non-mathematician due to Jargon obscucification.
Also large Application section :
“
Applications
The applications and algorithms are staggering. You interact with implementations of abstract algebra everyday: CRC, AES Encryption, Elliptic-Curve Cryptography, Reed-Solomon, Advanced Erasure Codes, Data Hashing/Fingerprinting, Zero-Knowledge Proofs, etc.
Having a solid-background in Galois Fields and Abstract Algebra is a prerequisite for understanding these applications.
“
I sympathise with your fraustration at math articles.
This is not one of them, it is rich and deep. Xorvoid leads us into difficult theoretic territority but the clarity of exposition is next level - a programmer will grok some of the serious math that underpins our field by reading the OP.
I would not agree that the use of Galois Fields in Reed-Solomon code requires a background in Abstract Algebra. For what it's worth, decades ago, studying Galois Fields for Reed-Solomon code opened my eyes to the fact that you can create your own algebra... I'll never forget that "wow" moment. But being mathematically illiterate, I never found a reason to create my own algebra for any application. :)
of course it's written in Rust! But I was lowkey looking for something more Haskell-y, even Lean. And I wish the visualizations would continue throughout the chapters.
If the goal is learning more about Groups, Fields, etc. there are several options of what to do alongside reading the text here; use the provided rust code, write code of your own in language of choice, use pre existing CAS software that has abstract algebra operations, use pencil and paper (there were not that many CAS options back in the early days of scaling the Monster Group .. it was dissected with a mix of envelopes and programs).
GAP and MAGMA a worth a look (GAP is included in other math software, eg: SAGE and is open source, MAGMA is commercial with education discounts and free student options)
And on the paid side, if you have access to it, mathematica has group theory support also and a bunch of named groups implemented right out of the box including the Monster group and the Conway groups https://reference.wolfram.com/language/guide/GroupTheory.htm...
For Galois theory, took an oral exam on what was in Herstein.
For linear algebra where the field is any of the rationals, reals, complex, and finite fields there is
Evar D.\ Nering,
{\it Linear Algebra and Matrix Theory,\/}
John Wiley and Sons,
New York,
1964.\ \
As I recall, Nering was an Artin student at Princeton.
Some of the proofs for the rational, real, or complex fields don't work for finite fields so for those need special proofs.
Had a course in error correcting codes -- it was applied linear algebra where the fields were finite.
Linear algebra is usually about finite dimensional vector spaces with an inner product (some engineers say dot product), but the main ideas generalize to infinite dimensions and Hilbert and Banach spaces.
Whining about algebra not being in most CS curriculums is just a lie. Every university in the world has (if it doesn't, it's not a university) maths as a minor regardless of what your major is. And everyone I know, including me, took algebra as a minor being a CS major (if you didn't, question your choice of career).
A somewhat related explanation that also covers groups and fields: https://explained-from-first-principles.com/number-theory/ , https://news.ycombinator.com/item?id=32879801
I love it when the simple stuff is explained in simple language that anybody can understand. Like Einstein said:
Make it simple. As simple as possible. But no simpler!
Yeah, sadly some don't seem to understand this (like quanta magazine).
You mean they don’t understand the “but no simpler” part?
Yes
Most of their articles read like fairy tales, lacking even one clear, actionable nugget of information.
[flagged]
Wow, wonderful stuff. Thanks for posting!
1) the properties of a field is missing closure under the operation. This is kind of assumed from context, but I would include it.
2) the reduction step up multiplication of nth order polynomials (to keep them nth order) is missing (or at least I missed it after a couple of readings.)
Apart from those quibbles, this was really good overall though. I enjoyed it.
A binary operation on a set is closed on the set by definition. If an operation isn’t closed, then it isn’t considered a binary operation on that set. Of course, it doesn’t hurt to state the closure property explicitly.
I have talked a bit more about it in a totally unrelated blog post here: https://susam.net/product-of-additive-inverses.html#closure-...
Indeed, I was quite pleasantly surprised when the webpage did not mention this infamous and ubiquitous "closure".
The problem with algebra teaching is, they just declare a thing without explaining the root reason of why it's there in first place.
Root reason & comp sci application is mentioned near start :
“ Many moons back I was self-learning Galois Fields for some erasure coding theory applications.”
Erasure codes are based on finite fields, e.g. Galois fields.
The author is fraustrated by access to Galois fields for the non-mathematician due to Jargon obscucification.
Also large Application section : “
Applications
The applications and algorithms are staggering. You interact with implementations of abstract algebra everyday: CRC, AES Encryption, Elliptic-Curve Cryptography, Reed-Solomon, Advanced Erasure Codes, Data Hashing/Fingerprinting, Zero-Knowledge Proofs, etc.
Having a solid-background in Galois Fields and Abstract Algebra is a prerequisite for understanding these applications.
“
I sympathise with your fraustration at math articles.
This is not one of them, it is rich and deep. Xorvoid leads us into difficult theoretic territority but the clarity of exposition is next level - a programmer will grok some of the serious math that underpins our field by reading the OP.
I would not agree that the use of Galois Fields in Reed-Solomon code requires a background in Abstract Algebra. For what it's worth, decades ago, studying Galois Fields for Reed-Solomon code opened my eyes to the fact that you can create your own algebra... I'll never forget that "wow" moment. But being mathematically illiterate, I never found a reason to create my own algebra for any application. :)
of course it's written in Rust! But I was lowkey looking for something more Haskell-y, even Lean. And I wish the visualizations would continue throughout the chapters.
The title is a play on https://learnyouahaskell.com so I assumed it would be in Haskell, too. (Rust is much more accessible to me though.)
If the goal is learning more about Groups, Fields, etc. there are several options of what to do alongside reading the text here; use the provided rust code, write code of your own in language of choice, use pre existing CAS software that has abstract algebra operations, use pencil and paper (there were not that many CAS options back in the early days of scaling the Monster Group .. it was dissected with a mix of envelopes and programs).
GAP and MAGMA a worth a look (GAP is included in other math software, eg: SAGE and is open source, MAGMA is commercial with education discounts and free student options)
* https://en.wikipedia.org/wiki/GAP_(computer_algebra_system)
* https://en.wikipedia.org/wiki/SageMath
* https://magma.maths.usyd.edu.au/magma/
* https://en.wikipedia.org/wiki/Monster_group
Another FOSS option is maxima, although like everything else in maxima, support for group theory is a bit weird and isn’t exactly comprehensive. https://maxima.sourceforge.io/docs/manual/maxima_151.html and https://maxima.sourceforge.io/docs/manual/maxima_147.html#It...
And on the paid side, if you have access to it, mathematica has group theory support also and a bunch of named groups implemented right out of the box including the Monster group and the Conway groups https://reference.wolfram.com/language/guide/GroupTheory.htm...
If you know Mathematica syntax, you could also try Mathics:
https://mathics.org
For abstract algebra, there is the polished
I.\ N.\ Herstein, {\it Topics in Algebra,\/}
(markup for TeX word processing).
For Galois theory, took an oral exam on what was in Herstein.
For linear algebra where the field is any of the rationals, reals, complex, and finite fields there is
Evar D.\ Nering, {\it Linear Algebra and Matrix Theory,\/} John Wiley and Sons, New York, 1964.\ \
As I recall, Nering was an Artin student at Princeton.
Some of the proofs for the rational, real, or complex fields don't work for finite fields so for those need special proofs.
Had a course in error correcting codes -- it was applied linear algebra where the fields were finite.
Linear algebra is usually about finite dimensional vector spaces with an inner product (some engineers say dot product), but the main ideas generalize to infinite dimensions and Hilbert and Banach spaces.
(2023) https://web.archive.org/web/20230815034422/https://xorvoid.c...
yes. so ?
Someone should check grammar before posting a title
It’s a riff on the classic resource for learning Haskell: https://learnyouahaskell.com/
Whining about algebra not being in most CS curriculums is just a lie. Every university in the world has (if it doesn't, it's not a university) maths as a minor regardless of what your major is. And everyone I know, including me, took algebra as a minor being a CS major (if you didn't, question your choice of career).
> Every university in the world has (if it doesn't, it's not a university) maths as a minor regardless of what your major is.
That's just not true.
UK Universities don't have majors and minors as the US does.
No true Scotsman, there.