Skip to main content Contents
Prev Up Next \(\def\ann{\operatorname{ann}}
\newcommand{\Ass}{\operatorname{Ass}}
\def\Aut{\operatorname{Aut}}
\def\can{{\mathrm {can}}}
\def\char{\operatorname{char}}
\def\cp{\operatorname{CharPoly}}
\def\codim{\operatorname{codim}}
\def\coker{\operatorname{coker}}
\DeclareMathOperator*{\colim}{colim}
\def\cont{\operatorname{cont}}
\def\diam{\operatorname{diam}}
\def\dm{\operatorname{dim}}
\DeclareMathOperator{\edim}{embdim}
\def\End{\operatorname{End}}
\def\eval{\operatorname{eval}}
\def\Ext{\operatorname{Ext}}
\def\Frac{\operatorname{Frac}}
\def\Fun{\operatorname{Fun}}
\def\Gal{\operatorname{Gal}}
\def\gcd{\operatorname{gcd}}
\newcommand{\GL}{\operatorname{GL}}
\newcommand{\ht}{\operatorname{height}}
\def\Hom{\operatorname{Hom}}
\def\id{\operatorname{id}}
\def\im{\operatorname{im}}
\def\Inn{\operatorname{Inn}}
\def\ker{\operatorname{ker}}
\def\lcm{\operatorname{lcm}}
\def\Mat{\operatorname{Mat}}
\newcommand{\Min}{\operatorname{Min}}
\def\mp{\operatorname{MinPoly}}
\def\mSpec{\operatorname{mSpec}}
\def\MSpec{\operatorname{MSpec}}
\def\null{\operatorname{Nul}}
\DeclareMathOperator{\ns}{nullspace}
\newcommand{\opp}{\operatorname{opp}}
\def\Orb{\operatorname{Orb}}
\def\Out{\operatorname{Out}}
\def\Perm{\operatorname{Perm}}
\def\ptstab{\operatorname{PtStab}}
\def\rad{\operatorname{rad}}
\DeclareMathOperator{\range}{range}
\def\rank{\operatorname{rank}}
\def\res{\operatorname{res}}
\def\setstab{\operatorname{SetStab}}
\def\sign{{\operatorname{sign}}}
\newcommand{\SL}{\operatorname{SL}}
\def\Span{\operatorname{Span}}
\def\Spec{\operatorname{Spec}}
\def\Stab{\operatorname{Stab}}
\DeclareMathOperator{\Supp}{Supp}
\def\Syl{\operatorname{Syl}}
\def\Tor{\operatorname{Tor}}
\def\trace{\operatorname{trace}}
\def\uSpec{\operatorname{\underline{Spec}}}
\newcommand{\Ob}{\mathrm{Ob}}
\newcommand{\Set}{\mathbf{Set}}
\newcommand{\Grp}{\mathbf{Grp}}
\newcommand{\Ab}{\mathbf{Ab}}
\newcommand{\Sgrp}{\mathbf{Sgrp}}
\newcommand{\Ring}{\mathbf{Ring}}
\newcommand{\Fld}{\mathbf{Fld}}
\newcommand{\cRing}{\mathbf{cRing}}
\newcommand{\Mod}{-\mathbf{Mod}}
\newcommand{\mod}{-\mathbf{mod}}
\newcommand{\Cx}[1]{#1-\mathbf{Comp}}
\newcommand{\vs}[1]{#1-\mathbf{vect}}
\newcommand{\Vs}[1]{#1-\mathbf{Vect}}
\newcommand{\vsp}[1]{#1-\mathbf{vect}^+}
\newcommand{\Top}{\mathbf{Top}}
\newcommand{\Setp}{\mathbf{Set}_*}
\newcommand{\Alg}[1]{#1-\mathbf{Alg}}
\newcommand{\cAlg}[1]{#1-\mathbf{cAlg}}
\newcommand{\PO}{\mathbf{PO}}
\newcommand{\Cont}{\mathrm{Cont}}
\newcommand{\MaT}[1]{\mathbf{Mat}_{#1}}
\newcommand{\Rep}[2]{\mathbf{Rep}_{#1}(#2)}
\def\l{\lambda}
\def\lx{\lambda_x}
\newcommand{\a}{\alpha}
\def\b{\beta}
\def\d{\delta}
\def\e{\varepsilon}
\def\g{\gamma}
\def\t{\theta}
\def\s{\sigma}
\def\z{\zeta}
\def\vp{\varphi}
\newcommand{\A}{\mathbb{A}}
\newcommand{\B}{\mathbb{B}}
\newcommand{\C}{\mathbb{C}}
\newcommand{\D}{\mathbb{D}}
\newcommand{\E}{\mathbb{E}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\G}{\mathbb{G}}
\newcommand{\H}{\mathbb{H}}
\newcommand{\I}{\mathbb{I}}
\newcommand{\J}{\mathbb{J}}
\newcommand{\K}{\mathbb{K}}
\newcommand{\L}{\mathbb{L}}
\newcommand{\M}{\mathbb{M}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\O}{\mathbb{O}}
\newcommand{\P}{\mathbb{P}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\S}{\mathbb{S}}
\newcommand{\T}{\mathbb{T}}
\newcommand{\U}{\mathbb{U}}
\newcommand{\V}{\mathbb{V}}
\newcommand{\W}{\mathbb{W}}
\newcommand{\X}{\mathbb{X}}
\newcommand{\Y}{\mathbb{Y}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\ON}{\mathbb{ON}}
\def\cA{\mathcal A}
\def\cB{\mathcal B}
\def\cC{\mathcal C}
\def\cD{\mathcal D}
\def\cE{\mathcal E}
\def\cF{\mathcal F}
\def\cG{\mathcal G}
\def\cH{\mathcal H}
\def\cI{\mathcal I}
\def\cJ{\mathcal J}
\def\cK{\mathcal K}
\def\cL{\mathcal L}
\def\cM{\mathcal M}
\def\cN{\mathcal N}
\def\cO{\mathcal O}
\def\cP{\mathcal P}
\def\cQ{\mathcal Q}
\def\cR{\mathcal R}
\def\cS{\mathcal S}
\def\cT{\mathcal T}
\def\cU{\mathcal U}
\def\cV{\mathcal V}
\def\cW{\mathcal W}
\def\cX{\mathcal X}
\def\cY{\mathcal Y}
\def\cZ{\mathcal Z}
\newcommand{\fa}{{\mathfrak a}}
\newcommand{\fb}{{\mathfrak b}}
\newcommand{\fc}{{\mathfrak c}}
\newcommand{\fd}{{\mathfrak d}}
\newcommand{\fe}{{\mathfrak e}}
\newcommand{\fm}{{\mathfrak m}}
\newcommand{\fp}{{\mathfrak p}}
\newcommand{\fq}{{\mathfrak q}}
\newcommand{\fK}{{\mathfrak K}}
\newcommand{\fR}{{\mathfrak R}}
\def\sA{\mathscr A}
\def\sB{\mathscr B}
\def\sC{\mathscr C}
\def\sD{\mathscr D}
\def\sE{\mathscr E}
\def\sF{\mathscr F}
\def\sG{\mathscr G}
\def\sH{\mathscr H}
\def\sI{\mathscr I}
\def\sJ{\mathscr J}
\def\sK{\mathscr K}
\def\sL{\mathscr L}
\def\sM{\mathscr M}
\def\sN{\mathscr N}
\def\sO{\mathscr O}
\def\sP{\mathscr P}
\def\sQ{\mathscr Q}
\def\sR{\mathscr R}
\def\sS{\mathscr S}
\def\sT{\mathscr T}
\def\sU{\mathscr U}
\def\sV{\mathscr V}
\def\sW{\mathscr W}
\def\sX{\mathscr X}
\def\sY{\mathscr Y}
\def\sZ{\mathscr Z}
\def\tS{\tilde{S}}
\def\sdp{\rtimes}
\newcommand{\tensor}{\otimes}
\newcommand{\igen}[1]{\langle #1 \rangle}
\def\nsg{\unlhd}
\def\kval{{k-\mathrm{valued}}}
\def\kalg{{k-\mathrm{alg}}}
\newcommand\GG[2]{\Gal(#1/#2)}
\newcommand{\MF}[3]{\Mat_{#1\times #2}(#3)}
\newcommand{\vectwo}[2]{\begin{bmatrix} #1 \\ #2 \end{bmatrix}}
\newcommand{\vecthree}[3]{\begin{bmatrix} #1 \\ #2 \\ #3\end{bmatrix}}
\def\ob{{\mathfrak{ob}} }
\def\qed{\square}
\def\sse{\subseteq}
\def\ss{\subset}
\def\ssne{\subsetneq}
\def\sm{\setminus}
\def\inv{^{-1}}
\newcommand{\es}{\emptyset}
\newcommand{\Zm}[1]{\Z/({#1})}
\def\ov#1{\overline{#1}}
\def\xdots{x_1, \dots, x_n}
\def\adots{a_1, \dots, a_n}
\def\bdots{b_1, \dots, b_n}
\def\udots{u_1, \dots, u_n}
\newcommand{\leg}[2]{\left(\frac{{#1}}{{#2}}\right)}
\def\th{^{th}}
\def\htpy{\simeq_{\mathrm{htpc}}}
\def\textand{ \, \text{and} \, }
\def\textor{ \, \text{or} \, }
\def\textfor{ \, \text{for} \, }
\def\textfa{ \, \text{for all} \, }
\def\textst{ \, \text{such that} \, }
\def\textin{ \, \text{in} \, }
\def\fg{ \, \text{finitely generated} \, }
\newcommand{\op}{\mathrm{op}}
\newcommand{\xra}[1]{\xrightarrow{#1}}
\newcommand{\xora}[1]{\xtwoheadrightarrow{#1}}
\newcommand{\xira}[1]{\xhookrightarrow{#1}}
\newcommand{\xla}[1]{\xleftarrow{#1}}
\def\lra{\longrightarrow}
\def\into{\hookrightarrow}
\def\onto{\twoheadrightarrow}
\newcommand{\vv}[1]{\mathbf{#1}}
\newcommand{\lm}[2]{{#1}\,\l + {#2}\,\mu}
\renewcommand{\v}{\vv{v}}
\renewcommand{\u}{\vv{u}}
\newcommand{\w}{\vv{w}}
\newcommand{\x}{\vv{x}}
\renewcommand{\k}{\vv{k}}
\newcommand{\0}{\vv{0}}
\newcommand{\1}{\vv{1}}
\newcommand{\vecs}[2]{#1_1,#1_2,\dots,#1_{#2}}
\newcommand{\us}[1][n]{\vecs{\u}{#1}}
\newcommand{\vs}[1][n]{\vecs{\v}{#1}}
\newcommand{\ws}[1][n]{\vecs{\w}{#1}}
\newcommand{\vps}[1][n']{\vecs{\v'}{#1}}
\newcommand{\ls}[1][n]{\vecs{\l}{#1}}
\newcommand{\mus}[1][n]{\vecs{\mu}{#1}}
\newcommand{\lps}[1][n]{\vecs{\l'}{#1}}
\def\td{\tilde{\delta}}
\def\oo{\overline{\omega}}
\def\ctJ{\tilde{\mathcal J}}
\def\tPhi{\tilde{\Phi}}
\def\te{\tilde{e}}
\def\M{\operatorname{M}}
\newcommand{\homotopic}{\simeq}
\newcommand{\homeq}{\cong}
\newcommand{\iso}{\approx}
\newcommand{\dual}{\vee}
\DeclarePairedDelimiter{\abs}{|}{|}
\newcommand{\bv}{{\bar{v}}}
\newcommand{\bu}{{\bar{u}}}
\newcommand{\bw}{{\bar{w}}}
\newcommand{\by}{{\bar{y}}}
\newcommand{\ba}{{\bar{a}}}
\newcommand{\bb}{{\bar{b}}}
\newcommand{\bx}{{\bar{x}}}
\DeclarePairedDelimiterX\setof[2]{\{}{\}}{#1\,|\,#2}
\newcommand{\vx}{\underline{x}}
\renewcommand{mod}[1]{\text{(mod }{#1})}
\newcommand{\Slv}[3]{\sum_{{#2}=1}^{{#3}} {#1}_{{#2}} \v_{{#2}}}
\newcommand{\lt}{<}
\newcommand{\gt}{>}
\newcommand{\amp}{&}
\definecolor{fillinmathshade}{gray}{0.9}
\newcommand{\fillinmath}[1]{\mathchoice{\colorbox{fillinmathshade}{$\displaystyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\textstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptscriptstyle\phantom{\,#1\,}$}}}
\)
Appendix C Macaulay2
There are several computer algebra systems dedicated to algebraic geometry and commutative algebra computations, such as
Singular (more popular among algebraic geometers),
CoCoA (which is more popular with european commutative algebraists, having originated in Genova, Italy), and
Macaulay2 . There are many computations you could run on any of these systems (and others), but we will focus on Macaulay2 since it’s the most popular computer algebra system among US based commutative algebraists.
Macaulay2, as the name suggests, is a successor of a previous computer algebra system named Macaulay. Macaulay was first developed in 1983 by Dave Bayer and Mike Stillman, and while some still use it today, the system has not been updated since its final release in 2000. In 1993, Daniel Grayson and Mike Stillman released the first version of Macaulay2, and the current stable version if Macaulay2 1.16.
Macaulay2, or M2 for short, is an open-source project, with many contributors writing packages that are then released with the newest Macaulay2 version. Journals like the Journal of Software for Algebra and Geometry publish peer-refereed short articles that describe and explain the functionality of new packages, with the package source code being peer reviewed as well.
The National Science Foundation has funded Macaulay2 since 1992. Besides funding the project through direct grants, the NSF has also funded several Macaulay2 workshops — conferences where Macaulay2 package developers gather to work on new packages, and to share updates to the Macaulay2 core code and recent packages.