YES Problem: strict: top(left(car(x,y),car(old(),z))) -> top(right(y,car(old(),z))) top(left(car(x,car(old(),y)),z)) -> top(right(car(old(),y),z)) top(right(x,car(y,car(old(),z)))) -> top(left(x,car(old(),z))) top(right(car(old(),x),car(y,z))) -> top(left(car(old(),x),z)) top(left(bot(),car(old(),x))) -> top(right(bot(),car(old(),x))) top(right(car(old(),x),bot())) -> top(left(car(old(),x),bot())) weak: top(left(car(x,y),z)) -> top(left(y,z)) top(right(x,car(y,z))) -> top(right(x,z)) bot() -> car(new(),bot()) Proof: Matrix Interpretation Processor: dim=2 interpretation: [1 1] [1 0] [1] [right](x0, x1) = [1 0]x0 + [0 0]x1 + [0], [0] [old] = [1], [1 0] [top](x0) = [1 0]x0, [0] [bot] = [0], [2 0] [1 2] [car](x0, x1) = [1 1]x0 + [1 0]x1, [0] [new] = [0], [1 2] [left](x0, x1) = x0 + [0 0]x1 orientation: [2 0] [1 2] [3 2] [2] [1 1] [1 2] [1] top(left(car(x,y),car(old(),z))) = [2 0]x + [1 2]y + [3 2]z + [2] >= [1 1]y + [1 2]z + [1] = top(right(y,car(old(),z))) [2 0] [3 2] [1 2] [2] [2 2] [1 0] [2] top(left(car(x,car(old(),y)),z)) = [2 0]x + [3 2]y + [1 2]z + [2] >= [2 2]y + [1 0]z + [2] = top(right(car(old(),y),z)) [1 1] [2 0] [3 2] [3] [1 0] [3 2] [2] top(right(x,car(y,car(old(),z)))) = [1 1]x + [2 0]y + [3 2]z + [3] >= [1 0]x + [3 2]z + [2] = top(left(x,car(old(),z))) [2 2] [2 0] [1 2] [2] [1 2] [1 2] top(right(car(old(),x),car(y,z))) = [2 2]x + [2 0]y + [1 2]z + [2] >= [1 2]x + [1 2]z = top(left(car(old(),x),z)) [3 2] [2] [1 2] [1] top(left(bot(),car(old(),x))) = [3 2]x + [2] >= [1 2]x + [1] = top(right(bot(),car(old(),x))) [2 2] [2] [1 2] top(right(car(old(),x),bot())) = [2 2]x + [2] >= [1 2]x = top(left(car(old(),x),bot())) [2 0] [1 2] [1 2] [1 0] [1 2] top(left(car(x,y),z)) = [2 0]x + [1 2]y + [1 2]z >= [1 0]y + [1 2]z = top(left(y,z)) [1 1] [2 0] [1 2] [1] [1 1] [1 0] [1] top(right(x,car(y,z))) = [1 1]x + [2 0]y + [1 2]z + [1] >= [1 1]x + [1 0]z + [1] = top(right(x,z)) [0] [0] bot() = [0] >= [0] = car(new(),bot()) problem: strict: top(left(car(x,car(old(),y)),z)) -> top(right(car(old(),y),z)) weak: top(left(car(x,y),z)) -> top(left(y,z)) top(right(x,car(y,z))) -> top(right(x,z)) bot() -> car(new(),bot()) Matrix Interpretation Processor: dim=2 interpretation: [2 0] [1 1] [right](x0, x1) = [0 0]x0 + [0 2]x1, [1] [old] = [2], [1 1] [0] [top](x0) = [0 0]x0 + [3], [0] [bot] = [0], [car](x0, x1) = x0 + x1, [0] [new] = [0], [2 0] [2 0] [left](x0, x1) = [1 0]x0 + [0 3]x1 orientation: [3 0] [3 0] [2 3] [3] [2 0] [1 3] [2] top(left(car(x,car(old(),y)),z)) = [0 0]x + [0 0]y + [0 0]z + [3] >= [0 0]y + [0 0]z + [3] = top(right(car(old(),y),z)) [3 0] [3 0] [2 3] [0] [3 0] [2 3] [0] top(left(car(x,y),z)) = [0 0]x + [0 0]y + [0 0]z + [3] >= [0 0]y + [0 0]z + [3] = top(left(y,z)) [2 0] [1 3] [1 3] [0] [2 0] [1 3] [0] top(right(x,car(y,z))) = [0 0]x + [0 0]y + [0 0]z + [3] >= [0 0]x + [0 0]z + [3] = top(right(x,z)) [0] [0] bot() = [0] >= [0] = car(new(),bot()) problem: strict: weak: top(left(car(x,y),z)) -> top(left(y,z)) top(right(x,car(y,z))) -> top(right(x,z)) bot() -> car(new(),bot()) Qed