3.64/2.76 NO 3.64/2.76 We consider the system theBenchmark. 3.64/2.76 3.64/2.76 Alphabet: 3.64/2.76 3.64/2.76 cons : [d * e] --> e 3.64/2.76 f : [b * b * b] --> a 3.64/2.76 false : [] --> c 3.64/2.76 filter : [d -> c * e] --> e 3.64/2.76 filter2 : [c * d -> c * d * e] --> e 3.64/2.76 g : [b * b] --> b 3.64/2.76 map : [d -> d * e] --> e 3.64/2.76 nil : [] --> e 3.64/2.76 true : [] --> c 3.64/2.76 3.64/2.76 Rules: 3.64/2.76 3.64/2.76 f(g(x, y), x, z) => f(z, z, z) 3.64/2.76 g(x, y) => x 3.64/2.76 g(x, y) => y 3.64/2.76 map(h, nil) => nil 3.64/2.76 map(h, cons(x, y)) => cons(h x, map(h, y)) 3.64/2.76 filter(h, nil) => nil 3.64/2.76 filter(h, cons(x, y)) => filter2(h x, h, x, y) 3.64/2.76 filter2(true, h, x, y) => cons(x, filter(h, y)) 3.64/2.76 filter2(false, h, x, y) => filter(h, y) 3.64/2.76 3.64/2.76 This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). 3.64/2.76 3.64/2.76 This system is non-terminating, as demonstrated by our external first-order non-termination checker: 3.64/2.76 3.64/2.76 || The following well-typed term is terminating: f(g(%X', %Y), g(%X', %Y), g(%X', %Y)) 3.64/2.76 || 3.64/2.76 || proof of resources/system.trs 3.64/2.76 || # AProVE Commit ID: 500ec9b2e2a919720cb177ef26031cb0220e008e fuhs 20130603 3.64/2.76 || 3.64/2.76 || 3.64/2.76 || Termination w.r.t. Q of the given QTRS could be disproven: 3.64/2.76 || 3.64/2.76 || (0) QTRS 3.64/2.76 || (1) NonTerminationProof [EQUIVALENT, 0 ms] 3.64/2.76 || (2) NO 3.64/2.76 || 3.64/2.76 || 3.64/2.76 || ---------------------------------------- 3.64/2.76 || 3.64/2.76 || (0) 3.64/2.76 || Obligation: 3.64/2.76 || Q restricted rewrite system: 3.64/2.76 || The TRS R consists of the following rules: 3.64/2.76 || 3.64/2.76 || f(g(%X, %Y), %X, %Z) -> f(%Z, %Z, %Z) 3.64/2.76 || g(%X, %Y) -> %X 3.64/2.76 || g(%X, %Y) -> %Y 3.64/2.76 || 3.64/2.76 || Q is empty. 3.64/2.76 || 3.64/2.76 || ---------------------------------------- 3.64/2.76 || 3.64/2.76 || (1) NonTerminationProof (EQUIVALENT) 3.64/2.76 || The following loops were found: 3.64/2.76 || 3.64/2.76 || ---------- Loop: ---------- 3.64/2.76 || 3.64/2.76 || f(g(%X', %Y), g(%X', %Y), g(%X', %Y)) -> f(g(%X', %Y), %X', g(%X', %Y)) with rule g(%X'', %Y') -> %X'' at position [1] and matcher [%X'' / %X', %Y' / %Y] 3.64/2.76 || 3.64/2.76 || f(g(%X', %Y), %X', g(%X', %Y)) -> f(g(%X', %Y), g(%X', %Y), g(%X', %Y)) with rule f(g(%X, %Y'), %X, %Z) -> f(%Z, %Z, %Z) at position [] and matcher [%X / %X', %Y' / %Y, %Z / g(%X', %Y)] 3.64/2.76 || 3.64/2.76 || Now an instance of the first term with Matcher [ ] occurs in the last term at position []. 3.64/2.76 || 3.64/2.76 || Context: [] 3.64/2.76 || 3.64/2.76 || 3.64/2.76 || ---------------------------------------- 3.64/2.76 || 3.64/2.76 || (2) 3.64/2.76 || NO 3.64/2.76 || 3.64/2.76 EOF