Termination proof

1: switching to dependency pairs

The following set of initial dependency pairs has been identified.

a__U11#( tt , V1 ) a__U12#( a__isNatList( V1 ) )
a__U11#( tt , V1 ) a__isNatList#( V1 )
a__U21#( tt , V1 ) a__U22#( a__isNat( V1 ) )
a__U21#( tt , V1 ) a__isNat#( V1 )
a__U31#( tt , V ) a__U32#( a__isNatList( V ) )
a__U31#( tt , V ) a__isNatList#( V )
a__U41#( tt , V1 , V2 ) a__U42#( a__isNat( V1 ) , V2 )
a__U41#( tt , V1 , V2 ) a__isNat#( V1 )
a__U42#( tt , V2 ) a__U43#( a__isNatIList( V2 ) )
a__U42#( tt , V2 ) a__isNatIList#( V2 )
a__U51#( tt , V1 , V2 ) a__U52#( a__isNat( V1 ) , V2 )
a__U51#( tt , V1 , V2 ) a__isNat#( V1 )
a__U52#( tt , V2 ) a__U53#( a__isNatList( V2 ) )
a__U52#( tt , V2 ) a__isNatList#( V2 )
a__U61#( tt , L ) a__length#( mark( L ) )
a__U61#( tt , L ) mark#( L )
a__and#( tt , X ) mark#( X )
a__isNat#( length( V1 ) ) a__U11#( a__isNatIListKind( V1 ) , V1 )
a__isNat#( length( V1 ) ) a__isNatIListKind#( V1 )
a__isNat#( s( V1 ) ) a__U21#( a__isNatKind( V1 ) , V1 )
a__isNat#( s( V1 ) ) a__isNatKind#( V1 )
a__isNatIList#( V ) a__U31#( a__isNatIListKind( V ) , V )
a__isNatIList#( V ) a__isNatIListKind#( V )
a__isNatIList#( cons( V1 , V2 ) ) a__U41#( a__and( a__isNatKind( V1 ) , isNatIListKind( V2 ) ) , V1 , V2 )
a__isNatIList#( cons( V1 , V2 ) ) a__and#( a__isNatKind( V1 ) , isNatIListKind( V2 ) )
a__isNatIList#( cons( V1 , V2 ) ) a__isNatKind#( V1 )
a__isNatIListKind#( cons( V1 , V2 ) ) a__and#( a__isNatKind( V1 ) , isNatIListKind( V2 ) )
a__isNatIListKind#( cons( V1 , V2 ) ) a__isNatKind#( V1 )
a__isNatKind#( length( V1 ) ) a__isNatIListKind#( V1 )
a__isNatKind#( s( V1 ) ) a__isNatKind#( V1 )
a__isNatList#( cons( V1 , V2 ) ) a__U51#( a__and( a__isNatKind( V1 ) , isNatIListKind( V2 ) ) , V1 , V2 )
a__isNatList#( cons( V1 , V2 ) ) a__and#( a__isNatKind( V1 ) , isNatIListKind( V2 ) )
a__isNatList#( cons( V1 , V2 ) ) a__isNatKind#( V1 )
a__length#( cons( N , L ) ) a__U61#( a__and( a__and( a__isNatList( L ) , isNatIListKind( L ) ) , and( isNat( N ) , isNatKind( N ) ) ) , L )
a__length#( cons( N , L ) ) a__and#( a__and( a__isNatList( L ) , isNatIListKind( L ) ) , and( isNat( N ) , isNatKind( N ) ) )
a__length#( cons( N , L ) ) a__and#( a__isNatList( L ) , isNatIListKind( L ) )
a__length#( cons( N , L ) ) a__isNatList#( L )
mark#( zeros ) a__zeros#
mark#( U11( X1 , X2 ) ) a__U11#( mark( X1 ) , X2 )
mark#( U11( X1 , X2 ) ) mark#( X1 )
mark#( U12( X ) ) a__U12#( mark( X ) )
mark#( U12( X ) ) mark#( X )
mark#( isNatList( X ) ) a__isNatList#( X )
mark#( U21( X1 , X2 ) ) a__U21#( mark( X1 ) , X2 )
mark#( U21( X1 , X2 ) ) mark#( X1 )
mark#( U22( X ) ) a__U22#( mark( X ) )
mark#( U22( X ) ) mark#( X )
mark#( isNat( X ) ) a__isNat#( X )
mark#( U31( X1 , X2 ) ) a__U31#( mark( X1 ) , X2 )
mark#( U31( X1 , X2 ) ) mark#( X1 )
mark#( U32( X ) ) a__U32#( mark( X ) )
mark#( U32( X ) ) mark#( X )
mark#( U41( X1 , X2 , X3 ) ) a__U41#( mark( X1 ) , X2 , X3 )
mark#( U41( X1 , X2 , X3 ) ) mark#( X1 )
mark#( U42( X1 , X2 ) ) a__U42#( mark( X1 ) , X2 )
mark#( U42( X1 , X2 ) ) mark#( X1 )
mark#( U43( X ) ) a__U43#( mark( X ) )
mark#( U43( X ) ) mark#( X )
mark#( isNatIList( X ) ) a__isNatIList#( X )
mark#( U51( X1 , X2 , X3 ) ) a__U51#( mark( X1 ) , X2 , X3 )
mark#( U51( X1 , X2 , X3 ) ) mark#( X1 )
mark#( U52( X1 , X2 ) ) a__U52#( mark( X1 ) , X2 )
mark#( U52( X1 , X2 ) ) mark#( X1 )
mark#( U53( X ) ) a__U53#( mark( X ) )
mark#( U53( X ) ) mark#( X )
mark#( U61( X1 , X2 ) ) a__U61#( mark( X1 ) , X2 )
mark#( U61( X1 , X2 ) ) mark#( X1 )
mark#( length( X ) ) a__length#( mark( X ) )
mark#( length( X ) ) mark#( X )
mark#( and( X1 , X2 ) ) a__and#( mark( X1 ) , X2 )
mark#( and( X1 , X2 ) ) mark#( X1 )
mark#( isNatIListKind( X ) ) a__isNatIListKind#( X )
mark#( isNatKind( X ) ) a__isNatKind#( X )
mark#( cons( X1 , X2 ) ) mark#( X1 )
mark#( s( X ) ) mark#( X )

1.1: dependency graph processor

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