Macaulay2 es un sistema de álgebra computacional gratuito creado por Daniel Grayson (de la Universidad de Illinois en Urbana-Champaign ) y Michael Stillman (de la Universidad de Cornell ) para el cálculo en álgebra conmutativa y geometría algebraica .
Macaulay2 está construido sobre la base de implementaciones rápidas de algoritmos útiles para el cálculo en álgebra conmutativa y geometría algebraica. Esta funcionalidad básica incluye aritmética en anillos, módulos y matrices, así como algoritmos para bases de Gröbner , resoluciones libres , series de Hilbert , determinantes y Pfaffians , factorización y similares. Además, el sistema se ha ampliado con una gran cantidad de paquetes. Casi 200 paquetes están incluidos en la distribución de Macaulay2 a partir de 2019, y entre los autores de paquetes notables se incluyen Craig Huneke y Frank-Olaf Schreyer . [1] El Journal of Software for Algebra and Geometry ha publicado numerosos paquetes y programas para Macaulay2. [2]
Macaulay2 tiene una interfaz de línea de comandos interactiva que se utiliza desde la terminal (ver § Sesión de ejemplo). También puede utilizar emacs o GNU TeXmacs como interfaz de usuario. [3]
Macaulay2 utiliza su propio lenguaje de programación de alto nivel interpretado tanto desde la línea de comandos como en los programas guardados. Este lenguaje está pensado para que sea fácil de usar para los matemáticos, y muchas partes del sistema están escritas en el lenguaje Macaulay2. Los algoritmos algebraicos que forman la funcionalidad principal están escritos en C++ para mayor velocidad . El intérprete en sí está escrito en una capa de seguridad de tipos personalizada sobre C. [4] Tanto el sistema como el lenguaje de programación están publicados bajo la Licencia Pública General GNU versión 2 o 3. [5]
Stillman, junto con Dave Bayer, había sido el autor del sistema predecesor, Macaulay , a partir de 1983. Llamaron Macaulay en honor a Francis Sowerby Macaulay , un matemático inglés que realizó importantes contribuciones a la geometría algebraica . El sistema Macaulay demostró que era posible resolver problemas reales en geometría algebraica utilizando técnicas de base de Gröbner, pero a principios de la década de 1990, las limitaciones en su arquitectura se estaban convirtiendo en un obstáculo. Utilizando la experiencia con Macaulay, Grayson y Stillman comenzaron a trabajar en Macaulay2 en 1993. El lenguaje y el diseño de Macaulay2 tienen una serie de mejoras con respecto a Macaulay, lo que permite anillos de coeficientes infinitos, nuevos tipos de datos y otras características útiles. [4]
Macaulay continuó actualizándose y utilizándose durante algún tiempo después de la introducción de Macaulay2 en 1993. La última versión publicada fue la 3.1, de agosto de 2000. La página web de Macaulay actualmente recomienda cambiar a Macaulay2. [6]
Macaulay2 se ha actualizado periódicamente desde su introducción. [7] David Eisenbud figura como colaborador del proyecto desde 2007. [8]
La siguiente sesión define un anillo polinómico S , un ideal I dentro de S y el anillo cociente . El texto es la primera entrada de una sesión, mientras que es la salida correspondiente.i1 :
o1
i1 : S= QQ [a,b,c,d,e]o1 = So1 : Anillo polinomial i2 : I= ideal (a^3-b^3, a+b+c+d+e) 3 3o2 = ideal (a - b , a + b + c + d + e) o2 : Ideal de S i3 : R = S/Io3 = Ro3 : Anillo de cociente
En una entrevista de 2006, Andrei Okounkov citó a Macaulay2 junto con TeX como un proyecto exitoso de código abierto utilizado en matemáticas y sugirió que las agencias de financiación examinaran y aprendieran de estos ejemplos. [9] Macaulay2 ha sido citado en más de 2.600 publicaciones académicas. [10] [11]