YES
0 QTRS
↳1 QTRS Reverse (⇔, 0 ms)
↳2 QTRS
↳3 QTRSRRRProof (⇔, 47 ms)
↳4 QTRS
↳5 DependencyPairsProof (⇔, 0 ms)
↳6 QDP
↳7 DependencyGraphProof (⇔, 0 ms)
↳8 AND
↳9 QDP
↳10 UsableRulesProof (⇔, 0 ms)
↳11 QDP
↳12 QDPSizeChangeProof (⇔, 0 ms)
↳13 YES
↳14 QDP
↳15 UsableRulesProof (⇔, 0 ms)
↳16 QDP
↳17 QDPSizeChangeProof (⇔, 0 ms)
↳18 YES
↳19 QDP
↳20 UsableRulesProof (⇔, 0 ms)
↳21 QDP
↳22 QDPSizeChangeProof (⇔, 0 ms)
↳23 YES
↳24 QDP
↳25 UsableRulesProof (⇔, 0 ms)
↳26 QDP
↳27 QDPSizeChangeProof (⇔, 0 ms)
↳28 YES
↳29 QDP
↳30 UsableRulesProof (⇔, 0 ms)
↳31 QDP
↳32 QDPOrderProof (⇔, 10 ms)
↳33 QDP
↳34 PisEmptyProof (⇔, 0 ms)
↳35 YES
rec(rec(x)) → sent(rec(x))
rec(sent(x)) → sent(rec(x))
rec(no(x)) → sent(rec(x))
rec(bot) → up(sent(bot))
rec(up(x)) → up(rec(x))
sent(up(x)) → up(sent(x))
no(up(x)) → up(no(x))
top(rec(up(x))) → top(check(rec(x)))
top(sent(up(x))) → top(check(rec(x)))
top(no(up(x))) → top(check(rec(x)))
check(up(x)) → up(check(x))
check(sent(x)) → sent(check(x))
check(rec(x)) → rec(check(x))
check(no(x)) → no(check(x))
check(no(x)) → no(x)
rec(rec(x)) → rec(sent(x))
sent(rec(x)) → rec(sent(x))
no(rec(x)) → rec(sent(x))
bot'(rec(x)) → bot'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(rec(top(x))) → rec(check(top(x)))
up(sent(top(x))) → rec(check(top(x)))
up(no(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
POL(bot'(x1)) = x1
POL(check(x1)) = x1
POL(no(x1)) = 1 + x1
POL(rec(x1)) = 1 + x1
POL(sent(x1)) = x1
POL(top(x1)) = x1
POL(up(x1)) = 1 + x1
rec(rec(x)) → rec(sent(x))
no(rec(x)) → rec(sent(x))
up(rec(top(x))) → rec(check(top(x)))
up(no(top(x))) → rec(check(top(x)))
sent(rec(x)) → rec(sent(x))
bot'(rec(x)) → bot'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
SENT(rec(x)) → REC(sent(x))
SENT(rec(x)) → SENT(x)
BOT'(rec(x)) → BOT'(sent(up(x)))
BOT'(rec(x)) → SENT(up(x))
BOT'(rec(x)) → UP(x)
UP(rec(x)) → REC(up(x))
UP(rec(x)) → UP(x)
UP(sent(x)) → SENT(up(x))
UP(sent(x)) → UP(x)
UP(no(x)) → NO(up(x))
UP(no(x)) → UP(x)
UP(sent(top(x))) → REC(check(top(x)))
UP(check(x)) → UP(x)
SENT(check(x)) → SENT(x)
REC(check(x)) → REC(x)
NO(check(x)) → NO(x)
sent(rec(x)) → rec(sent(x))
bot'(rec(x)) → bot'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
NO(check(x)) → NO(x)
sent(rec(x)) → rec(sent(x))
bot'(rec(x)) → bot'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
NO(check(x)) → NO(x)
From the DPs we obtained the following set of size-change graphs:
REC(check(x)) → REC(x)
sent(rec(x)) → rec(sent(x))
bot'(rec(x)) → bot'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
REC(check(x)) → REC(x)
From the DPs we obtained the following set of size-change graphs:
SENT(check(x)) → SENT(x)
SENT(rec(x)) → SENT(x)
sent(rec(x)) → rec(sent(x))
bot'(rec(x)) → bot'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
SENT(check(x)) → SENT(x)
SENT(rec(x)) → SENT(x)
From the DPs we obtained the following set of size-change graphs:
UP(sent(x)) → UP(x)
UP(rec(x)) → UP(x)
UP(no(x)) → UP(x)
UP(check(x)) → UP(x)
sent(rec(x)) → rec(sent(x))
bot'(rec(x)) → bot'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
UP(sent(x)) → UP(x)
UP(rec(x)) → UP(x)
UP(no(x)) → UP(x)
UP(check(x)) → UP(x)
From the DPs we obtained the following set of size-change graphs:
BOT'(rec(x)) → BOT'(sent(up(x)))
sent(rec(x)) → rec(sent(x))
bot'(rec(x)) → bot'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
BOT'(rec(x)) → BOT'(sent(up(x)))
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(rec(x)) → rec(sent(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
BOT'(rec(x)) → BOT'(sent(up(x)))
POL(BOT'(x1)) = x1
POL(check(x1)) = 0
POL(no(x1)) = 1
POL(rec(x1)) = 1 + x1
POL(sent(x1)) = x1
POL(top(x1)) = 1
POL(up(x1)) = x1
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(rec(x)) → rec(sent(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)
up(rec(x)) → rec(up(x))
up(sent(x)) → sent(up(x))
up(no(x)) → no(up(x))
up(sent(top(x))) → rec(check(top(x)))
up(check(x)) → check(up(x))
sent(rec(x)) → rec(sent(x))
sent(check(x)) → check(sent(x))
rec(check(x)) → check(rec(x))
no(check(x)) → check(no(x))
no(check(x)) → no(x)