Macaulay2 is an interpreted, dynamically typed programming language intended to support research and experiments in algebraic geometry and commutative algebra through open sourced software.
A First Example
Here is an example of how to compute the minimal free resolution of the twisted cubic:
Code:
R = QQ[x, y, z, w]; -- defines a ring
I = monomialCurveIdeal(R, {1, 2, 3})
C = res I -- computes the resolution
betti I -- displays the Betti table
Getting help:
-- quick usage information
? monomialCurveIdeal
-- details and examples
help monomialCurveIdeal
-- documentation on the web
viewHelp monomialCurveIdeal
-- documentation headlines about curves
headlines about "curve"
Also try: (either click or copy & enter in M2)
Result:
i1 : R = QQ[x, y, z, w];
i2 : I = monomialCurveIdeal(R, {1, 2, 3})
2 2
o2 = ideal (z - y*w, y*z - x*w, y - x*z)
o2 : Ideal of R
i3 : C = res I
1 3 2
o3 = R <-- R <-- R <-- 0
0 1 2 3
o3 : ChainComplex
i4 : betti C
0 1 2
o4 = total: 1 3 2
0: 1 . .
1: . 3 2
o4 : BettiTally