YES Termination proof of rt-rw4.trs

(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))
RwRIn(Rw)
WwWIn(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))
RwRIn(Rw)
WwWIn(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))
RwRIn(Rw)
WwWIn(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(RAn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(R) =
/1\
\1/

POL(WAn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(W) =
/0\
\1/

POL(check(x1)) =
/0\
\0/
+
/11\
\01/
·x1

POL(RIn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(WIn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(ok(x1)) =
/1\
\0/
+
/10\
\01/
·x1

POL(sys_w(x1, x2)) =
/1\
\0/
+
/10\
\01/
·x1 +
/11\
\01/
·x2

POL(RIo(x1)) =
/1\
\1/
+
/10\
\01/
·x1

POL(sys_r(x1, x2)) =
/0\
\0/
+
/11\
\01/
·x1 +
/10\
\01/
·x2

POL(top(x1)) =
/0\
\0/
+
/11\
\10/
·x1

POL(read(x1, x2)) =
/0\
\1/
+
/11\
\00/
·x1 +
/11\
\00/
·x2

POL(write(x1, x2)) =
/0\
\0/
+
/10\
\00/
·x1 +
/10\
\00/
·x2

POL(Ww) =
/1\
\1/

POL(Rw) =
/1\
\0/

POL(WAo(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(WIo(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(RAo(x1)) =
/0\
\0/
+
/10\
\01/
·x1
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))
RwRIn(Rw)
WwWIn(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(RAn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(R) =
/1\
\0/

POL(WAn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(W) =
/1\
\1/

POL(check(x1)) =
/0\
\0/
+
/11\
\01/
·x1

POL(RIn(x1)) =
/0\
\0/
+
/11\
\01/
·x1

POL(WIn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(ok(x1)) =
/1\
\0/
+
/10\
\01/
·x1

POL(sys_w(x1, x2)) =
/0\
\0/
+
/11\
\01/
·x1 +
/11\
\01/
·x2

POL(RIo(x1)) =
/1\
\1/
+
/10\
\00/
·x1

POL(sys_r(x1, x2)) =
/1\
\0/
+
/10\
\01/
·x1 +
/10\
\01/
·x2

POL(top(x1)) =
/1\
\0/
+
/11\
\00/
·x1

POL(read(x1, x2)) =
/0\
\0/
+
/10\
\00/
·x1 +
/10\
\00/
·x2

POL(write(x1, x2)) =
/1\
\0/
+
/11\
\10/
·x1 +
/11\
\00/
·x2

POL(Ww) =
/1\
\1/

POL(Rw) =
/1\
\0/

POL(WAo(x1)) =
/1\
\0/
+
/10\
\01/
·x1

POL(WIo(x1)) =
/1\
\0/
+
/10\
\01/
·x1

POL(RAo(x1)) =
/1\
\1/
+
/10\
\01/
·x1
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))
RwRIn(Rw)
WwWIn(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(RAn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(R) =
/1\
\1/

POL(WAn(x1)) =
/0\
\1/
+
/10\
\10/
·x1

POL(W) =
/1\
\0/

POL(check(x1)) =
/1\
\1/
+
/10\
\11/
·x1

POL(RIn(x1)) =
/0\
\0/
+
/10\
\10/
·x1

POL(WIn(x1)) =
/0\
\1/
+
/10\
\10/
·x1

POL(ok(x1)) =
/1\
\1/
+
/10\
\01/
·x1

POL(sys_w(x1, x2)) =
/1\
\1/
+
/10\
\11/
·x1 +
/10\
\11/
·x2

POL(RIo(x1)) =
/1\
\0/
+
/10\
\00/
·x1

POL(sys_r(x1, x2)) =
/1\
\0/
+
/10\
\11/
·x1 +
/10\
\11/
·x2

POL(top(x1)) =
/1\
\1/
+
/10\
\00/
·x1

POL(read(x1, x2)) =
/1\
\1/
+
/11\
\11/
·x1 +
/10\
\11/
·x2

POL(write(x1, x2)) =
/1\
\1/
+
/10\
\11/
·x1 +
/10\
\10/
·x2

POL(Ww) =
/0\
\1/

POL(Rw) =
/1\
\1/

POL(WAo(x1)) =
/1\
\1/
+
/10\
\10/
·x1

POL(WIo(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(RAo(x1)) =
/1\
\0/
+
/11\
\10/
·x1
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))
RwRIn(Rw)
WwWIn(Ww)

(11) RelTRSRRRProof (EQUIVALENT transformation)

We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :

POL(RAn(x1)) =
/0\
\1/
+
/10\
\01/
·x1

POL(R) =
/1\
\1/

POL(WAn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(W) =
/0\
\1/

POL(check(x1)) =
/0\
\1/
+
/11\
\01/
·x1

POL(RIn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(WIn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(ok(x1)) =
/0\
\1/
+
/10\
\00/
·x1

POL(sys_w(x1, x2)) =
/1\
\0/
+
/10\
\01/
·x1 +
/10\
\01/
·x2

POL(RIo(x1)) =
/0\
\0/
+
/10\
\00/
·x1

POL(sys_r(x1, x2)) =
/1\
\0/
+
/10\
\01/
·x1 +
/10\
\01/
·x2

POL(top(x1)) =
/1\
\1/
+
/11\
\01/
·x1

POL(read(x1, x2)) =
/0\
\0/
+
/10\
\00/
·x1 +
/11\
\00/
·x2

POL(write(x1, x2)) =
/0\
\0/
+
/10\
\00/
·x1 +
/11\
\00/
·x2

POL(Ww) =
/0\
\0/

POL(Rw) =
/0\
\1/

POL(WAo(x1)) =
/1\
\0/
+
/10\
\01/
·x1

POL(WIo(x1)) =
/0\
\0/
+
/10\
\01/
·x1
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))
RwRIn(Rw)
WwWIn(Ww)

(13) RelTRSRRRProof (EQUIVALENT transformation)

We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :

POL(RAn(x1)) =
/0\
\0/
+
/10\
\11/
·x1

POL(R) =
/1\
\1/

POL(WAn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(W) =
/1\
\1/

POL(check(x1)) =
/0\
\1/
+
/11\
\01/
·x1

POL(RIn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(WIn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(ok(x1)) =
/1\
\1/
+
/10\
\01/
·x1

POL(sys_w(x1, x2)) =
/1\
\0/
+
/10\
\01/
·x1 +
/10\
\01/
·x2

POL(RIo(x1)) =
/1\
\1/
+
/10\
\00/
·x1

POL(sys_r(x1, x2)) =
/0\
\1/
+
/10\
\01/
·x1 +
/10\
\01/
·x2

POL(top(x1)) =
/1\
\0/
+
/11\
\00/
·x1

POL(read(x1, x2)) =
/1\
\0/
+
/10\
\00/
·x1 +
/10\
\00/
·x2

POL(write(x1, x2)) =
/1\
\0/
+
/11\
\00/
·x1 +
/10\
\00/
·x2

POL(Ww) =
/1\
\1/

POL(Rw) =
/0\
\1/

POL(WAo(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(WIo(x1)) =
/0\
\0/
+
/10\
\01/
·x1
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))
RwRIn(Rw)
WwWIn(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))
RwRIn(Rw)
WwWIn(Ww)

(17) RelTRSRRRProof (EQUIVALENT transformation)

We used the following monotonic ordering for rule removal:
Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :

POL(RAn(x1)) =
/1\
\1/
+
/10\
\00/
·x1

POL(R) =
/0\
\0/

POL(WAn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(W) =
/1\
\1/

POL(check(x1)) =
/0\
\1/
+
/10\
\10/
·x1

POL(RIn(x1)) =
/0\
\1/
+
/10\
\00/
·x1

POL(WIn(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(ok(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(sys_w(x1, x2)) =
/1\
\1/
+
/10\
\10/
·x1 +
/10\
\10/
·x2

POL(RIo(x1)) =
/0\
\1/
+
/10\
\00/
·x1

POL(top(x1)) =
/0\
\0/
+
/11\
\11/
·x1

POL(sys_r(x1, x2)) =
/0\
\1/
+
/10\
\11/
·x1 +
/10\
\11/
·x2

POL(read(x1, x2)) =
/1\
\0/
+
/11\
\00/
·x1 +
/10\
\10/
·x2

POL(Rw) =
/0\
\1/

POL(write(x1, x2)) =
/1\
\1/
+
/11\
\11/
·x1 +
/11\
\10/
·x2

POL(WAo(x1)) =
/0\
\0/
+
/10\
\01/
·x1

POL(Ww) =
/1\
\1/

POL(WIo(x1)) =
/1\
\0/
+
/10\
\01/
·x1
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))
RwRIn(Rw)
WwWIn(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))
RwRIn(Rw)
WwWIn(Ww)

(21) RIsEmptyProof (EQUIVALENT transformation)

The TRS R is empty. Hence, termination is trivially proven.

(22) YES