# Predicates

The following functions provide decision algorithms for algebraic power series. They may involve **recursive resultant computations**, hence, have a high complexity and should be used with care.

## `IsZero(s): RngPowAlgElt -> BoolElt`

Decides if the series is zero.

## `s eq t: RngPowAlgElt, RngPowAlgElt -> BoolElt`

Decides if two series are equal.

## `IsPolynomial(s): RngPowAlgElt -> BoolElt, RngMPolElt`

Decides whether the series is actually a polynomial (with integral exponents) in the multivariate polynomial domain as returned by `Domain(s)`. In the positive case also returns that polynomial. This function relies on [`SimplifyRep`](mods.md#function-rpa-simp).

## `Example: preds (ex-e6b227)`

The previous computations suggest that `h2` is $1$, in particular it is polynomial (in contrast to `h1`). In this case `h3` would be zero.

```magma
> IsPolynomial(h1);
false
> IsPolynomial(h2);
true 1
> IsEqual(h2, PolyToSeries(One(Qxy)));
true
> IsZero(h3);
true

```
