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 [SOUND, 0 ms] (2) QTRS (3) RFCMatchBoundsTRSProof [EQUIVALENT, 17 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)) The set Q consists of the following terms: active(f(x0)) active(g(x0)) f(mark(x0)) g(mark(x0)) proper(f(x0)) proper(a) proper(c(x0)) proper(g(x0)) f(ok(x0)) c(ok(x0)) g(ok(x0)) top(mark(x0)) top(ok(x0)) ---------------------------------------- (1) QTRS Reverse (SOUND) 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: 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 97, 98, 102, 103, 105, 106 Node 50 is start node and node 51 is final node. Those nodes are connected through the following edges: * 50 to 52 labelled a'_1(0), f_1(0), c_1(0), g_1(0)* 50 to 57 labelled active_1(0), proper_1(0)* 50 to 56 labelled f_1(0), g_1(0)* 50 to 62 labelled active_1(1), proper_1(1)* 50 to 67 labelled a'_1(1)* 50 to 85 labelled a'_1(2)* 51 to 51 labelled #_1(0)* 52 to 53 labelled f_1(0)* 52 to 51 labelled ok_1(0)* 52 to 58 labelled f_1(1), c_1(1), g_1(1)* 52 to 59 labelled active_1(1)* 52 to 65 labelled active_1(2)* 52 to 74 labelled proper_1(1)* 53 to 54 labelled g_1(0)* 53 to 72 labelled proper_1(1)* 54 to 55 labelled f_1(0)* 54 to 66 labelled proper_1(1)* 55 to 56 labelled c_1(0)* 55 to 63 labelled proper_1(1)* 56 to 51 labelled mark_1(0)* 56 to 60 labelled f_1(1), g_1(1)* 56 to 59 labelled proper_1(1)* 56 to 65 labelled proper_1(2)* 57 to 51 labelled f_1(0), g_1(0), c_1(0), top_1(0)* 57 to 61 labelled active_1(1), proper_1(1)* 58 to 51 labelled ok_1(1)* 58 to 58 labelled f_1(1), c_1(1), g_1(1)* 58 to 59 labelled active_1(1)* 58 to 65 labelled active_1(2)* 59 to 51 labelled top_1(1)* 60 to 51 labelled mark_1(1)* 60 to 60 labelled f_1(1), g_1(1)* 60 to 59 labelled proper_1(1)* 60 to 65 labelled proper_1(2)* 61 to 51 labelled f_1(1), g_1(1), c_1(1)* 61 to 61 labelled active_1(1), proper_1(1)* 62 to 59 labelled f_1(1), g_1(1)* 62 to 65 labelled f_1(1), g_1(1)* 62 to 74 labelled f_1(1), c_1(1), g_1(1)* 63 to 59 labelled c_1(1)* 63 to 65 labelled c_1(1)* 65 to 59 labelled f_1(2), g_1(2)* 65 to 65 labelled f_1(2), g_1(2)* 66 to 63 labelled f_1(1)* 67 to 68 labelled f_1(1)* 67 to 74 labelled ok_1(1)* 67 to 80 labelled f_1(2)* 67 to 83 labelled proper_1(2)* 68 to 69 labelled g_1(1)* 68 to 81 labelled proper_1(2)* 69 to 70 labelled f_1(1)* 69 to 78 labelled proper_1(2)* 70 to 71 labelled c_1(1)* 70 to 75 labelled proper_1(2)* 71 to 59 labelled mark_1(1)* 71 to 73 labelled proper_1(2)* 71 to 65 labelled mark_1(1)* 71 to 76 labelled f_1(2), g_1(2)* 71 to 82 labelled proper_1(3)* 72 to 66 labelled g_1(1)* 73 to 51 labelled top_1(2)* 74 to 72 labelled f_1(1)* 75 to 73 labelled c_1(2)* 75 to 82 labelled c_1(2)* 76 to 59 labelled mark_1(2)* 76 to 65 labelled mark_1(2)* 76 to 73 labelled proper_1(2)* 76 to 79 labelled f_1(3), g_1(3)* 76 to 82 labelled proper_1(3)* 76 to 86 labelled proper_1(4)* 78 to 75 labelled f_1(2)* 79 to 59 labelled mark_1(3)* 79 to 65 labelled mark_1(3)* 79 to 73 labelled proper_1(2)* 79 to 79 labelled f_1(3), g_1(3)* 79 to 82 labelled proper_1(3)* 79 to 86 labelled proper_1(4)* 80 to 72 labelled ok_1(2)* 80 to 84 labelled g_1(2)* 81 to 78 labelled g_1(2)* 82 to 73 labelled f_1(3), g_1(3)* 82 to 82 labelled f_1(3), g_1(3)* 82 to 86 labelled f_1(3), g_1(3)* 83 to 81 labelled f_1(2)* 84 to 66 labelled ok_1(2)* 84 to 87 labelled f_1(2)* 85 to 83 labelled ok_1(2)* 85 to 88 labelled f_1(3)* 86 to 82 labelled f_1(4), g_1(4)* 86 to 86 labelled f_1(4), g_1(4)* 87 to 63 labelled ok_1(2)* 87 to 89 labelled c_1(2)* 88 to 81 labelled ok_1(3)* 88 to 91 labelled g_1(3)* 89 to 59 labelled ok_1(2)* 89 to 65 labelled ok_1(2)* 89 to 73 labelled active_1(2)* 89 to 90 labelled f_1(3), g_1(3)* 89 to 82 labelled active_1(3)* 89 to 86 labelled active_1(4)* 90 to 59 labelled ok_1(3)* 90 to 65 labelled ok_1(3)* 90 to 73 labelled active_1(2)* 90 to 90 labelled f_1(3), g_1(3)* 90 to 82 labelled active_1(3)* 90 to 86 labelled active_1(4)* 91 to 78 labelled ok_1(3)* 91 to 92 labelled f_1(3)* 92 to 75 labelled ok_1(3)* 92 to 93 labelled c_1(3)* 93 to 73 labelled ok_1(3)* 93 to 82 labelled ok_1(3)* 93 to 97 labelled active_1(3)* 93 to 98 labelled f_1(4), g_1(4)* 93 to 103 labelled active_1(4)* 93 to 105 labelled active_1(5)* 97 to 51 labelled top_1(3)* 98 to 73 labelled ok_1(4)* 98 to 82 labelled ok_1(4)* 98 to 86 labelled ok_1(4)* 98 to 97 labelled active_1(3)* 98 to 98 labelled f_1(4), g_1(4)* 98 to 102 labelled f_1(5), g_1(5)* 98 to 103 labelled active_1(4)* 98 to 105 labelled active_1(5)* 98 to 106 labelled active_1(6)* 102 to 82 labelled ok_1(5)* 102 to 86 labelled ok_1(5)* 102 to 98 labelled f_1(4), g_1(4)* 102 to 102 labelled f_1(5), g_1(5)* 102 to 103 labelled active_1(4)* 102 to 105 labelled active_1(5)* 102 to 106 labelled active_1(6)* 103 to 97 labelled f_1(4), g_1(4)* 105 to 103 labelled f_1(5), g_1(5)* 105 to 105 labelled f_1(5), g_1(5)* 105 to 106 labelled f_1(5), g_1(5)* 106 to 105 labelled f_1(6), g_1(6)* 106 to 106 labelled f_1(6), g_1(6) ---------------------------------------- (4) YES