1 package JSci.maths.fields; 2 3 import JSci.maths.groups.AbelianGroup; 4 5 /** 6 * This interface defines a ring. 7 * @jsci.planetmath Ring 8 * @version 1.0 9 * @author Mark Hale 10 */ 11 public interface Ring extends AbelianGroup { 12 /** 13 * Returns the unit element. 14 */ 15 Member one(); 16 /** 17 * Returns true if the member is the unit element. 18 */ 19 boolean isOne(Member r); 20 21 /** 22 * This interface defines a member of a ring. 23 */ 24 interface Member extends AbelianGroup.Member { 25 /** 26 * The multiplication law. 27 * @param r a ring member 28 */ 29 Member multiply(Member r); 30 } 31 } 32 33