Experienced ruby programmer starting with Java
Edit: As Landei suggested, use camelCase! Thanks Landei.


Your set function does not need to take an Integer. Idiomatic code would only use an int. Autoboxing means you can still add an int to this.possibles.
Why don't you use is_solved in not?
not is surprising, and I need to read the code to know what it does. I'd suggest naming it remove?
What about this.possibles.iterator().next() instead of the toArray trick?
Use a for each statement in inform_groups:

for(CellGroup g : this.groups) {
     g.cell_solved(this, this.possibles.iterator().next());
}