In a traditional CAS, the basic primitive is an untyped term with free variables, i.e. Plus[Times[a, 2], b]
Problems:
In a morphism-first CAS, the basic primitive is (roughly) a morphism in the Kleisli category of a “syntax monad”.
Solutions:
Gatlab is the next-generation rewrite of the core of Catlab.
Gatlab is a category-theoretic computer algebra system in two senses.
Currently implemented, not demo’d
GL(n)
as a group for each n
)To implement in the future
The Computer Algebra System of the Future