package tcra.math;

import java.util.List;

/**
 * Assertion represents the assertions present in a formal
 * specification. A MethodContract is made up of one or more
 * Assertions.
 */
public interface Assertion
{
   /**
    * check determines whether the values entered by the user
    * hold to this assertion.
    * @param t list of values for the method arguments
    * @return  <code>true</code> if the supplied values of the
    *          method arguments hold to the assertion
    *          <code>false</code> otherwise
    */ 
   boolean check(List<MathType> t);
   String toInstanceString(List<MathType> t);
}
