Termination proof

1: switching to dependency pairs

The following set of initial dependency pairs has been identified.

a__and#( true , X ) mark#( X )
a__if#( true , X , Y ) mark#( X )
a__if#( false , X , Y ) mark#( Y )
a__add#( 0 , X ) mark#( X )
mark#( and( X1 , X2 ) ) a__and#( mark( X1 ) , X2 )
mark#( and( X1 , X2 ) ) mark#( X1 )
mark#( if( X1 , X2 , X3 ) ) a__if#( mark( X1 ) , X2 , X3 )
mark#( if( X1 , X2 , X3 ) ) mark#( X1 )
mark#( add( X1 , X2 ) ) a__add#( mark( X1 ) , X2 )
mark#( add( X1 , X2 ) ) mark#( X1 )
mark#( first( X1 , X2 ) ) a__first#( mark( X1 ) , mark( X2 ) )
mark#( first( X1 , X2 ) ) mark#( X1 )
mark#( first( X1 , X2 ) ) mark#( X2 )
mark#( from( X ) ) a__from#( X )

1.1: dependency graph processor

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