Termination proof

1: switching to dependency pairs

The following set of initial dependency pairs has been identified.

active#( f( 0 ) ) mark#( cons( 0 , f( s( 0 ) ) ) )
active#( f( 0 ) ) cons#( 0 , f( s( 0 ) ) )
active#( f( 0 ) ) f#( s( 0 ) )
active#( f( 0 ) ) s#( 0 )
active#( f( s( 0 ) ) ) mark#( f( p( s( 0 ) ) ) )
active#( f( s( 0 ) ) ) f#( p( s( 0 ) ) )
active#( f( s( 0 ) ) ) p#( s( 0 ) )
active#( f( s( 0 ) ) ) s#( 0 )
active#( p( s( 0 ) ) ) mark#( 0 )
mark#( f( X ) ) active#( f( mark( X ) ) )
mark#( f( X ) ) f#( mark( X ) )
mark#( f( X ) ) mark#( X )
mark#( 0 ) active#( 0 )
mark#( cons( X1 , X2 ) ) active#( cons( mark( X1 ) , X2 ) )
mark#( cons( X1 , X2 ) ) cons#( mark( X1 ) , X2 )
mark#( cons( X1 , X2 ) ) mark#( X1 )
mark#( s( X ) ) active#( s( mark( X ) ) )
mark#( s( X ) ) s#( mark( X ) )
mark#( s( X ) ) mark#( X )
mark#( p( X ) ) active#( p( mark( X ) ) )
mark#( p( X ) ) p#( mark( X ) )
mark#( p( X ) ) mark#( X )
f#( mark( X ) ) f#( X )
f#( active( X ) ) f#( X )
cons#( mark( X1 ) , X2 ) cons#( X1 , X2 )
cons#( X1 , mark( X2 ) ) cons#( X1 , X2 )
cons#( active( X1 ) , X2 ) cons#( X1 , X2 )
cons#( X1 , active( X2 ) ) cons#( X1 , X2 )
s#( mark( X ) ) s#( X )
s#( active( X ) ) s#( X )
p#( mark( X ) ) p#( X )
p#( active( X ) ) p#( X )

1.1: dependency graph processor

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