Termination proof

1: switching to dependency pairs

The following set of initial dependency pairs has been identified.

active#( terms( N ) ) cons#( recip( sqr( N ) ) , terms( s( N ) ) )
active#( terms( N ) ) recip#( sqr( N ) )
active#( terms( N ) ) sqr#( N )
active#( terms( N ) ) terms#( s( N ) )
active#( terms( N ) ) s#( N )
active#( sqr( s( X ) ) ) s#( add( sqr( X ) , dbl( X ) ) )
active#( sqr( s( X ) ) ) add#( sqr( X ) , dbl( X ) )
active#( sqr( s( X ) ) ) sqr#( X )
active#( sqr( s( X ) ) ) dbl#( X )
active#( dbl( s( X ) ) ) s#( s( dbl( X ) ) )
active#( dbl( s( X ) ) ) s#( dbl( X ) )
active#( dbl( s( X ) ) ) dbl#( X )
active#( add( s( X ) , Y ) ) s#( add( X , Y ) )
active#( add( s( X ) , Y ) ) add#( X , Y )
active#( first( s( X ) , cons( Y , Z ) ) ) cons#( Y , first( X , Z ) )
active#( first( s( X ) , cons( Y , Z ) ) ) first#( X , Z )
active#( terms( X ) ) terms#( active( X ) )
active#( terms( X ) ) active#( X )
active#( cons( X1 , X2 ) ) cons#( active( X1 ) , X2 )
active#( cons( X1 , X2 ) ) active#( X1 )
active#( recip( X ) ) recip#( active( X ) )
active#( recip( X ) ) active#( X )
active#( sqr( X ) ) sqr#( active( X ) )
active#( sqr( X ) ) active#( X )
active#( add( X1 , X2 ) ) add#( active( X1 ) , X2 )
active#( add( X1 , X2 ) ) active#( X1 )
active#( add( X1 , X2 ) ) add#( X1 , active( X2 ) )
active#( add( X1 , X2 ) ) active#( X2 )
active#( dbl( X ) ) dbl#( active( X ) )
active#( dbl( X ) ) active#( X )
active#( first( X1 , X2 ) ) first#( active( X1 ) , X2 )
active#( first( X1 , X2 ) ) active#( X1 )
active#( first( X1 , X2 ) ) first#( X1 , active( X2 ) )
active#( first( X1 , X2 ) ) active#( X2 )
terms#( mark( X ) ) terms#( X )
cons#( mark( X1 ) , X2 ) cons#( X1 , X2 )
recip#( mark( X ) ) recip#( X )
sqr#( mark( X ) ) sqr#( X )
add#( mark( X1 ) , X2 ) add#( X1 , X2 )
add#( X1 , mark( X2 ) ) add#( X1 , X2 )
dbl#( mark( X ) ) dbl#( X )
first#( mark( X1 ) , X2 ) first#( X1 , X2 )
first#( X1 , mark( X2 ) ) first#( X1 , X2 )
proper#( terms( X ) ) terms#( proper( X ) )
proper#( terms( X ) ) proper#( X )
proper#( cons( X1 , X2 ) ) cons#( proper( X1 ) , proper( X2 ) )
proper#( cons( X1 , X2 ) ) proper#( X1 )
proper#( cons( X1 , X2 ) ) proper#( X2 )
proper#( recip( X ) ) recip#( proper( X ) )
proper#( recip( X ) ) proper#( X )
proper#( sqr( X ) ) sqr#( proper( X ) )
proper#( sqr( X ) ) proper#( X )
proper#( s( X ) ) s#( proper( X ) )
proper#( s( X ) ) proper#( X )
proper#( add( X1 , X2 ) ) add#( proper( X1 ) , proper( X2 ) )
proper#( add( X1 , X2 ) ) proper#( X1 )
proper#( add( X1 , X2 ) ) proper#( X2 )
proper#( dbl( X ) ) dbl#( proper( X ) )
proper#( dbl( X ) ) proper#( X )
proper#( first( X1 , X2 ) ) first#( proper( X1 ) , proper( X2 ) )
proper#( first( X1 , X2 ) ) proper#( X1 )
proper#( first( X1 , X2 ) ) proper#( X2 )
terms#( ok( X ) ) terms#( X )
cons#( ok( X1 ) , ok( X2 ) ) cons#( X1 , X2 )
recip#( ok( X ) ) recip#( X )
sqr#( ok( X ) ) sqr#( X )
s#( ok( X ) ) s#( X )
add#( ok( X1 ) , ok( X2 ) ) add#( X1 , X2 )
dbl#( ok( X ) ) dbl#( X )
first#( ok( X1 ) , ok( X2 ) ) first#( X1 , X2 )
top#( mark( X ) ) top#( proper( X ) )
top#( mark( X ) ) proper#( X )
top#( ok( X ) ) top#( active( X ) )
top#( ok( X ) ) active#( X )

1.1: dependency graph processor

The dependency pairs are split into 11 component(s).