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, 0 ms] (4) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: active(f(f(a))) -> mark(f(g(f(a)))) active(f(X)) -> f(active(X)) f(mark(X)) -> mark(f(X)) proper(f(X)) -> f(proper(X)) proper(a) -> ok(a) proper(g(X)) -> g(proper(X)) f(ok(X)) -> ok(f(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(mark(x))))) f(active(X)) -> active(f(X)) mark(f(X)) -> f(mark(X)) f(proper(X)) -> proper(f(X)) a'(proper(x)) -> a'(ok(x)) g(proper(X)) -> proper(g(X)) ok(f(X)) -> f(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(mark(x))))) f(active(X)) -> active(f(X)) mark(f(X)) -> f(mark(X)) f(proper(X)) -> proper(f(X)) a'(proper(x)) -> a'(ok(x)) g(proper(X)) -> proper(g(X)) ok(f(X)) -> f(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: 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 31, 32, 33, 34, 35, 36, 43, 44, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 67, 72, 73, 75, 77, 80, 81 Node 8 is start node and node 9 is final node. Those nodes are connected through the following edges: * 8 to 16 labelled a'_1(0), f_1(0), g_1(0)* 8 to 20 labelled active_1(0), proper_1(0)* 8 to 19 labelled f_1(0)* 8 to 27 labelled active_1(1), proper_1(1)* 8 to 33 labelled a'_1(1)* 8 to 56 labelled a'_1(2)* 9 to 9 labelled #_1(0)* 16 to 17 labelled f_1(0)* 16 to 9 labelled ok_1(0)* 16 to 21 labelled f_1(1), g_1(1)* 16 to 22 labelled active_1(1)* 16 to 31 labelled active_1(2)* 16 to 43 labelled proper_1(1)* 17 to 18 labelled g_1(0)* 17 to 32 labelled proper_1(1)* 18 to 19 labelled f_1(0)* 18 to 27 labelled proper_1(1)* 19 to 9 labelled mark_1(0)* 19 to 23 labelled f_1(1)* 19 to 22 labelled proper_1(1)* 19 to 31 labelled proper_1(2)* 20 to 9 labelled f_1(0), g_1(0), top_1(0)* 20 to 24 labelled active_1(1), proper_1(1)* 21 to 9 labelled ok_1(1)* 21 to 21 labelled f_1(1), g_1(1)* 21 to 22 labelled active_1(1)* 21 to 31 labelled active_1(2)* 22 to 9 labelled top_1(1)* 23 to 9 labelled mark_1(1)* 23 to 23 labelled f_1(1)* 23 to 22 labelled proper_1(1)* 23 to 31 labelled proper_1(2)* 24 to 9 labelled f_1(1), g_1(1)* 24 to 24 labelled active_1(1), proper_1(1)* 27 to 22 labelled f_1(1)* 27 to 31 labelled f_1(1)* 27 to 43 labelled f_1(1), g_1(1)* 31 to 22 labelled f_1(2)* 31 to 31 labelled f_1(2)* 32 to 27 labelled g_1(1)* 33 to 34 labelled f_1(1)* 33 to 43 labelled ok_1(1)* 33 to 50 labelled f_1(2)* 33 to 53 labelled proper_1(2)* 34 to 35 labelled g_1(1)* 34 to 51 labelled proper_1(2)* 35 to 36 labelled f_1(1)* 35 to 47 labelled proper_1(2)* 36 to 22 labelled mark_1(1)* 36 to 44 labelled proper_1(2)* 36 to 31 labelled mark_1(1)* 36 to 48 labelled f_1(2)* 36 to 54 labelled proper_1(3)* 43 to 32 labelled f_1(1)* 44 to 9 labelled top_1(2)* 47 to 44 labelled f_1(2)* 47 to 54 labelled f_1(2)* 48 to 22 labelled mark_1(2)* 48 to 31 labelled mark_1(2)* 48 to 44 labelled proper_1(2)* 48 to 52 labelled f_1(3)* 48 to 54 labelled proper_1(3)* 48 to 59 labelled proper_1(4)* 50 to 32 labelled ok_1(2)* 50 to 55 labelled g_1(2)* 51 to 47 labelled g_1(2)* 52 to 22 labelled mark_1(3)* 52 to 31 labelled mark_1(3)* 52 to 44 labelled proper_1(2)* 52 to 52 labelled f_1(3)* 52 to 54 labelled proper_1(3)* 52 to 59 labelled proper_1(4)* 53 to 51 labelled f_1(2)* 54 to 44 labelled f_1(3)* 54 to 54 labelled f_1(3)* 54 to 59 labelled f_1(3)* 55 to 27 labelled ok_1(2)* 55 to 57 labelled f_1(2), g_1(2)* 55 to 54 labelled active_1(3)* 56 to 53 labelled ok_1(2)* 56 to 60 labelled f_1(3)* 57 to 22 labelled ok_1(2)* 57 to 31 labelled ok_1(2)* 57 to 43 labelled ok_1(2)* 57 to 50 labelled f_1(2)* 57 to 44 labelled active_1(2)* 57 to 58 labelled f_1(3)* 57 to 54 labelled active_1(3)* 57 to 59 labelled active_1(4)* 58 to 22 labelled ok_1(3)* 58 to 31 labelled ok_1(3)* 58 to 44 labelled active_1(2)* 58 to 58 labelled f_1(3)* 58 to 54 labelled active_1(3)* 58 to 59 labelled active_1(4)* 59 to 54 labelled f_1(4)* 59 to 59 labelled f_1(4)* 60 to 51 labelled ok_1(3)* 60 to 61 labelled g_1(3)* 61 to 47 labelled ok_1(3)* 61 to 67 labelled f_1(3)* 61 to 75 labelled active_1(4)* 67 to 44 labelled ok_1(3)* 67 to 54 labelled ok_1(3)* 67 to 72 labelled active_1(3)* 67 to 73 labelled f_1(4)* 67 to 75 labelled active_1(4)* 67 to 80 labelled active_1(5)* 72 to 9 labelled top_1(3)* 73 to 44 labelled ok_1(4)* 73 to 54 labelled ok_1(4)* 73 to 59 labelled ok_1(4)* 73 to 72 labelled active_1(3)* 73 to 73 labelled f_1(4)* 73 to 77 labelled f_1(5)* 73 to 75 labelled active_1(4)* 73 to 80 labelled active_1(5)* 73 to 81 labelled active_1(6)* 75 to 72 labelled f_1(4)* 75 to 75 labelled f_1(4)* 75 to 80 labelled f_1(4)* 77 to 54 labelled ok_1(5)* 77 to 59 labelled ok_1(5)* 77 to 73 labelled f_1(4)* 77 to 77 labelled f_1(5)* 77 to 75 labelled active_1(4)* 77 to 80 labelled active_1(5)* 77 to 81 labelled active_1(6)* 80 to 75 labelled f_1(5)* 80 to 80 labelled f_1(5)* 80 to 81 labelled f_1(5)* 81 to 80 labelled f_1(6)* 81 to 81 labelled f_1(6) ---------------------------------------- (4) YES