public static Testcase createTestcase4() { PDLPos lastMinusFour = posMinusN(new PDLLast(), 4); PDLPred xLeqLastMinusFour = new PDLPosLeq(new PDLPosVar("x"), lastMinusFour); PDLPred xLeqY = new PDLPosLeq(new PDLPosVar("x"), new PDLPosVar("y")); PDLPred xLeqZ = new PDLPosLeq(new PDLPosVar("x"), new PDLPosVar("z")); PDLPred yLeqXPlusFour = new PDLPosLeq(new PDLPosVar("y"), posPlusN(new PDLPosVar("x"), 4)); PDLPred zLeqXPlusFour = new PDLPosLeq(new PDLPosVar("z"), posPlusN(new PDLPosVar("x"), 4)); PDLPred yNeqZ = new PDLNot(new PDLPosEq(new PDLPosVar("y"), new PDLPosVar("z"))); PDLPred zeroAtY = new PDLAtPos('0', new PDLPosVar("y")); PDLPred zeroAtZ = new PDLAtPos('0', new PDLPosVar("z")); PDLPred consequence = new PDLAnd(xLeqY, new PDLAnd(xLeqZ, new PDLAnd(yLeqXPlusFour, new PDLAnd(zLeqXPlusFour, new PDLAnd(yNeqZ, new PDLAnd(zeroAtY, zeroAtZ)))))); PDLPred quantConsequence = new PDLExistsFO("y", new PDLExistsFO("z", consequence)); PDLPred language = new PDLForallFO("x", new PDLIf(xLeqLastMinusFour, quantConsequence)); return new Testcase(4,oneZeroAlphabet, language); }
public static Testcase createTestcase4() { PDLPos lastMinusFour = posMinusN(new PDLLast(), 4); PDLPred xLeqLastMinusFour = new PDLPosLeq(new PDLPosVar("x"), lastMinusFour); PDLPred xLeqY = new PDLPosLeq(new PDLPosVar("x"), new PDLPosVar("y")); PDLPred xLeqZ = new PDLPosLeq(new PDLPosVar("x"), new PDLPosVar("z")); PDLPred yLeqXPlusFour = new PDLPosLeq(new PDLPosVar("y"), posPlusN(new PDLPosVar("x"), 4)); PDLPred zLeqXPlusFour = new PDLPosLeq(new PDLPosVar("z"), posPlusN(new PDLPosVar("x"), 4)); PDLPred yNeqZ = new PDLNot(new PDLPosEq(new PDLPosVar("y"), new PDLPosVar("z"))); PDLPred zeroAtY = new PDLAtPos('0', new PDLPosVar("y")); PDLPred zeroAtZ = new PDLAtPos('0', new PDLPosVar("z")); PDLPred consequence = new PDLAnd(xLeqY, new PDLAnd(xLeqZ, new PDLAnd(yLeqXPlusFour, new PDLAnd(zLeqXPlusFour, new PDLAnd(yNeqZ, new PDLAnd(zeroAtY, zeroAtZ)))))); PDLPred quantConsequence = new PDLExistsFO("y", new PDLExistsFO("z", consequence)); PDLPred language = new PDLForallFO("x", new PDLIf(xLeqLastMinusFour, quantConsequence)); return(new Testcase(4, oneZeroAlphabet, language)); }