(0) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(O(x), y) → Wr(check(x), y)
Tl(O(x), y) → Wr(x, check(y))
Tl(N(x), y) → Wr(check(x), y)
Tl(N(x), y) → Wr(x, check(y))
Tr(x, O(y)) → Wl(check(x), y)
Tr(x, O(y)) → Wl(x, check(y))
Tr(x, N(y)) → Wl(check(x), y)
Tr(x, N(y)) → Wl(x, check(y))
Tl(B, y) → Wr(check(B), y)
Tl(B, y) → Wr(B, check(y))
Tr(x, B) → Wl(check(x), B)
Tr(x, B) → Wl(x, check(B))
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, O(y)) → Wr(x, check(y))
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
Tl(O(x), y) → Wl(check(x), y)
Tr(x, O(y)) → Wr(check(x), y)
Tl(O(x), y) → Wl(x, check(y))
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wl(ok(x), y) → Tl(x, y)
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(1) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Polynomial interpretation [POLO]:
POL(B) = 0
POL(N(x1)) = x1
POL(O(x1)) = 1 + x1
POL(Tl(x1, x2)) = x1 + x2
POL(Tr(x1, x2)) = x1 + x2
POL(Wl(x1, x2)) = x1 + x2
POL(Wr(x1, x2)) = x1 + x2
POL(check(x1)) = x1
POL(ok(x1)) = x1
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
Tl(O(x), y) → Wr(check(x), y)
Tl(O(x), y) → Wr(x, check(y))
Tr(x, O(y)) → Wl(check(x), y)
Tr(x, O(y)) → Wl(x, check(y))
Rules from S:
Tr(x, O(y)) → Wr(x, check(y))
Tl(O(x), y) → Wl(check(x), y)
Tr(x, O(y)) → Wr(check(x), y)
Tl(O(x), y) → Wl(x, check(y))
(2) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
Tl(N(x), y) → Wr(x, check(y))
Tr(x, N(y)) → Wl(check(x), y)
Tr(x, N(y)) → Wl(x, check(y))
Tl(B, y) → Wr(check(B), y)
Tl(B, y) → Wr(B, check(y))
Tr(x, B) → Wl(check(x), B)
Tr(x, B) → Wl(x, check(B))
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wl(ok(x), y) → Tl(x, y)
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(3) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(Tl(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Wr(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Tr(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Wl(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
Tr(x, B) → Wl(x, check(B))
Rules from S:
none
(4) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
Tl(N(x), y) → Wr(x, check(y))
Tr(x, N(y)) → Wl(check(x), y)
Tr(x, N(y)) → Wl(x, check(y))
Tl(B, y) → Wr(check(B), y)
Tl(B, y) → Wr(B, check(y))
Tr(x, B) → Wl(check(x), B)
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wl(ok(x), y) → Tl(x, y)
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(5) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(Tl(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Wr(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Tr(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Wl(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
Tl(B, y) → Wr(check(B), y)
Rules from S:
none
(6) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
Tl(N(x), y) → Wr(x, check(y))
Tr(x, N(y)) → Wl(check(x), y)
Tr(x, N(y)) → Wl(x, check(y))
Tl(B, y) → Wr(B, check(y))
Tr(x, B) → Wl(check(x), B)
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wl(ok(x), y) → Tl(x, y)
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(7) RelTRSSemanticLabellingPOLOProof (EQUIVALENT transformation)
We use Semantic Labelling over tuples of bools combined with a polynomial order [SEMLAB]
We use semantic labelling over boolean tuples of size 1.
We used the following model:
Tl
2: component 1: OR[]
N
1: component 1: OR[x
11]
Wl
2: component 1: OR[]
check
1: component 1: OR[x
11]
Tr
2: component 1: OR[]
Wr
2: component 1: OR[]
ok
1: component 1: OR[x
11]
O
1: component 1: AND[]
B
0: component 1: OR[]
Our labelling function was:
Tl
2:component 1: XOR[x
11]
N
1:component 1: XOR[-x
11]
Wl
2:component 1: AND[-x
11]
check
1:component 1: OR[]
Tr
2:component 1: AND[-x
11, -x
21]
Wr
2:component 1: AND[x
11]
ok
1:component 1: XOR[x
11]
O
1:component 1: AND[]
B
0:component 1: AND[]
Our labelled system was:
[f]Tl[f](
[f]N[t](
[f]x),
[f]y) →
[f]Wl[t](
[f]x,
[f]check[f](
[f]y))
[f]Tl[f](
[f]N[t](
[f]x),
[t]y) →
[f]Wl[t](
[f]x,
[t]check[f](
[t]y))
[f]Tl[t](
[t]N[f](
[t]x),
[f]y) →
[f]Wl[f](
[t]x,
[f]check[f](
[f]y))
[f]Tl[t](
[t]N[f](
[t]x),
[t]y) →
[f]Wl[f](
[t]x,
[t]check[f](
[t]y))
[f]Tr[t](
[f]x,
[f]N[t](
[f]y)) →
[f]Wr[f](
[f]x,
[f]check[f](
[f]y))
[f]Tr[f](
[f]x,
[t]N[f](
[t]y)) →
[f]Wr[f](
[f]x,
[t]check[f](
[t]y))
[f]Tr[f](
[t]x,
[f]N[t](
[f]y)) →
[f]Wr[t](
[t]x,
[f]check[f](
[f]y))
[f]Tr[f](
[t]x,
[t]N[f](
[t]y)) →
[f]Wr[t](
[t]x,
[t]check[f](
[t]y))
[f]Wr[f](
[f]ok[f](
[f]x),
[f]y) →
[f]Tr[t](
[f]x,
[f]y)
[f]Wr[f](
[f]ok[f](
[f]x),
[t]y) →
[f]Tr[f](
[f]x,
[t]y)
[f]Wr[t](
[t]ok[t](
[t]x),
[f]y) →
[f]Tr[f](
[t]x,
[f]y)
[t]O[t](
[f]ok[f](
[f]x)) →
[t]ok[t](
[t]O[t](
[f]x))
[t]O[t](
[t]ok[t](
[t]x)) →
[t]ok[t](
[t]O[t](
[t]x))
[f]Wl[t](
[f]x,
[f]ok[f](
[f]y)) →
[f]Tl[f](
[f]x,
[f]y)
[f]Wl[t](
[f]x,
[t]ok[t](
[t]y)) →
[f]Tl[f](
[f]x,
[t]y)
[f]Wl[f](
[t]x,
[f]ok[f](
[f]y)) →
[f]Tl[t](
[t]x,
[f]y)
[f]Wl[f](
[t]x,
[t]ok[t](
[t]y)) →
[f]Tl[t](
[t]x,
[t]y)
[f]Tl[f](
[f]N[t](
[f]x),
[f]y) →
[f]Wl[t](
[f]check[f](
[f]x),
[f]y)
[f]Tl[t](
[t]N[f](
[t]x),
[f]y) →
[f]Wl[f](
[t]check[f](
[t]x),
[f]y)
[f]Tr[t](
[f]x,
[f]N[t](
[f]y)) →
[f]Wr[f](
[f]check[f](
[f]x),
[f]y)
[f]Tr[f](
[f]x,
[t]N[f](
[t]y)) →
[f]Wr[f](
[f]check[f](
[f]x),
[t]y)
[f]Tr[f](
[t]x,
[f]N[t](
[f]y)) →
[f]Wr[t](
[t]check[f](
[t]x),
[f]y)
[f]Tr[f](
[t]x,
[t]N[f](
[t]y)) →
[f]Wr[t](
[t]check[f](
[t]x),
[t]y)
[f]check[f](
[f]N[t](
[f]x)) →
[f]N[t](
[f]check[f](
[f]x))
[t]check[f](
[t]N[f](
[t]x)) →
[t]N[f](
[t]check[f](
[t]x))
[f]B[t] →
[f]N[t](
[f]B[t])
[t]check[f](
[t]O[t](
[f]x)) →
[t]O[t](
[f]check[f](
[f]x))
[t]check[f](
[t]O[t](
[t]x)) →
[t]O[t](
[t]check[f](
[t]x))
[f]N[t](
[f]ok[f](
[f]x)) →
[f]ok[f](
[f]N[t](
[f]x))
[t]N[f](
[t]ok[t](
[t]x)) →
[t]ok[t](
[t]N[f](
[t]x))
[f]Wl[t](
[f]ok[f](
[f]x),
[f]y) →
[f]Tl[f](
[f]x,
[f]y)
[f]Wl[f](
[t]ok[t](
[t]x),
[f]y) →
[f]Tl[t](
[t]x,
[f]y)
[f]Wr[f](
[f]x,
[f]ok[f](
[f]y)) →
[f]Tr[t](
[f]x,
[f]y)
[f]Wr[f](
[f]x,
[t]ok[t](
[t]y)) →
[f]Tr[f](
[f]x,
[t]y)
[f]Wr[t](
[t]x,
[f]ok[f](
[f]y)) →
[f]Tr[f](
[t]x,
[f]y)
[f]Wr[t](
[t]x,
[t]ok[t](
[t]y)) →
[f]Tr[f](
[t]x,
[t]y)
[t]check[f](
[t]O[t](
[f]x)) →
[t]ok[t](
[t]O[t](
[f]x))
[f]Tl[f](
[f]N[t](
[f]x),
[f]y) →
[f]Wr[f](
[f]check[f](
[f]x),
[f]y)
[f]Tl[t](
[t]N[f](
[t]x),
[f]y) →
[f]Wr[t](
[t]check[f](
[t]x),
[f]y)
[f]Tl[f](
[f]N[t](
[f]x),
[f]y) →
[f]Wr[f](
[f]x,
[f]check[f](
[f]y))
[f]Tl[f](
[f]N[t](
[f]x),
[t]y) →
[f]Wr[f](
[f]x,
[t]check[f](
[t]y))
[f]Tl[t](
[t]N[f](
[t]x),
[f]y) →
[f]Wr[t](
[t]x,
[f]check[f](
[f]y))
[f]Tl[t](
[t]N[f](
[t]x),
[t]y) →
[f]Wr[t](
[t]x,
[t]check[f](
[t]y))
[f]Tr[t](
[f]x,
[f]N[t](
[f]y)) →
[f]Wl[t](
[f]check[f](
[f]x),
[f]y)
[f]Tr[f](
[f]x,
[t]N[f](
[t]y)) →
[f]Wl[t](
[f]check[f](
[f]x),
[t]y)
[f]Tr[f](
[t]x,
[f]N[t](
[f]y)) →
[f]Wl[f](
[t]check[f](
[t]x),
[f]y)
[f]Tr[f](
[t]x,
[t]N[f](
[t]y)) →
[f]Wl[f](
[t]check[f](
[t]x),
[t]y)
[f]Tr[t](
[f]x,
[f]N[t](
[f]y)) →
[f]Wl[t](
[f]x,
[f]check[f](
[f]y))
[f]Tr[f](
[f]x,
[t]N[f](
[t]y)) →
[f]Wl[t](
[f]x,
[t]check[f](
[t]y))
[f]Tr[f](
[t]x,
[f]N[t](
[f]y)) →
[f]Wl[f](
[t]x,
[f]check[f](
[f]y))
[f]Tr[f](
[t]x,
[t]N[f](
[t]y)) →
[f]Wl[f](
[t]x,
[t]check[f](
[t]y))
[f]Tl[f](
[f]B[t],
[f]y) →
[f]Wr[f](
[f]B[t],
[f]check[f](
[f]y))
[f]Tl[f](
[f]B[t],
[t]y) →
[f]Wr[f](
[f]B[t],
[t]check[f](
[t]y))
[f]Tr[t](
[f]x,
[f]B[t]) →
[f]Wl[t](
[f]check[f](
[f]x),
[f]B[t])
[f]Tr[f](
[t]x,
[f]B[t]) →
[f]Wl[f](
[t]check[f](
[t]x),
[f]B[t])
Our polynomial interpretation was:
P(Tl
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Tl
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(N
[false])(
x1) = 1 + 1·
x1P(N
[true])(
x1) = 0 + 1·
x1P(Wl
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wl
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(check
[false])(
x1) = 0 + 1·
x1P(check
[true])(
x1) = 1 + 1·
x1P(Tr
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Tr
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Wr
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wr
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(ok
[false])(
x1) = 1 + 1·
x1P(ok
[true])(
x1) = 0 + 1·
x1P(O
[false])(
x1) = 1 + 1·
x1P(O
[true])(
x1) = 0 + 1·
x1P(B
[false])() = 1
P(B
[true])() = 1
The following rules were deleted from R:
Tl(N(x), y) → Wr(x, check(y))
The following rules were deleted from S:
none
(8) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
Tr(x, N(y)) → Wl(check(x), y)
Tr(x, N(y)) → Wl(x, check(y))
Tl(B, y) → Wr(B, check(y))
Tr(x, B) → Wl(check(x), B)
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wl(ok(x), y) → Tl(x, y)
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(9) RelTRSSemanticLabellingPOLOProof (EQUIVALENT transformation)
We use Semantic Labelling over tuples of bools combined with a polynomial order [SEMLAB]
We use semantic labelling over boolean tuples of size 1.
We used the following model:
Tl
2: component 1: AND[]
N
1: component 1: AND[x
11]
Wl
2: component 1: AND[]
check
1: component 1: AND[x
11]
Tr
2: component 1: AND[]
Wr
2: component 1: AND[]
ok
1: component 1: OR[]
O
1: component 1: OR[]
B
0: component 1: AND[]
Our labelling function was:
Tl
2:component 1: OR[-x
11, -x
21]
N
1:component 1: XOR[-x
11]
Wl
2:component 1: XOR[]
check
1:component 1: AND[]
Tr
2:component 1: XOR[-x
21]
Wr
2:component 1: XOR[x
21]
ok
1:component 1: XOR[-x
11]
O
1:component 1: OR[x
11]
B
0:component 1: AND[]
Our labelled system was:
[t]Tl[t](
[f]N[t](
[f]x),
[f]y) →
[t]Wl[f](
[f]x,
[f]check[t](
[f]y))
[t]Tl[t](
[f]N[t](
[f]x),
[t]y) →
[t]Wl[f](
[f]x,
[t]check[t](
[t]y))
[t]Tl[t](
[t]N[f](
[t]x),
[f]y) →
[t]Wl[f](
[t]x,
[f]check[t](
[f]y))
[t]Tl[f](
[t]N[f](
[t]x),
[t]y) →
[t]Wl[f](
[t]x,
[t]check[t](
[t]y))
[t]Tr[t](
[f]x,
[f]N[t](
[f]y)) →
[t]Wr[f](
[f]x,
[f]check[t](
[f]y))
[t]Tr[f](
[f]x,
[t]N[f](
[t]y)) →
[t]Wr[t](
[f]x,
[t]check[t](
[t]y))
[t]Wr[f](
[f]ok[t](
[f]x),
[f]y) →
[t]Tr[t](
[f]x,
[f]y)
[t]Wr[t](
[f]ok[t](
[f]x),
[t]y) →
[t]Tr[f](
[f]x,
[t]y)
[t]Wr[f](
[f]ok[f](
[t]x),
[f]y) →
[t]Tr[t](
[t]x,
[f]y)
[t]Wr[t](
[f]ok[f](
[t]x),
[t]y) →
[t]Tr[f](
[t]x,
[t]y)
[f]O[f](
[f]ok[t](
[f]x)) →
[f]ok[t](
[f]O[f](
[f]x))
[f]O[f](
[f]ok[f](
[t]x)) →
[f]ok[t](
[f]O[t](
[t]x))
[t]Wl[f](
[f]x,
[f]ok[t](
[f]y)) →
[t]Tl[t](
[f]x,
[f]y)
[t]Wl[f](
[f]x,
[f]ok[f](
[t]y)) →
[t]Tl[t](
[f]x,
[t]y)
[t]Wl[f](
[t]x,
[f]ok[f](
[t]y)) →
[t]Tl[f](
[t]x,
[t]y)
[t]Tl[t](
[f]N[t](
[f]x),
[f]y) →
[t]Wl[f](
[f]check[t](
[f]x),
[f]y)
[t]Tl[t](
[t]N[f](
[t]x),
[f]y) →
[t]Wl[f](
[t]check[t](
[t]x),
[f]y)
[t]Tl[f](
[t]N[f](
[t]x),
[t]y) →
[t]Wl[f](
[t]check[t](
[t]x),
[t]y)
[t]Tr[t](
[f]x,
[f]N[t](
[f]y)) →
[t]Wr[f](
[f]check[t](
[f]x),
[f]y)
[t]Tr[f](
[f]x,
[t]N[f](
[t]y)) →
[t]Wr[t](
[f]check[t](
[f]x),
[t]y)
[t]Tr[t](
[t]x,
[f]N[t](
[f]y)) →
[t]Wr[f](
[t]check[t](
[t]x),
[f]y)
[t]Tr[f](
[t]x,
[t]N[f](
[t]y)) →
[t]Wr[t](
[t]check[t](
[t]x),
[t]y)
[f]check[t](
[f]N[t](
[f]x)) →
[f]N[t](
[f]check[t](
[f]x))
[t]check[t](
[t]N[f](
[t]x)) →
[t]N[f](
[t]check[t](
[t]x))
[t]B[t] →
[t]N[f](
[t]B[t])
[f]check[t](
[f]O[f](
[f]x)) →
[f]O[f](
[f]check[t](
[f]x))
[f]check[t](
[f]O[t](
[t]x)) →
[f]O[t](
[t]check[t](
[t]x))
[f]N[t](
[f]ok[t](
[f]x)) →
[f]ok[t](
[f]N[t](
[f]x))
[f]N[t](
[f]ok[f](
[t]x)) →
[f]ok[f](
[t]N[f](
[t]x))
[t]Wl[f](
[f]ok[t](
[f]x),
[f]y) →
[t]Tl[t](
[f]x,
[f]y)
[t]Wl[f](
[f]ok[f](
[t]x),
[f]y) →
[t]Tl[t](
[t]x,
[f]y)
[t]Wl[f](
[f]ok[f](
[t]x),
[t]y) →
[t]Tl[f](
[t]x,
[t]y)
[t]Wr[f](
[f]x,
[f]ok[t](
[f]y)) →
[t]Tr[t](
[f]x,
[f]y)
[t]Wr[f](
[f]x,
[f]ok[f](
[t]y)) →
[t]Tr[f](
[f]x,
[t]y)
[f]check[t](
[f]O[f](
[f]x)) →
[f]ok[t](
[f]O[f](
[f]x))
[f]check[t](
[f]O[t](
[t]x)) →
[f]ok[t](
[f]O[t](
[t]x))
[t]Tl[t](
[f]N[t](
[f]x),
[f]y) →
[t]Wr[f](
[f]check[t](
[f]x),
[f]y)
[t]Tl[t](
[f]N[t](
[f]x),
[t]y) →
[t]Wr[t](
[f]check[t](
[f]x),
[t]y)
[t]Tl[t](
[t]N[f](
[t]x),
[f]y) →
[t]Wr[f](
[t]check[t](
[t]x),
[f]y)
[t]Tl[f](
[t]N[f](
[t]x),
[t]y) →
[t]Wr[t](
[t]check[t](
[t]x),
[t]y)
[t]Tr[t](
[f]x,
[f]N[t](
[f]y)) →
[t]Wl[f](
[f]check[t](
[f]x),
[f]y)
[t]Tr[f](
[f]x,
[t]N[f](
[t]y)) →
[t]Wl[f](
[f]check[t](
[f]x),
[t]y)
[t]Tr[t](
[t]x,
[f]N[t](
[f]y)) →
[t]Wl[f](
[t]check[t](
[t]x),
[f]y)
[t]Tr[f](
[t]x,
[t]N[f](
[t]y)) →
[t]Wl[f](
[t]check[t](
[t]x),
[t]y)
[t]Tr[t](
[f]x,
[f]N[t](
[f]y)) →
[t]Wl[f](
[f]x,
[f]check[t](
[f]y))
[t]Tr[f](
[f]x,
[t]N[f](
[t]y)) →
[t]Wl[f](
[f]x,
[t]check[t](
[t]y))
[t]Tl[t](
[t]B[t],
[f]y) →
[t]Wr[f](
[t]B[t],
[f]check[t](
[f]y))
[t]Tl[f](
[t]B[t],
[t]y) →
[t]Wr[t](
[t]B[t],
[t]check[t](
[t]y))
[t]Tr[f](
[f]x,
[t]B[t]) →
[t]Wl[f](
[f]check[t](
[f]x),
[t]B[t])
[t]Tr[f](
[t]x,
[t]B[t]) →
[t]Wl[f](
[t]check[t](
[t]x),
[t]B[t])
Our polynomial interpretation was:
P(Tl
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Tl
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(N
[false])(
x1) = 0 + 1·
x1P(N
[true])(
x1) = 1 + 1·
x1P(Wl
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wl
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(check
[false])(
x1) = 1 + 1·
x1P(check
[true])(
x1) = 0 + 1·
x1P(Tr
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Tr
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wr
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wr
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(ok
[false])(
x1) = 1 + 1·
x1P(ok
[true])(
x1) = 0 + 1·
x1P(O
[false])(
x1) = 0 + 1·
x1P(O
[true])(
x1) = 0 + 1·
x1P(B
[false])() = 1
P(B
[true])() = 1
The following rules were deleted from R:
Tr(x, B) → Wl(check(x), B)
The following rules were deleted from S:
none
(10) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
Tr(x, N(y)) → Wl(check(x), y)
Tr(x, N(y)) → Wl(x, check(y))
Tl(B, y) → Wr(B, check(y))
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wl(ok(x), y) → Tl(x, y)
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(11) RelTRSSemanticLabellingPOLOProof (EQUIVALENT transformation)
We use Semantic Labelling over tuples of bools combined with a polynomial order [SEMLAB]
We use semantic labelling over boolean tuples of size 1.
We used the following model:
Tl
2: component 1: OR[]
N
1: component 1: AND[x
11]
Wl
2: component 1: OR[]
check
1: component 1: OR[x
11]
Tr
2: component 1: OR[]
Wr
2: component 1: OR[]
ok
1: component 1: OR[]
O
1: component 1: OR[]
B
0: component 1: AND[]
Our labelling function was:
Tl
2:component 1: XOR[x
21]
N
1:component 1: XOR[x
11]
Wl
2:component 1: AND[x
21]
check
1:component 1: AND[]
Tr
2:component 1: OR[]
Wr
2:component 1: OR[-x
11, -x
21]
ok
1:component 1: OR[x
11]
O
1:component 1: AND[]
B
0:component 1: XOR[]
Our labelled system was:
[f]Tl[f](
[f]N[f](
[f]x),
[f]y) →
[f]Wl[f](
[f]x,
[f]check[t](
[f]y))
[f]Tl[t](
[f]N[f](
[f]x),
[t]y) →
[f]Wl[t](
[f]x,
[t]check[t](
[t]y))
[f]Tl[f](
[t]N[t](
[t]x),
[f]y) →
[f]Wl[f](
[t]x,
[f]check[t](
[f]y))
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wl[t](
[t]x,
[t]check[t](
[t]y))
[f]Tr[f](
[f]x,
[f]N[f](
[f]y)) →
[f]Wr[t](
[f]x,
[f]check[t](
[f]y))
[f]Tr[f](
[f]x,
[t]N[t](
[t]y)) →
[f]Wr[t](
[f]x,
[t]check[t](
[t]y))
[f]Tr[f](
[t]x,
[t]N[t](
[t]y)) →
[f]Wr[f](
[t]x,
[t]check[t](
[t]y))
[f]Wr[t](
[f]ok[f](
[f]x),
[f]y) →
[f]Tr[f](
[f]x,
[f]y)
[f]Wr[t](
[f]ok[t](
[t]x),
[f]y) →
[f]Tr[f](
[t]x,
[f]y)
[f]O[t](
[f]ok[f](
[f]x)) →
[f]ok[f](
[f]O[t](
[f]x))
[f]O[t](
[f]ok[t](
[t]x)) →
[f]ok[f](
[f]O[t](
[t]x))
[f]Wl[f](
[f]x,
[f]ok[f](
[f]y)) →
[f]Tl[f](
[f]x,
[f]y)
[f]Wl[f](
[f]x,
[f]ok[t](
[t]y)) →
[f]Tl[t](
[f]x,
[t]y)
[f]Tl[f](
[f]N[f](
[f]x),
[f]y) →
[f]Wl[f](
[f]check[t](
[f]x),
[f]y)
[f]Tl[t](
[f]N[f](
[f]x),
[t]y) →
[f]Wl[t](
[f]check[t](
[f]x),
[t]y)
[f]Tl[f](
[t]N[t](
[t]x),
[f]y) →
[f]Wl[f](
[t]check[t](
[t]x),
[f]y)
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wl[t](
[t]check[t](
[t]x),
[t]y)
[f]Tr[f](
[f]x,
[f]N[f](
[f]y)) →
[f]Wr[t](
[f]check[t](
[f]x),
[f]y)
[f]Tr[f](
[f]x,
[t]N[t](
[t]y)) →
[f]Wr[t](
[f]check[t](
[f]x),
[t]y)
[f]Tr[f](
[t]x,
[f]N[f](
[f]y)) →
[f]Wr[t](
[t]check[t](
[t]x),
[f]y)
[f]Tr[f](
[t]x,
[t]N[t](
[t]y)) →
[f]Wr[f](
[t]check[t](
[t]x),
[t]y)
[f]check[t](
[f]N[f](
[f]x)) →
[f]N[f](
[f]check[t](
[f]x))
[t]check[t](
[t]N[t](
[t]x)) →
[t]N[t](
[t]check[t](
[t]x))
[t]B[f] →
[t]N[t](
[t]B[f])
[f]check[t](
[f]O[t](
[f]x)) →
[f]O[t](
[f]check[t](
[f]x))
[f]check[t](
[f]O[t](
[t]x)) →
[f]O[t](
[t]check[t](
[t]x))
[f]N[f](
[f]ok[f](
[f]x)) →
[f]ok[f](
[f]N[f](
[f]x))
[f]N[f](
[f]ok[t](
[t]x)) →
[f]ok[t](
[t]N[t](
[t]x))
[f]Wl[f](
[f]ok[f](
[f]x),
[f]y) →
[f]Tl[f](
[f]x,
[f]y)
[f]Wl[t](
[f]ok[f](
[f]x),
[t]y) →
[f]Tl[t](
[f]x,
[t]y)
[f]Wl[f](
[f]ok[t](
[t]x),
[f]y) →
[f]Tl[f](
[t]x,
[f]y)
[f]Wl[t](
[f]ok[t](
[t]x),
[t]y) →
[f]Tl[t](
[t]x,
[t]y)
[f]Wr[t](
[f]x,
[f]ok[f](
[f]y)) →
[f]Tr[f](
[f]x,
[f]y)
[f]Wr[t](
[f]x,
[f]ok[t](
[t]y)) →
[f]Tr[f](
[f]x,
[t]y)
[f]check[t](
[f]O[t](
[f]x)) →
[f]ok[f](
[f]O[t](
[f]x))
[f]Tl[f](
[f]N[f](
[f]x),
[f]y) →
[f]Wr[t](
[f]check[t](
[f]x),
[f]y)
[f]Tl[t](
[f]N[f](
[f]x),
[t]y) →
[f]Wr[t](
[f]check[t](
[f]x),
[t]y)
[f]Tl[f](
[t]N[t](
[t]x),
[f]y) →
[f]Wr[t](
[t]check[t](
[t]x),
[f]y)
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wr[f](
[t]check[t](
[t]x),
[t]y)
[f]Tr[f](
[f]x,
[f]N[f](
[f]y)) →
[f]Wl[f](
[f]check[t](
[f]x),
[f]y)
[f]Tr[f](
[f]x,
[t]N[t](
[t]y)) →
[f]Wl[t](
[f]check[t](
[f]x),
[t]y)
[f]Tr[f](
[t]x,
[f]N[f](
[f]y)) →
[f]Wl[f](
[t]check[t](
[t]x),
[f]y)
[f]Tr[f](
[t]x,
[t]N[t](
[t]y)) →
[f]Wl[t](
[t]check[t](
[t]x),
[t]y)
[f]Tr[f](
[f]x,
[f]N[f](
[f]y)) →
[f]Wl[f](
[f]x,
[f]check[t](
[f]y))
[f]Tr[f](
[f]x,
[t]N[t](
[t]y)) →
[f]Wl[t](
[f]x,
[t]check[t](
[t]y))
[f]Tl[f](
[t]B[f],
[f]y) →
[f]Wr[t](
[t]B[f],
[f]check[t](
[f]y))
[f]Tl[t](
[t]B[f],
[t]y) →
[f]Wr[f](
[t]B[f],
[t]check[t](
[t]y))
Our polynomial interpretation was:
P(Tl
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Tl
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(N
[false])(
x1) = 1 + 1·
x1P(N
[true])(
x1) = 0 + 1·
x1P(Wl
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Wl
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(check
[false])(
x1) = 0 + 1·
x1P(check
[true])(
x1) = 0 + 1·
x1P(Tr
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Tr
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Wr
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wr
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(ok
[false])(
x1) = 0 + 1·
x1P(ok
[true])(
x1) = 0 + 1·
x1P(O
[false])(
x1) = 1 + 1·
x1P(O
[true])(
x1) = 0 + 1·
x1P(B
[false])() = 0
P(B
[true])() = 0
The following rules were deleted from R:
Tr(x, N(y)) → Wl(x, check(y))
The following rules were deleted from S:
none
(12) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
Tr(x, N(y)) → Wl(check(x), y)
Tl(B, y) → Wr(B, check(y))
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wl(ok(x), y) → Tl(x, y)
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(13) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(Tl(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Wr(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Tr(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(Wl(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
Tl(B, y) → Wr(B, check(y))
Rules from S:
none
(14) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
Tr(x, N(y)) → Wl(check(x), y)
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wl(ok(x), y) → Tl(x, y)
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(15) RelTRSSemanticLabellingPOLOProof (EQUIVALENT transformation)
We use Semantic Labelling over tuples of bools combined with a polynomial order [SEMLAB]
We use semantic labelling over boolean tuples of size 1.
We used the following model:
Tl
2: component 1: OR[]
N
1: component 1: OR[x
11]
Wl
2: component 1: OR[]
check
1: component 1: AND[x
11]
Tr
2: component 1: OR[]
Wr
2: component 1: OR[]
ok
1: component 1: AND[x
11]
O
1: component 1: AND[]
B
0: component 1: OR[]
Our labelling function was:
Tl
2:component 1: OR[-x
11, x
21]
N
1:component 1: AND[x
11]
Wl
2:component 1: XOR[x
11]
check
1:component 1: OR[]
Tr
2:component 1: OR[-x
11, x
21]
Wr
2:component 1: AND[x
11]
ok
1:component 1: OR[x
11]
O
1:component 1: XOR[x
11]
B
0:component 1: AND[]
Our labelled system was:
[f]Tl[t](
[f]N[f](
[f]x),
[f]y) →
[f]Wl[f](
[f]x,
[f]check[f](
[f]y))
[f]Tl[t](
[f]N[f](
[f]x),
[t]y) →
[f]Wl[f](
[f]x,
[t]check[f](
[t]y))
[f]Tl[f](
[t]N[t](
[t]x),
[f]y) →
[f]Wl[t](
[t]x,
[f]check[f](
[f]y))
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wl[t](
[t]x,
[t]check[f](
[t]y))
[f]Tr[t](
[f]x,
[f]N[f](
[f]y)) →
[f]Wr[f](
[f]x,
[f]check[f](
[f]y))
[f]Tr[t](
[f]x,
[t]N[t](
[t]y)) →
[f]Wr[f](
[f]x,
[t]check[f](
[t]y))
[f]Tr[f](
[t]x,
[f]N[f](
[f]y)) →
[f]Wr[t](
[t]x,
[f]check[f](
[f]y))
[f]Tr[t](
[t]x,
[t]N[t](
[t]y)) →
[f]Wr[t](
[t]x,
[t]check[f](
[t]y))
[f]Wr[f](
[f]ok[f](
[f]x),
[f]y) →
[f]Tr[t](
[f]x,
[f]y)
[f]Wr[t](
[t]ok[t](
[t]x),
[f]y) →
[f]Tr[f](
[t]x,
[f]y)
[f]Wr[t](
[t]ok[t](
[t]x),
[t]y) →
[f]Tr[t](
[t]x,
[t]y)
[t]O[f](
[f]ok[f](
[f]x)) →
[t]ok[t](
[t]O[f](
[f]x))
[t]O[t](
[t]ok[t](
[t]x)) →
[t]ok[t](
[t]O[t](
[t]x))
[f]Wl[f](
[f]x,
[f]ok[f](
[f]y)) →
[f]Tl[t](
[f]x,
[f]y)
[f]Wl[f](
[f]x,
[t]ok[t](
[t]y)) →
[f]Tl[t](
[f]x,
[t]y)
[f]Wl[t](
[t]x,
[f]ok[f](
[f]y)) →
[f]Tl[f](
[t]x,
[f]y)
[f]Wl[t](
[t]x,
[t]ok[t](
[t]y)) →
[f]Tl[t](
[t]x,
[t]y)
[f]Tl[t](
[f]N[f](
[f]x),
[f]y) →
[f]Wl[f](
[f]check[f](
[f]x),
[f]y)
[f]Tl[f](
[t]N[t](
[t]x),
[f]y) →
[f]Wl[t](
[t]check[f](
[t]x),
[f]y)
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wl[t](
[t]check[f](
[t]x),
[t]y)
[f]Tr[t](
[f]x,
[f]N[f](
[f]y)) →
[f]Wr[f](
[f]check[f](
[f]x),
[f]y)
[f]Tr[t](
[f]x,
[t]N[t](
[t]y)) →
[f]Wr[f](
[f]check[f](
[f]x),
[t]y)
[f]Tr[f](
[t]x,
[f]N[f](
[f]y)) →
[f]Wr[t](
[t]check[f](
[t]x),
[f]y)
[f]Tr[t](
[t]x,
[t]N[t](
[t]y)) →
[f]Wr[t](
[t]check[f](
[t]x),
[t]y)
[f]check[f](
[f]N[f](
[f]x)) →
[f]N[f](
[f]check[f](
[f]x))
[t]check[f](
[t]N[t](
[t]x)) →
[t]N[t](
[t]check[f](
[t]x))
[f]B[t] →
[f]N[f](
[f]B[t])
[t]check[f](
[t]O[f](
[f]x)) →
[t]O[f](
[f]check[f](
[f]x))
[t]check[f](
[t]O[t](
[t]x)) →
[t]O[t](
[t]check[f](
[t]x))
[f]N[f](
[f]ok[f](
[f]x)) →
[f]ok[f](
[f]N[f](
[f]x))
[t]N[t](
[t]ok[t](
[t]x)) →
[t]ok[t](
[t]N[t](
[t]x))
[f]Wl[f](
[f]ok[f](
[f]x),
[f]y) →
[f]Tl[t](
[f]x,
[f]y)
[f]Wl[t](
[t]ok[t](
[t]x),
[f]y) →
[f]Tl[f](
[t]x,
[f]y)
[f]Wl[t](
[t]ok[t](
[t]x),
[t]y) →
[f]Tl[t](
[t]x,
[t]y)
[f]Wr[f](
[f]x,
[f]ok[f](
[f]y)) →
[f]Tr[t](
[f]x,
[f]y)
[f]Wr[f](
[f]x,
[t]ok[t](
[t]y)) →
[f]Tr[t](
[f]x,
[t]y)
[f]Wr[t](
[t]x,
[f]ok[f](
[f]y)) →
[f]Tr[f](
[t]x,
[f]y)
[f]Wr[t](
[t]x,
[t]ok[t](
[t]y)) →
[f]Tr[t](
[t]x,
[t]y)
[t]check[f](
[t]O[f](
[f]x)) →
[t]ok[t](
[t]O[f](
[f]x))
[t]check[f](
[t]O[t](
[t]x)) →
[t]ok[t](
[t]O[t](
[t]x))
[f]Tl[t](
[f]N[f](
[f]x),
[f]y) →
[f]Wr[f](
[f]check[f](
[f]x),
[f]y)
[f]Tl[f](
[t]N[t](
[t]x),
[f]y) →
[f]Wr[t](
[t]check[f](
[t]x),
[f]y)
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wr[t](
[t]check[f](
[t]x),
[t]y)
[f]Tr[t](
[f]x,
[f]N[f](
[f]y)) →
[f]Wl[f](
[f]check[f](
[f]x),
[f]y)
[f]Tr[t](
[f]x,
[t]N[t](
[t]y)) →
[f]Wl[f](
[f]check[f](
[f]x),
[t]y)
[f]Tr[f](
[t]x,
[f]N[f](
[f]y)) →
[f]Wl[t](
[t]check[f](
[t]x),
[f]y)
[f]Tr[t](
[t]x,
[t]N[t](
[t]y)) →
[f]Wl[t](
[t]check[f](
[t]x),
[t]y)
Our polynomial interpretation was:
P(Tl
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Tl
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(N
[false])(
x1) = 0 + 1·
x1P(N
[true])(
x1) = 1 + 1·
x1P(Wl
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wl
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(check
[false])(
x1) = 0 + 1·
x1P(check
[true])(
x1) = 0 + 1·
x1P(Tr
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Tr
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wr
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Wr
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(ok
[false])(
x1) = 1 + 1·
x1P(ok
[true])(
x1) = 0 + 1·
x1P(O
[false])(
x1) = 0 + 1·
x1P(O
[true])(
x1) = 0 + 1·
x1P(B
[false])() = 0
P(B
[true])() = 0
The following rules were deleted from R:
none
The following rules were deleted from S:
Wl(ok(x), y) → Tl(x, y)
(16) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
Tr(x, N(y)) → Wl(check(x), y)
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(17) RelTRSSemanticLabellingPOLOProof (EQUIVALENT transformation)
We use Semantic Labelling over tuples of bools combined with a polynomial order [SEMLAB]
We use semantic labelling over boolean tuples of size 1.
We used the following model:
Tl
2: component 1: OR[]
N
1: component 1: AND[x
11]
Wl
2: component 1: OR[]
check
1: component 1: OR[x
11]
Tr
2: component 1: OR[]
Wr
2: component 1: OR[]
ok
1: component 1: OR[]
O
1: component 1: OR[]
B
0: component 1: AND[]
Our labelling function was:
Tl
2:component 1: XOR[x
11]
N
1:component 1: AND[x
11]
Wl
2:component 1: OR[x
21]
check
1:component 1: AND[]
Tr
2:component 1: AND[]
Wr
2:component 1: OR[-x
21]
ok
1:component 1: AND[-x
11]
O
1:component 1: AND[]
B
0:component 1: XOR[]
Our labelled system was:
[f]Tl[f](
[f]N[f](
[f]x),
[f]y) →
[f]Wl[f](
[f]x,
[f]check[t](
[f]y))
[f]Tl[f](
[f]N[f](
[f]x),
[t]y) →
[f]Wl[t](
[f]x,
[t]check[t](
[t]y))
[f]Tl[t](
[t]N[t](
[t]x),
[f]y) →
[f]Wl[f](
[t]x,
[f]check[t](
[f]y))
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wl[t](
[t]x,
[t]check[t](
[t]y))
[f]Tr[t](
[f]x,
[f]N[f](
[f]y)) →
[f]Wr[t](
[f]x,
[f]check[t](
[f]y))
[f]Tr[t](
[f]x,
[t]N[t](
[t]y)) →
[f]Wr[f](
[f]x,
[t]check[t](
[t]y))
[f]Wr[t](
[f]ok[t](
[f]x),
[f]y) →
[f]Tr[t](
[f]x,
[f]y)
[f]Wr[f](
[f]ok[t](
[f]x),
[t]y) →
[f]Tr[t](
[f]x,
[t]y)
[f]Wr[t](
[f]ok[f](
[t]x),
[f]y) →
[f]Tr[t](
[t]x,
[f]y)
[f]Wr[f](
[f]ok[f](
[t]x),
[t]y) →
[f]Tr[t](
[t]x,
[t]y)
[f]O[t](
[f]ok[t](
[f]x)) →
[f]ok[t](
[f]O[t](
[f]x))
[f]O[t](
[f]ok[f](
[t]x)) →
[f]ok[t](
[f]O[t](
[t]x))
[f]Wl[f](
[f]x,
[f]ok[t](
[f]y)) →
[f]Tl[f](
[f]x,
[f]y)
[f]Wl[f](
[f]x,
[f]ok[f](
[t]y)) →
[f]Tl[f](
[f]x,
[t]y)
[f]Wl[f](
[t]x,
[f]ok[t](
[f]y)) →
[f]Tl[t](
[t]x,
[f]y)
[f]Wl[f](
[t]x,
[f]ok[f](
[t]y)) →
[f]Tl[t](
[t]x,
[t]y)
[f]Tl[f](
[f]N[f](
[f]x),
[f]y) →
[f]Wl[f](
[f]check[t](
[f]x),
[f]y)
[f]Tl[f](
[f]N[f](
[f]x),
[t]y) →
[f]Wl[t](
[f]check[t](
[f]x),
[t]y)
[f]Tl[t](
[t]N[t](
[t]x),
[f]y) →
[f]Wl[f](
[t]check[t](
[t]x),
[f]y)
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wl[t](
[t]check[t](
[t]x),
[t]y)
[f]Tr[t](
[f]x,
[f]N[f](
[f]y)) →
[f]Wr[t](
[f]check[t](
[f]x),
[f]y)
[f]Tr[t](
[f]x,
[t]N[t](
[t]y)) →
[f]Wr[f](
[f]check[t](
[f]x),
[t]y)
[f]Tr[t](
[t]x,
[f]N[f](
[f]y)) →
[f]Wr[t](
[t]check[t](
[t]x),
[f]y)
[f]Tr[t](
[t]x,
[t]N[t](
[t]y)) →
[f]Wr[f](
[t]check[t](
[t]x),
[t]y)
[f]check[t](
[f]N[f](
[f]x)) →
[f]N[f](
[f]check[t](
[f]x))
[t]check[t](
[t]N[t](
[t]x)) →
[t]N[t](
[t]check[t](
[t]x))
[t]B[f] →
[t]N[t](
[t]B[f])
[f]check[t](
[f]O[t](
[f]x)) →
[f]O[t](
[f]check[t](
[f]x))
[f]check[t](
[f]O[t](
[t]x)) →
[f]O[t](
[t]check[t](
[t]x))
[f]N[f](
[f]ok[t](
[f]x)) →
[f]ok[t](
[f]N[f](
[f]x))
[f]N[f](
[f]ok[f](
[t]x)) →
[f]ok[f](
[t]N[t](
[t]x))
[f]Wr[t](
[f]x,
[f]ok[t](
[f]y)) →
[f]Tr[t](
[f]x,
[f]y)
[f]Wr[t](
[f]x,
[f]ok[f](
[t]y)) →
[f]Tr[t](
[f]x,
[t]y)
[f]check[t](
[f]O[t](
[f]x)) →
[f]ok[t](
[f]O[t](
[f]x))
[f]Tl[f](
[f]N[f](
[f]x),
[f]y) →
[f]Wr[t](
[f]check[t](
[f]x),
[f]y)
[f]Tl[f](
[f]N[f](
[f]x),
[t]y) →
[f]Wr[f](
[f]check[t](
[f]x),
[t]y)
[f]Tl[t](
[t]N[t](
[t]x),
[f]y) →
[f]Wr[t](
[t]check[t](
[t]x),
[f]y)
[f]Tl[t](
[t]N[t](
[t]x),
[t]y) →
[f]Wr[f](
[t]check[t](
[t]x),
[t]y)
[f]Tr[t](
[f]x,
[f]N[f](
[f]y)) →
[f]Wl[f](
[f]check[t](
[f]x),
[f]y)
[f]Tr[t](
[f]x,
[t]N[t](
[t]y)) →
[f]Wl[t](
[f]check[t](
[f]x),
[t]y)
[f]Tr[t](
[t]x,
[f]N[f](
[f]y)) →
[f]Wl[f](
[t]check[t](
[t]x),
[f]y)
[f]Tr[t](
[t]x,
[t]N[t](
[t]y)) →
[f]Wl[t](
[t]check[t](
[t]x),
[t]y)
Our polynomial interpretation was:
P(Tl
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Tl
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(N
[false])(
x1) = 1 + 1·
x1P(N
[true])(
x1) = 0 + 1·
x1P(Wl
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Wl
[true])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(check
[false])(
x1) = 1 + 1·
x1P(check
[true])(
x1) = 0 + 1·
x1P(Tr
[false])(
x1,
x2) = 0 + 1·
x1 + 1·
x2P(Tr
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Wr
[false])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(Wr
[true])(
x1,
x2) = 1 + 1·
x1 + 1·
x2P(ok
[false])(
x1) = 0 + 1·
x1P(ok
[true])(
x1) = 0 + 1·
x1P(O
[false])(
x1) = 0 + 1·
x1P(O
[true])(
x1) = 0 + 1·
x1P(B
[false])() = 0
P(B
[true])() = 0
The following rules were deleted from R:
Tr(x, N(y)) → Wl(check(x), y)
The following rules were deleted from S:
none
(18) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
Tl(N(x), y) → Wr(check(x), y)
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(19) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Polynomial interpretation [POLO]:
POL(B) = 0
POL(N(x1)) = x1
POL(O(x1)) = x1
POL(Tl(x1, x2)) = 1 + x1 + x2
POL(Tr(x1, x2)) = x1 + x2
POL(Wl(x1, x2)) = 1 + x1 + x2
POL(Wr(x1, x2)) = x1 + x2
POL(check(x1)) = x1
POL(ok(x1)) = x1
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
Tl(N(x), y) → Wr(check(x), y)
Rules from S:
none
(20) Obligation:
Relative term rewrite system:
R is empty.
The relative TRS consists of the following S rules:
Tl(N(x), y) → Wl(x, check(y))
Tr(x, N(y)) → Wr(x, check(y))
Wr(ok(x), y) → Tr(x, y)
O(ok(x)) → ok(O(x))
Wl(x, ok(y)) → Tl(x, y)
Tl(N(x), y) → Wl(check(x), y)
Tr(x, N(y)) → Wr(check(x), y)
check(N(x)) → N(check(x))
B → N(B)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
Wr(x, ok(y)) → Tr(x, y)
check(O(x)) → ok(O(x))
(21) RIsEmptyProof (EQUIVALENT transformation)
The TRS R is empty. Hence, termination is trivially proven.
(22) YES