YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) QTRS Reverse [EQUIVALENT, 0 ms] (2) QTRS (3) RFCMatchBoundsTRSProof [EQUIVALENT, 21 ms] (4) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: active(f(f(a))) -> mark(c(f(g(f(a))))) active(f(X)) -> f(active(X)) active(g(X)) -> g(active(X)) f(mark(X)) -> mark(f(X)) g(mark(X)) -> mark(g(X)) proper(f(X)) -> f(proper(X)) proper(a) -> ok(a) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) f(ok(X)) -> ok(f(X)) c(ok(X)) -> ok(c(X)) g(ok(X)) -> ok(g(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Q is empty. ---------------------------------------- (1) QTRS Reverse (EQUIVALENT) We applied the QTRS Reverse Processor [REVERSE]. ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: a'(f(f(active(x)))) -> a'(f(g(f(c(mark(x)))))) f(active(X)) -> active(f(X)) g(active(X)) -> active(g(X)) mark(f(X)) -> f(mark(X)) mark(g(X)) -> g(mark(X)) f(proper(X)) -> proper(f(X)) a'(proper(x)) -> a'(ok(x)) c(proper(X)) -> proper(c(X)) g(proper(X)) -> proper(g(X)) ok(f(X)) -> f(ok(X)) ok(c(X)) -> c(ok(X)) ok(g(X)) -> g(ok(X)) mark(top(X)) -> proper(top(X)) ok(top(X)) -> active(top(X)) Q is empty. ---------------------------------------- (3) RFCMatchBoundsTRSProof (EQUIVALENT) Termination of the TRS R could be shown with a Match Bound [MATCHBOUNDS1,MATCHBOUNDS2] of 6. This implies Q-termination of R. The following rules were used to construct the certificate: a'(f(f(active(x)))) -> a'(f(g(f(c(mark(x)))))) f(active(X)) -> active(f(X)) g(active(X)) -> active(g(X)) mark(f(X)) -> f(mark(X)) mark(g(X)) -> g(mark(X)) f(proper(X)) -> proper(f(X)) a'(proper(x)) -> a'(ok(x)) c(proper(X)) -> proper(c(X)) g(proper(X)) -> proper(g(X)) ok(f(X)) -> f(ok(X)) ok(c(X)) -> c(ok(X)) ok(g(X)) -> g(ok(X)) mark(top(X)) -> proper(top(X)) ok(top(X)) -> active(top(X)) The certificate found is represented by the following graph. The certificate consists of the following enumerated nodes: 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 65, 66, 75, 76, 81, 83, 89, 90, 94, 95, 97, 98 Node 21 is start node and node 22 is final node. Those nodes are connected through the following edges: * 21 to 23 labelled a'_1(0), f_1(0), c_1(0), g_1(0)* 21 to 28 labelled active_1(0), proper_1(0)* 21 to 27 labelled f_1(0), g_1(0)* 21 to 33 labelled active_1(1), proper_1(1)* 21 to 37 labelled a'_1(1)* 21 to 56 labelled a'_1(2)* 22 to 22 labelled #_1(0)* 23 to 24 labelled f_1(0)* 23 to 22 labelled ok_1(0)* 23 to 29 labelled f_1(1), c_1(1), g_1(1)* 23 to 30 labelled active_1(1)* 23 to 35 labelled active_1(2)* 23 to 45 labelled proper_1(1)* 24 to 25 labelled g_1(0)* 24 to 42 labelled proper_1(1)* 25 to 26 labelled f_1(0)* 25 to 36 labelled proper_1(1)* 26 to 27 labelled c_1(0)* 26 to 34 labelled proper_1(1)* 27 to 22 labelled mark_1(0)* 27 to 31 labelled f_1(1), g_1(1)* 27 to 30 labelled proper_1(1)* 27 to 35 labelled proper_1(2)* 28 to 22 labelled f_1(0), g_1(0), c_1(0), top_1(0)* 28 to 32 labelled active_1(1), proper_1(1)* 29 to 22 labelled ok_1(1)* 29 to 29 labelled f_1(1), c_1(1), g_1(1)* 29 to 30 labelled active_1(1)* 29 to 35 labelled active_1(2)* 30 to 22 labelled top_1(1)* 31 to 22 labelled mark_1(1)* 31 to 31 labelled f_1(1), g_1(1)* 31 to 30 labelled proper_1(1)* 31 to 35 labelled proper_1(2)* 32 to 22 labelled f_1(1), g_1(1), c_1(1)* 32 to 32 labelled active_1(1), proper_1(1)* 33 to 30 labelled f_1(1), g_1(1)* 33 to 35 labelled f_1(1), g_1(1)* 33 to 45 labelled f_1(1), c_1(1), g_1(1)* 34 to 30 labelled c_1(1)* 34 to 35 labelled c_1(1)* 35 to 30 labelled f_1(2), g_1(2)* 35 to 35 labelled f_1(2), g_1(2)* 36 to 34 labelled f_1(1)* 37 to 38 labelled f_1(1)* 37 to 45 labelled ok_1(1)* 37 to 51 labelled f_1(2)* 37 to 54 labelled proper_1(2)* 38 to 39 labelled g_1(1)* 38 to 52 labelled proper_1(2)* 39 to 40 labelled f_1(1)* 39 to 49 labelled proper_1(2)* 40 to 41 labelled c_1(1)* 40 to 46 labelled proper_1(2)* 41 to 30 labelled mark_1(1)* 41 to 43 labelled proper_1(2)* 41 to 35 labelled mark_1(1)* 41 to 47 labelled f_1(2), g_1(2)* 41 to 53 labelled proper_1(3)* 42 to 36 labelled g_1(1)* 43 to 22 labelled top_1(2)* 45 to 42 labelled f_1(1)* 46 to 43 labelled c_1(2)* 46 to 53 labelled c_1(2)* 47 to 30 labelled mark_1(2)* 47 to 35 labelled mark_1(2)* 47 to 43 labelled proper_1(2)* 47 to 50 labelled f_1(3), g_1(3)* 47 to 53 labelled proper_1(3)* 47 to 57 labelled proper_1(4)* 49 to 46 labelled f_1(2)* 50 to 30 labelled mark_1(3)* 50 to 35 labelled mark_1(3)* 50 to 43 labelled proper_1(2)* 50 to 50 labelled f_1(3), g_1(3)* 50 to 53 labelled proper_1(3)* 50 to 57 labelled proper_1(4)* 51 to 42 labelled ok_1(2)* 51 to 55 labelled g_1(2)* 52 to 49 labelled g_1(2)* 53 to 43 labelled f_1(3), g_1(3)* 53 to 53 labelled f_1(3), g_1(3)* 53 to 57 labelled f_1(3), g_1(3)* 54 to 52 labelled f_1(2)* 55 to 36 labelled ok_1(2)* 55 to 58 labelled f_1(2)* 56 to 54 labelled ok_1(2)* 56 to 65 labelled f_1(3)* 57 to 53 labelled f_1(4), g_1(4)* 57 to 57 labelled f_1(4), g_1(4)* 58 to 34 labelled ok_1(2)* 58 to 66 labelled c_1(2)* 65 to 52 labelled ok_1(3)* 65 to 76 labelled g_1(3)* 66 to 30 labelled ok_1(2)* 66 to 35 labelled ok_1(2)* 66 to 43 labelled active_1(2)* 66 to 75 labelled f_1(3), g_1(3)* 66 to 53 labelled active_1(3)* 66 to 57 labelled active_1(4)* 75 to 30 labelled ok_1(3)* 75 to 35 labelled ok_1(3)* 75 to 43 labelled active_1(2)* 75 to 75 labelled f_1(3), g_1(3)* 75 to 53 labelled active_1(3)* 75 to 57 labelled active_1(4)* 76 to 49 labelled ok_1(3)* 76 to 81 labelled f_1(3)* 81 to 46 labelled ok_1(3)* 81 to 83 labelled c_1(3)* 83 to 43 labelled ok_1(3)* 83 to 53 labelled ok_1(3)* 83 to 89 labelled active_1(3)* 83 to 90 labelled f_1(4), g_1(4)* 83 to 95 labelled active_1(4)* 83 to 97 labelled active_1(5)* 89 to 22 labelled top_1(3)* 90 to 43 labelled ok_1(4)* 90 to 53 labelled ok_1(4)* 90 to 57 labelled ok_1(4)* 90 to 89 labelled active_1(3)* 90 to 90 labelled f_1(4), g_1(4)* 90 to 94 labelled f_1(5), g_1(5)* 90 to 95 labelled active_1(4)* 90 to 97 labelled active_1(5)* 90 to 98 labelled active_1(6)* 94 to 53 labelled ok_1(5)* 94 to 57 labelled ok_1(5)* 94 to 90 labelled f_1(4), g_1(4)* 94 to 94 labelled f_1(5), g_1(5)* 94 to 95 labelled active_1(4)* 94 to 97 labelled active_1(5)* 94 to 98 labelled active_1(6)* 95 to 89 labelled f_1(4), g_1(4)* 97 to 95 labelled f_1(5), g_1(5)* 97 to 97 labelled f_1(5), g_1(5)* 97 to 98 labelled f_1(5), g_1(5)* 98 to 97 labelled f_1(6), g_1(6)* 98 to 98 labelled f_1(6), g_1(6) ---------------------------------------- (4) YES