01: package JSci.maths.groups;
02:
03: /**
04: * This interface defines a semigroup.
05: * @jsci.planetmath Semigroup
06: * @version 1.0
07: * @author Mark Hale
08: */
09: public interface Semigroup {
10:
11: /**
12: * This interface defines a member of a semigroup.
13: */
14: interface Member extends JSci.maths.Member {
15: /**
16: * The semigroup composition law.
17: * @param g a semigroup member
18: */
19: Member compose(Member g);
20: }
21: }
|