0 CpxTRS
↳1 RcToIrcProof (BOTH BOUNDS(ID, ID), 15 ms)
↳2 CpxTRS
↳3 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CdtProblem
↳5 CdtLeafRemovalProof (BOTH BOUNDS(ID, ID), 0 ms)
↳6 CdtProblem
↳7 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳8 CdtProblem
↳9 CdtUsableRulesProof (⇔, 0 ms)
↳10 CdtProblem
↳11 CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)), 86 ms)
↳12 CdtProblem
↳13 SIsEmptyProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 BOUNDS(1, 1)
or(true, y) → true
or(x, true) → true
or(false, false) → false
mem(x, nil) → false
mem(x, set(y)) → =(x, y)
mem(x, union(y, z)) → or(mem(x, y), mem(x, z))
The duplicating contexts are:
mem([], union(y, z))
The defined contexts are:
or([], x1)
or(x0, [])
As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc.
or(true, y) → true
or(x, true) → true
or(false, false) → false
mem(x, nil) → false
mem(x, set(y)) → =(x, y)
mem(x, union(y, z)) → or(mem(x, y), mem(x, z))
Tuples:
or(true, z0) → true
or(z0, true) → true
or(false, false) → false
mem(z0, nil) → false
mem(z0, set(z1)) → =(z0, z1)
mem(z0, union(z1, z2)) → or(mem(z0, z1), mem(z0, z2))
S tuples:
OR(true, z0) → c
OR(z0, true) → c1
OR(false, false) → c2
MEM(z0, nil) → c3
MEM(z0, set(z1)) → c4
MEM(z0, union(z1, z2)) → c5(OR(mem(z0, z1), mem(z0, z2)), MEM(z0, z1), MEM(z0, z2))
K tuples:none
OR(true, z0) → c
OR(z0, true) → c1
OR(false, false) → c2
MEM(z0, nil) → c3
MEM(z0, set(z1)) → c4
MEM(z0, union(z1, z2)) → c5(OR(mem(z0, z1), mem(z0, z2)), MEM(z0, z1), MEM(z0, z2))
or, mem
OR, MEM
c, c1, c2, c3, c4, c5
OR(z0, true) → c1
MEM(z0, nil) → c3
OR(false, false) → c2
MEM(z0, set(z1)) → c4
OR(true, z0) → c
Tuples:
or(true, z0) → true
or(z0, true) → true
or(false, false) → false
mem(z0, nil) → false
mem(z0, set(z1)) → =(z0, z1)
mem(z0, union(z1, z2)) → or(mem(z0, z1), mem(z0, z2))
S tuples:
MEM(z0, union(z1, z2)) → c5(OR(mem(z0, z1), mem(z0, z2)), MEM(z0, z1), MEM(z0, z2))
K tuples:none
MEM(z0, union(z1, z2)) → c5(OR(mem(z0, z1), mem(z0, z2)), MEM(z0, z1), MEM(z0, z2))
or, mem
MEM
c5
Tuples:
or(true, z0) → true
or(z0, true) → true
or(false, false) → false
mem(z0, nil) → false
mem(z0, set(z1)) → =(z0, z1)
mem(z0, union(z1, z2)) → or(mem(z0, z1), mem(z0, z2))
S tuples:
MEM(z0, union(z1, z2)) → c5(MEM(z0, z1), MEM(z0, z2))
K tuples:none
MEM(z0, union(z1, z2)) → c5(MEM(z0, z1), MEM(z0, z2))
or, mem
MEM
c5
or(true, z0) → true
or(z0, true) → true
or(false, false) → false
mem(z0, nil) → false
mem(z0, set(z1)) → =(z0, z1)
mem(z0, union(z1, z2)) → or(mem(z0, z1), mem(z0, z2))
S tuples:
MEM(z0, union(z1, z2)) → c5(MEM(z0, z1), MEM(z0, z2))
K tuples:none
MEM(z0, union(z1, z2)) → c5(MEM(z0, z1), MEM(z0, z2))
MEM
c5
We considered the (Usable) Rules:none
MEM(z0, union(z1, z2)) → c5(MEM(z0, z1), MEM(z0, z2))
The order we found is given by the following interpretation:
MEM(z0, union(z1, z2)) → c5(MEM(z0, z1), MEM(z0, z2))
POL(MEM(x1, x2)) = x2
POL(c5(x1, x2)) = x1 + x2
POL(union(x1, x2)) = [1] + x1 + x2
S tuples:none
MEM(z0, union(z1, z2)) → c5(MEM(z0, z1), MEM(z0, z2))
Defined Rule Symbols:none
MEM(z0, union(z1, z2)) → c5(MEM(z0, z1), MEM(z0, z2))
MEM
c5