# Congruences classes quotient ring

I am playing around with quotient rings in several variables and would like to get the congruence classes. How would I do that?

Let's say I have:

```
R.<x,y> = ZZ[]
S.<a,b> = R.quotient((x^2 + y^2, 17))
```

How do I get all congruence classes of R/[x^2 + y^2, 17]?

There are infinitely many equivalence classes here - eg. all $x^k$ belong to distinct classes. So please clarify what you mean under "get all congruence classes"?

If you have a homogeneous ideal in a polynomial ring over a field then you can do e.g.

`R.<x,y> = GF(17)[]; I = R.ideal((x^2 + y^2)); I.normal_basis(4)`

to get basis elements of degree 4.