YES Problem: main(Nil()) -> ParseFail(0()) main(Cons(A(),Nil())) -> ParseFail(S(0())) main(Cons(A(),Cons(A(),x112))) -> ParseFail(S(S(0()))) main(Cons(A(),Cons(B(),Nil()))) -> ParseSuccess() main(Cons(A(),Cons(B(),Cons(x120,x88)))) -> ParseFail(S(S(0()))) main(Cons(A(),Cons(C(),x112))) -> ParseFail(S(S(0()))) main(Cons(B(),x14)) -> ParseFail(S(0())) main(Cons(C(),x14)) -> ParseFail(S(0())) Proof: Matrix Interpretation Processor: dim=3 interpretation: [0] [C] = [0] [1], [0] [ParseSuccess] = [0] [0], [1] [B] = [0] [0], [1 0 0] [S](x0) = [0 0 0]x0 [0 0 0] , [1 0 1] [1 0 0] [Cons](x0, x1) = [0 0 0]x0 + [1 0 0]x1 [0 0 0] [0 0 0] , [0] [A] = [0] [0], [1 0 0] [ParseFail](x0) = [0 0 0]x0 [0 0 0] , [0] [0] = [0] [0], [1 0 0] [0] [main](x0) = [0 0 0]x0 + [0] [0 0 0] [1], [0] [Nil] = [0] [0] orientation: [0] [0] main(Nil()) = [0] >= [0] = ParseFail(0()) [1] [0] [0] [0] main(Cons(A(),Nil())) = [0] >= [0] = ParseFail(S(0())) [1] [0] [1 0 0] [0] [0] main(Cons(A(),Cons(A(),x112))) = [0 0 0]x112 + [0] >= [0] = ParseFail(S(S(0()))) [0 0 0] [1] [0] [1] [0] main(Cons(A(),Cons(B(),Nil()))) = [0] >= [0] = ParseSuccess() [1] [0] [1 0 1] [1 0 0] [1] [0] main(Cons(A(),Cons(B(),Cons(x120,x88)))) = [0 0 0]x120 + [0 0 0]x88 + [0] >= [0] = ParseFail(S(S(0()))) [0 0 0] [0 0 0] [1] [0] [1 0 0] [1] [0] main(Cons(A(),Cons(C(),x112))) = [0 0 0]x112 + [0] >= [0] = ParseFail(S(S(0()))) [0 0 0] [1] [0] [1 0 0] [1] [0] main(Cons(B(),x14)) = [0 0 0]x14 + [0] >= [0] = ParseFail(S(0())) [0 0 0] [1] [0] [1 0 0] [1] [0] main(Cons(C(),x14)) = [0 0 0]x14 + [0] >= [0] = ParseFail(S(0())) [0 0 0] [1] [0] problem: main(Nil()) -> ParseFail(0()) main(Cons(A(),Nil())) -> ParseFail(S(0())) main(Cons(A(),Cons(A(),x112))) -> ParseFail(S(S(0()))) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [0] [S](x0) = [0 0 0]x0 + [0] [0 0 0] [1], [1 0 0] [1 0 0] [Cons](x0, x1) = [0 0 0]x0 + [0 0 0]x1 [0 0 0] [0 0 0] , [0] [A] = [0] [0], [1 0 0] [ParseFail](x0) = [0 0 0]x0 [0 0 0] , [0] [0] = [0] [0], [1 0 0] [1] [main](x0) = [0 0 0]x0 + [0] [0 0 0] [0], [0] [Nil] = [0] [0] orientation: [1] [0] main(Nil()) = [0] >= [0] = ParseFail(0()) [0] [0] [1] [0] main(Cons(A(),Nil())) = [0] >= [0] = ParseFail(S(0())) [0] [0] [1 0 0] [1] [0] main(Cons(A(),Cons(A(),x112))) = [0 0 0]x112 + [0] >= [0] = ParseFail(S(S(0()))) [0 0 0] [0] [0] problem: Qed