- Usage:
`isNormal R`

- Inputs:
`R`, a ring, a reduced equidimensional ring

- Outputs:
- a Boolean value, whether
`R`is normal, that is, whether it satisfies Serre’s conditions S2 and R1

- a Boolean value, whether

This function computes the jacobian of the ring which can be costly for larger rings. Therefore it checks the less costly S2 condition first and if true, then tests the R1 condition using the jacobian of `R`.

i1 : R = QQ[x,y,z]/ideal(x^6-z^6-y^2*z^4); |

i2 : isNormal R o2 = false |

i3 : isNormal(integralClosure R) o3 = true |

The ring `R` must be an equidimensional ring. If `R` is a domain, then sometimes computing the integral closure of `R` can be faster than this test.

- integralClosure -- integral closure of an ideal or a domain
- makeS2 -- compute the S2ification of a reduced ring

- isNormal(Ring)