@Override public int hashCode() { int a = multiplicand.hashCode(); int b = (int)scalar.getIndex(); return 37 * (37 * ( (a ^ (a >>> 31))) + (b ^ (b >>> 31))); }
@Override public Set<HasValue> bind( Term value ) throws PatternMatchException { return multiplicand.bind( value ); }
@Override public Set<Symbol> free() { return multiplicand.free(); }
@Override public Pattern substitute( Term x, Symbol y ) { return new TMultiplicative( scalar, multiplicand.substitute( x,y ) ); }
@Override public Term reduce() throws EvaluationException { return new TMultiplicative( scalar, multiplicand.reduce() ); }
@Override public String toString() { return scalar.toString() + "(" + multiplicand.toString() + ")"; }