YES(?,O(n^3)) Problem: active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) top(mark(x)) -> top(check(x)) check(f(x)) -> f(check(x)) check(x) -> start(match(f(X()),x)) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) proper(c()) -> ok(c()) proper(f(x)) -> f(proper(x)) f(ok(x)) -> ok(f(x)) start(ok(x)) -> found(x) f(found(x)) -> found(f(x)) top(found(x)) -> top(active(x)) active(f(x)) -> f(active(x)) f(mark(x)) -> mark(f(x)) Proof: RT Transformation Processor: strict: active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) top(mark(x)) -> top(check(x)) check(f(x)) -> f(check(x)) check(x) -> start(match(f(X()),x)) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) proper(c()) -> ok(c()) proper(f(x)) -> f(proper(x)) f(ok(x)) -> ok(f(x)) start(ok(x)) -> found(x) f(found(x)) -> found(f(x)) top(found(x)) -> top(active(x)) active(f(x)) -> f(active(x)) f(mark(x)) -> mark(f(x)) weak: Matrix Interpretation Processor: dimension: 1 interpretation: [found](x0) = x0 + 9, [ok](x0) = x0, [proper](x0) = x0 + 18, [start](x0) = x0 + 7, [match](x0, x1) = x0 + x1 + 8, [X] = 1, [check](x0) = x0, [top](x0) = x0 + 7, [c] = 30, [mark](x0) = x0 + 2, [active](x0) = x0, [f](x0) = x0 orientation: active(f(x)) = x >= x + 2 = mark(x) top(active(c())) = 37 >= 39 = top(mark(c())) top(mark(x)) = x + 9 >= x + 7 = top(check(x)) check(f(x)) = x >= x = f(check(x)) check(x) = x >= x + 16 = start(match(f(X()),x)) match(f(x),f(y)) = x + y + 8 >= x + y + 8 = f(match(x,y)) match(X(),x) = x + 9 >= x + 18 = proper(x) proper(c()) = 48 >= 30 = ok(c()) proper(f(x)) = x + 18 >= x + 18 = f(proper(x)) f(ok(x)) = x >= x = ok(f(x)) start(ok(x)) = x + 7 >= x + 9 = found(x) f(found(x)) = x + 9 >= x + 9 = found(f(x)) top(found(x)) = x + 16 >= x + 7 = top(active(x)) active(f(x)) = x >= x = f(active(x)) f(mark(x)) = x + 2 >= x + 2 = mark(f(x)) problem: strict: active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) check(f(x)) -> f(check(x)) check(x) -> start(match(f(X()),x)) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) proper(f(x)) -> f(proper(x)) f(ok(x)) -> ok(f(x)) start(ok(x)) -> found(x) f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) f(mark(x)) -> mark(f(x)) weak: top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 1 interpretation: [found](x0) = x0 + 1, [ok](x0) = x0 + 5, [proper](x0) = x0 + 5, [start](x0) = x0 + 16, [match](x0, x1) = x0 + x1 + 13, [X] = 5, [check](x0) = x0 + 4, [top](x0) = x0 + 1, [c] = 13, [mark](x0) = x0 + 4, [active](x0) = x0, [f](x0) = x0 orientation: active(f(x)) = x >= x + 4 = mark(x) top(active(c())) = 14 >= 18 = top(mark(c())) check(f(x)) = x + 4 >= x + 4 = f(check(x)) check(x) = x + 4 >= x + 34 = start(match(f(X()),x)) match(f(x),f(y)) = x + y + 13 >= x + y + 13 = f(match(x,y)) match(X(),x) = x + 18 >= x + 5 = proper(x) proper(f(x)) = x + 5 >= x + 5 = f(proper(x)) f(ok(x)) = x + 5 >= x + 5 = ok(f(x)) start(ok(x)) = x + 21 >= x + 1 = found(x) f(found(x)) = x + 1 >= x + 1 = found(f(x)) active(f(x)) = x >= x = f(active(x)) f(mark(x)) = x + 4 >= x + 4 = mark(f(x)) top(mark(x)) = x + 5 >= x + 5 = top(check(x)) proper(c()) = 18 >= 18 = ok(c()) top(found(x)) = x + 2 >= x + 1 = top(active(x)) problem: strict: active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) check(f(x)) -> f(check(x)) check(x) -> start(match(f(X()),x)) match(f(x),f(y)) -> f(match(x,y)) proper(f(x)) -> f(proper(x)) f(ok(x)) -> ok(f(x)) f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) f(mark(x)) -> mark(f(x)) weak: match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 1 interpretation: [found](x0) = x0 + 17, [ok](x0) = x0, [proper](x0) = x0 + 18, [start](x0) = x0 + 26, [match](x0, x1) = x0 + x1 + 10, [X] = 8, [check](x0) = x0 + 2, [top](x0) = x0 + 2, [c] = 9, [mark](x0) = x0 + 2, [active](x0) = x0 + 7, [f](x0) = x0 + 8 orientation: active(f(x)) = x + 15 >= x + 2 = mark(x) top(active(c())) = 18 >= 13 = top(mark(c())) check(f(x)) = x + 10 >= x + 10 = f(check(x)) check(x) = x + 2 >= x + 52 = start(match(f(X()),x)) match(f(x),f(y)) = x + y + 26 >= x + y + 18 = f(match(x,y)) proper(f(x)) = x + 26 >= x + 26 = f(proper(x)) f(ok(x)) = x + 8 >= x + 8 = ok(f(x)) f(found(x)) = x + 25 >= x + 25 = found(f(x)) active(f(x)) = x + 15 >= x + 15 = f(active(x)) f(mark(x)) = x + 10 >= x + 10 = mark(f(x)) match(X(),x) = x + 18 >= x + 18 = proper(x) start(ok(x)) = x + 26 >= x + 17 = found(x) top(mark(x)) = x + 4 >= x + 4 = top(check(x)) proper(c()) = 27 >= 9 = ok(c()) top(found(x)) = x + 19 >= x + 9 = top(active(x)) problem: strict: check(f(x)) -> f(check(x)) check(x) -> start(match(f(X()),x)) proper(f(x)) -> f(proper(x)) f(ok(x)) -> ok(f(x)) f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) f(mark(x)) -> mark(f(x)) weak: active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 3 interpretation: [1 4 0] [found](x0) = [0 0 0]x0 [0 0 1] , [1 4 0] [ok](x0) = [0 0 0]x0 [0 0 1] , [1 0 0] [proper](x0) = [0 0 0]x0 [0 0 1] , [1 0 0] [start](x0) = [0 0 0]x0 [0 0 1] , [1 0 0] [1 0 0] [0] [match](x0, x1) = [0 0 0]x0 + [0 0 0]x1 + [5] [0 0 0] [0 0 1] [0], [0] [X] = [0] [0], [1 0 0] [check](x0) = [0 0 0]x0 [0 0 1] , [1 0 0] [0] [top](x0) = [0 0 0]x0 + [0] [0 0 0] [7], [1] [c] = [0] [4], [1 0 0] [0] [mark](x0) = [0 0 0]x0 + [0] [0 0 1] [4], [1 0 0] [0] [active](x0) = [0 0 0]x0 + [3] [0 0 1] [0], [1 0 1] [0] [f](x0) = [0 0 0]x0 + [0] [0 0 1] [4] orientation: [1 0 1] [0] [1 0 1] [0] check(f(x)) = [0 0 0]x + [0] >= [0 0 0]x + [0] = f(check(x)) [0 0 1] [4] [0 0 1] [4] [1 0 0] [1 0 0] check(x) = [0 0 0]x >= [0 0 0]x = start(match(f(X()),x)) [0 0 1] [0 0 1] [1 0 1] [0] [1 0 1] [0] proper(f(x)) = [0 0 0]x + [0] >= [0 0 0]x + [0] = f(proper(x)) [0 0 1] [4] [0 0 1] [4] [1 4 1] [0] [1 0 1] [0] f(ok(x)) = [0 0 0]x + [0] >= [0 0 0]x + [0] = ok(f(x)) [0 0 1] [4] [0 0 1] [4] [1 4 1] [0] [1 0 1] [0] f(found(x)) = [0 0 0]x + [0] >= [0 0 0]x + [0] = found(f(x)) [0 0 1] [4] [0 0 1] [4] [1 0 1] [0] [1 0 1] [0] active(f(x)) = [0 0 0]x + [3] >= [0 0 0]x + [0] = f(active(x)) [0 0 1] [4] [0 0 1] [4] [1 0 1] [4] [1 0 1] [0] f(mark(x)) = [0 0 0]x + [0] >= [0 0 0]x + [0] = mark(f(x)) [0 0 1] [8] [0 0 1] [8] [1 0 1] [0] [1 0 0] [0] active(f(x)) = [0 0 0]x + [3] >= [0 0 0]x + [0] = mark(x) [0 0 1] [4] [0 0 1] [4] [1] [1] top(active(c())) = [0] >= [0] = top(mark(c())) [7] [7] [1 0 1] [1 0 1] [0] [1 0 0] [1 0 1] [0] match(f(x),f(y)) = [0 0 0]x + [0 0 0]y + [5] >= [0 0 0]x + [0 0 0]y + [0] = f(match(x,y)) [0 0 0] [0 0 1] [4] [0 0 0] [0 0 1] [4] [1 0 0] [0] [1 0 0] match(X(),x) = [0 0 0]x + [5] >= [0 0 0]x = proper(x) [0 0 1] [0] [0 0 1] [1 4 0] [1 4 0] start(ok(x)) = [0 0 0]x >= [0 0 0]x = found(x) [0 0 1] [0 0 1] [1 0 0] [0] [1 0 0] [0] top(mark(x)) = [0 0 0]x + [0] >= [0 0 0]x + [0] = top(check(x)) [0 0 0] [7] [0 0 0] [7] [1] [1] proper(c()) = [0] >= [0] = ok(c()) [4] [4] [1 4 0] [0] [1 0 0] [0] top(found(x)) = [0 0 0]x + [0] >= [0 0 0]x + [0] = top(active(x)) [0 0 0] [7] [0 0 0] [7] problem: strict: check(f(x)) -> f(check(x)) check(x) -> start(match(f(X()),x)) proper(f(x)) -> f(proper(x)) f(ok(x)) -> ok(f(x)) f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) weak: f(mark(x)) -> mark(f(x)) active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 2 interpretation: [8] [found](x0) = x0 + [0], [ok](x0) = x0, [1 2] [0] [proper](x0) = [0 1]x0 + [2], [8] [start](x0) = x0 + [2], [1 0] [1 2] [0] [match](x0, x1) = [0 0]x0 + [0 1]x1 + [2], [0] [X] = [0], [1 2] [8] [check](x0) = [0 1]x0 + [4], [1 0] [0] [top](x0) = [0 0]x0 + [4], [12] [c] = [0 ], [1 2] [8] [mark](x0) = [0 1]x0 + [4], [8] [active](x0) = x0 + [0], [1 2] [0] [f](x0) = [0 1]x0 + [4] orientation: [1 4] [16] [1 4] [16] check(f(x)) = [0 1]x + [8 ] >= [0 1]x + [8 ] = f(check(x)) [1 2] [8] [1 2] [8] check(x) = [0 1]x + [4] >= [0 1]x + [4] = start(match(f(X()),x)) [1 4] [8] [1 4] [4] proper(f(x)) = [0 1]x + [6] >= [0 1]x + [6] = f(proper(x)) [1 2] [0] [1 2] [0] f(ok(x)) = [0 1]x + [4] >= [0 1]x + [4] = ok(f(x)) [1 2] [8] [1 2] [8] f(found(x)) = [0 1]x + [4] >= [0 1]x + [4] = found(f(x)) [1 2] [8] [1 2] [8] active(f(x)) = [0 1]x + [4] >= [0 1]x + [4] = f(active(x)) [1 4] [16] [1 4] [16] f(mark(x)) = [0 1]x + [8 ] >= [0 1]x + [8 ] = mark(f(x)) [1 2] [8] [1 2] [8] active(f(x)) = [0 1]x + [4] >= [0 1]x + [4] = mark(x) [20] [20] top(active(c())) = [4 ] >= [4 ] = top(mark(c())) [1 2] [1 4] [8] [1 0] [1 4] [4] match(f(x),f(y)) = [0 0]x + [0 1]y + [6] >= [0 0]x + [0 1]y + [6] = f(match(x,y)) [1 2] [0] [1 2] [0] match(X(),x) = [0 1]x + [2] >= [0 1]x + [2] = proper(x) [8] [8] start(ok(x)) = x + [2] >= x + [0] = found(x) [1 2] [8] [1 2] [8] top(mark(x)) = [0 0]x + [4] >= [0 0]x + [4] = top(check(x)) [12] [12] proper(c()) = [2 ] >= [0 ] = ok(c()) [1 0] [8] [1 0] [8] top(found(x)) = [0 0]x + [4] >= [0 0]x + [4] = top(active(x)) problem: strict: check(f(x)) -> f(check(x)) check(x) -> start(match(f(X()),x)) f(ok(x)) -> ok(f(x)) f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) weak: proper(f(x)) -> f(proper(x)) f(mark(x)) -> mark(f(x)) active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 2 interpretation: [found](x0) = x0, [ok](x0) = x0, [proper](x0) = x0, [start](x0) = x0, [1 0] [match](x0, x1) = [0 0]x0 + x1, [0] [X] = [0], [1 1] [check](x0) = [0 1]x0, [1 0] [0] [top](x0) = [0 0]x0 + [8], [8] [c] = [0], [1 1] [0] [mark](x0) = [0 1]x0 + [1], [active](x0) = x0, [1 4] [0] [f](x0) = [0 1]x0 + [2] orientation: [1 5] [2] [1 5] [0] check(f(x)) = [0 1]x + [2] >= [0 1]x + [2] = f(check(x)) [1 1] check(x) = [0 1]x >= x = start(match(f(X()),x)) [1 4] [0] [1 4] [0] f(ok(x)) = [0 1]x + [2] >= [0 1]x + [2] = ok(f(x)) [1 4] [0] [1 4] [0] f(found(x)) = [0 1]x + [2] >= [0 1]x + [2] = found(f(x)) [1 4] [0] [1 4] [0] active(f(x)) = [0 1]x + [2] >= [0 1]x + [2] = f(active(x)) [1 4] [0] [1 4] [0] proper(f(x)) = [0 1]x + [2] >= [0 1]x + [2] = f(proper(x)) [1 5] [4] [1 5] [2] f(mark(x)) = [0 1]x + [3] >= [0 1]x + [3] = mark(f(x)) [1 4] [0] [1 1] [0] active(f(x)) = [0 1]x + [2] >= [0 1]x + [1] = mark(x) [8] [8] top(active(c())) = [8] >= [8] = top(mark(c())) [1 4] [1 4] [0] [1 0] [1 4] [0] match(f(x),f(y)) = [0 0]x + [0 1]y + [2] >= [0 0]x + [0 1]y + [2] = f(match(x,y)) match(X(),x) = x >= x = proper(x) start(ok(x)) = x >= x = found(x) [1 1] [0] [1 1] [0] top(mark(x)) = [0 0]x + [8] >= [0 0]x + [8] = top(check(x)) [8] [8] proper(c()) = [0] >= [0] = ok(c()) [1 0] [0] [1 0] [0] top(found(x)) = [0 0]x + [8] >= [0 0]x + [8] = top(active(x)) problem: strict: check(x) -> start(match(f(X()),x)) f(ok(x)) -> ok(f(x)) f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) weak: check(f(x)) -> f(check(x)) proper(f(x)) -> f(proper(x)) f(mark(x)) -> mark(f(x)) active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 2 interpretation: [found](x0) = x0, [0] [ok](x0) = x0 + [4], [1 2] [0] [proper](x0) = [0 1]x0 + [4], [start](x0) = x0, [1 0] [1 2] [0] [match](x0, x1) = [0 0]x0 + [0 1]x1 + [4], [0] [X] = [0], [1 2] [0] [check](x0) = [0 1]x0 + [4], [1 0] [0 ] [top](x0) = [0 0]x0 + [14], [8] [c] = [0], [1 2] [0] [mark](x0) = [0 1]x0 + [4], [active](x0) = x0, [1 4] [0] [f](x0) = [0 1]x0 + [8] orientation: [1 2] [0] [1 2] [0] check(x) = [0 1]x + [4] >= [0 1]x + [4] = start(match(f(X()),x)) [1 4] [16] [1 4] [0 ] f(ok(x)) = [0 1]x + [12] >= [0 1]x + [12] = ok(f(x)) [1 4] [0] [1 4] [0] f(found(x)) = [0 1]x + [8] >= [0 1]x + [8] = found(f(x)) [1 4] [0] [1 4] [0] active(f(x)) = [0 1]x + [8] >= [0 1]x + [8] = f(active(x)) [1 6] [16] [1 6] [16] check(f(x)) = [0 1]x + [12] >= [0 1]x + [12] = f(check(x)) [1 6] [16] [1 6] [16] proper(f(x)) = [0 1]x + [12] >= [0 1]x + [12] = f(proper(x)) [1 6] [16] [1 6] [16] f(mark(x)) = [0 1]x + [12] >= [0 1]x + [12] = mark(f(x)) [1 4] [0] [1 2] [0] active(f(x)) = [0 1]x + [8] >= [0 1]x + [4] = mark(x) [8 ] [8 ] top(active(c())) = [14] >= [14] = top(mark(c())) [1 4] [1 6] [16] [1 0] [1 6] [16] match(f(x),f(y)) = [0 0]x + [0 1]y + [12] >= [0 0]x + [0 1]y + [12] = f(match(x,y)) [1 2] [0] [1 2] [0] match(X(),x) = [0 1]x + [4] >= [0 1]x + [4] = proper(x) [0] start(ok(x)) = x + [4] >= x = found(x) [1 2] [0 ] [1 2] [0 ] top(mark(x)) = [0 0]x + [14] >= [0 0]x + [14] = top(check(x)) [8] [8] proper(c()) = [4] >= [4] = ok(c()) [1 0] [0 ] [1 0] [0 ] top(found(x)) = [0 0]x + [14] >= [0 0]x + [14] = top(active(x)) problem: strict: check(x) -> start(match(f(X()),x)) f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) weak: f(ok(x)) -> ok(f(x)) check(f(x)) -> f(check(x)) proper(f(x)) -> f(proper(x)) f(mark(x)) -> mark(f(x)) active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 2 interpretation: [1 8] [0] [found](x0) = [0 1]x0 + [1], [ok](x0) = x0, [proper](x0) = x0, [1 8] [0] [start](x0) = [0 1]x0 + [1], [1 0] [match](x0, x1) = [0 0]x0 + x1, [0] [X] = [0], [1 8] [0] [check](x0) = [0 1]x0 + [1], [1 8] [0] [top](x0) = [0 0]x0 + [1], [0] [c] = [0], [1 8] [0] [mark](x0) = [0 1]x0 + [1], [1 1] [8] [active](x0) = [0 1]x0 + [0], [1 8] [0] [f](x0) = [0 1]x0 + [1] orientation: [1 8] [0] [1 8] [0] check(x) = [0 1]x + [1] >= [0 1]x + [1] = start(match(f(X()),x)) [1 16] [8] [1 16] [8] f(found(x)) = [0 1 ]x + [2] >= [0 1 ]x + [2] = found(f(x)) [1 9] [9] [1 9] [8] active(f(x)) = [0 1]x + [1] >= [0 1]x + [1] = f(active(x)) [1 8] [0] [1 8] [0] f(ok(x)) = [0 1]x + [1] >= [0 1]x + [1] = ok(f(x)) [1 16] [8] [1 16] [8] check(f(x)) = [0 1 ]x + [2] >= [0 1 ]x + [2] = f(check(x)) [1 8] [0] [1 8] [0] proper(f(x)) = [0 1]x + [1] >= [0 1]x + [1] = f(proper(x)) [1 16] [8] [1 16] [8] f(mark(x)) = [0 1 ]x + [2] >= [0 1 ]x + [2] = mark(f(x)) [1 9] [9] [1 8] [0] active(f(x)) = [0 1]x + [1] >= [0 1]x + [1] = mark(x) [8] [8] top(active(c())) = [1] >= [1] = top(mark(c())) [1 8] [1 8] [0] [1 0] [1 8] [0] match(f(x),f(y)) = [0 0]x + [0 1]y + [1] >= [0 0]x + [0 1]y + [1] = f(match(x,y)) match(X(),x) = x >= x = proper(x) [1 8] [0] [1 8] [0] start(ok(x)) = [0 1]x + [1] >= [0 1]x + [1] = found(x) [1 16] [8] [1 16] [8] top(mark(x)) = [0 0 ]x + [1] >= [0 0 ]x + [1] = top(check(x)) [0] [0] proper(c()) = [0] >= [0] = ok(c()) [1 16] [8] [1 9] [8] top(found(x)) = [0 0 ]x + [1] >= [0 0]x + [1] = top(active(x)) problem: strict: check(x) -> start(match(f(X()),x)) f(found(x)) -> found(f(x)) weak: active(f(x)) -> f(active(x)) f(ok(x)) -> ok(f(x)) check(f(x)) -> f(check(x)) proper(f(x)) -> f(proper(x)) f(mark(x)) -> mark(f(x)) active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 2 interpretation: [0] [found](x0) = x0 + [4], [ok](x0) = x0, [proper](x0) = x0, [1 1] [0] [start](x0) = [0 1]x0 + [4], [1 0] [match](x0, x1) = [0 0]x0 + x1, [0] [X] = [0], [1 4] [0] [check](x0) = [0 1]x0 + [4], [1 0] [0] [top](x0) = [0 0]x0 + [2], [2] [c] = [0], [1 4] [0] [mark](x0) = [0 1]x0 + [4], [active](x0) = x0, [1 4] [0] [f](x0) = [0 1]x0 + [4] orientation: [1 4] [0] [1 1] [0] check(x) = [0 1]x + [4] >= [0 1]x + [4] = start(match(f(X()),x)) [1 4] [16] [1 4] [0] f(found(x)) = [0 1]x + [8 ] >= [0 1]x + [8] = found(f(x)) [1 4] [0] [1 4] [0] active(f(x)) = [0 1]x + [4] >= [0 1]x + [4] = f(active(x)) [1 4] [0] [1 4] [0] f(ok(x)) = [0 1]x + [4] >= [0 1]x + [4] = ok(f(x)) [1 8] [16] [1 8] [16] check(f(x)) = [0 1]x + [8 ] >= [0 1]x + [8 ] = f(check(x)) [1 4] [0] [1 4] [0] proper(f(x)) = [0 1]x + [4] >= [0 1]x + [4] = f(proper(x)) [1 8] [16] [1 8] [16] f(mark(x)) = [0 1]x + [8 ] >= [0 1]x + [8 ] = mark(f(x)) [1 4] [0] [1 4] [0] active(f(x)) = [0 1]x + [4] >= [0 1]x + [4] = mark(x) [2] [2] top(active(c())) = [2] >= [2] = top(mark(c())) [1 4] [1 4] [0] [1 0] [1 4] [0] match(f(x),f(y)) = [0 0]x + [0 1]y + [4] >= [0 0]x + [0 1]y + [4] = f(match(x,y)) match(X(),x) = x >= x = proper(x) [1 1] [0] [0] start(ok(x)) = [0 1]x + [4] >= x + [4] = found(x) [1 4] [0] [1 4] [0] top(mark(x)) = [0 0]x + [2] >= [0 0]x + [2] = top(check(x)) [2] [2] proper(c()) = [0] >= [0] = ok(c()) [1 0] [0] [1 0] [0] top(found(x)) = [0 0]x + [2] >= [0 0]x + [2] = top(active(x)) problem: strict: check(x) -> start(match(f(X()),x)) weak: f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) f(ok(x)) -> ok(f(x)) check(f(x)) -> f(check(x)) proper(f(x)) -> f(proper(x)) f(mark(x)) -> mark(f(x)) active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Matrix Interpretation Processor: dimension: 3 interpretation: [1 0 2] [1] [found](x0) = [0 1 0]x0 + [0] [0 0 0] [0], [1] [ok](x0) = x0 + [0] [0], [1 0 0] [1] [proper](x0) = [0 1 0]x0 + [0] [0 0 0] [4], [1 0 2] [start](x0) = [0 1 0]x0 [0 0 1] , [1 0 0] [1 0 0] [1] [match](x0, x1) = [0 0 0]x0 + [0 1 0]x1 + [0] [0 0 1] [0 0 0] [0], [0] [X] = [0] [4], [1 0 0] [3] [check](x0) = [0 1 0]x0 + [0] [0 0 0] [0], [1 2 2] [1] [top](x0) = [0 0 0]x0 + [1] [0 0 0] [0], [2] [c] = [1] [4], [1 4 0] [2] [mark](x0) = [0 0 0]x0 + [1] [0 0 0] [0], [1] [active](x0) = x0 + [0] [0], [1 4 0] [1] [f](x0) = [0 0 0]x0 + [1] [0 0 0] [0] orientation: [1 0 0] [3] [1 0 0] [2] check(x) = [0 1 0]x + [0] >= [0 1 0]x + [0] = start(match(f(X()),x)) [0 0 0] [0] [0 0 0] [0] [1 4 2] [2] [1 4 0] [2] f(found(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = found(f(x)) [0 0 0] [0] [0 0 0] [0] [1 4 0] [2] [1 4 0] [2] active(f(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = f(active(x)) [0 0 0] [0] [0 0 0] [0] [1 4 0] [2] [1 4 0] [2] f(ok(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = ok(f(x)) [0 0 0] [0] [0 0 0] [0] [1 4 0] [4] [1 4 0] [4] check(f(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = f(check(x)) [0 0 0] [0] [0 0 0] [0] [1 4 0] [2] [1 4 0] [2] proper(f(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = f(proper(x)) [0 0 0] [4] [0 0 0] [0] [1 4 0] [7] [1 4 0] [7] f(mark(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = mark(f(x)) [0 0 0] [0] [0 0 0] [0] [1 4 0] [2] [1 4 0] [2] active(f(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = mark(x) [0 0 0] [0] [0 0 0] [0] [14] [11] top(active(c())) = [1 ] >= [1 ] = top(mark(c())) [0 ] [0 ] [1 4 0] [1 4 0] [3] [1 0 0] [1 4 0] [2] match(f(x),f(y)) = [0 0 0]x + [0 0 0]y + [1] >= [0 0 0]x + [0 0 0]y + [1] = f(match(x,y)) [0 0 0] [0 0 0] [0] [0 0 0] [0 0 0] [0] [1 0 0] [1] [1 0 0] [1] match(X(),x) = [0 1 0]x + [0] >= [0 1 0]x + [0] = proper(x) [0 0 0] [4] [0 0 0] [4] [1 0 2] [1] [1 0 2] [1] start(ok(x)) = [0 1 0]x + [0] >= [0 1 0]x + [0] = found(x) [0 0 1] [0] [0 0 0] [0] [1 4 0] [5] [1 2 0] [4] top(mark(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = top(check(x)) [0 0 0] [0] [0 0 0] [0] [3] [3] proper(c()) = [1] >= [1] = ok(c()) [4] [4] [1 2 2] [2] [1 2 2] [2] top(found(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = top(active(x)) [0 0 0] [0] [0 0 0] [0] problem: strict: weak: check(x) -> start(match(f(X()),x)) f(found(x)) -> found(f(x)) active(f(x)) -> f(active(x)) f(ok(x)) -> ok(f(x)) check(f(x)) -> f(check(x)) proper(f(x)) -> f(proper(x)) f(mark(x)) -> mark(f(x)) active(f(x)) -> mark(x) top(active(c())) -> top(mark(c())) match(f(x),f(y)) -> f(match(x,y)) match(X(),x) -> proper(x) start(ok(x)) -> found(x) top(mark(x)) -> top(check(x)) proper(c()) -> ok(c()) top(found(x)) -> top(active(x)) Qed