cond1(true, x, y) → cond2(gr(x, y), x, y)
cond2(true, x, y) → cond1(gr(x, 0), y, y)
cond2(false, x, y) → cond1(gr(x, 0), p(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
↳ QTRS
↳ AAECC Innermost
cond1(true, x, y) → cond2(gr(x, y), x, y)
cond2(true, x, y) → cond1(gr(x, 0), y, y)
cond2(false, x, y) → cond1(gr(x, 0), p(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, x) → false
gr(s(x), 0) → true
gr(s(x), s(y)) → gr(x, y)
p(0) → 0
p(s(x)) → x
cond1(true, x, y) → cond2(gr(x, y), x, y)
cond2(true, x, y) → cond1(gr(x, 0), y, y)
cond2(false, x, y) → cond1(gr(x, 0), p(x), y)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
cond1(true, x, y) → cond2(gr(x, y), x, y)
cond2(true, x, y) → cond1(gr(x, 0), y, y)
cond2(false, x, y) → cond1(gr(x, 0), p(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)
cond2(true, x0, x1)
cond2(false, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
COND2(true, x, y) → GR(x, 0)
COND1(true, x, y) → COND2(gr(x, y), x, y)
COND2(false, x, y) → P(x)
COND2(true, x, y) → COND1(gr(x, 0), y, y)
GR(s(x), s(y)) → GR(x, y)
COND1(true, x, y) → GR(x, y)
COND2(false, x, y) → GR(x, 0)
COND2(false, x, y) → COND1(gr(x, 0), p(x), y)
cond1(true, x, y) → cond2(gr(x, y), x, y)
cond2(true, x, y) → cond1(gr(x, 0), y, y)
cond2(false, x, y) → cond1(gr(x, 0), p(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)
cond2(true, x0, x1)
cond2(false, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
COND2(true, x, y) → GR(x, 0)
COND1(true, x, y) → COND2(gr(x, y), x, y)
COND2(false, x, y) → P(x)
COND2(true, x, y) → COND1(gr(x, 0), y, y)
GR(s(x), s(y)) → GR(x, y)
COND1(true, x, y) → GR(x, y)
COND2(false, x, y) → GR(x, 0)
COND2(false, x, y) → COND1(gr(x, 0), p(x), y)
cond1(true, x, y) → cond2(gr(x, y), x, y)
cond2(true, x, y) → cond1(gr(x, 0), y, y)
cond2(false, x, y) → cond1(gr(x, 0), p(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)
cond2(true, x0, x1)
cond2(false, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
GR(s(x), s(y)) → GR(x, y)
cond1(true, x, y) → cond2(gr(x, y), x, y)
cond2(true, x, y) → cond1(gr(x, 0), y, y)
cond2(false, x, y) → cond1(gr(x, 0), p(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)
cond2(true, x0, x1)
cond2(false, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
GR(s(x), s(y)) → GR(x, y)
cond1(true, x0, x1)
cond2(true, x0, x1)
cond2(false, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
cond1(true, x0, x1)
cond2(true, x0, x1)
cond2(false, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
GR(s(x), s(y)) → GR(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
COND1(true, x, y) → COND2(gr(x, y), x, y)
COND2(true, x, y) → COND1(gr(x, 0), y, y)
COND2(false, x, y) → COND1(gr(x, 0), p(x), y)
cond1(true, x, y) → cond2(gr(x, y), x, y)
cond2(true, x, y) → cond1(gr(x, 0), y, y)
cond2(false, x, y) → cond1(gr(x, 0), p(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)
cond2(true, x0, x1)
cond2(false, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
COND1(true, x, y) → COND2(gr(x, y), x, y)
COND2(true, x, y) → COND1(gr(x, 0), y, y)
COND2(false, x, y) → COND1(gr(x, 0), p(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)
cond2(true, x0, x1)
cond2(false, x0, x1)
gr(0, x0)
gr(s(x0), 0)
gr(s(x0), s(x1))
p(0)
p(s(x0))
cond1(true, x0, x1)
cond2(true, x0, x1)
cond2(false, x0, x1)
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
COND1(true, x, y) → COND2(gr(x, y), x, y)
COND2(true, x, y) → COND1(gr(x, 0), y, y)
COND2(false, x, y) → COND1(gr(x, 0), p(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))
p(0)
p(s(x0))
(1) (COND1(gr(x2, 0), x3, x3)=COND1(true, x4, x5) ⇒ COND1(true, x4, x5)≥COND2(gr(x4, x5), x4, x5))
(2) (0=x26∧gr(x2, x26)=true ⇒ COND1(true, x3, x3)≥COND2(gr(x3, x3), x3, x3))
(3) (true=true∧0=0 ⇒ COND1(true, x3, x3)≥COND2(gr(x3, x3), x3, x3))
(4) (gr(x29, x30)=true∧0=s(x30)∧(∀x31:gr(x29, x30)=true∧0=x30 ⇒ COND1(true, x31, x31)≥COND2(gr(x31, x31), x31, x31)) ⇒ COND1(true, x3, x3)≥COND2(gr(x3, x3), x3, x3))
(5) (COND1(true, x3, x3)≥COND2(gr(x3, x3), x3, x3))
(6) (COND1(gr(x6, 0), p(x6), x7)=COND1(true, x8, x9) ⇒ COND1(true, x8, x9)≥COND2(gr(x8, x9), x8, x9))
(7) (0=x32∧gr(x6, x32)=true∧p(x6)=x8 ⇒ COND1(true, x8, x7)≥COND2(gr(x8, x7), x8, x7))
(8) (true=true∧0=0∧p(s(x34))=x8 ⇒ COND1(true, x8, x7)≥COND2(gr(x8, x7), x8, x7))
(9) (gr(x35, x36)=true∧0=s(x36)∧p(s(x35))=x8∧(∀x37,x38:gr(x35, x36)=true∧0=x36∧p(x35)=x37 ⇒ COND1(true, x37, x38)≥COND2(gr(x37, x38), x37, x38)) ⇒ COND1(true, x8, x7)≥COND2(gr(x8, x7), x8, x7))
(10) (COND1(true, x8, x7)≥COND2(gr(x8, x7), x8, x7))
(11) (COND2(gr(x10, x11), x10, x11)=COND2(true, x12, x13) ⇒ COND2(true, x12, x13)≥COND1(gr(x12, 0), x13, x13))
(12) (gr(x10, x11)=true ⇒ COND2(true, x10, x11)≥COND1(gr(x10, 0), x11, x11))
(13) (true=true ⇒ COND2(true, s(x41), 0)≥COND1(gr(s(x41), 0), 0, 0))
(14) (gr(x42, x43)=true∧(gr(x42, x43)=true ⇒ COND2(true, x42, x43)≥COND1(gr(x42, 0), x43, x43)) ⇒ COND2(true, s(x42), s(x43))≥COND1(gr(s(x42), 0), s(x43), s(x43)))
(15) (COND2(true, s(x41), 0)≥COND1(gr(s(x41), 0), 0, 0))
(16) (COND2(true, x42, x43)≥COND1(gr(x42, 0), x43, x43) ⇒ COND2(true, s(x42), s(x43))≥COND1(gr(s(x42), 0), s(x43), s(x43)))
(17) (COND2(gr(x18, x19), x18, x19)=COND2(false, x20, x21) ⇒ COND2(false, x20, x21)≥COND1(gr(x20, 0), p(x20), x21))
(18) (gr(x18, x19)=false ⇒ COND2(false, x18, x19)≥COND1(gr(x18, 0), p(x18), x19))
(19) (false=false ⇒ COND2(false, 0, x44)≥COND1(gr(0, 0), p(0), x44))
(20) (gr(x46, x47)=false∧(gr(x46, x47)=false ⇒ COND2(false, x46, x47)≥COND1(gr(x46, 0), p(x46), x47)) ⇒ COND2(false, s(x46), s(x47))≥COND1(gr(s(x46), 0), p(s(x46)), s(x47)))
(21) (COND2(false, 0, x44)≥COND1(gr(0, 0), p(0), x44))
(22) (COND2(false, x46, x47)≥COND1(gr(x46, 0), p(x46), x47) ⇒ COND2(false, s(x46), s(x47))≥COND1(gr(s(x46), 0), p(s(x46)), s(x47)))
POL(0) = 0
POL(COND1(x1, x2, x3)) = -1 - x1 + x2 - x3
POL(COND2(x1, x2, x3)) = -1 - x1 + x2 - x3
POL(c) = -1
POL(false) = 0
POL(gr(x1, x2)) = 0
POL(p(x1)) = x1
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
COND2(true, x, y) → COND1(gr(x, 0), y, y)
The following rules are usable:
COND2(true, x, y) → COND1(gr(x, 0), y, y)
false → gr(0, x)
p(0) → 0
p(s(x)) → x
true → gr(s(x), 0)
gr(x, y) → gr(s(x), s(y))
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ QDP
↳ QDPOrderProof
COND1(true, x, y) → COND2(gr(x, y), x, y)
COND2(false, x, y) → COND1(gr(x, 0), p(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))
p(0)
p(s(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
COND2(false, x, y) → COND1(gr(x, 0), p(x), y)
Used ordering: Polynomial interpretation [25,35]:
COND1(true, x, y) → COND2(gr(x, y), x, y)
The value of delta used in the strict ordering is 1/4.
POL(gr(x1, x2)) = (4)x_1
POL(true) = 1/2
POL(COND2(x1, x2, x3)) = 4 + (11/4)x_2
POL(false) = 0
POL(p(x1)) = (1/4)x_1
POL(s(x1)) = 4 + (4)x_1
POL(0) = 0
POL(COND1(x1, x2, x3)) = 15/4 + (1/2)x_1 + (3)x_2
gr(0, x) → false
p(0) → 0
p(s(x)) → x
gr(s(x), 0) → true
↳ QTRS
↳ AAECC Innermost
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
COND1(true, x, y) → COND2(gr(x, y), 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))
p(0)
p(s(x0))