Você já pensou em olhar para álgebra computacional? Axioma é um sistema de álgebra computacional em que o sistema de tipos é modelado após a Teoria da categoria (ou Álgebra universal, dependendo da sua exibição). Existem mais dois derivados do Axiom FriCAS e do OpenAxiom .
Se você estiver interessado em Teoria das Categorias, o sistema de tipos pode ser uma coisa a se considerar.
No Axiom, todo "item" (por exemplo, "1", "5 * x ** 2 + 1") é um elemento de um Domínio. Um "Domínio" é um objeto Axiom declarado membro de uma Categoria específica (por exemplo, Número Inteiro, Polinômio (Inteiro). Uma Categoria Axiom é um objeto Axiom declarado como membro do símbolo distinto "Categoria" (por exemplo, Anel, Polinômio (R, E, V)).
Há uma estrutura de herança para a herança múltipla entre categorias. por exemplo, a categoria Monad herda de SetCategory, Monoid de Monad, Grupo de Monoid, etc., etc.
Há também um polimorfismo de ordem superior, um pouco como os genéricos em Java.
Várias ações dentro do Axiom podem ser vistas como Functors, mas isso seria bastante para se fazer aqui!
Se você deseja apenas usar o Axiom sem se preocupar com a Teoria das Categorias, como um usuário final típico, um sistema de computação simbólico é exatamente o software certo para analisar álgebras individuais.