YES
0 QTRS
↳1 AAECC Innermost (⇔, 0 ms)
↳2 QTRS
↳3 DependencyPairsProof (⇔, 0 ms)
↳4 QDP
↳5 DependencyGraphProof (⇔, 0 ms)
↳6 AND
↳7 QDP
↳8 UsableRulesProof (⇔, 0 ms)
↳9 QDP
↳10 QReductionProof (⇔, 0 ms)
↳11 QDP
↳12 QDPSizeChangeProof (⇔, 0 ms)
↳13 YES
↳14 QDP
↳15 UsableRulesProof (⇔, 0 ms)
↳16 QDP
↳17 QReductionProof (⇔, 0 ms)
↳18 QDP
↳19 QDPSizeChangeProof (⇔, 0 ms)
↳20 YES
↳21 QDP
↳22 UsableRulesProof (⇔, 0 ms)
↳23 QDP
↳24 QReductionProof (⇔, 0 ms)
↳25 QDP
↳26 TransformationProof (⇔, 0 ms)
↳27 QDP
↳28 TransformationProof (⇔, 0 ms)
↳29 QDP
↳30 TransformationProof (⇔, 0 ms)
↳31 QDP
↳32 TransformationProof (⇔, 0 ms)
↳33 QDP
↳34 DependencyGraphProof (⇔, 0 ms)
↳35 QDP
↳36 TransformationProof (⇔, 0 ms)
↳37 QDP
↳38 TransformationProof (⇔, 0 ms)
↳39 QDP
↳40 TransformationProof (⇔, 0 ms)
↳41 QDP
↳42 TransformationProof (⇔, 0 ms)
↳43 QDP
↳44 DependencyGraphProof (⇔, 0 ms)
↳45 QDP
↳46 TransformationProof (⇔, 0 ms)
↳47 QDP
↳48 DependencyGraphProof (⇔, 0 ms)
↳49 QDP
↳50 TransformationProof (⇔, 0 ms)
↳51 QDP
↳52 DependencyGraphProof (⇔, 0 ms)
↳53 AND
↳54 QDP
↳55 UsableRulesProof (⇔, 0 ms)
↳56 QDP
↳57 QReductionProof (⇔, 0 ms)
↳58 QDP
↳59 TransformationProof (⇔, 0 ms)
↳60 QDP
↳61 UsableRulesProof (⇔, 0 ms)
↳62 QDP
↳63 TransformationProof (⇔, 0 ms)
↳64 QDP
↳65 UsableRulesProof (⇔, 0 ms)
↳66 QDP
↳67 QReductionProof (⇔, 0 ms)
↳68 QDP
↳69 TransformationProof (⇔, 0 ms)
↳70 QDP
↳71 TransformationProof (⇔, 0 ms)
↳72 QDP
↳73 TransformationProof (⇔, 0 ms)
↳74 QDP
↳75 QDPSizeChangeProof (⇔, 0 ms)
↳76 YES
↳77 QDP
↳78 UsableRulesProof (⇔, 0 ms)
↳79 QDP
↳80 QReductionProof (⇔, 0 ms)
↳81 QDP
↳82 QDPSizeChangeProof (⇔, 0 ms)
↳83 YES
cond1(true, x, y, z) → cond2(gr(x, 0), x, y, z)
cond2(true, x, y, z) → cond1(gr(add(x, y), z), p(x), y, z)
cond2(false, x, y, z) → cond3(gr(y, 0), x, y, z)
cond3(true, x, y, z) → cond1(gr(add(x, y), z), x, p(y), z)
cond3(false, x, y, z) → cond1(gr(add(x, y), z), x, y, z)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x
cond1(true, x, y, z) → cond2(gr(x, 0), x, y, z)
cond2(true, x, y, z) → cond1(gr(add(x, y), z), p(x), y, z)
cond2(false, x, y, z) → cond3(gr(y, 0), x, y, z)
cond3(true, x, y, z) → cond1(gr(add(x, y), z), x, p(y), z)
cond3(false, x, y, z) → cond1(gr(add(x, y), z), x, y, z)
cond1(true, x, y, z) → cond2(gr(x, 0), x, y, z)
cond2(true, x, y, z) → cond1(gr(add(x, y), z), p(x), y, z)
cond2(false, x, y, z) → cond3(gr(y, 0), x, y, z)
cond3(true, x, y, z) → cond1(gr(add(x, y), z), x, p(y), z)
cond3(false, x, y, z) → cond1(gr(add(x, y), z), x, y, z)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND1(true, x, y, z) → COND2(gr(x, 0), x, y, z)
COND1(true, x, y, z) → GR(x, 0)
COND2(true, x, y, z) → COND1(gr(add(x, y), z), p(x), y, z)
COND2(true, x, y, z) → GR(add(x, y), z)
COND2(true, x, y, z) → ADD(x, y)
COND2(true, x, y, z) → P(x)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND2(false, x, y, z) → GR(y, 0)
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND3(true, x, y, z) → GR(add(x, y), z)
COND3(true, x, y, z) → ADD(x, y)
COND3(true, x, y, z) → P(y)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
COND3(false, x, y, z) → GR(add(x, y), z)
COND3(false, x, y, z) → ADD(x, y)
GR(s(x), s(y)) → GR(x, y)
ADD(s(x), y) → ADD(x, y)
cond1(true, x, y, z) → cond2(gr(x, 0), x, y, z)
cond2(true, x, y, z) → cond1(gr(add(x, y), z), p(x), y, z)
cond2(false, x, y, z) → cond3(gr(y, 0), x, y, z)
cond3(true, x, y, z) → cond1(gr(add(x, y), z), x, p(y), z)
cond3(false, x, y, z) → cond1(gr(add(x, y), z), x, y, z)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
ADD(s(x), y) → ADD(x, y)
cond1(true, x, y, z) → cond2(gr(x, 0), x, y, z)
cond2(true, x, y, z) → cond1(gr(add(x, y), z), p(x), y, z)
cond2(false, x, y, z) → cond3(gr(y, 0), x, y, z)
cond3(true, x, y, z) → cond1(gr(add(x, y), z), x, p(y), z)
cond3(false, x, y, z) → cond1(gr(add(x, y), z), x, y, z)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
ADD(s(x), y) → ADD(x, y)
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
ADD(s(x), y) → ADD(x, y)
From the DPs we obtained the following set of size-change graphs:
GR(s(x), s(y)) → GR(x, y)
cond1(true, x, y, z) → cond2(gr(x, 0), x, y, z)
cond2(true, x, y, z) → cond1(gr(add(x, y), z), p(x), y, z)
cond2(false, x, y, z) → cond3(gr(y, 0), x, y, z)
cond3(true, x, y, z) → cond1(gr(add(x, y), z), x, p(y), z)
cond3(false, x, y, z) → cond1(gr(add(x, y), z), x, y, z)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
GR(s(x), s(y)) → GR(x, y)
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
GR(s(x), s(y)) → GR(x, y)
From the DPs we obtained the following set of size-change graphs:
COND2(true, x, y, z) → COND1(gr(add(x, y), z), p(x), y, z)
COND1(true, x, y, z) → COND2(gr(x, 0), x, y, z)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
cond1(true, x, y, z) → cond2(gr(x, 0), x, y, z)
cond2(true, x, y, z) → cond1(gr(add(x, y), z), p(x), y, z)
cond2(false, x, y, z) → cond3(gr(y, 0), x, y, z)
cond3(true, x, y, z) → cond1(gr(add(x, y), z), x, p(y), z)
cond3(false, x, y, z) → cond1(gr(add(x, y), z), x, y, z)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
add(0, x) → x
add(s(x), y) → s(add(x, y))
p(0) → 0
p(s(x)) → x
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(true, x, y, z) → COND1(gr(add(x, y), z), p(x), y, z)
COND1(true, x, y, z) → COND2(gr(x, 0), x, y, z)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
cond1(true, x0, x1, x2)
cond2(true, x0, x1, x2)
cond2(false, x0, x1, x2)
cond3(true, x0, x1, x2)
cond3(false, x0, x1, x2)
COND2(true, x, y, z) → COND1(gr(add(x, y), z), p(x), y, z)
COND1(true, x, y, z) → COND2(gr(x, 0), x, y, z)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(true, 0, x0, y2) → COND1(gr(x0, y2), p(0), x0, y2) → COND2(true, 0, x0, y2) → COND1(gr(x0, y2), p(0), x0, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), p(s(x0)), x1, y2) → COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), p(s(x0)), x1, y2)
COND1(true, x, y, z) → COND2(gr(x, 0), x, y, z)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
COND2(true, 0, x0, y2) → COND1(gr(x0, y2), p(0), x0, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), p(s(x0)), x1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(true, 0, x0, y2) → COND1(gr(x0, y2), 0, x0, y2) → COND2(true, 0, x0, y2) → COND1(gr(x0, y2), 0, x0, y2)
COND1(true, x, y, z) → COND2(gr(x, 0), x, y, z)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), p(s(x0)), x1, y2)
COND2(true, 0, x0, y2) → COND1(gr(x0, y2), 0, x0, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2) → COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND1(true, x, y, z) → COND2(gr(x, 0), x, y, z)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
COND2(true, 0, x0, y2) → COND1(gr(x0, y2), 0, x0, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2) → COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2) → COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
COND2(true, 0, x0, y2) → COND1(gr(x0, y2), 0, x0, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND3(true, x, y, z) → COND1(gr(add(x, y), z), x, p(y), z)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2) → COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2) → COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND2(false, x, y, z) → COND3(gr(y, 0), x, y, z)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(false, y0, 0, y2) → COND3(false, y0, 0, y2) → COND2(false, y0, 0, y2) → COND3(false, y0, 0, y2)
COND2(false, y0, s(x0), y2) → COND3(true, y0, s(x0), y2) → COND2(false, y0, s(x0), y2) → COND3(true, y0, s(x0), y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND3(false, x, y, z) → COND1(gr(add(x, y), z), x, y, z)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
COND2(false, y0, 0, y2) → COND3(false, y0, 0, y2)
COND2(false, y0, s(x0), y2) → COND3(true, y0, s(x0), y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND3(false, 0, x0, y2) → COND1(gr(x0, y2), 0, x0, y2) → COND3(false, 0, x0, y2) → COND1(gr(x0, y2), 0, x0, y2)
COND3(false, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), x1, y2) → COND3(false, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), x1, y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
COND2(false, y0, 0, y2) → COND3(false, y0, 0, y2)
COND2(false, y0, s(x0), y2) → COND3(true, y0, s(x0), y2)
COND3(false, 0, x0, y2) → COND1(gr(x0, y2), 0, x0, y2)
COND3(false, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), x1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND3(false, 0, 0, x0) → COND1(false, 0, 0, x0) → COND3(false, 0, 0, x0) → COND1(false, 0, 0, x0)
COND3(false, 0, s(x0), 0) → COND1(true, 0, s(x0), 0) → COND3(false, 0, s(x0), 0) → COND1(true, 0, s(x0), 0)
COND3(false, 0, s(x0), s(x1)) → COND1(gr(x0, x1), 0, s(x0), s(x1)) → COND3(false, 0, s(x0), s(x1)) → COND1(gr(x0, x1), 0, s(x0), s(x1))
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
COND2(false, y0, 0, y2) → COND3(false, y0, 0, y2)
COND2(false, y0, s(x0), y2) → COND3(true, y0, s(x0), y2)
COND3(false, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), x1, y2)
COND3(false, 0, 0, x0) → COND1(false, 0, 0, x0)
COND3(false, 0, s(x0), 0) → COND1(true, 0, s(x0), 0)
COND3(false, 0, s(x0), s(x1)) → COND1(gr(x0, x1), 0, s(x0), s(x1))
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(false, y0, 0, y2) → COND3(false, y0, 0, y2)
COND3(false, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), x1, y2)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND2(false, y0, s(x0), y2) → COND3(true, y0, s(x0), y2)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(false, 0, 0, z1) → COND3(false, 0, 0, z1) → COND2(false, 0, 0, z1) → COND3(false, 0, 0, z1)
COND3(false, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), x1, y2)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND2(false, y0, s(x0), y2) → COND3(true, y0, s(x0), y2)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
COND2(false, 0, 0, z1) → COND3(false, 0, 0, z1)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND2(false, y0, s(x0), y2) → COND3(true, y0, s(x0), y2)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1) → COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND3(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), s(x0), p(x1), y2)
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
add(0, x0)
add(s(x0), x1)
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND3(true, 0, x0, y2) → COND1(gr(x0, y2), 0, p(x0), y2)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, p(s(z0)), z1) → COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, p(s(z0)), z1)
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, p(s(z0)), z1)
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, p(s(z0)), z1)
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(s(x)) → x
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, z0, z1) → COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, z0, z1)
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, z0, z1)
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(s(x)) → x
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, z0, z1)
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
p(0)
p(s(x0))
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND1(true, 0, y1, y2) → COND2(false, 0, y1, y2)
COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, z0, z1)
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
COND1(true, 0, s(y_0), x1) → COND2(false, 0, s(y_0), x1) → COND1(true, 0, s(y_0), x1) → COND2(false, 0, s(y_0), x1)
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND3(true, 0, s(z0), z1) → COND1(gr(s(z0), z1), 0, z0, z1)
COND1(true, 0, s(y_0), x1) → COND2(false, 0, s(y_0), x1)
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
COND3(true, 0, s(s(y_1)), x1) → COND1(gr(s(s(y_1)), x1), 0, s(y_1), x1) → COND3(true, 0, s(s(y_1)), x1) → COND1(gr(s(s(y_1)), x1), 0, s(y_1), x1)
COND2(false, 0, s(x1), z1) → COND3(true, 0, s(x1), z1)
COND1(true, 0, s(y_0), x1) → COND2(false, 0, s(y_0), x1)
COND3(true, 0, s(s(y_1)), x1) → COND1(gr(s(s(y_1)), x1), 0, s(y_1), x1)
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
COND2(false, 0, s(s(y_0)), x1) → COND3(true, 0, s(s(y_0)), x1) → COND2(false, 0, s(s(y_0)), x1) → COND3(true, 0, s(s(y_0)), x1)
COND1(true, 0, s(y_0), x1) → COND2(false, 0, s(y_0), x1)
COND3(true, 0, s(s(y_1)), x1) → COND1(gr(s(s(y_1)), x1), 0, s(y_1), x1)
COND2(false, 0, s(s(y_0)), x1) → COND3(true, 0, s(s(y_0)), x1)
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
From the DPs we obtained the following set of size-change graphs:
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(0, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
p(0)
p(s(x0))
p(0)
p(s(x0))
COND1(true, s(x0), y1, y2) → COND2(true, s(x0), y1, y2)
COND2(true, s(x0), x1, y2) → COND1(gr(s(add(x0, x1)), y2), x0, x1, y2)
add(0, x) → x
add(s(x), y) → s(add(x, y))
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
gr(0, x) → false
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
add(0, x0)
add(s(x0), x1)
From the DPs we obtained the following set of size-change graphs: