Termination proof

1: switching to dependency pairs

The following set of initial dependency pairs has been identified.

app#( app( app( compose , f ) , g ) , x ) app#( g , app( f , x ) )
app#( app( app( compose , f ) , g ) , x ) app#( f , x )
app#( reverse , l ) app#( app( reverse2 , l ) , nil )
app#( reverse , l ) app#( reverse2 , l )
app#( app( reverse2 , app( app( cons , x ) , xs ) ) , l ) app#( app( reverse2 , xs ) , app( app( cons , x ) , l ) )
app#( app( reverse2 , app( app( cons , x ) , xs ) ) , l ) app#( reverse2 , xs )
app#( app( reverse2 , app( app( cons , x ) , xs ) ) , l ) app#( app( cons , x ) , l )
app#( app( reverse2 , app( app( cons , x ) , xs ) ) , l ) app#( cons , x )
last# app#( app( compose , hd ) , reverse )
last# app#( compose , hd )
init# app#( app( compose , reverse ) , app( app( compose , tl ) , reverse ) )
init# app#( compose , reverse )
init# app#( app( compose , tl ) , reverse )
init# app#( compose , tl )

1.1: dependency graph processor

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