001/*
002 * $Id$
003 */
004
005package edu.jas.structure;
006
007
008/**
009 * Ring factory interface. Defines test for field and query of characteristic.
010 * @author Heinz Kredel
011 */
012
013public interface RingFactory<C extends RingElem<C>> extends AbelianGroupFactory<C>, MonoidFactory<C> {
014
015
016    /**
017     * Query if this ring is a field. May return false if it is too hard to
018     * determine if this ring is a field.
019     * @return true if it is known that this ring is a field, else false.
020     */
021    public boolean isField();
022
023
024    /**
025     * Characteristic of this ring.
026     * @return characteristic of this ring.
027     */
028    public java.math.BigInteger characteristic();
029
030}