package catg;
import janala.Main;
import janala.config.Config;
import janala.interpreters.OrValue;
import java.io.Serializable;
public class CATG {
/** */
public static int abstractInt(int value) {
int inputValue = readInt(value);
Main.abstractEqualsConcrete(Main.compare(inputValue, value));
return inputValue;
}
public static boolean abstractBool(String test, boolean x) {
boolean y = readBool(x);
Main.abstractEqualsConcrete(Main.compare(y, x));
return y;
}
public static long abstractLong(String test, long x) {
long y = readLong(x);
Main.abstractEqualsConcrete(Main.compare(y, x));
return y;
}
public static char abstractChar(String test, char x) {
char y = readChar(x);
Main.abstractEqualsConcrete(Main.compare(y, x));
return y;
}
public static byte abstractByte(String test, byte x) {
byte y = readByte(x);
Main.abstractEqualsConcrete(Main.compare(y, x));
return y;
}
public static short abstractShort(String test, short x) {
short y = readShort(x);
Main.abstractEqualsConcrete(Main.compare(y, x));
return y;
}
public static String abstractString(String test, String x) {
String y = readString(x);
Main.abstractEqualsConcrete(Main.compare(y, x));
return y;
}
public static int[] readIntArray(int length, int x) {
int[] ret = new int[length];
for (int i = 0; i < length; i++) {
ret[i] = readInt(x);
}
return ret;
}
public static int readInt(int x) {
int y = Main.readInt(x);
Main.MakeSymbolic(y);
Main.assume(y <= Integer.MAX_VALUE ? 1 : 0);
Main.assume(y >= Integer.MIN_VALUE ? 1 : 0);
return y;
}
public static long readLong(long x) {
long y = Main.readLong(x);
Main.MakeSymbolic(y);
Main.assume(y <= Long.MAX_VALUE ? 1 : 0);
Main.assume(y >= Long.MIN_VALUE + 1 ? 1 : 0);
return y;
}
public static char readChar(char x) {
char y = Main.readChar(x);
Main.MakeSymbolic(y);
Main.assume(y <= Character.MAX_VALUE ? 1 : 0);
Main.assume(y >= Character.MIN_VALUE ? 1 : 0);
return y;
}
public static byte readByte(byte x) {
byte y = Main.readByte(x);
Main.MakeSymbolic(y);
Main.assume(y <= Byte.MAX_VALUE ? 1 : 0);
Main.assume(y >= Byte.MIN_VALUE ? 1 : 0);
return y;
}
public static short readShort(short x) {
short y = Main.readShort(x);
Main.MakeSymbolic(y);
Main.assume(y <= Short.MAX_VALUE ? 1 : 0);
Main.assume(y >= Short.MIN_VALUE ? 1 : 0);
return y;
}
public static boolean readBool(boolean x) {
boolean y = Main.readBool(x);
Main.MakeSymbolic(y);
OrValue tmp;
Main.ignore();
tmp = Main.assumeOrBegin(y == true ? 1 : 0);
Main.ignore();
tmp = Main.assumeOr(!y ? 1 : 0, tmp);
if (tmp != null) {
Main.assumeOrEnd(tmp);
}
return y;
}
public static String readString(String x) {
String y = Main.readString(x);
Main.MakeSymbolic(y);
return y;
}
public static boolean assertIfPossible(int pathId, boolean predicate) {
if (pathId == Config.instance.pathId) {
Main.forceTruth(predicate ? 1 : 0);
}
return predicate;
}
public static void BeginScope() {
Main.beginScope();
}
public static void EndScope() {
Main.endScope();
}
public static void event(String eventName) {
Main.event(eventName);
}
public static void pathRegex(String test, String regex) {
Main.pathRegex(regex);
}
public static void equivalent(String test, String location, Serializable value) {
Main.equivalent(location, value);
}
public static void skipPath() {
Main.skipPath();
}
}