Termination proof

1: switching to dependency pairs

The following set of initial dependency pairs has been identified.

flatten#( unit( x ) ) flatten#( x )
flatten#( ++( x , y ) ) ++#( flatten( x ) , flatten( y ) )
flatten#( ++( x , y ) ) flatten#( x )
flatten#( ++( x , y ) ) flatten#( y )
flatten#( ++( unit( x ) , y ) ) ++#( flatten( x ) , flatten( y ) )
flatten#( ++( unit( x ) , y ) ) flatten#( x )
flatten#( ++( unit( x ) , y ) ) flatten#( y )
flatten#( flatten( x ) ) flatten#( x )
rev#( ++( x , y ) ) ++#( rev( y ) , rev( x ) )
rev#( ++( x , y ) ) rev#( y )
rev#( ++( x , y ) ) rev#( x )
++#( ++( x , y ) , z ) ++#( x , ++( y , z ) )
++#( ++( x , y ) , z ) ++#( y , z )

1.1: dependency graph processor

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