A computer algebra substrate for Common Lisp

Weyl has support for multiple domains (Integers, Real numbers, Rings, Modules, Groups), including polynomial fields. It has support for ideals, algebraic closures, truncated power series, and topology, as well.

This example code squares a binomial in Weyl:

(ql:quickload :weyl) (in-package :weyl) (defvar ring (get-polynomial-ring (get-real-numbers) '(x y))) (defvar x (coerce 'x ring)) (defvar y (coerce 'y ring)) (expt (+ x y) 2)

It can be found at Weyl's github repo.