Certification Problem

Input (COPS 272)

The rewrite relation of the following conditional TRS is considered.

lte(0,n) → true
lte(s(m),0) → false
lte(s(m),s(n)) → lte(m,n)
insert(nil,m) → cons(m,nil)
insert(cons(n,l),m) → cons(m,cons(n,l)) | lte(m,n) ≈ true
insert(cons(n,l),m) → cons(n,insert(l,m)) | lte(m,n) ≈ false
ordered(nil) → true
ordered(cons(m,nil)) → true
ordered(cons(m,cons(n,l))) → ordered(cons(n,l)) | lte(m,n) ≈ true
ordered(cons(m,cons(n,l))) → false | lte(m,n) ≈ false

Property / Task

Prove or disprove confluence.

Answer / Result

Yes.

Proof (by ConCon @ CoCo 2020)

1 Unraveling

To prove that the CTRS is confluent, we show confluence of the following unraveled system.

For ordered(cons(m,cons(n,l)))ordered(cons(n,l))lte(m,n)true we get
For lte(s(m),s(n))lte(m,n) we get
For ordered(cons(m,nil))true we get
For ordered(nil)true we get
For ordered(cons(m,cons(n,l)))falselte(m,n)false we get
For insert(cons(n,l),m)cons(n,insert(l,m))lte(m,n)false we get
For lte(s(m),0)false we get
For lte(0,n)true we get
For insert(nil,m)cons(m,nil) we get
For insert(cons(n,l),m)cons(m,cons(n,l))lte(m,n)true we get

1.1 Redundant Rules Transformation

To prove that the TRS is (non-)confluent, we show (non-)confluence of the following modified system:

U1(true,n,l,m) → cons(m,cons(n,l)) (12)
insert(nil,m) → cons(m,nil) (11)
lte(0,n) → true (10)
lte(s(m),0) → false (9)
U1(false,n,l,m) → cons(n,insert(l,m)) (8)
insert(cons(n,l),m) → U1(lte(m,n),n,l,m) (7)
U2(false,m,n,l) → false (6)
ordered(nil) → true (5)
ordered(cons(m,nil)) → true (4)
lte(s(m),s(n)) → lte(m,n) (3)
U2(true,m,n,l) → ordered(cons(n,l)) (2)
ordered(cons(m,cons(n,l))) → U2(lte(m,n),m,n,l) (1)

All redundant rules that were added or removed can be simulated in 2 steps .

1.1.1 Critical Pair Closing System

Confluence is proven using the following terminating critical-pair-closing-system R:

There are no rules.

1.1.1.1 R is empty

There are no rules in the TRS. Hence, it is terminating.