News for hackers. Stuff that matters.
Re:AbstractAlgebra: Computer algebra package for Julia language by lidHanteyk on Friday March 20, 2020 @10:32AM (#22637790)
This library is cool and I may end up cribbing some of its design. It's unfortunate that they did not include semirings directly, which have many interesting algebraic uses. [0]

[0] http://stedolan.net/research/semirings.pdf

Re:AbstractAlgebra: Computer algebra package for Julia language by mncharity on Friday March 20, 2020 @12:39PM (#22638963)
> It's unfortunate that they did not include [...]

I'm so looking forward to a language type system expressive enough to do a pushout lattice of <types,operators,laws> theories. So semiring, and everything else, can simply and uniquely exist. Instead of the pervasive "It's unfortunate that they did not include"... so very much. Instantly instantiatable platonic forms, instead of years of proposals, endless discussions, and standardization committee meetings. Dancing math, instead of slathering api glue.

Re:AbstractAlgebra: Computer algebra package for Julia language by epatters on Friday March 20, 2020 @07:11PM (#22642681)
Within the Julia ecosystem, you might be interested in Catlab (https://github.com/epatters/Catlab.jl), as we are actively working to build something very much along these lines. We already have in place a system for describing generalized algebraic theories (GATs) in Julia and generating symbolic expressions for them. In the future, we intend to implement pushouts of GATs as an algebraic approach to theory fusion. We are currently in the planning stage of this part of the project and hope to get something working this year.
Re:AbstractAlgebra: Computer algebra package for Julia language by mncharity on Saturday March 21, 2020 @01:39PM (#22648217)
Nifty. Perhaps add a copy of the documentation link[1] to the top of the README? Friction minimization...

[1] https://epatters.github.io/Catlab.jl/latest/

Re:AbstractAlgebra: Computer algebra package for Julia language by caleb-allen on Friday March 20, 2020 @04:29PM (#22641332)
Is this something dependent types could do? Genuinely curious, this sounds interesting.
Re:AbstractAlgebra: Computer algebra package for Julia language by mncharity on Saturday March 21, 2020 @01:28PM (#22648127)
They could help, but dealing with them well is still an active research area...

How to put this... The potential design space is larger than is often appreciated?

Suppose I tell you, "here's a programming thing, with api/behavior that's described by some category-theory category... a category over presets". Now preset[1] means you don't get equality testing - you can't even test "set" membership. Making it hard to prove or check much. You just have to take my word for it that I've given you a thing of that category. Which makes mathematicians sad. But as a programmer... that's a better spec than I often get! ;) So there's this design space, where what you can describe, use, check, or prove, with what costs and tradeoffs, is richly varied and intertwined. And historically, it seems we've not been exploring it with great speed or coverage.

[1] https://ncatlab.org/nlab/show/preset

Re:AbstractAlgebra: Computer algebra package for Julia language by joppy on Friday March 20, 2020 @06:08PM (#22642159)
Have you looked at Axiom, a computer algebra system?
Re:AbstractAlgebra: Computer algebra package for Julia language by mncharity on Saturday March 21, 2020 @12:58PM (#22647888)