# NOT RUN {
# }
# NOT RUN {
requires Macaulay2
##### basic usage
########################################
ring("x", "y", coefring = "QQ")
ideal("x + y", "x^2 + y^2")
##### different versions of gb
########################################
# standard evaluation version
poly_chars <- c("x + y", "x^2 + y^2")
ideal_(poly_chars)
# reference nonstandard evaluation version
ideal.("x + y", "x^2 + y^2")
# reference standard evaluation version
ideal_.(poly_chars)
##### different inputs to gb
########################################
ideal_( c("x + y", "x^2 + y^2") )
ideal_(mp(c("x + y", "x^2 + y^2")))
ideal_(list("x + y", "x^2 + y^2") )
##### predicate functions
########################################
I <- ideal ("x + y", "x^2 + y^2")
I. <- ideal.("x + y", "x^2 + y^2")
is.m2_ideal(I)
is.m2_ideal(I.)
is.m2_ideal_pointer(I)
is.m2_ideal_pointer(I.)
##### ideal radical
########################################
I <- ideal("(x^2 + 1)^2 y", "y + 1")
radical(I)
radical.(I)
##### ideal dimension
########################################
I <- ideal_(c("(x^2 + 1)^2 y", "y + 1"))
dimension(I)
# dimension of a line
ring("x", "y", coefring = "QQ")
I <- ideal("y - (x+1)")
dimension(I)
# dimension of a plane
ring("x", "y", "z", coefring = "QQ")
I <- ideal("z - (x+y+1)")
dimension(I)
##### ideal quotients and saturation
########################################
ring("x", "y", "z", coefring = "QQ")
(I <- ideal("x^2", "y^4", "z + 1"))
(J <- ideal("x^6"))
quotient(I, J)
quotient.(I, J)
saturate(I)
saturate.(I)
saturate(I, J)
saturate(I, mp("x"))
saturate(I, "x")
ring("x", "y", coefring = "QQ")
saturate(ideal("x y"), "x^2")
# saturation removes parts of varieties
# solution over R is x = -1, 0, 1
ring("x", coefring = "QQ")
I <- ideal("(x-1) x (x+1)")
saturate(I, "x") # remove x = 0 from solution
ideal("(x-1) (x+1)")
##### primary decomposition
########################################
ring("x", "y", "z", coefring = "QQ")
I <- ideal("(x^2 + 1) (x^2 + 2)", "y + 1")
primary_decomposition(I)
primary_decomposition.(I)
I <- ideal("x (x + 1)", "y")
primary_decomposition(I)
# variety = z axis union x-y plane
(I <- ideal("x z", "y z"))
dimension(I) # = max dimension of irreducible components
(Is <- primary_decomposition(I))
dimension(Is)
##### ideal arithmetic
########################################
ring("x", "y", "z", coefring = "RR")
# sums (cox et al., 184)
(I <- ideal("x^2 + y"))
(J <- ideal("z"))
I + J
# products (cox et al., 185)
(I <- ideal("x", "y"))
(J <- ideal("z"))
I * J
# equality
(I <- ideal("x", "y"))
(J <- ideal("z"))
I == J
I == I
# powers
(I <- ideal("x", "y"))
I^3
# }
Run the code above in your browser using DataLab