Class Translation

java.lang.Object
edu.udel.cis.vsl.sarl.prove.cvc.Translation

public class Translation extends Object

This class is used to deal with integer division or modulo during the CVC translation. Since CVC4 currently can not deal with integer division or modulo, integer division and modulo operations will be translated into an "exists" expression. Below is an example:

z = x%y will become exists t__0, t__1 : z = t__1 && (y*t__0 + t__1 = x) && (t__1 >= 0 && t__1 < y)

z = x/y will become exists t__0, t__1 : z = t__0 && (y*t__0 + t__1 = x) && (t__1 >= 0 && t__1 < y)

Note that SARL assumes that all operands in integer division and modulo operations are non-negative.