(0) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAo(R) → R
RAn(R) → R
WAo(W) → W
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
top(ok(sys_w(read(r, RIo(x)), write(W, Ww)))) → top(check(sys_w(read(RAo(r), x), write(W, Ww))))
check(sys_r(x, y)) → sys_r(check(x), y)
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
top(ok(sys_w(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_w(read(RAn(r), x), write(W, Ww))))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
top(ok(sys_w(read(R, x), write(W, WIo(y))))) → top(check(sys_r(read(R, x), write(WAo(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
top(ok(sys_w(read(R, Rw), write(W, WIn(y))))) → top(check(sys_w(read(R, Rw), write(WAn(W), y))))
top(ok(sys_r(read(r, RIo(x)), write(W, y)))) → top(check(sys_w(read(RAo(r), x), write(W, y))))
WAo(ok(x)) → ok(WAo(x))
top(ok(sys_r(read(r, RIn(x)), write(W, y)))) → top(check(sys_w(read(RAn(r), x), write(W, y))))
check(sys_w(x, y)) → sys_w(check(x), y)
top(ok(sys_w(read(R, Rw), write(W, WIo(y))))) → top(check(sys_w(read(R, Rw), write(WAo(W), y))))
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
top(ok(sys_r(read(R, Rw), write(W, WIo(y))))) → top(check(sys_r(read(R, Rw), write(WAo(W), y))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
check(RAn(x)) → RAn(check(x))
check(sys_r(x, y)) → sys_r(x, check(y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
check(RIo(x)) → RIo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
top(ok(sys_r(read(r, RIo(x)), write(W, Ww)))) → top(check(sys_r(read(RAo(r), x), write(W, Ww))))
check(RAo(x)) → RAo(check(x))
RAo(ok(x)) → ok(RAo(x))
(1) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Polynomial interpretation [POLO]:
POL(R) = 0
POL(RAn(x1)) = x1
POL(RAo(x1)) = x1
POL(RIn(x1)) = x1
POL(RIo(x1)) = 1 + x1
POL(Rw) = 0
POL(W) = 0
POL(WAn(x1)) = x1
POL(WAo(x1)) = x1
POL(WIn(x1)) = x1
POL(WIo(x1)) = 1 + x1
POL(Ww) = 0
POL(check(x1)) = x1
POL(ok(x1)) = x1
POL(read(x1, x2)) = x1 + x2
POL(sys_r(x1, x2)) = x1 + x2
POL(sys_w(x1, x2)) = x1 + x2
POL(top(x1)) = x1
POL(write(x1, x2)) = x1 + x2
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
none
Rules from S:
top(ok(sys_w(read(r, RIo(x)), write(W, Ww)))) → top(check(sys_w(read(RAo(r), x), write(W, Ww))))
top(ok(sys_w(read(R, x), write(W, WIo(y))))) → top(check(sys_r(read(R, x), write(WAo(W), y))))
top(ok(sys_r(read(r, RIo(x)), write(W, y)))) → top(check(sys_w(read(RAo(r), x), write(W, y))))
top(ok(sys_w(read(R, Rw), write(W, WIo(y))))) → top(check(sys_w(read(R, Rw), write(WAo(W), y))))
top(ok(sys_r(read(R, Rw), write(W, WIo(y))))) → top(check(sys_r(read(R, Rw), write(WAo(W), y))))
top(ok(sys_r(read(r, RIo(x)), write(W, Ww)))) → top(check(sys_r(read(RAo(r), x), write(W, Ww))))
(2) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAo(R) → R
RAn(R) → R
WAo(W) → W
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_r(x, y)) → sys_r(check(x), y)
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
top(ok(sys_w(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_w(read(RAn(r), x), write(W, Ww))))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
top(ok(sys_w(read(R, Rw), write(W, WIn(y))))) → top(check(sys_w(read(R, Rw), write(WAn(W), y))))
WAo(ok(x)) → ok(WAo(x))
top(ok(sys_r(read(r, RIn(x)), write(W, y)))) → top(check(sys_w(read(RAn(r), x), write(W, y))))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
check(RAn(x)) → RAn(check(x))
check(sys_r(x, y)) → sys_r(x, check(y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
check(RIo(x)) → RIo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
check(RAo(x)) → RAo(check(x))
RAo(ok(x)) → ok(RAo(x))
(3) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Polynomial interpretation [POLO]:
POL(R) = 0
POL(RAn(x1)) = x1
POL(RAo(x1)) = 1 + x1
POL(RIn(x1)) = x1
POL(RIo(x1)) = x1
POL(Rw) = 0
POL(W) = 0
POL(WAn(x1)) = x1
POL(WAo(x1)) = 1 + x1
POL(WIn(x1)) = x1
POL(WIo(x1)) = x1
POL(Ww) = 0
POL(check(x1)) = x1
POL(ok(x1)) = x1
POL(read(x1, x2)) = x1 + x2
POL(sys_r(x1, x2)) = x1 + x2
POL(sys_w(x1, x2)) = x1 + x2
POL(top(x1)) = x1
POL(write(x1, x2)) = x1 + x2
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
RAo(R) → R
WAo(W) → W
Rules from S:
none
(4) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAn(R) → R
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_r(x, y)) → sys_r(check(x), y)
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
top(ok(sys_w(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_w(read(RAn(r), x), write(W, Ww))))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
top(ok(sys_w(read(R, Rw), write(W, WIn(y))))) → top(check(sys_w(read(R, Rw), write(WAn(W), y))))
WAo(ok(x)) → ok(WAo(x))
top(ok(sys_r(read(r, RIn(x)), write(W, y)))) → top(check(sys_w(read(RAn(r), x), write(W, y))))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
check(RAn(x)) → RAn(check(x))
check(sys_r(x, y)) → sys_r(x, check(y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
check(RIo(x)) → RIo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
check(RAo(x)) → RAo(check(x))
RAo(ok(x)) → ok(RAo(x))
(5) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(sys_w(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(sys_r(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(read(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(write(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
none
Rules from S:
check(RIo(x)) → RIo(check(x))
(6) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAn(R) → R
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_r(x, y)) → sys_r(check(x), y)
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
top(ok(sys_w(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_w(read(RAn(r), x), write(W, Ww))))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
top(ok(sys_w(read(R, Rw), write(W, WIn(y))))) → top(check(sys_w(read(R, Rw), write(WAn(W), y))))
WAo(ok(x)) → ok(WAo(x))
top(ok(sys_r(read(r, RIn(x)), write(W, y)))) → top(check(sys_w(read(RAn(r), x), write(W, y))))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
check(RAn(x)) → RAn(check(x))
check(sys_r(x, y)) → sys_r(x, check(y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
check(RAo(x)) → RAo(check(x))
RAo(ok(x)) → ok(RAo(x))
(7) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(sys_w(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(sys_r(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(read(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(write(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
none
Rules from S:
check(RAo(x)) → RAo(check(x))
(8) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAn(R) → R
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_r(x, y)) → sys_r(check(x), y)
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
top(ok(sys_w(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_w(read(RAn(r), x), write(W, Ww))))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
top(ok(sys_w(read(R, Rw), write(W, WIn(y))))) → top(check(sys_w(read(R, Rw), write(WAn(W), y))))
WAo(ok(x)) → ok(WAo(x))
top(ok(sys_r(read(r, RIn(x)), write(W, y)))) → top(check(sys_w(read(RAn(r), x), write(W, y))))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
check(RAn(x)) → RAn(check(x))
check(sys_r(x, y)) → sys_r(x, check(y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
RAo(ok(x)) → ok(RAo(x))
(9) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(sys_w(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(sys_r(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(read(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(write(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
none
Rules from S:
RAo(ok(x)) → ok(RAo(x))
(10) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAn(R) → R
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_r(x, y)) → sys_r(check(x), y)
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
top(ok(sys_w(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_w(read(RAn(r), x), write(W, Ww))))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
top(ok(sys_w(read(R, Rw), write(W, WIn(y))))) → top(check(sys_w(read(R, Rw), write(WAn(W), y))))
WAo(ok(x)) → ok(WAo(x))
top(ok(sys_r(read(r, RIn(x)), write(W, y)))) → top(check(sys_w(read(RAn(r), x), write(W, y))))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
check(RAn(x)) → RAn(check(x))
check(sys_r(x, y)) → sys_r(x, check(y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
(11) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(sys_w(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(sys_r(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(read(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(write(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
none
Rules from S:
check(RAn(x)) → RAn(check(x))
(12) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAn(R) → R
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_r(x, y)) → sys_r(check(x), y)
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
top(ok(sys_w(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_w(read(RAn(r), x), write(W, Ww))))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
top(ok(sys_w(read(R, Rw), write(W, WIn(y))))) → top(check(sys_w(read(R, Rw), write(WAn(W), y))))
WAo(ok(x)) → ok(WAo(x))
top(ok(sys_r(read(r, RIn(x)), write(W, y)))) → top(check(sys_w(read(RAn(r), x), write(W, y))))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
check(sys_r(x, y)) → sys_r(x, check(y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
(13) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(sys_w(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(sys_r(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(read(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(write(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
none
Rules from S:
check(sys_r(x, y)) → sys_r(check(x), y)
top(ok(sys_w(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_w(read(RAn(r), x), write(W, Ww))))
top(ok(sys_w(read(R, Rw), write(W, WIn(y))))) → top(check(sys_w(read(R, Rw), write(WAn(W), y))))
top(ok(sys_r(read(r, RIn(x)), write(W, y)))) → top(check(sys_w(read(RAn(r), x), write(W, y))))
check(sys_r(x, y)) → sys_r(x, check(y))
(14) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAn(R) → R
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
WAo(ok(x)) → ok(WAo(x))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
(15) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Polynomial interpretation [POLO]:
POL(R) = 0
POL(RAn(x1)) = x1
POL(RIn(x1)) = x1
POL(RIo(x1)) = x1
POL(Rw) = 0
POL(W) = 0
POL(WAn(x1)) = x1
POL(WAo(x1)) = x1
POL(WIn(x1)) = x1
POL(WIo(x1)) = x1
POL(Ww) = 0
POL(check(x1)) = 1 + x1
POL(ok(x1)) = 1 + x1
POL(read(x1, x2)) = x1 + x2
POL(sys_r(x1, x2)) = x1 + x2
POL(sys_w(x1, x2)) = 1 + x1 + x2
POL(top(x1)) = x1
POL(write(x1, x2)) = x1 + x2
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
none
Rules from S:
top(ok(sys_w(read(R, x), write(W, WIn(y))))) → top(check(sys_r(read(R, x), write(WAn(W), y))))
(16) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
RAn(R) → R
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_w(x, y)) → sys_w(x, check(y))
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
WAo(ok(x)) → ok(WAo(x))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
(17) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :
POL(sys_w(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(sys_r(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(read(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
POL(write(x1, x2)) = | | + | | · | x1 | + | | · | x2 |
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
RAn(R) → R
Rules from S:
top(ok(sys_r(read(R, Rw), write(W, WIn(y))))) → top(check(sys_r(read(R, Rw), write(WAn(W), y))))
(18) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
WAn(W) → W
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_w(x, y)) → sys_w(x, check(y))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
WAo(ok(x)) → ok(WAo(x))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
(19) RelTRSRRRProof (EQUIVALENT transformation)
We used the following monotonic ordering for rule removal:
Polynomial interpretation [POLO]:
POL(RAn(x1)) = x1
POL(RIn(x1)) = x1
POL(RIo(x1)) = x1
POL(Rw) = 0
POL(W) = 0
POL(WAn(x1)) = 1 + x1
POL(WAo(x1)) = x1
POL(WIn(x1)) = x1
POL(WIo(x1)) = x1
POL(Ww) = 0
POL(check(x1)) = x1
POL(ok(x1)) = x1
POL(read(x1, x2)) = x1 + x2
POL(sys_r(x1, x2)) = x1 + x2
POL(sys_w(x1, x2)) = x1 + x2
POL(top(x1)) = x1
POL(write(x1, x2)) = x1 + x2
With this ordering the following rules can be removed [MATRO] because they are oriented strictly:
Rules from R:
WAn(W) → W
Rules from S:
none
(20) Obligation:
Relative term rewrite system:
R is empty.
The relative TRS consists of the following S rules:
check(RIn(x)) → RIn(check(x))
WIn(ok(x)) → ok(WIn(x))
sys_w(ok(x), y) → ok(sys_w(x, y))
check(WAn(x)) → WAn(check(x))
check(RIo(x)) → ok(RIo(x))
check(sys_w(x, y)) → sys_w(x, check(y))
sys_r(ok(x), y) → ok(sys_r(x, y))
check(WIn(x)) → WIn(check(x))
WAo(ok(x)) → ok(WAo(x))
check(sys_w(x, y)) → sys_w(check(x), y)
RIn(ok(x)) → ok(RIn(x))
top(ok(sys_r(read(r, RIn(x)), write(W, Ww)))) → top(check(sys_r(read(RAn(r), x), write(W, Ww))))
check(WIo(x)) → WIo(check(x))
sys_r(x, ok(y)) → ok(sys_r(x, y))
sys_w(x, ok(y)) → ok(sys_w(x, y))
RAn(ok(x)) → ok(RAn(x))
check(WAo(x)) → WAo(check(x))
WIo(ok(x)) → ok(WIo(x))
WAn(ok(x)) → ok(WAn(x))
Rw → RIn(Rw)
Ww → WIn(Ww)
(21) RIsEmptyProof (EQUIVALENT transformation)
The TRS R is empty. Hence, termination is trivially proven.
(22) YES