TITLE: Coercions and Categories in Sage
SPEAKER: David Roe, Postdoc, University of Washington
Sage includes a lot of infrastructure to support the creation of
algebraic structures and to fit them into the existing ecosystem of
rings, fields, modules, matrix spaces. Parents in Sage are objects
modeling a set with additional structure, such as the ring of integers
or a finite field of size 9. The coercion system supports arithmetic
with elements in different parents: ZZ['x'].gen() + 1/2 for example.
And the category framework allows you to specify mathematical
properties of the parents you define and get access to generic code
applying to objects of that type. Both parts of Sage have evolved
over time: I'll give some brief history as well as best practices if
you want to implement a new algebraic structure within Sage.
Professor of Mathematics
University of Washington