test_class.file: fuzzm/fuzzm/src/main/java/fuzzm/poly/PolyBaseTest.java
test_class.identifier: PolyBaseTest
test_case.body: @Test
  	public void testAdd() {
  		//VariableID constant = new VariableID("",0);	
  		VariableID y = VariableID.principleAlloc("Y", NamedType.REAL,BigFraction.ONE);
  		VariableID x = VariableID.principleAlloc("X",NamedType.REAL,BigFraction.ZERO);
  		//VariableID z = VariableID.preAlloc("Z",NamedType.REAL,BigFraction.ZERO);
  		
  //		System.out.println(x.level);
  //		System.out.println(y.level);
  //		System.out.println(z.level);
  		
  		Map<VariableID,BigFraction> coefs = new HashMap<VariableID,BigFraction>();
  		//coefs.put(constant, BigFraction.ONE);
  		coefs.put(x, BigFraction.valueOf(BigDecimal.valueOf(2)));
  		PolyBase poly1 = new PolyBase(coefs,BigFraction.ONE);	
  		System.out.println("poly1: " + poly1);
  		
  		Map<VariableID,BigFraction> coefs2 = new HashMap<VariableID,BigFraction>();
  		//coefs2.put(constant, BigFraction.valueOf(BigDecimal.valueOf(40)));
  		coefs2.put(x, BigFraction.valueOf(BigDecimal.valueOf(5)));
  		coefs2.put(y, BigFraction.valueOf(BigDecimal.valueOf(4)));
  		
  		PolyBase poly2 = new PolyBase(coefs2,BigFraction.valueOf(BigDecimal.valueOf(40)));
  		System.out.println("poly2: " + poly2);
  		
  		AbstractPoly polyadd = poly1.add(poly2);
  		System.out.println("poly1 + poly2: " + polyadd);
  		
  		AbstractPoly polyaddsub = polyadd.subtract(poly2);
  		System.out.println("poly1 + poly2 - poly2: " + polyaddsub);
  		
  		AbstractPoly polysub = poly1.subtract(poly1);
  		System.out.println("poly1 - poly1: " + polysub);
  		
  		AbstractPoly polyaddneg = poly1.add(poly1.negate());
  		System.out.println("poly1 + (-poly1): " + polyaddneg);
  		
  		System.out.println("poly2 * 3: " + poly2.multiply(BigFraction.valueOf(BigDecimal.valueOf(3))));
  		
  		PolyBase emptyPoly = new PolyBase();
  		
  		Map<VariableID,BigFraction> zerocoefs = new HashMap<VariableID,BigFraction>();
  		//zerocoefs.put(constant, BigFraction.ZERO);
  		PolyBase constZeroPoly = new PolyBase(zerocoefs,BigFraction.ZERO);
  		
  		Map<VariableID,BigFraction> constFourCoef = new HashMap<VariableID,BigFraction>();
  		//constFourCoef.put(constant, BigFraction.valueOf(BigDecimal.valueOf(4)));
  		PolyBase constFourPoly = new PolyBase(constFourCoef,BigFraction.valueOf(BigDecimal.valueOf(4)));
  		
  		Map<VariableID,BigFraction> negHalfCoef = new HashMap<VariableID,BigFraction>();
  		BigFraction negHalf = new BigFraction(BigInteger.valueOf(-1),BigInteger.valueOf(2));
  		//negHalfCoef.put(constant, negHalf);
  		PolyBase constNegHalfPoly = new PolyBase(negHalfCoef,negHalf);
  		
  		System.out.println("poly1 - constFour: " + poly1.subtract(constFourPoly));
  		
  		System.out.println("poly1 solved for x: " + poly1.solveFor(x));
  		System.out.println("poly2 solved for x: " + poly2.solveFor(x));
  		System.out.println("poly2 solved for y: " + poly2.solveFor(y));
  		System.out.println("(poly1 - constFour) solved for x: " + poly1.subtract(constFourPoly).solveFor(x));
  		
  		
  		System.out.println("evaluate poly1(x is ZERO by default): " + poly1.evaluateCEX());
  		
  		Map<VariableID,BigFraction> coefsCex1 = new HashMap<VariableID,BigFraction>();
  		coefsCex1.put(y, BigFraction.valueOf(BigDecimal.valueOf(2)));
  		PolyBase poly1Cex1 = new PolyBase(coefsCex1,BigFraction.ONE);
  		
  		System.out.println("evaluate poly1Cex1: " + poly1Cex1.evaluateCEX());
  		
  		x.setCex(new BigFraction(BigInteger.valueOf(2)));
  		System.out.println("evaluate poly2: " + poly2.evaluateCEX());
  		//System.out.println(constZeroPoly);
  		//System.out.println(emptyPoly);
  		
  		assertEquals(poly1,polyaddsub);
  		assertEquals(emptyPoly,polysub);
  		assertEquals(emptyPoly,polyaddneg);
  		assertEquals(emptyPoly,constZeroPoly);
  		assertEquals(constNegHalfPoly, poly1.solveFor(x));
  		
  		
  	}
test_case.class_method_signature: PolyBaseTest.testAdd()
test_case.full_signature: @Test public void testAdd()
test_case.identifier: testAdd
test_case.invocations: principleAlloc principleAlloc put valueOf valueOf println put valueOf valueOf put valueOf valueOf valueOf valueOf println add println subtract println subtract println add negate println println multiply valueOf valueOf valueOf valueOf valueOf valueOf println subtract println solveFor println solveFor println solveFor println solveFor subtract println evaluateCEX put valueOf valueOf println evaluateCEX setCex valueOf println evaluateCEX assertEquals assertEquals assertEquals assertEquals assertEquals solveFor
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testAdd()
focal_class.declarator: coefficients
focal_class.original_string: Map<VariableID,BigFraction> coefficients;
focal_class.type: Map<VariableID,BigFraction>
focal_class.var_name: coefficients
focal_class.declarator: constant = BigFraction.ZERO
focal_class.original_string: BigFraction constant = BigFraction.ZERO;
focal_class.type: BigFraction
focal_class.var_name: constant
focal_class.file: fuzzm/fuzzm/src/main/java/fuzzm/poly/PolyBase.java
focal_class.identifier: PolyBase
focal_class.class_method_signature: PolyBase.PolyBase()
focal_class.full_signature: public  PolyBase()
focal_class.identifier: PolyBase
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  PolyBase()
focal_class.class_method_signature: PolyBase.PolyBase(VariableID x)
focal_class.full_signature: public  PolyBase(VariableID x)
focal_class.identifier: PolyBase
focal_class.modifiers: public
focal_class.parameters: (VariableID x)
focal_class.signature:  PolyBase(VariableID x)
focal_class.class_method_signature: PolyBase.PolyBase(BigFraction constant)
focal_class.full_signature: public  PolyBase(BigFraction constant)
focal_class.identifier: PolyBase
focal_class.modifiers: public
focal_class.parameters: (BigFraction constant)
focal_class.signature:  PolyBase(BigFraction constant)
focal_class.class_method_signature: PolyBase.PolyBase(BigFraction coeff, VariableID x)
focal_class.full_signature: public  PolyBase(BigFraction coeff, VariableID x)
focal_class.identifier: PolyBase
focal_class.modifiers: public
focal_class.parameters: (BigFraction coeff, VariableID x)
focal_class.signature:  PolyBase(BigFraction coeff, VariableID x)
focal_class.class_method_signature: PolyBase.PolyBase(Map<VariableID,BigFraction> coefficientsIn)
focal_class.full_signature: public  PolyBase(Map<VariableID,BigFraction> coefficientsIn)
focal_class.identifier: PolyBase
focal_class.modifiers: public
focal_class.parameters: (Map<VariableID,BigFraction> coefficientsIn)
focal_class.signature:  PolyBase(Map<VariableID,BigFraction> coefficientsIn)
focal_class.class_method_signature: PolyBase.PolyBase(Map<VariableID,BigFraction> coefficientsIn, BigFraction constant)
focal_class.full_signature: public  PolyBase(Map<VariableID,BigFraction> coefficientsIn, BigFraction constant)
focal_class.identifier: PolyBase
focal_class.modifiers: public
focal_class.parameters: (Map<VariableID,BigFraction> coefficientsIn, BigFraction constant)
focal_class.signature:  PolyBase(Map<VariableID,BigFraction> coefficientsIn, BigFraction constant)
focal_class.class_method_signature: PolyBase.normalizeCoefficients(Map<VariableID,BigFraction> cIn)
focal_class.full_signature: private static Map<VariableID,BigFraction> normalizeCoefficients(Map<VariableID,BigFraction> cIn)
focal_class.identifier: normalizeCoefficients
focal_class.modifiers: private static
focal_class.parameters: (Map<VariableID,BigFraction> cIn)
focal_class.return: Map<VariableID,BigFraction>
focal_class.signature: Map<VariableID,BigFraction> normalizeCoefficients(Map<VariableID,BigFraction> cIn)
focal_class.class_method_signature: PolyBase.iterator()
focal_class.full_signature: @Override public Iterator<VariableID> iterator()
focal_class.identifier: iterator
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Iterator<VariableID>
focal_class.signature: Iterator<VariableID> iterator()
focal_class.class_method_signature: PolyBase.solveFor(VariableID x)
focal_class.full_signature: @Override public PolyBase solveFor(VariableID x)
focal_class.identifier: solveFor
focal_class.modifiers: @Override public
focal_class.parameters: (VariableID x)
focal_class.return: PolyBase
focal_class.signature: PolyBase solveFor(VariableID x)
focal_class.class_method_signature: PolyBase.getCoefficient(VariableID x)
focal_class.full_signature: @Override public BigFraction getCoefficient(VariableID x)
focal_class.identifier: getCoefficient
focal_class.modifiers: @Override public
focal_class.parameters: (VariableID x)
focal_class.return: BigFraction
focal_class.signature: BigFraction getCoefficient(VariableID x)
focal_class.class_method_signature: PolyBase.negate()
focal_class.full_signature: @Override public PolyBase negate()
focal_class.identifier: negate
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: PolyBase
focal_class.signature: PolyBase negate()
focal_class.class_method_signature: PolyBase.add(AbstractPoly x)
focal_class.full_signature: @Override public PolyBase add(AbstractPoly x)
focal_class.identifier: add
focal_class.modifiers: @Override public
focal_class.parameters: (AbstractPoly x)
focal_class.return: PolyBase
focal_class.signature: PolyBase add(AbstractPoly x)
focal_class.class_method_signature: PolyBase.add(BigFraction val)
focal_class.full_signature: @Override public PolyBase add(BigFraction val)
focal_class.identifier: add
focal_class.modifiers: @Override public
focal_class.parameters: (BigFraction val)
focal_class.return: PolyBase
focal_class.signature: PolyBase add(BigFraction val)
focal_class.class_method_signature: PolyBase.subtract(AbstractPoly x)
focal_class.full_signature: @Override public PolyBase subtract(AbstractPoly x)
focal_class.identifier: subtract
focal_class.modifiers: @Override public
focal_class.parameters: (AbstractPoly x)
focal_class.return: PolyBase
focal_class.signature: PolyBase subtract(AbstractPoly x)
focal_class.class_method_signature: PolyBase.subtract(BigFraction val)
focal_class.full_signature: @Override public PolyBase subtract(BigFraction val)
focal_class.identifier: subtract
focal_class.modifiers: @Override public
focal_class.parameters: (BigFraction val)
focal_class.return: PolyBase
focal_class.signature: PolyBase subtract(BigFraction val)
focal_class.class_method_signature: PolyBase.multiply(BigFraction c)
focal_class.full_signature: @Override public PolyBase multiply(BigFraction c)
focal_class.identifier: multiply
focal_class.modifiers: @Override public
focal_class.parameters: (BigFraction c)
focal_class.return: PolyBase
focal_class.signature: PolyBase multiply(BigFraction c)
focal_class.class_method_signature: PolyBase.divide(BigFraction v)
focal_class.full_signature: @Override public PolyBase divide(BigFraction v)
focal_class.identifier: divide
focal_class.modifiers: @Override public
focal_class.parameters: (BigFraction v)
focal_class.return: PolyBase
focal_class.signature: PolyBase divide(BigFraction v)
focal_class.class_method_signature: PolyBase.unaryOpGen(Function<BigFraction, BigFraction> f)
focal_class.full_signature: private PolyBase unaryOpGen(Function<BigFraction, BigFraction> f)
focal_class.identifier: unaryOpGen
focal_class.modifiers: private
focal_class.parameters: (Function<BigFraction, BigFraction> f)
focal_class.return: PolyBase
focal_class.signature: PolyBase unaryOpGen(Function<BigFraction, BigFraction> f)
focal_class.class_method_signature: PolyBase.binaryOpGen(BiFunction<BigFraction, BigFraction, BigFraction> f, AbstractPoly x)
focal_class.full_signature: private PolyBase binaryOpGen(BiFunction<BigFraction, BigFraction, BigFraction> f, AbstractPoly x)
focal_class.identifier: binaryOpGen
focal_class.modifiers: private
focal_class.parameters: (BiFunction<BigFraction, BigFraction, BigFraction> f, AbstractPoly x)
focal_class.return: PolyBase
focal_class.signature: PolyBase binaryOpGen(BiFunction<BigFraction, BigFraction, BigFraction> f, AbstractPoly x)
focal_class.class_method_signature: PolyBase.isConstant()
focal_class.full_signature: @Override public boolean isConstant()
focal_class.identifier: isConstant
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isConstant()
focal_class.class_method_signature: PolyBase.getConstant()
focal_class.full_signature: @Override public BigFraction getConstant()
focal_class.identifier: getConstant
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: BigFraction
focal_class.signature: BigFraction getConstant()
focal_class.class_method_signature: PolyBase.leadingVariable()
focal_class.full_signature: @Override public VariableID leadingVariable()
focal_class.identifier: leadingVariable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: VariableID
focal_class.signature: VariableID leadingVariable()
focal_class.class_method_signature: PolyBase.trailingVariable()
focal_class.full_signature: @Override public VariableID trailingVariable()
focal_class.identifier: trailingVariable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: VariableID
focal_class.signature: VariableID trailingVariable()
focal_class.class_method_signature: PolyBase.abs(BigFraction x)
focal_class.full_signature: private static BigFraction abs(BigFraction x)
focal_class.identifier: abs
focal_class.modifiers: private static
focal_class.parameters: (BigFraction x)
focal_class.return: BigFraction
focal_class.signature: BigFraction abs(BigFraction x)
focal_class.class_method_signature: PolyBase.spaceOp(boolean first, BigFraction coeff, String var)
focal_class.full_signature: private static String spaceOp(boolean first, BigFraction coeff, String var)
focal_class.identifier: spaceOp
focal_class.modifiers: private static
focal_class.parameters: (boolean first, BigFraction coeff, String var)
focal_class.return: String
focal_class.signature: String spaceOp(boolean first, BigFraction coeff, String var)
focal_class.class_method_signature: PolyBase.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: PolyBase.cexString()
focal_class.full_signature: @Override public String cexString()
focal_class.identifier: cexString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String cexString()
focal_class.class_method_signature: PolyBase.equals(Object obj)
focal_class.full_signature: @Override public boolean equals(Object obj)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object obj)
focal_class.return: boolean
focal_class.signature: boolean equals(Object obj)
focal_class.class_method_signature: PolyBase.evaluateCEX()
focal_class.full_signature: @Override public BigFraction evaluateCEX()
focal_class.identifier: evaluateCEX
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: BigFraction
focal_class.signature: BigFraction evaluateCEX()
focal_class.class_method_signature: PolyBase.polyBounds(Map<VariableID, RegionBounds> bounds)
focal_class.full_signature: @Override public RegionBounds polyBounds(Map<VariableID, RegionBounds> bounds)
focal_class.identifier: polyBounds
focal_class.modifiers: @Override public
focal_class.parameters: (Map<VariableID, RegionBounds> bounds)
focal_class.return: RegionBounds
focal_class.signature: RegionBounds polyBounds(Map<VariableID, RegionBounds> bounds)
focal_class.class_method_signature: PolyBase.evaluate(Map<VariableID, BigFraction> bounds)
focal_class.full_signature: @Override public BigFraction evaluate(Map<VariableID, BigFraction> bounds)
focal_class.identifier: evaluate
focal_class.modifiers: @Override public
focal_class.parameters: (Map<VariableID, BigFraction> bounds)
focal_class.return: BigFraction
focal_class.signature: BigFraction evaluate(Map<VariableID, BigFraction> bounds)
focal_class.class_method_signature: PolyBase.div(BigInteger d)
focal_class.full_signature: @Override public AbstractPoly div(BigInteger d)
focal_class.identifier: div
focal_class.modifiers: @Override public
focal_class.parameters: (BigInteger d)
focal_class.return: AbstractPoly
focal_class.signature: AbstractPoly div(BigInteger d)
focal_class.class_method_signature: PolyBase.divisible(BigInteger d)
focal_class.full_signature: @Override public boolean divisible(BigInteger d)
focal_class.identifier: divisible
focal_class.modifiers: @Override public
focal_class.parameters: (BigInteger d)
focal_class.return: boolean
focal_class.signature: boolean divisible(BigInteger d)
focal_class.class_method_signature: PolyBase.qpoly(BigInteger Q, VariableID k, VariableID m)
focal_class.full_signature: public static PolyBase qpoly(BigInteger Q, VariableID k, VariableID m)
focal_class.identifier: qpoly
focal_class.modifiers: public static
focal_class.parameters: (BigInteger Q, VariableID k, VariableID m)
focal_class.return: PolyBase
focal_class.signature: PolyBase qpoly(BigInteger Q, VariableID k, VariableID m)
focal_class.class_method_signature: PolyBase.rewrite(Map<VariableID, AbstractPoly> rw)
focal_class.full_signature: @Override public AbstractPoly rewrite(Map<VariableID, AbstractPoly> rw)
focal_class.identifier: rewrite
focal_class.modifiers: @Override public
focal_class.parameters: (Map<VariableID, AbstractPoly> rw)
focal_class.return: AbstractPoly
focal_class.signature: AbstractPoly rewrite(Map<VariableID, AbstractPoly> rw)
focal_class.class_method_signature: PolyBase.toACL2()
focal_class.full_signature: @Override public String toACL2()
focal_class.identifier: toACL2
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toACL2()
focal_class.class_method_signature: PolyBase.updateVariableSet(Set<VariableID> in)
focal_class.full_signature: @Override public Set<VariableID> updateVariableSet(Set<VariableID> in)
focal_class.identifier: updateVariableSet
focal_class.modifiers: @Override public
focal_class.parameters: (Set<VariableID> in)
focal_class.return: Set<VariableID>
focal_class.signature: Set<VariableID> updateVariableSet(Set<VariableID> in)
focal_class.class_method_signature: PolyBase.leastCommonDenominator()
focal_class.full_signature: @Override public BigInteger leastCommonDenominator()
focal_class.identifier: leastCommonDenominator
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: BigInteger
focal_class.signature: BigInteger leastCommonDenominator()
focal_class.class_method_signature: PolyBase.constantLCDContribution()
focal_class.full_signature: @Override public BigInteger constantLCDContribution()
focal_class.identifier: constantLCDContribution
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: BigInteger
focal_class.signature: BigInteger constantLCDContribution()
focal_class.class_method_signature: PolyBase.remove(VariableID x)
focal_class.full_signature: @Override public AbstractPoly remove(VariableID x)
focal_class.identifier: remove
focal_class.modifiers: @Override public
focal_class.parameters: (VariableID x)
focal_class.return: AbstractPoly
focal_class.signature: AbstractPoly remove(VariableID x)
focal_class.class_method_signature: PolyBase.dot(AbstractPoly arg)
focal_class.full_signature: @Override public BigFraction dot(AbstractPoly arg)
focal_class.identifier: dot
focal_class.modifiers: @Override public
focal_class.parameters: (AbstractPoly arg)
focal_class.return: BigFraction
focal_class.signature: BigFraction dot(AbstractPoly arg)
focal_class.class_method_signature: PolyBase.compareTo(AbstractPoly arg)
focal_class.full_signature: @Override public int compareTo(AbstractPoly arg)
focal_class.identifier: compareTo
focal_class.modifiers: @Override public
focal_class.parameters: (AbstractPoly arg)
focal_class.return: int
focal_class.signature: int compareTo(AbstractPoly arg)
focal_class.class_method_signature: PolyBase.remove(AbstractPoly x)
focal_class.full_signature: @Override public AbstractPoly remove(AbstractPoly x)
focal_class.identifier: remove
focal_class.modifiers: @Override public
focal_class.parameters: (AbstractPoly x)
focal_class.return: AbstractPoly
focal_class.signature: AbstractPoly remove(AbstractPoly x)
focal_class.class_method_signature: PolyBase.getVariables()
focal_class.full_signature: @Override public Set<VariableID> getVariables()
focal_class.identifier: getVariables
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Set<VariableID>
focal_class.signature: Set<VariableID> getVariables()
focal_class.superclass: extends AbstractPoly
focal_method.body: @Override
  	public PolyBase add(AbstractPoly x) {
  		BiFunction<BigFraction, BigFraction, BigFraction> add = (lhs,rhs) -> lhs.add(rhs);
  		return binaryOpGen(add,x);
  	}
focal_method.class_method_signature: PolyBase.add(AbstractPoly x)
focal_method.full_signature: @Override public PolyBase add(AbstractPoly x)
focal_method.identifier: add
focal_method.invocations: add binaryOpGen
focal_method.modifiers: @Override public
focal_method.parameters: (AbstractPoly x)
focal_method.return: PolyBase
focal_method.signature: PolyBase add(AbstractPoly x)