Funzione di astrazione ed invariante di rappresentazione
ancora molto simili a quelle di IntSet
la funzione di astrazione produce ora gli oggetti in c.els invece degli interi
//a(c) = { c.els.get(i) | 0 <= i < c.els.size() }
il rep invariant include la condizione che l’insieme non contenga null e dice anche che l’uguaglianza degli elementi è controllata dal metodo equals
// I(c) = c.els != null e
// per ogni intero i, tale che 0<=i
// c.els.get(i) non è null,
// e per tutti gli interi i,j, tali che
// 0 <= i < j < c. els.size(),
// ! c.els.get(i).equals(c.els.get(j))