Certification Problem
Input (TPDB TRS_Equational/Mixed_AC_and_C/AC08)
The rewrite relation of the following equational TRS is considered.
eq(x,x) |
→ |
true |
(1) |
not(eq(x,y)) |
→ |
neq(x,y) |
(2) |
not(neq(x,y)) |
→ |
eq(x,y) |
(3) |
not(true) |
→ |
false |
(4) |
not(false) |
→ |
true |
(5) |
not(not(x)) |
→ |
x |
(6) |
not(and(x,y)) |
→ |
or(not(x),not(y)) |
(7) |
not(or(x,y)) |
→ |
and(not(x),not(y)) |
(8) |
neq(x,x) |
→ |
false |
(9) |
or(and(x,y),z) |
→ |
and(or(x,z),or(y,z)) |
(10) |
or(x,x) |
→ |
x |
(11) |
or(x,true) |
→ |
true |
(12) |
or(x,false) |
→ |
x |
(13) |
and(x,x) |
→ |
x |
(14) |
and(x,true) |
→ |
x |
(15) |
and(x,false) |
→ |
false |
(16) |
and(x,or(x,y)) |
→ |
x |
(17) |
Associative symbols: and, or
Commutative symbols: eq, neq, and, or
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by AProVE @ termCOMP 2023)
1 AC Dependency Pair Transformation
The following set of (strict) dependency pairs is constructed for the TRS.
not#(eq(x,y)) |
→ |
neq#(x,y) |
(32) |
not#(neq(x,y)) |
→ |
eq#(x,y) |
(33) |
not#(and(x,y)) |
→ |
or#(not(x),not(y)) |
(34) |
not#(and(x,y)) |
→ |
not#(x) |
(35) |
not#(and(x,y)) |
→ |
not#(y) |
(36) |
not#(or(x,y)) |
→ |
and#(not(x),not(y)) |
(37) |
not#(or(x,y)) |
→ |
not#(x) |
(38) |
not#(or(x,y)) |
→ |
not#(y) |
(39) |
or#(and(x,y),z) |
→ |
and#(or(x,z),or(y,z)) |
(40) |
or#(and(x,y),z) |
→ |
or#(x,z) |
(41) |
or#(and(x,y),z) |
→ |
or#(y,z) |
(42) |
and#(and(x,x),ext) |
→ |
and#(x,ext) |
(43) |
and#(and(x,true),ext) |
→ |
and#(x,ext) |
(44) |
and#(and(x,false),ext) |
→ |
and#(false,ext) |
(45) |
and#(and(x,or(x,y)),ext) |
→ |
and#(x,ext) |
(46) |
or#(or(and(x,y),z),ext) |
→ |
or#(and(or(x,z),or(y,z)),ext) |
(47) |
or#(or(and(x,y),z),ext) |
→ |
and#(or(x,z),or(y,z)) |
(48) |
or#(or(and(x,y),z),ext) |
→ |
or#(x,z) |
(49) |
or#(or(and(x,y),z),ext) |
→ |
or#(y,z) |
(50) |
or#(or(x,x),ext) |
→ |
or#(x,ext) |
(51) |
or#(or(x,true),ext) |
→ |
or#(true,ext) |
(52) |
or#(or(x,false),ext) |
→ |
or#(x,ext) |
(53) |
The extended rules of the TRS
and(and(x,x),ext) |
→ |
and(x,ext) |
(54) |
and(and(x,true),ext) |
→ |
and(x,ext) |
(55) |
and(and(x,false),ext) |
→ |
and(false,ext) |
(56) |
and(and(x,or(x,y)),ext) |
→ |
and(x,ext) |
(57) |
or(or(and(x,y),z),ext) |
→ |
or(and(or(x,z),or(y,z)),ext) |
(58) |
or(or(x,x),ext) |
→ |
or(x,ext) |
(59) |
or(or(x,true),ext) |
→ |
or(true,ext) |
(60) |
or(or(x,false),ext) |
→ |
or(x,ext) |
(61) |
give rise to even more dependency pairs (by sharping the root symbols of each rule).
Finiteness for all DPs in combination with the equational DPs is proven as follows.
1.1 Dependency Graph Processor
The dependency pairs are split into 5
components.
-
The
1st
component contains the
pair
not#(and(x,y)) |
→ |
not#(y) |
(36) |
not#(and(x,y)) |
→ |
not#(x) |
(35) |
not#(or(x,y)) |
→ |
not#(x) |
(38) |
not#(or(x,y)) |
→ |
not#(y) |
(39) |
1.1.1 AC Monotonic Reduction Pair Processor with Usable Rules
Using the linear polynomial interpretation over the naturals
[not#(x1)] |
= |
2 · x1
|
[or(x1, x2)] |
= |
3 · x1 + 1 · x2
|
[and(x1, x2)] |
= |
1 · x1 + 3 · x2
|
having no usable rules (w.r.t. the implicit argument filter of the
reduction pair),
the
pairs
not#(or(x,y)) |
→ |
not#(x) |
(38) |
not#(and(x,y)) |
→ |
not#(y) |
(36) |
not#(and(x,y)) |
→ |
not#(x) |
(35) |
not#(or(x,y)) |
→ |
not#(y) |
(39) |
and
the
rules
eq(x,x) |
→ |
true |
(1) |
not(eq(x,y)) |
→ |
neq(x,y) |
(2) |
not(neq(x,y)) |
→ |
eq(x,y) |
(3) |
not(true) |
→ |
false |
(4) |
not(false) |
→ |
true |
(5) |
not(not(x)) |
→ |
x |
(6) |
not(and(x,y)) |
→ |
or(not(x),not(y)) |
(7) |
not(or(x,y)) |
→ |
and(not(x),not(y)) |
(8) |
neq(x,x) |
→ |
false |
(9) |
or(and(x,y),z) |
→ |
and(or(x,z),or(y,z)) |
(10) |
or(x,x) |
→ |
x |
(11) |
or(x,true) |
→ |
true |
(12) |
or(x,false) |
→ |
x |
(13) |
and(x,x) |
→ |
x |
(14) |
and(x,true) |
→ |
x |
(15) |
and(x,false) |
→ |
false |
(16) |
and(x,or(x,y)) |
→ |
x |
(17) |
and(and(x,x),ext) |
→ |
and(x,ext) |
(54) |
and(and(x,true),ext) |
→ |
and(x,ext) |
(55) |
and(and(x,false),ext) |
→ |
and(false,ext) |
(56) |
and(and(x,or(x,y)),ext) |
→ |
and(x,ext) |
(57) |
or(or(and(x,y),z),ext) |
→ |
or(and(or(x,z),or(y,z)),ext) |
(58) |
or(or(x,x),ext) |
→ |
or(x,ext) |
(59) |
or(or(x,true),ext) |
→ |
or(true,ext) |
(60) |
or(or(x,false),ext) |
→ |
or(x,ext) |
(61) |
could be deleted.
1.1.1.1 AC Dependency Pair Problem is trivial
There are no strict pairs and rules remaining, or there are no DPs remaining. Therefore, finiteness is trivially satisfied.
-
The
2nd
component contains the
pair
or#(and(x,y),z) |
→ |
or#(y,z) |
(42) |
or#(and(x,y),z) |
→ |
or#(x,z) |
(41) |
or#(or(and(x,y),z),ext) |
→ |
or#(and(or(x,z),or(y,z)),ext) |
(47) |
or#(or(and(x,y),z),ext) |
→ |
or#(x,z) |
(49) |
or#(or(and(x,y),z),ext) |
→ |
or#(y,z) |
(50) |
or#(or(x,x),ext) |
→ |
or#(x,ext) |
(51) |
or#(or(x,true),ext) |
→ |
or#(true,ext) |
(52) |
or#(or(x,false),ext) |
→ |
or#(x,ext) |
(53) |
or#(or(x,y),z) |
→ |
or#(y,z) |
(31) |
or#(x,y) |
→ |
or#(y,x) |
(27) |
or#(or(x,y),z) |
→ |
or#(x,or(y,z)) |
(29) |
1.1.2 AC Reduction Pair Processor with Usable Rules
Using the non-linear polynomial interpretation over the naturals
[or#(x1, x2)] |
= |
1 · x2 + 1 · x1 + 1 · x1 · x2
|
[or(x1, x2)] |
= |
1 · x2 + 1 · x1 + 1 · x1 · x2
|
[and(x1, x2)] |
= |
1 + 1 · x2 + 1 · x1
|
[true] |
= |
1 |
[false] |
= |
1 |
together with the usable
rules
and(and(x,or(x,y)),ext) |
→ |
and(x,ext) |
(57) |
and(and(x,true),ext) |
→ |
and(x,ext) |
(55) |
and(x,x) |
→ |
x |
(14) |
and(x,true) |
→ |
x |
(15) |
and(and(x,false),ext) |
→ |
and(false,ext) |
(56) |
and(x,or(x,y)) |
→ |
x |
(17) |
and(x,false) |
→ |
false |
(16) |
and(and(x,x),ext) |
→ |
and(x,ext) |
(54) |
or(x,true) |
→ |
true |
(12) |
or(or(x,true),ext) |
→ |
or(true,ext) |
(60) |
or(or(and(x,y),z),ext) |
→ |
or(and(or(x,z),or(y,z)),ext) |
(58) |
or(or(x,x),ext) |
→ |
or(x,ext) |
(59) |
or(and(x,y),z) |
→ |
and(or(x,z),or(y,z)) |
(10) |
or(x,false) |
→ |
x |
(13) |
or(x,x) |
→ |
x |
(11) |
or(or(x,false),ext) |
→ |
or(x,ext) |
(61) |
and(x,y) |
→ |
and(y,x) |
(20) |
and(and(x,y),z) |
→ |
and(x,and(y,z)) |
(22) |
or(or(x,y),z) |
→ |
or(x,or(y,z)) |
(23) |
or(x,y) |
→ |
or(y,x) |
(21) |
(w.r.t. the implicit argument filter of the reduction pair),
the
pairs
or#(and(x,y),z) |
→ |
or#(y,z) |
(42) |
or#(or(and(x,y),z),ext) |
→ |
or#(x,z) |
(49) |
or#(and(x,y),z) |
→ |
or#(x,z) |
(41) |
or#(or(x,false),ext) |
→ |
or#(x,ext) |
(53) |
or#(or(and(x,y),z),ext) |
→ |
or#(y,z) |
(50) |
could be deleted.
1.1.2.1 AC Reduction Pair Processor with Usable Rules
Using the non-linear polynomial interpretation over the naturals
[or#(x1, x2)] |
= |
2 · x2 + 2 · x1 + 2 · x1 · x2
|
[or(x1, x2)] |
= |
1 + 2 · x2 + 2 · x1 + 2 · x1 · x2
|
[and(x1, x2)] |
= |
1 + 1 · x2 + 1 · x1
|
[true] |
= |
0 |
[false] |
= |
1 |
together with the usable
rules
or(x,true) |
→ |
true |
(12) |
or(or(x,true),ext) |
→ |
or(true,ext) |
(60) |
or(or(and(x,y),z),ext) |
→ |
or(and(or(x,z),or(y,z)),ext) |
(58) |
or(or(x,x),ext) |
→ |
or(x,ext) |
(59) |
or(and(x,y),z) |
→ |
and(or(x,z),or(y,z)) |
(10) |
or(x,false) |
→ |
x |
(13) |
or(x,x) |
→ |
x |
(11) |
or(or(x,false),ext) |
→ |
or(x,ext) |
(61) |
and(and(x,or(x,y)),ext) |
→ |
and(x,ext) |
(57) |
and(and(x,true),ext) |
→ |
and(x,ext) |
(55) |
and(x,x) |
→ |
x |
(14) |
and(x,true) |
→ |
x |
(15) |
and(and(x,false),ext) |
→ |
and(false,ext) |
(56) |
and(x,or(x,y)) |
→ |
x |
(17) |
and(x,false) |
→ |
false |
(16) |
and(and(x,x),ext) |
→ |
and(x,ext) |
(54) |
or(or(x,y),z) |
→ |
or(x,or(y,z)) |
(23) |
or(x,y) |
→ |
or(y,x) |
(21) |
and(x,y) |
→ |
and(y,x) |
(20) |
and(and(x,y),z) |
→ |
and(x,and(y,z)) |
(22) |
(w.r.t. the implicit argument filter of the reduction pair),
the
pairs
or#(or(x,x),ext) |
→ |
or#(x,ext) |
(51) |
or#(or(x,y),z) |
→ |
or#(y,z) |
(31) |
or#(or(x,true),ext) |
→ |
or#(true,ext) |
(52) |
could be deleted.
1.1.2.1.1 AC Reduction Pair Processor with Usable Rules
Using the non-linear polynomial interpretation over the naturals
[or#(x1, x2)] |
= |
1 · x2 + 1 · x1 + 1 · x1 · x2
|
[or(x1, x2)] |
= |
1 + 2 · x2 + 2 · x1 + 2 · x1 · x2
|
[and(x1, x2)] |
= |
2 + 1 · x2 + 1 · x1
|
[true] |
= |
0 |
[false] |
= |
0 |
together with the usable
rules
or(x,true) |
→ |
true |
(12) |
or(or(x,true),ext) |
→ |
or(true,ext) |
(60) |
or(or(and(x,y),z),ext) |
→ |
or(and(or(x,z),or(y,z)),ext) |
(58) |
or(or(x,x),ext) |
→ |
or(x,ext) |
(59) |
or(and(x,y),z) |
→ |
and(or(x,z),or(y,z)) |
(10) |
or(x,false) |
→ |
x |
(13) |
or(x,x) |
→ |
x |
(11) |
or(or(x,false),ext) |
→ |
or(x,ext) |
(61) |
and(and(x,or(x,y)),ext) |
→ |
and(x,ext) |
(57) |
and(and(x,true),ext) |
→ |
and(x,ext) |
(55) |
and(x,x) |
→ |
x |
(14) |
and(x,true) |
→ |
x |
(15) |
and(and(x,false),ext) |
→ |
and(false,ext) |
(56) |
and(x,or(x,y)) |
→ |
x |
(17) |
and(x,false) |
→ |
false |
(16) |
and(and(x,x),ext) |
→ |
and(x,ext) |
(54) |
or(or(x,y),z) |
→ |
or(x,or(y,z)) |
(23) |
or(x,y) |
→ |
or(y,x) |
(21) |
and(x,y) |
→ |
and(y,x) |
(20) |
and(and(x,y),z) |
→ |
and(x,and(y,z)) |
(22) |
(w.r.t. the implicit argument filter of the reduction pair),
the
pair
or#(or(and(x,y),z),ext) |
→ |
or#(and(or(x,z),or(y,z)),ext) |
(47) |
could be deleted.
1.1.2.1.1.1 AC Dependency Pair Problem is trivial
There are no strict pairs and rules remaining, or there are no DPs remaining. Therefore, finiteness is trivially satisfied.
-
The
3rd
component contains the
pair
and#(and(x,true),ext) |
→ |
and#(x,ext) |
(44) |
and#(and(x,x),ext) |
→ |
and#(x,ext) |
(43) |
and#(and(x,false),ext) |
→ |
and#(false,ext) |
(45) |
and#(and(x,or(x,y)),ext) |
→ |
and#(x,ext) |
(46) |
and#(and(x,y),z) |
→ |
and#(y,z) |
(30) |
and#(x,y) |
→ |
and#(y,x) |
(26) |
and#(and(x,y),z) |
→ |
and#(x,and(y,z)) |
(28) |
1.1.3 AC Monotonic Reduction Pair Processor with Usable Rules
Using the linear polynomial interpretation over the naturals
[and#(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[and(x1, x2)] |
= |
1 + 1 · x1 + 1 · x2
|
[or(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[true] |
= |
0 |
[false] |
= |
1 |
together with the usable
rules
and(and(x,or(x,y)),ext) |
→ |
and(x,ext) |
(57) |
and(x,true) |
→ |
x |
(15) |
and(and(x,false),ext) |
→ |
and(false,ext) |
(56) |
and(and(x,true),ext) |
→ |
and(x,ext) |
(55) |
and(x,or(x,y)) |
→ |
x |
(17) |
and(x,x) |
→ |
x |
(14) |
and(x,false) |
→ |
false |
(16) |
and(and(x,x),ext) |
→ |
and(x,ext) |
(54) |
and(x,y) |
→ |
and(y,x) |
(20) |
and(and(x,y),z) |
→ |
and(x,and(y,z)) |
(22) |
(w.r.t. the implicit argument filter of the reduction pair),
the
pairs
and#(and(x,x),ext) |
→ |
and#(x,ext) |
(43) |
and#(and(x,false),ext) |
→ |
and#(false,ext) |
(45) |
and#(and(x,y),z) |
→ |
and#(y,z) |
(30) |
and#(and(x,true),ext) |
→ |
and#(x,ext) |
(44) |
and#(and(x,or(x,y)),ext) |
→ |
and#(x,ext) |
(46) |
and
the
rules
eq(x,x) |
→ |
true |
(1) |
not(eq(x,y)) |
→ |
neq(x,y) |
(2) |
not(neq(x,y)) |
→ |
eq(x,y) |
(3) |
not(true) |
→ |
false |
(4) |
not(false) |
→ |
true |
(5) |
not(not(x)) |
→ |
x |
(6) |
not(and(x,y)) |
→ |
or(not(x),not(y)) |
(7) |
not(or(x,y)) |
→ |
and(not(x),not(y)) |
(8) |
neq(x,x) |
→ |
false |
(9) |
or(and(x,y),z) |
→ |
and(or(x,z),or(y,z)) |
(10) |
or(x,x) |
→ |
x |
(11) |
or(x,true) |
→ |
true |
(12) |
or(x,false) |
→ |
x |
(13) |
and(x,x) |
→ |
x |
(14) |
and(x,true) |
→ |
x |
(15) |
and(x,false) |
→ |
false |
(16) |
and(x,or(x,y)) |
→ |
x |
(17) |
and(and(x,x),ext) |
→ |
and(x,ext) |
(54) |
and(and(x,true),ext) |
→ |
and(x,ext) |
(55) |
and(and(x,false),ext) |
→ |
and(false,ext) |
(56) |
and(and(x,or(x,y)),ext) |
→ |
and(x,ext) |
(57) |
or(or(and(x,y),z),ext) |
→ |
or(and(or(x,z),or(y,z)),ext) |
(58) |
or(or(x,x),ext) |
→ |
or(x,ext) |
(59) |
or(or(x,true),ext) |
→ |
or(true,ext) |
(60) |
or(or(x,false),ext) |
→ |
or(x,ext) |
(61) |
could be deleted.
1.1.3.1 AC Dependency Pair Problem is trivial
There are no strict pairs and rules remaining, or there are no DPs remaining. Therefore, finiteness is trivially satisfied.
-
The
4th
component contains the
pair
1.1.4 AC Dependency Pair Problem is trivial
There are no strict pairs and rules remaining, or there are no DPs remaining. Therefore, finiteness is trivially satisfied.
-
The
5th
component contains the
pair
neq#(x,y) |
→ |
neq#(y,x) |
(25) |
1.1.5 AC Dependency Pair Problem is trivial
There are no strict pairs and rules remaining, or there are no DPs remaining. Therefore, finiteness is trivially satisfied.