YES We show the termination of the TRS R: D(t()) -> |1|() D(constant()) -> |0|() D(+(x,y)) -> +(D(x),D(y)) D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) D(-(x,y)) -> -(D(x),D(y)) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: D#(+(x,y)) -> D#(x) p2: D#(+(x,y)) -> D#(y) p3: D#(*(x,y)) -> D#(x) p4: D#(*(x,y)) -> D#(y) p5: D#(-(x,y)) -> D#(x) p6: D#(-(x,y)) -> D#(y) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: D#(+(x,y)) -> D#(x) p2: D#(-(x,y)) -> D#(y) p3: D#(-(x,y)) -> D#(x) p4: D#(*(x,y)) -> D#(y) p5: D#(*(x,y)) -> D#(x) p6: D#(+(x,y)) -> D#(y) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The set of usable rules consists of r1, r2, r3, r4, r5 Take the reduction pair: generalized weighted path order (>=MG, >G) base order 1: trivial reduction triple (T x T, T x T, Φ) base order 2: model-based reduction triple (=A, >=A!, >A!): finite algebra: carrier: {0,1} interpretations: D#_A(0) = 0 D#_A(1) = 0 +_A(0,0) = 0 +_A(0,1) = 0 +_A(1,0) = 1 +_A(1,1) = 1 -_A(0,0) = 0 -_A(0,1) = 0 -_A(1,0) = 1 -_A(1,1) = 1 *_A(0,0) = 1 *_A(0,1) = 0 *_A(1,0) = 0 *_A(1,1) = 1 D_A(0) = 1 D_A(1) = 0 t_A = 1 |1|_A = 0 constant_A = 1 |0|_A = 0 D#!_A(0) = 0 D#!_A(1) = 0 +!_A(0,0) = 0 +!_A(0,1) = 0 +!_A(1,0) = 0 +!_A(1,1) = 0 -!_A(0,0) = 1 -!_A(0,1) = 1 -!_A(1,0) = 1 -!_A(1,1) = 1 *!_A(0,0) = 1 *!_A(0,1) = 1 *!_A(1,0) = 1 *!_A(1,1) = 1 D!_A(0) = 1 D!_A(1) = 1 t!_A = 1 |1|!_A = 0 constant!_A = 1 |0|!_A = 1 partial status: pi(D#) = [1] pi(+) = [1, 2] pi(-) = [1, 2] pi(*) = [1, 2] pi(D) = [1] pi(t) = [] pi(|1|) = [] pi(constant) = [] pi(|0|) = [] The following rules are removed: p1, p4 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: D#(-(x,y)) -> D#(y) p2: D#(-(x,y)) -> D#(x) p3: D#(*(x,y)) -> D#(x) p4: D#(+(x,y)) -> D#(y) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: D#(-(x,y)) -> D#(y) p2: D#(+(x,y)) -> D#(y) p3: D#(*(x,y)) -> D#(x) p4: D#(-(x,y)) -> D#(x) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The set of usable rules consists of r1, r2, r3, r4, r5 Take the reduction pair: generalized weighted path order (>=MG, >G) base order 1: trivial reduction triple (T x T, T x T, Φ) base order 2: model-based reduction triple (=A, >=A!, >A!): finite algebra: carrier: {0,1} interpretations: D#_A(0) = 0 D#_A(1) = 0 -_A(0,0) = 0 -_A(0,1) = 0 -_A(1,0) = 1 -_A(1,1) = 1 +_A(0,0) = 0 +_A(0,1) = 0 +_A(1,0) = 1 +_A(1,1) = 1 *_A(0,0) = 1 *_A(0,1) = 0 *_A(1,0) = 0 *_A(1,1) = 1 D_A(0) = 1 D_A(1) = 0 t_A = 1 |1|_A = 0 constant_A = 1 |0|_A = 0 D#!_A(0) = 1 D#!_A(1) = 1 -!_A(0,0) = 0 -!_A(0,1) = 0 -!_A(1,0) = 0 -!_A(1,1) = 0 +!_A(0,0) = 0 +!_A(0,1) = 0 +!_A(1,0) = 0 +!_A(1,1) = 0 *!_A(0,0) = 0 *!_A(0,1) = 0 *!_A(1,0) = 1 *!_A(1,1) = 1 D!_A(0) = 0 D!_A(1) = 0 t!_A = 1 |1|!_A = 0 constant!_A = 1 |0|!_A = 0 partial status: pi(D#) = [1] pi(-) = [1, 2] pi(+) = [2] pi(*) = [1] pi(D) = [1] pi(t) = [] pi(|1|) = [] pi(constant) = [] pi(|0|) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: D#(+(x,y)) -> D#(y) p2: D#(*(x,y)) -> D#(x) p3: D#(-(x,y)) -> D#(x) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: D#(+(x,y)) -> D#(y) p2: D#(-(x,y)) -> D#(x) p3: D#(*(x,y)) -> D#(x) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The set of usable rules consists of r1, r2, r3, r4, r5 Take the reduction pair: generalized weighted path order (>=MG, >G) base order 1: trivial reduction triple (T x T, T x T, Φ) base order 2: model-based reduction triple (=A, >=A!, >A!): finite algebra: carrier: {0,1} interpretations: D#_A(0) = 0 D#_A(1) = 0 +_A(0,0) = 1 +_A(0,1) = 1 +_A(1,0) = 0 +_A(1,1) = 0 -_A(0,0) = 0 -_A(0,1) = 0 -_A(1,0) = 1 -_A(1,1) = 1 *_A(0,0) = 1 *_A(0,1) = 1 *_A(1,0) = 1 *_A(1,1) = 1 D_A(0) = 1 D_A(1) = 0 t_A = 1 |1|_A = 0 constant_A = 0 |0|_A = 1 D#!_A(0) = 0 D#!_A(1) = 0 +!_A(0,0) = 0 +!_A(0,1) = 0 +!_A(1,0) = 0 +!_A(1,1) = 0 -!_A(0,0) = 1 -!_A(0,1) = 1 -!_A(1,0) = 1 -!_A(1,1) = 1 *!_A(0,0) = 0 *!_A(0,1) = 0 *!_A(1,0) = 0 *!_A(1,1) = 0 D!_A(0) = 1 D!_A(1) = 1 t!_A = 1 |1|!_A = 0 constant!_A = 1 |0|!_A = 1 partial status: pi(D#) = [1] pi(+) = [2] pi(-) = [1, 2] pi(*) = [1] pi(D) = [1] pi(t) = [] pi(|1|) = [] pi(constant) = [] pi(|0|) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: D#(-(x,y)) -> D#(x) p2: D#(*(x,y)) -> D#(x) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: D#(-(x,y)) -> D#(x) p2: D#(*(x,y)) -> D#(x) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The set of usable rules consists of r1, r2, r3, r4, r5 Take the reduction pair: generalized weighted path order (>=MG, >G) base order 1: trivial reduction triple (T x T, T x T, Φ) base order 2: model-based reduction triple (=A, >=A!, >A!): finite algebra: carrier: {0,1} interpretations: D#_A(0) = 0 D#_A(1) = 0 -_A(0,0) = 0 -_A(0,1) = 0 -_A(1,0) = 1 -_A(1,1) = 1 *_A(0,0) = 1 *_A(0,1) = 0 *_A(1,0) = 0 *_A(1,1) = 1 D_A(0) = 1 D_A(1) = 0 t_A = 1 |1|_A = 0 constant_A = 1 |0|_A = 0 +_A(0,0) = 0 +_A(0,1) = 0 +_A(1,0) = 1 +_A(1,1) = 1 D#!_A(0) = 0 D#!_A(1) = 0 -!_A(0,0) = 1 -!_A(0,1) = 1 -!_A(1,0) = 1 -!_A(1,1) = 1 *!_A(0,0) = 0 *!_A(0,1) = 0 *!_A(1,0) = 1 *!_A(1,1) = 1 D!_A(0) = 1 D!_A(1) = 1 t!_A = 0 |1|!_A = 1 constant!_A = 1 |0|!_A = 1 +!_A(0,0) = 0 +!_A(0,1) = 1 +!_A(1,0) = 0 +!_A(1,1) = 0 partial status: pi(D#) = [1] pi(-) = [1] pi(*) = [1] pi(D) = [1] pi(t) = [] pi(|1|) = [] pi(constant) = [] pi(|0|) = [] pi(+) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: D#(*(x,y)) -> D#(x) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: D#(*(x,y)) -> D#(x) and R consists of: r1: D(t()) -> |1|() r2: D(constant()) -> |0|() r3: D(+(x,y)) -> +(D(x),D(y)) r4: D(*(x,y)) -> +(*(y,D(x)),*(x,D(y))) r5: D(-(x,y)) -> -(D(x),D(y)) The set of usable rules consists of r1, r2, r3, r4, r5 Take the reduction pair: generalized weighted path order (>=MG, >G) base order 1: trivial reduction triple (T x T, T x T, Φ) base order 2: model-based reduction triple (=A, >=A!, >A!): finite algebra: carrier: {0,1} interpretations: D#_A(0) = 0 D#_A(1) = 0 *_A(0,0) = 1 *_A(0,1) = 0 *_A(1,0) = 0 *_A(1,1) = 1 D_A(0) = 1 D_A(1) = 0 t_A = 1 |1|_A = 0 constant_A = 1 |0|_A = 0 +_A(0,0) = 0 +_A(0,1) = 0 +_A(1,0) = 1 +_A(1,1) = 1 -_A(0,0) = 0 -_A(0,1) = 0 -_A(1,0) = 1 -_A(1,1) = 1 D#!_A(0) = 1 D#!_A(1) = 1 *!_A(0,0) = 1 *!_A(0,1) = 1 *!_A(1,0) = 1 *!_A(1,1) = 1 D!_A(0) = 0 D!_A(1) = 0 t!_A = 0 |1|!_A = 0 constant!_A = 1 |0|!_A = 0 +!_A(0,0) = 1 +!_A(0,1) = 0 +!_A(1,0) = 0 +!_A(1,1) = 1 -!_A(0,0) = 0 -!_A(0,1) = 0 -!_A(1,0) = 0 -!_A(1,1) = 0 partial status: pi(D#) = [1] pi(*) = [1] pi(D) = [1] pi(t) = [] pi(|1|) = [] pi(constant) = [] pi(|0|) = [] pi(+) = [] pi(-) = [2] The following rules are removed: p1 Then no dependency pair remains.