eq#( s( x ) , s( y ) ) | → | eq#( x , y ) |
union#( edge( x , y , i ) , h ) | → | union#( i , h ) |
reach#( x , y , edge( u , v , i ) , h ) | → | if_reach_1#( eq( x , u ) , x , y , edge( u , v , i ) , h ) |
reach#( x , y , edge( u , v , i ) , h ) | → | eq#( x , u ) |
if_reach_1#( true , x , y , edge( u , v , i ) , h ) | → | if_reach_2#( eq( y , v ) , x , y , edge( u , v , i ) , h ) |
if_reach_1#( true , x , y , edge( u , v , i ) , h ) | → | eq#( y , v ) |
if_reach_2#( false , x , y , edge( u , v , i ) , h ) | → | or#( reach( x , y , i , h ) , reach( v , y , union( i , h ) , empty ) ) |
if_reach_2#( false , x , y , edge( u , v , i ) , h ) | → | reach#( x , y , i , h ) |
if_reach_2#( false , x , y , edge( u , v , i ) , h ) | → | reach#( v , y , union( i , h ) , empty ) |
if_reach_2#( false , x , y , edge( u , v , i ) , h ) | → | union#( i , h ) |
if_reach_1#( false , x , y , edge( u , v , i ) , h ) | → | reach#( x , y , i , edge( u , v , h ) ) |
The dependency pairs are split into 3 component(s).
reach#( x , y , edge( u , v , i ) , h ) | → | if_reach_1#( eq( x , u ) , x , y , edge( u , v , i ) , h ) |
if_reach_1#( true , x , y , edge( u , v , i ) , h ) | → | if_reach_2#( eq( y , v ) , x , y , edge( u , v , i ) , h ) |
if_reach_2#( false , x , y , edge( u , v , i ) , h ) | → | reach#( x , y , i , h ) |
if_reach_2#( false , x , y , edge( u , v , i ) , h ) | → | reach#( v , y , union( i , h ) , empty ) |
if_reach_1#( false , x , y , edge( u , v , i ) , h ) | → | reach#( x , y , i , edge( u , v , h ) ) |
Linear polynomial interpretation over the naturals
[union (x1, x2) ] | = | x1 + x2 | |
[if_reach_2 (x1, ..., x5) ] | = | 0 | |
[if_reach_1 (x1, ..., x5) ] | = | 0 | |
[or (x1, x2) ] | = | 2 x1 | |
[eq (x1, x2) ] | = | 0 | |
[0] | = | 0 | |
[empty] | = | 1 | |
[reach (x1, ..., x4) ] | = | 0 | |
[true] | = | 0 | |
[edge (x1, x2, x3) ] | = | x1 + 1 | |
[if_reach_2# (x1, ..., x5) ] | = | x1 + x2 | |
[false] | = | 0 | |
[reach# (x1, ..., x4) ] | = | x1 + x2 | |
[s (x1) ] | = | 0 | |
[if_reach_1# (x1, ..., x5) ] | = | x1 + x2 | |
[f(x1, ..., xn)] | = | x1 + ... + xn + 1 | for all other symbols f of arity n |
reach#( x , y , edge( u , v , i ) , h ) | → | if_reach_1#( eq( x , u ) , x , y , edge( u , v , i ) , h ) |
if_reach_1#( true , x , y , edge( u , v , i ) , h ) | → | if_reach_2#( eq( y , v ) , x , y , edge( u , v , i ) , h ) |
if_reach_2#( false , x , y , edge( u , v , i ) , h ) | → | reach#( v , y , union( i , h ) , empty ) |
if_reach_1#( false , x , y , edge( u , v , i ) , h ) | → | reach#( x , y , i , edge( u , v , h ) ) |
Linear polynomial interpretation over the naturals
[union (x1, x2) ] | = | x1 + x2 | |
[if_reach_2 (x1, ..., x5) ] | = | 0 | |
[if_reach_1 (x1, ..., x5) ] | = | 0 | |
[or (x1, x2) ] | = | 2 x1 | |
[eq (x1, x2) ] | = | 0 | |
[0] | = | 0 | |
[empty] | = | 0 | |
[reach (x1, ..., x4) ] | = | 0 | |
[true] | = | 0 | |
[edge (x1, x2, x3) ] | = | x1 + 1 | |
[if_reach_2# (x1, ..., x5) ] | = | x1 + x2 | |
[false] | = | 0 | |
[reach# (x1, ..., x4) ] | = | x1 + x2 | |
[s (x1) ] | = | 0 | |
[if_reach_1# (x1, ..., x5) ] | = | x1 + x2 | |
[f(x1, ..., xn)] | = | x1 + ... + xn + 1 | for all other symbols f of arity n |
reach#( x , y , edge( u , v , i ) , h ) | → | if_reach_1#( eq( x , u ) , x , y , edge( u , v , i ) , h ) |
if_reach_1#( true , x , y , edge( u , v , i ) , h ) | → | if_reach_2#( eq( y , v ) , x , y , edge( u , v , i ) , h ) |
if_reach_1#( false , x , y , edge( u , v , i ) , h ) | → | reach#( x , y , i , edge( u , v , h ) ) |
The dependency pairs are split into 1 component(s).
if_reach_1#( false , x , y , edge( u , v , i ) , h ) | → | reach#( x , y , i , edge( u , v , h ) ) |
reach#( x , y , edge( u , v , i ) , h ) | → | if_reach_1#( eq( x , u ) , x , y , edge( u , v , i ) , h ) |
Linear polynomial interpretation over the naturals
[union (x1, x2) ] | = | x1 + 2 x2 | |
[if_reach_2 (x1, ..., x5) ] | = | 0 | |
[if_reach_1 (x1, ..., x5) ] | = | 0 | |
[or (x1, x2) ] | = | 2 x1 | |
[eq (x1, x2) ] | = | 1 | |
[0] | = | 0 | |
[empty] | = | 0 | |
[reach (x1, ..., x4) ] | = | 0 | |
[true] | = | 0 | |
[edge (x1, x2, x3) ] | = | x1 + 1 | |
[false] | = | 0 | |
[reach# (x1, ..., x4) ] | = | 2 x1 + 1 | |
[s (x1) ] | = | 0 | |
[if_reach_1# (x1, ..., x5) ] | = | 2 x1 | |
[f(x1, ..., xn)] | = | x1 + ... + xn + 1 | for all other symbols f of arity n |
none |
All dependency pairs have been removed.
eq#( s( x ) , s( y ) ) | → | eq#( x , y ) |
Linear polynomial interpretation over the naturals
[union (x1, x2) ] | = | 2 x1 + 2 x2 | |
[if_reach_2 (x1, ..., x5) ] | = | 0 | |
[if_reach_1 (x1, ..., x5) ] | = | 0 | |
[or (x1, x2) ] | = | 2 x1 | |
[eq (x1, x2) ] | = | 0 | |
[0] | = | 0 | |
[eq# (x1, x2) ] | = | x1 | |
[empty] | = | 0 | |
[reach (x1, ..., x4) ] | = | 0 | |
[true] | = | 0 | |
[edge (x1, x2, x3) ] | = | x1 | |
[false] | = | 0 | |
[s (x1) ] | = | 2 x1 + 1 | |
[f(x1, ..., xn)] | = | x1 + ... + xn + 1 | for all other symbols f of arity n |
none |
All dependency pairs have been removed.
union#( edge( x , y , i ) , h ) | → | union#( i , h ) |
Linear polynomial interpretation over the naturals
[union (x1, x2) ] | = | 3 x1 + x2 | |
[if_reach_2 (x1, ..., x5) ] | = | 0 | |
[if_reach_1 (x1, ..., x5) ] | = | 0 | |
[or (x1, x2) ] | = | 2 x1 | |
[eq (x1, x2) ] | = | 3 x1 | |
[0] | = | 0 | |
[empty] | = | 0 | |
[reach (x1, ..., x4) ] | = | 0 | |
[union# (x1, x2) ] | = | 2 x1 | |
[true] | = | 0 | |
[edge (x1, x2, x3) ] | = | 2 x1 + 3 x2 + x3 + 2 | |
[false] | = | 0 | |
[s (x1) ] | = | 2 x1 + 1 | |
[f(x1, ..., xn)] | = | x1 + ... + xn + 1 | for all other symbols f of arity n |
none |
All dependency pairs have been removed.