YES Problem: r0(0(x1)) -> 0(r0(x1)) r0(1(x1)) -> 1(r0(x1)) r0(m(x1)) -> m(r0(x1)) r1(0(x1)) -> 0(r1(x1)) r1(1(x1)) -> 1(r1(x1)) r1(m(x1)) -> m(r1(x1)) r0(b(x1)) -> qr(0(b(x1))) r1(b(x1)) -> qr(1(b(x1))) 0(qr(x1)) -> qr(0(x1)) 1(qr(x1)) -> qr(1(x1)) m(qr(x1)) -> ql(m(x1)) 0(ql(x1)) -> ql(0(x1)) 1(ql(x1)) -> ql(1(x1)) b(ql(0(x1))) -> 0(b(r0(x1))) b(ql(1(x1))) -> 1(b(r1(x1))) Proof: Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [r1](x0) = [0 1 0]x0 [1 0 0] , [1 1 0] [r0](x0) = [0 1 0]x0 [1 0 0] , [1 1 0] [0] [m](x0) = [0 1 0]x0 + [1] [1 0 0] [0], [1 0 0] [b](x0) = [0 0 0]x0 [0 0 0] , [1 1 0] [0](x0) = [0 1 0]x0 [0 0 0] , [1 0 0] [ql](x0) = [0 1 0]x0 [0 0 0] , [1 0 0] [qr](x0) = [0 1 0]x0 [0 0 0] , [1 0 0] [1](x0) = [0 1 0]x0 [0 0 0] orientation: [1 2 0] [1 2 0] r0(0(x1)) = [0 1 0]x1 >= [0 1 0]x1 = 0(r0(x1)) [1 1 0] [0 0 0] [1 1 0] [1 1 0] r0(1(x1)) = [0 1 0]x1 >= [0 1 0]x1 = 1(r0(x1)) [1 0 0] [0 0 0] [1 2 0] [1] [1 2 0] [0] r0(m(x1)) = [0 1 0]x1 + [1] >= [0 1 0]x1 + [1] = m(r0(x1)) [1 1 0] [0] [1 1 0] [0] [1 1 0] [1 1 0] r1(0(x1)) = [0 1 0]x1 >= [0 1 0]x1 = 0(r1(x1)) [1 1 0] [0 0 0] [1 0 0] [1 0 0] r1(1(x1)) = [0 1 0]x1 >= [0 1 0]x1 = 1(r1(x1)) [1 0 0] [0 0 0] [1 1 0] [0] [1 1 0] [0] r1(m(x1)) = [0 1 0]x1 + [1] >= [0 1 0]x1 + [1] = m(r1(x1)) [1 1 0] [0] [1 0 0] [0] [1 0 0] [1 0 0] r0(b(x1)) = [0 0 0]x1 >= [0 0 0]x1 = qr(0(b(x1))) [1 0 0] [0 0 0] [1 0 0] [1 0 0] r1(b(x1)) = [0 0 0]x1 >= [0 0 0]x1 = qr(1(b(x1))) [1 0 0] [0 0 0] [1 1 0] [1 1 0] 0(qr(x1)) = [0 1 0]x1 >= [0 1 0]x1 = qr(0(x1)) [0 0 0] [0 0 0] [1 0 0] [1 0 0] 1(qr(x1)) = [0 1 0]x1 >= [0 1 0]x1 = qr(1(x1)) [0 0 0] [0 0 0] [1 1 0] [0] [1 1 0] [0] m(qr(x1)) = [0 1 0]x1 + [1] >= [0 1 0]x1 + [1] = ql(m(x1)) [1 0 0] [0] [0 0 0] [0] [1 1 0] [1 1 0] 0(ql(x1)) = [0 1 0]x1 >= [0 1 0]x1 = ql(0(x1)) [0 0 0] [0 0 0] [1 0 0] [1 0 0] 1(ql(x1)) = [0 1 0]x1 >= [0 1 0]x1 = ql(1(x1)) [0 0 0] [0 0 0] [1 1 0] [1 1 0] b(ql(0(x1))) = [0 0 0]x1 >= [0 0 0]x1 = 0(b(r0(x1))) [0 0 0] [0 0 0] [1 0 0] [1 0 0] b(ql(1(x1))) = [0 0 0]x1 >= [0 0 0]x1 = 1(b(r1(x1))) [0 0 0] [0 0 0] problem: r0(0(x1)) -> 0(r0(x1)) r0(1(x1)) -> 1(r0(x1)) r1(0(x1)) -> 0(r1(x1)) r1(1(x1)) -> 1(r1(x1)) r1(m(x1)) -> m(r1(x1)) r0(b(x1)) -> qr(0(b(x1))) r1(b(x1)) -> qr(1(b(x1))) 0(qr(x1)) -> qr(0(x1)) 1(qr(x1)) -> qr(1(x1)) m(qr(x1)) -> ql(m(x1)) 0(ql(x1)) -> ql(0(x1)) 1(ql(x1)) -> ql(1(x1)) b(ql(0(x1))) -> 0(b(r0(x1))) b(ql(1(x1))) -> 1(b(r1(x1))) String Reversal Processor: 0(r0(x1)) -> r0(0(x1)) 1(r0(x1)) -> r0(1(x1)) 0(r1(x1)) -> r1(0(x1)) 1(r1(x1)) -> r1(1(x1)) m(r1(x1)) -> r1(m(x1)) b(r0(x1)) -> b(0(qr(x1))) b(r1(x1)) -> b(1(qr(x1))) qr(0(x1)) -> 0(qr(x1)) qr(1(x1)) -> 1(qr(x1)) qr(m(x1)) -> m(ql(x1)) ql(0(x1)) -> 0(ql(x1)) ql(1(x1)) -> 1(ql(x1)) 0(ql(b(x1))) -> r0(b(0(x1))) 1(ql(b(x1))) -> r1(b(1(x1))) Matrix Interpretation Processor: dim=2 interpretation: [1 0] [r1](x0) = [2 0]x0, [1 0] [0] [r0](x0) = [2 2]x0 + [2], [1 0] [m](x0) = [2 0]x0, [1 2] [0] [b](x0) = [1 1]x0 + [1], [0](x0) = x0, [1 0] [0] [ql](x0) = [3 1]x0 + [3], [1 0] [qr](x0) = [2 0]x0, [1](x0) = x0 orientation: [1 0] [0] [1 0] [0] 0(r0(x1)) = [2 2]x1 + [2] >= [2 2]x1 + [2] = r0(0(x1)) [1 0] [0] [1 0] [0] 1(r0(x1)) = [2 2]x1 + [2] >= [2 2]x1 + [2] = r0(1(x1)) [1 0] [1 0] 0(r1(x1)) = [2 0]x1 >= [2 0]x1 = r1(0(x1)) [1 0] [1 0] 1(r1(x1)) = [2 0]x1 >= [2 0]x1 = r1(1(x1)) [1 0] [1 0] m(r1(x1)) = [2 0]x1 >= [2 0]x1 = r1(m(x1)) [5 4] [4] [5 0] [0] b(r0(x1)) = [3 2]x1 + [3] >= [3 0]x1 + [1] = b(0(qr(x1))) [5 0] [0] [5 0] [0] b(r1(x1)) = [3 0]x1 + [1] >= [3 0]x1 + [1] = b(1(qr(x1))) [1 0] [1 0] qr(0(x1)) = [2 0]x1 >= [2 0]x1 = 0(qr(x1)) [1 0] [1 0] qr(1(x1)) = [2 0]x1 >= [2 0]x1 = 1(qr(x1)) [1 0] [1 0] qr(m(x1)) = [2 0]x1 >= [2 0]x1 = m(ql(x1)) [1 0] [0] [1 0] [0] ql(0(x1)) = [3 1]x1 + [3] >= [3 1]x1 + [3] = 0(ql(x1)) [1 0] [0] [1 0] [0] ql(1(x1)) = [3 1]x1 + [3] >= [3 1]x1 + [3] = 1(ql(x1)) [1 2] [0] [1 2] [0] 0(ql(b(x1))) = [4 7]x1 + [4] >= [4 6]x1 + [4] = r0(b(0(x1))) [1 2] [0] [1 2] 1(ql(b(x1))) = [4 7]x1 + [4] >= [2 4]x1 = r1(b(1(x1))) problem: 0(r0(x1)) -> r0(0(x1)) 1(r0(x1)) -> r0(1(x1)) 0(r1(x1)) -> r1(0(x1)) 1(r1(x1)) -> r1(1(x1)) m(r1(x1)) -> r1(m(x1)) b(r1(x1)) -> b(1(qr(x1))) qr(0(x1)) -> 0(qr(x1)) qr(1(x1)) -> 1(qr(x1)) qr(m(x1)) -> m(ql(x1)) ql(0(x1)) -> 0(ql(x1)) ql(1(x1)) -> 1(ql(x1)) 0(ql(b(x1))) -> r0(b(0(x1))) 1(ql(b(x1))) -> r1(b(1(x1))) Matrix Interpretation Processor: dim=1 interpretation: [r1](x0) = 2x0, [r0](x0) = x0 + 2, [m](x0) = x0, [b](x0) = 8x0 + 6, [0](x0) = x0, [ql](x0) = 2x0, [qr](x0) = 2x0, [1](x0) = x0 orientation: 0(r0(x1)) = x1 + 2 >= x1 + 2 = r0(0(x1)) 1(r0(x1)) = x1 + 2 >= x1 + 2 = r0(1(x1)) 0(r1(x1)) = 2x1 >= 2x1 = r1(0(x1)) 1(r1(x1)) = 2x1 >= 2x1 = r1(1(x1)) m(r1(x1)) = 2x1 >= 2x1 = r1(m(x1)) b(r1(x1)) = 16x1 + 6 >= 16x1 + 6 = b(1(qr(x1))) qr(0(x1)) = 2x1 >= 2x1 = 0(qr(x1)) qr(1(x1)) = 2x1 >= 2x1 = 1(qr(x1)) qr(m(x1)) = 2x1 >= 2x1 = m(ql(x1)) ql(0(x1)) = 2x1 >= 2x1 = 0(ql(x1)) ql(1(x1)) = 2x1 >= 2x1 = 1(ql(x1)) 0(ql(b(x1))) = 16x1 + 12 >= 8x1 + 8 = r0(b(0(x1))) 1(ql(b(x1))) = 16x1 + 12 >= 16x1 + 12 = r1(b(1(x1))) problem: 0(r0(x1)) -> r0(0(x1)) 1(r0(x1)) -> r0(1(x1)) 0(r1(x1)) -> r1(0(x1)) 1(r1(x1)) -> r1(1(x1)) m(r1(x1)) -> r1(m(x1)) b(r1(x1)) -> b(1(qr(x1))) qr(0(x1)) -> 0(qr(x1)) qr(1(x1)) -> 1(qr(x1)) qr(m(x1)) -> m(ql(x1)) ql(0(x1)) -> 0(ql(x1)) ql(1(x1)) -> 1(ql(x1)) 1(ql(b(x1))) -> r1(b(1(x1))) String Reversal Processor: r0(0(x1)) -> 0(r0(x1)) r0(1(x1)) -> 1(r0(x1)) r1(0(x1)) -> 0(r1(x1)) r1(1(x1)) -> 1(r1(x1)) r1(m(x1)) -> m(r1(x1)) r1(b(x1)) -> qr(1(b(x1))) 0(qr(x1)) -> qr(0(x1)) 1(qr(x1)) -> qr(1(x1)) m(qr(x1)) -> ql(m(x1)) 0(ql(x1)) -> ql(0(x1)) 1(ql(x1)) -> ql(1(x1)) b(ql(1(x1))) -> 1(b(r1(x1))) Matrix Interpretation Processor: dim=1 interpretation: [r1](x0) = x0 + 2, [r0](x0) = 2x0 + 1, [m](x0) = x0, [b](x0) = x0, [0](x0) = x0 + 1, [ql](x0) = x0 + 2, [qr](x0) = x0 + 2, [1](x0) = x0 orientation: r0(0(x1)) = 2x1 + 3 >= 2x1 + 2 = 0(r0(x1)) r0(1(x1)) = 2x1 + 1 >= 2x1 + 1 = 1(r0(x1)) r1(0(x1)) = x1 + 3 >= x1 + 3 = 0(r1(x1)) r1(1(x1)) = x1 + 2 >= x1 + 2 = 1(r1(x1)) r1(m(x1)) = x1 + 2 >= x1 + 2 = m(r1(x1)) r1(b(x1)) = x1 + 2 >= x1 + 2 = qr(1(b(x1))) 0(qr(x1)) = x1 + 3 >= x1 + 3 = qr(0(x1)) 1(qr(x1)) = x1 + 2 >= x1 + 2 = qr(1(x1)) m(qr(x1)) = x1 + 2 >= x1 + 2 = ql(m(x1)) 0(ql(x1)) = x1 + 3 >= x1 + 3 = ql(0(x1)) 1(ql(x1)) = x1 + 2 >= x1 + 2 = ql(1(x1)) b(ql(1(x1))) = x1 + 2 >= x1 + 2 = 1(b(r1(x1))) problem: r0(1(x1)) -> 1(r0(x1)) r1(0(x1)) -> 0(r1(x1)) r1(1(x1)) -> 1(r1(x1)) r1(m(x1)) -> m(r1(x1)) r1(b(x1)) -> qr(1(b(x1))) 0(qr(x1)) -> qr(0(x1)) 1(qr(x1)) -> qr(1(x1)) m(qr(x1)) -> ql(m(x1)) 0(ql(x1)) -> ql(0(x1)) 1(ql(x1)) -> ql(1(x1)) b(ql(1(x1))) -> 1(b(r1(x1))) String Reversal Processor: 1(r0(x1)) -> r0(1(x1)) 0(r1(x1)) -> r1(0(x1)) 1(r1(x1)) -> r1(1(x1)) m(r1(x1)) -> r1(m(x1)) b(r1(x1)) -> b(1(qr(x1))) qr(0(x1)) -> 0(qr(x1)) qr(1(x1)) -> 1(qr(x1)) qr(m(x1)) -> m(ql(x1)) ql(0(x1)) -> 0(ql(x1)) ql(1(x1)) -> 1(ql(x1)) 1(ql(b(x1))) -> r1(b(1(x1))) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [r1](x0) = [0 0 0]x0 [0 0 1] , [1 0 0] [1] [r0](x0) = [0 0 0]x0 + [0] [0 0 1] [1], [1 0 0] [m](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [b](x0) = [0 0 0]x0 [0 0 1] , [1 0 0] [0](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [ql](x0) = [1 0 0]x0 [0 0 1] , [1 0 0] [qr](x0) = [1 0 0]x0 [0 0 0] , [1 0 1] [1](x0) = [0 0 0]x0 [0 0 1] orientation: [1 0 1] [2] [1 0 1] [1] 1(r0(x1)) = [0 0 0]x1 + [0] >= [0 0 0]x1 + [0] = r0(1(x1)) [0 0 1] [1] [0 0 1] [1] [1 0 0] [1 0 0] 0(r1(x1)) = [0 0 0]x1 >= [0 0 0]x1 = r1(0(x1)) [0 0 0] [0 0 0] [1 0 1] [1 0 1] 1(r1(x1)) = [0 0 0]x1 >= [0 0 0]x1 = r1(1(x1)) [0 0 1] [0 0 1] [1 0 0] [1 0 0] m(r1(x1)) = [0 0 0]x1 >= [0 0 0]x1 = r1(m(x1)) [0 0 0] [0 0 0] [1 0 0] [1 0 0] b(r1(x1)) = [0 0 0]x1 >= [0 0 0]x1 = b(1(qr(x1))) [0 0 1] [0 0 0] [1 0 0] [1 0 0] qr(0(x1)) = [1 0 0]x1 >= [0 0 0]x1 = 0(qr(x1)) [0 0 0] [0 0 0] [1 0 1] [1 0 0] qr(1(x1)) = [1 0 1]x1 >= [0 0 0]x1 = 1(qr(x1)) [0 0 0] [0 0 0] [1 0 0] [1 0 0] qr(m(x1)) = [1 0 0]x1 >= [0 0 0]x1 = m(ql(x1)) [0 0 0] [0 0 0] [1 0 0] [1 0 0] ql(0(x1)) = [1 0 0]x1 >= [0 0 0]x1 = 0(ql(x1)) [0 0 0] [0 0 0] [1 0 1] [1 0 1] ql(1(x1)) = [1 0 1]x1 >= [0 0 0]x1 = 1(ql(x1)) [0 0 1] [0 0 1] [1 0 1] [1 0 1] 1(ql(b(x1))) = [0 0 0]x1 >= [0 0 0]x1 = r1(b(1(x1))) [0 0 1] [0 0 1] problem: 0(r1(x1)) -> r1(0(x1)) 1(r1(x1)) -> r1(1(x1)) m(r1(x1)) -> r1(m(x1)) b(r1(x1)) -> b(1(qr(x1))) qr(0(x1)) -> 0(qr(x1)) qr(1(x1)) -> 1(qr(x1)) qr(m(x1)) -> m(ql(x1)) ql(0(x1)) -> 0(ql(x1)) ql(1(x1)) -> 1(ql(x1)) 1(ql(b(x1))) -> r1(b(1(x1))) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [0] [r1](x0) = [0 0 1]x0 + [1] [0 1 0] [0], [1 1 1] [m](x0) = [1 1 0]x0 [1 0 1] , [1 0 0] [1] [b](x0) = [0 0 0]x0 + [0] [0 0 0] [0], [0](x0) = x0 , [ql](x0) = x0 , [qr](x0) = x0 , [1 0 0] [0] [1](x0) = [0 0 1]x0 + [1] [0 1 0] [0] orientation: [1 0 0] [0] [1 0 0] [0] 0(r1(x1)) = [0 0 1]x1 + [1] >= [0 0 1]x1 + [1] = r1(0(x1)) [0 1 0] [0] [0 1 0] [0] [0] [0] 1(r1(x1)) = x1 + [1] >= x1 + [1] = r1(1(x1)) [1] [1] [1 1 1] [1] [1 1 1] [0] m(r1(x1)) = [1 0 1]x1 + [1] >= [1 0 1]x1 + [1] = r1(m(x1)) [1 1 0] [0] [1 1 0] [0] [1 0 0] [1] [1 0 0] [1] b(r1(x1)) = [0 0 0]x1 + [0] >= [0 0 0]x1 + [0] = b(1(qr(x1))) [0 0 0] [0] [0 0 0] [0] qr(0(x1)) = x1 >= x1 = 0(qr(x1)) [1 0 0] [0] [1 0 0] [0] qr(1(x1)) = [0 0 1]x1 + [1] >= [0 0 1]x1 + [1] = 1(qr(x1)) [0 1 0] [0] [0 1 0] [0] [1 1 1] [1 1 1] qr(m(x1)) = [1 1 0]x1 >= [1 1 0]x1 = m(ql(x1)) [1 0 1] [1 0 1] ql(0(x1)) = x1 >= x1 = 0(ql(x1)) [1 0 0] [0] [1 0 0] [0] ql(1(x1)) = [0 0 1]x1 + [1] >= [0 0 1]x1 + [1] = 1(ql(x1)) [0 1 0] [0] [0 1 0] [0] [1 0 0] [1] [1 0 0] [1] 1(ql(b(x1))) = [0 0 0]x1 + [1] >= [0 0 0]x1 + [1] = r1(b(1(x1))) [0 0 0] [0] [0 0 0] [0] problem: 0(r1(x1)) -> r1(0(x1)) 1(r1(x1)) -> r1(1(x1)) b(r1(x1)) -> b(1(qr(x1))) qr(0(x1)) -> 0(qr(x1)) qr(1(x1)) -> 1(qr(x1)) qr(m(x1)) -> m(ql(x1)) ql(0(x1)) -> 0(ql(x1)) ql(1(x1)) -> 1(ql(x1)) 1(ql(b(x1))) -> r1(b(1(x1))) String Reversal Processor: r1(0(x1)) -> 0(r1(x1)) r1(1(x1)) -> 1(r1(x1)) r1(b(x1)) -> qr(1(b(x1))) 0(qr(x1)) -> qr(0(x1)) 1(qr(x1)) -> qr(1(x1)) m(qr(x1)) -> ql(m(x1)) 0(ql(x1)) -> ql(0(x1)) 1(ql(x1)) -> ql(1(x1)) b(ql(1(x1))) -> 1(b(r1(x1))) Bounds Processor: bound: 1 enrichment: match automaton: final states: {16,15,14,12,10,8,5,4,1} transitions: b0(2) -> 6* b0(3) -> 17* m0(2) -> 13* qr0(11) -> 10* qr0(9) -> 8* qr0(7) -> 5* 10(2) -> 11* 10(3) -> 4* 10(6) -> 7* 10(17) -> 16* f80() -> 2* r10(2) -> 3* 00(2) -> 9* 00(3) -> 1* qr1(22) -> 23* 11(26) -> 27* 11(32) -> 33* 01(21) -> 22* 01(30) -> 31* ql0(11) -> 15* ql0(13) -> 12* ql0(9) -> 14* 27 -> 22* 7 -> 26,21 12 -> 13* 14 -> 9* 16 -> 6* 4 -> 3* 22 -> 32,30 8 -> 9* 1 -> 3* 31 -> 22* 5 -> 3* 15 -> 11* 10 -> 11* 23 -> 4,1,3 33 -> 22* problem: Qed