*************************************
Proof
    { system = (VAR l n
                    l x
                    u v)
               (STRATEGY INNERMOST)
               (RULES nthtail (n, l) -> cond (ge (n, length (l)), n, l)
                      cond (true, n, l) -> l
                      cond (false, n, l) -> tail (nthtail (s (n), l))
                      tail (nil) -> nil
                      tail (cons (x, l)) -> l
                      length (nil) -> 0
                      length (cons (x, l)) -> s (length (l))
                      ge (u, 0) -> true
                      ge (0, s (v)) -> false
                      ge (s (u), s (v)) -> ge (u, v))
    , property = Termination , truth = Nothing , transform = Ignore_Strategy
    , to = [ Proof
                 { system = (VAR l n
                                 l x
                                 u v)
                            (STRATEGY INNERMOST)
                            (RULES nthtail (n, l) -> cond (ge (n, length (l)), n, l)
                                   cond (true, n, l) -> l
                                   cond (false, n, l) -> tail (nthtail (s (n), l))
                                   tail (nil) -> nil
                                   tail (cons (x, l)) -> l
                                   length (nil) -> 0
                                   length (cons (x, l)) -> s (length (l))
                                   ge (u, 0) -> true
                                   ge (0, s (v)) -> false
                                   ge (s (u), s (v)) -> ge (u, v))
                 , property = Termination , truth = Nothing , transform = Dependency_Pair_Transformation
                 , to = [ Proof
                              { system = (VAR l n
                                              l x
                                              u v)
                                         (STRATEGY INNERMOST)
                                         (RULES nthtailP (n, l) -> condP (ge (n, length (l)), n, l)
                                                nthtailP (n, l) -> geP (n, length (l))
                                                nthtailP (n, l) -> lengthP (l)
                                                condP (false, n, l) -> tailP (nthtail (s (n), l))
                                                condP (false, n, l) -> nthtailP (s (n), l)
                                                lengthP (cons (x, l)) -> lengthP (l)
                                                geP (s (u), s (v)) -> geP (u, v)
                                                nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                cond (true, n, l) ->= l
                                                cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                tail (nil) ->= nil
                                                tail (cons (x, l)) ->= l
                                                length (nil) ->= 0
                                                length (cons (x, l)) ->= s (length (l))
                                                ge (u, 0) ->= true
                                                ge (0, s (v)) ->= false
                                                ge (s (u), s (v)) ->= ge (u, v))
                              , property = Top_Termination , truth = Nothing
                              , transform = Remove
                                                { interpretation = Interpretation
                                                                       geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                                                       nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                       condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (2)
                                                                       0 |-> () |-> E^0x1
                                                                       s |-> (x) |-> E^0x0 * x + E^0x1
                                                                       nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                                                       false |-> () |-> E^0x1
                                                                       ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                       tail |-> (x) |-> E^0x0 * x + E^0x1
                                                                       true |-> () |-> E^0x1
                                                                       lengthP |-> (x) |-> E^1x0 * x + (1)
                                                                       tailP |-> (x) |-> E^1x0 * x + (2)
                                                                       nil |-> () |-> E^0x1
                                                                       cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                       length |-> (x) |-> E^0x0 * x + E^0x1
                                                                       cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                                                , removes_rules = [ nthtailP (n, l) -> lengthP (l) ] , comment = size 0 , heights ( 3 , 7 ) , time 
                                                }
                              , to = [ Proof
                                           { system = (VAR l n
                                                           l x
                                                           u v)
                                                      (STRATEGY INNERMOST)
                                                      (RULES nthtailP (n, l) -> condP (ge (n, length (l)), n, l)
                                                             nthtailP (n, l) -> geP (n, length (l))
                                                             condP (false, n, l) -> tailP (nthtail (s (n), l))
                                                             condP (false, n, l) -> nthtailP (s (n), l)
                                                             lengthP (cons (x, l)) -> lengthP (l)
                                                             geP (s (u), s (v)) -> geP (u, v)
                                                             nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                             cond (true, n, l) ->= l
                                                             cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                             tail (nil) ->= nil
                                                             tail (cons (x, l)) ->= l
                                                             length (nil) ->= 0
                                                             length (cons (x, l)) ->= s (length (l))
                                                             ge (u, 0) ->= true
                                                             ge (0, s (v)) ->= false
                                                             ge (s (u), s (v)) ->= ge (u, v))
                                           , property = Top_Termination , truth = Nothing
                                           , transform = Split
                                                             { interpretation = Interpretation
                                                                                    geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                                                                    nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                    condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (2)
                                                                                    0 |-> () |-> E^0x1
                                                                                    s |-> (x) |-> E^0x0 * x + E^0x1
                                                                                    nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                                                                    false |-> () |-> E^0x1
                                                                                    ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                    tail |-> (x) |-> E^0x0 * x + E^0x1
                                                                                    true |-> () |-> E^0x1
                                                                                    lengthP |-> (x) |-> E^1x0 * x + (1)
                                                                                    tailP |-> (x) |-> E^1x0 * x + (2)
                                                                                    nil |-> () |-> E^0x1
                                                                                    cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                    length |-> (x) |-> E^0x0 * x + E^0x1
                                                                                    cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                                                             , clusters = [ [ lengthP (cons (x, l)) -> lengthP (l) ] , [ nthtailP (n, l) -> condP (ge (n, length (l)), n, l) , nthtailP (n, l) -> geP (n, length (l)) , condP (false, n, l) -> tailP (nthtail (s (n), l)) , condP (false, n, l) -> nthtailP (s (n), l) , geP (s (u), s (v)) -> geP (u, v) ] ]
                                                             , comment = size 0 , heights ( 3 , 7 ) , time 
                                                                         split_dimension:  0
                                                             }
                                           , to = [ Proof
                                                        { system = (VAR l n
                                                                        l x
                                                                        u v)
                                                                   (STRATEGY INNERMOST)
                                                                   (RULES lengthP (cons (x, l)) -> lengthP (l)
                                                                          nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                                          cond (true, n, l) ->= l
                                                                          cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                                          tail (nil) ->= nil
                                                                          tail (cons (x, l)) ->= l
                                                                          length (nil) ->= 0
                                                                          length (cons (x, l)) ->= s (length (l))
                                                                          ge (u, 0) ->= true
                                                                          ge (0, s (v)) ->= false
                                                                          ge (s (u), s (v)) ->= ge (u, v))
                                                        , property = Top_Termination
                                                        , truth = Just
                                                                      True
                                                        , transform = Remove
                                                                          { interpretation = Interpretation
                                                                                                 nthtail |-> (x , y) |-> (0) * x + (4) * y + (0)
                                                                                                 0 |-> () |-> (0)
                                                                                                 s |-> (x) |-> (0) * x + (0)
                                                                                                 false |-> () |-> (0)
                                                                                                 ge |-> (x , y) |-> (0) * x + (0) * y + (0)
                                                                                                 tail |-> (x) |-> (1) * x + (0)
                                                                                                 true |-> () |-> (0)
                                                                                                 lengthP |-> (x) |-> (1) * x + (1)
                                                                                                 nil |-> () |-> (0)
                                                                                                 cons |-> (x , y) |-> (0) * x + (1) * y + (1)
                                                                                                 length |-> (x) |-> (0) * x + (0)
                                                                                                 cond |-> (x , y , z) |-> (0) * x + (0) * y + (4) * z + (0)
                                                                          , removes_rules = [ lengthP (cons (x, l)) -> lengthP (l) ] , comment = size 1 , heights ( 7 , 15 ) , time 1 sec
                                                                          }
                                                        , to = [ Proof
                                                                     { system = (VAR l n
                                                                                     l x
                                                                                     u v)
                                                                                (STRATEGY INNERMOST)
                                                                                (RULES nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                                                       cond (true, n, l) ->= l
                                                                                       cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                                                       tail (nil) ->= nil
                                                                                       tail (cons (x, l)) ->= l
                                                                                       length (nil) ->= 0
                                                                                       length (cons (x, l)) ->= s (length (l))
                                                                                       ge (u, 0) ->= true
                                                                                       ge (0, s (v)) ->= false
                                                                                       ge (s (u), s (v)) ->= ge (u, v))
                                                                     , property = Top_Termination
                                                                     , truth = Just
                                                                                   True
                                                                     , transform = No_Strict_Rules , to = [ ]
                                                                     }
                                                               ]
                                                        }
                                                  , Proof
                                                        { system = (VAR l n
                                                                        l x
                                                                        u v)
                                                                   (STRATEGY INNERMOST)
                                                                   (RULES nthtailP (n, l) -> condP (ge (n, length (l)), n, l)
                                                                          nthtailP (n, l) -> geP (n, length (l))
                                                                          condP (false, n, l) -> tailP (nthtail (s (n), l))
                                                                          condP (false, n, l) -> nthtailP (s (n), l)
                                                                          geP (s (u), s (v)) -> geP (u, v)
                                                                          nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                                          cond (true, n, l) ->= l
                                                                          cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                                          tail (nil) ->= nil
                                                                          tail (cons (x, l)) ->= l
                                                                          length (nil) ->= 0
                                                                          length (cons (x, l)) ->= s (length (l))
                                                                          ge (u, 0) ->= true
                                                                          ge (0, s (v)) ->= false
                                                                          ge (s (u), s (v)) ->= ge (u, v))
                                                        , property = Top_Termination , truth = Nothing
                                                        , transform = Remove
                                                                          { interpretation = Interpretation
                                                                                                 geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                                                                                 nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                 condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (2)
                                                                                                 0 |-> () |-> E^0x1
                                                                                                 s |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                 nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                                                                                 false |-> () |-> E^0x1
                                                                                                 ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                 tail |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                 true |-> () |-> E^0x1
                                                                                                 tailP |-> (x) |-> E^1x0 * x + (1)
                                                                                                 nil |-> () |-> E^0x1
                                                                                                 cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                 length |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                 cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                                                                          , removes_rules = [ condP (false, n, l) -> tailP (nthtail (s (n), l)) ] , comment = size 0 , heights ( 3 , 7 ) , time 
                                                                          }
                                                        , to = [ Proof
                                                                     { system = (VAR l n
                                                                                     l x
                                                                                     u v)
                                                                                (STRATEGY INNERMOST)
                                                                                (RULES nthtailP (n, l) -> condP (ge (n, length (l)), n, l)
                                                                                       nthtailP (n, l) -> geP (n, length (l))
                                                                                       condP (false, n, l) -> nthtailP (s (n), l)
                                                                                       geP (s (u), s (v)) -> geP (u, v)
                                                                                       nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                                                       cond (true, n, l) ->= l
                                                                                       cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                                                       tail (nil) ->= nil
                                                                                       tail (cons (x, l)) ->= l
                                                                                       length (nil) ->= 0
                                                                                       length (cons (x, l)) ->= s (length (l))
                                                                                       ge (u, 0) ->= true
                                                                                       ge (0, s (v)) ->= false
                                                                                       ge (s (u), s (v)) ->= ge (u, v))
                                                                     , property = Top_Termination , truth = Nothing
                                                                     , transform = Remove
                                                                                       { interpretation = Interpretation
                                                                                                              geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (0)
                                                                                                              nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                              condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (1)
                                                                                                              0 |-> () |-> E^0x1
                                                                                                              s |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                              nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (1)
                                                                                                              false |-> () |-> E^0x1
                                                                                                              ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                              tail |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                              true |-> () |-> E^0x1
                                                                                                              nil |-> () |-> E^0x1
                                                                                                              cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                              length |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                              cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                                                                                       , removes_rules = [ nthtailP (n, l) -> geP (n, length (l)) ] , comment = size 0 , heights ( 3 , 7 ) , time 
                                                                                       }
                                                                     , to = [ Proof
                                                                                  { system = (VAR l n
                                                                                                  l x
                                                                                                  u v)
                                                                                             (STRATEGY INNERMOST)
                                                                                             (RULES nthtailP (n, l) -> condP (ge (n, length (l)), n, l)
                                                                                                    condP (false, n, l) -> nthtailP (s (n), l)
                                                                                                    geP (s (u), s (v)) -> geP (u, v)
                                                                                                    nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                                                                    cond (true, n, l) ->= l
                                                                                                    cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                                                                    tail (nil) ->= nil
                                                                                                    tail (cons (x, l)) ->= l
                                                                                                    length (nil) ->= 0
                                                                                                    length (cons (x, l)) ->= s (length (l))
                                                                                                    ge (u, 0) ->= true
                                                                                                    ge (0, s (v)) ->= false
                                                                                                    ge (s (u), s (v)) ->= ge (u, v))
                                                                                  , property = Top_Termination , truth = Nothing
                                                                                  , transform = Split
                                                                                                    { interpretation = Interpretation
                                                                                                                           geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (0)
                                                                                                                           nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                                           condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (1)
                                                                                                                           0 |-> () |-> E^0x1
                                                                                                                           s |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                                           nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (1)
                                                                                                                           false |-> () |-> E^0x1
                                                                                                                           ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                                           tail |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                                           true |-> () |-> E^0x1
                                                                                                                           nil |-> () |-> E^0x1
                                                                                                                           cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                                                                                           length |-> (x) |-> E^0x0 * x + E^0x1
                                                                                                                           cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                                                                                                    , clusters = [ [ geP (s (u), s (v)) -> geP (u, v) ] , [ nthtailP (n, l) -> condP (ge (n, length (l)), n, l) , condP (false, n, l) -> nthtailP (s (n), l) ] ]
                                                                                                    , comment = size 0 , heights ( 3 , 7 ) , time 
                                                                                                                split_dimension:  0
                                                                                                    }
                                                                                  , to = [ Proof
                                                                                               { system = (VAR l n
                                                                                                               l x
                                                                                                               u v)
                                                                                                          (STRATEGY INNERMOST)
                                                                                                          (RULES geP (s (u), s (v)) -> geP (u, v)
                                                                                                                 nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                                                                                 cond (true, n, l) ->= l
                                                                                                                 cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                                                                                 tail (nil) ->= nil
                                                                                                                 tail (cons (x, l)) ->= l
                                                                                                                 length (nil) ->= 0
                                                                                                                 length (cons (x, l)) ->= s (length (l))
                                                                                                                 ge (u, 0) ->= true
                                                                                                                 ge (0, s (v)) ->= false
                                                                                                                 ge (s (u), s (v)) ->= ge (u, v))
                                                                                               , property = Top_Termination
                                                                                               , truth = Just
                                                                                                             True
                                                                                               , transform = Remove
                                                                                                                 { interpretation = Interpretation
                                                                                                                                        geP |-> (x , y) |-> (1) * x + (0) * y + (1)
                                                                                                                                        nthtail |-> (x , y) |-> (0) * x + (1) * y + (0)
                                                                                                                                        0 |-> () |-> (0)
                                                                                                                                        s |-> (x) |-> (1) * x + (1)
                                                                                                                                        false |-> () |-> (0)
                                                                                                                                        ge |-> (x , y) |-> (0) * x + (0) * y + (0)
                                                                                                                                        tail |-> (x) |-> (1) * x + (0)
                                                                                                                                        true |-> () |-> (0)
                                                                                                                                        nil |-> () |-> (0)
                                                                                                                                        cons |-> (x , y) |-> (0) * x + (1) * y + (1)
                                                                                                                                        length |-> (x) |-> (1) * x + (0)
                                                                                                                                        cond |-> (x , y , z) |-> (0) * x + (0) * y + (1) * z + (0)
                                                                                                                 , removes_rules = [ geP (s (u), s (v)) -> geP (u, v) ] , comment = size 1 , heights ( 7 , 15 ) , time 1 sec
                                                                                                                 }
                                                                                               , to = [ Proof
                                                                                                            { system = (VAR l n
                                                                                                                            l x
                                                                                                                            u v)
                                                                                                                       (STRATEGY INNERMOST)
                                                                                                                       (RULES nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                                                                                              cond (true, n, l) ->= l
                                                                                                                              cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                                                                                              tail (nil) ->= nil
                                                                                                                              tail (cons (x, l)) ->= l
                                                                                                                              length (nil) ->= 0
                                                                                                                              length (cons (x, l)) ->= s (length (l))
                                                                                                                              ge (u, 0) ->= true
                                                                                                                              ge (0, s (v)) ->= false
                                                                                                                              ge (s (u), s (v)) ->= ge (u, v))
                                                                                                            , property = Top_Termination
                                                                                                            , truth = Just
                                                                                                                          True
                                                                                                            , transform = No_Strict_Rules , to = [ ]
                                                                                                            }
                                                                                                      ]
                                                                                               }
                                                                                         , Claim
                                                                                               { system = (VAR l n
                                                                                                               l x
                                                                                                               u v)
                                                                                                          (STRATEGY INNERMOST)
                                                                                                          (RULES nthtailP (n, l) -> condP (ge (n, length (l)), n, l)
                                                                                                                 condP (false, n, l) -> nthtailP (s (n), l)
                                                                                                                 nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                                                                                 cond (true, n, l) ->= l
                                                                                                                 cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                                                                                 tail (nil) ->= nil
                                                                                                                 tail (cons (x, l)) ->= l
                                                                                                                 length (nil) ->= 0
                                                                                                                 length (cons (x, l)) ->= s (length (l))
                                                                                                                 ge (u, 0) ->= true
                                                                                                                 ge (0, s (v)) ->= false
                                                                                                                 ge (s (u), s (v)) ->= ge (u, v))
                                                                                               , property = Top_Termination
                                                                                               }
                                                                                         ]
                                                                                  }
                                                                            ]
                                                                     }
                                                               ]
                                                        }
                                                  ]
                                           }
                                     ]
                              }
                        ]
                 }
           ]
    }


Proof summary:

value Nothing
for property Termination
for system with 10 strict rules and 0 non-strict rules
follows by transformation
    Ignore_Strategy
from
    value Nothing
    for property Termination
    for system with 10 strict rules and 0 non-strict rules
    follows by transformation
        Dependency_Pair_Transformation
    from
        value Nothing
        for property Top_Termination
        for system with 7 strict rules and 10 non-strict rules
        follows by transformation
            Remove
                { interpretation = Interpretation
                                       geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                       nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                       condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (2)
                                       0 |-> () |-> E^0x1
                                       s |-> (x) |-> E^0x0 * x + E^0x1
                                       nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                       false |-> () |-> E^0x1
                                       ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                       tail |-> (x) |-> E^0x0 * x + E^0x1
                                       true |-> () |-> E^0x1
                                       lengthP |-> (x) |-> E^1x0 * x + (1)
                                       tailP |-> (x) |-> E^1x0 * x + (2)
                                       nil |-> () |-> E^0x1
                                       cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                       length |-> (x) |-> E^0x0 * x + E^0x1
                                       cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                , removes_rules = [ nthtailP (n, l) -> lengthP (l) ] , comment = size 0 , heights ( 3 , 7 ) , time 
                }
        from
            value Nothing
            for property Top_Termination
            for system with 6 strict rules and 10 non-strict rules
            follows by transformation
                Split
                    { interpretation = Interpretation
                                           geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                           nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                           condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (2)
                                           0 |-> () |-> E^0x1
                                           s |-> (x) |-> E^0x0 * x + E^0x1
                                           nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                           false |-> () |-> E^0x1
                                           ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                           tail |-> (x) |-> E^0x0 * x + E^0x1
                                           true |-> () |-> E^0x1
                                           lengthP |-> (x) |-> E^1x0 * x + (1)
                                           tailP |-> (x) |-> E^1x0 * x + (2)
                                           nil |-> () |-> E^0x1
                                           cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                           length |-> (x) |-> E^0x0 * x + E^0x1
                                           cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                    , clusters = [ [ lengthP (cons (x, l)) -> lengthP (l) ] , [ nthtailP (n, l) -> condP (ge (n, length (l)), n, l) , nthtailP (n, l) -> geP (n, length (l)) , condP (false, n, l) -> tailP (nthtail (s (n), l)) , condP (false, n, l) -> nthtailP (s (n), l) , geP (s (u), s (v)) -> geP (u, v) ] ]
                    , comment = size 0 , heights ( 3 , 7 ) , time 
                                split_dimension:  0
                    }
            from
                value Just
                          True
                for property Top_Termination
                for system with 1 strict rules and 10 non-strict rules
                follows by transformation
                    Remove
                        { interpretation = Interpretation
                                               nthtail |-> (x , y) |-> (0) * x + (4) * y + (0)
                                               0 |-> () |-> (0)
                                               s |-> (x) |-> (0) * x + (0)
                                               false |-> () |-> (0)
                                               ge |-> (x , y) |-> (0) * x + (0) * y + (0)
                                               tail |-> (x) |-> (1) * x + (0)
                                               true |-> () |-> (0)
                                               lengthP |-> (x) |-> (1) * x + (1)
                                               nil |-> () |-> (0)
                                               cons |-> (x , y) |-> (0) * x + (1) * y + (1)
                                               length |-> (x) |-> (0) * x + (0)
                                               cond |-> (x , y , z) |-> (0) * x + (0) * y + (4) * z + (0)
                        , removes_rules = [ lengthP (cons (x, l)) -> lengthP (l) ] , comment = size 1 , heights ( 7 , 15 ) , time 1 sec
                        }
                from
                    value Just
                              True
                    for property Top_Termination
                    for system with 0 strict rules and 10 non-strict rules
                    follows by transformation
                        No_Strict_Rules
                    from
                value Nothing
                for property Top_Termination
                for system with 5 strict rules and 10 non-strict rules
                follows by transformation
                    Remove
                        { interpretation = Interpretation
                                               geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                               nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                               condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (2)
                                               0 |-> () |-> E^0x1
                                               s |-> (x) |-> E^0x0 * x + E^0x1
                                               nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (2)
                                               false |-> () |-> E^0x1
                                               ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                               tail |-> (x) |-> E^0x0 * x + E^0x1
                                               true |-> () |-> E^0x1
                                               tailP |-> (x) |-> E^1x0 * x + (1)
                                               nil |-> () |-> E^0x1
                                               cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                               length |-> (x) |-> E^0x0 * x + E^0x1
                                               cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                        , removes_rules = [ condP (false, n, l) -> tailP (nthtail (s (n), l)) ] , comment = size 0 , heights ( 3 , 7 ) , time 
                        }
                from
                    value Nothing
                    for property Top_Termination
                    for system with 4 strict rules and 10 non-strict rules
                    follows by transformation
                        Remove
                            { interpretation = Interpretation
                                                   geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (0)
                                                   nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                   condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (1)
                                                   0 |-> () |-> E^0x1
                                                   s |-> (x) |-> E^0x0 * x + E^0x1
                                                   nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (1)
                                                   false |-> () |-> E^0x1
                                                   ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                   tail |-> (x) |-> E^0x0 * x + E^0x1
                                                   true |-> () |-> E^0x1
                                                   nil |-> () |-> E^0x1
                                                   cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                   length |-> (x) |-> E^0x0 * x + E^0x1
                                                   cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                            , removes_rules = [ nthtailP (n, l) -> geP (n, length (l)) ] , comment = size 0 , heights ( 3 , 7 ) , time 
                            }
                    from
                        value Nothing
                        for property Top_Termination
                        for system with 3 strict rules and 10 non-strict rules
                        follows by transformation
                            Split
                                { interpretation = Interpretation
                                                       geP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (0)
                                                       nthtail |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                       condP |-> (x , y , z) |-> E^1x0 * x + E^1x0 * y + E^1x0 * z + (1)
                                                       0 |-> () |-> E^0x1
                                                       s |-> (x) |-> E^0x0 * x + E^0x1
                                                       nthtailP |-> (x , y) |-> E^1x0 * x + E^1x0 * y + (1)
                                                       false |-> () |-> E^0x1
                                                       ge |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                       tail |-> (x) |-> E^0x0 * x + E^0x1
                                                       true |-> () |-> E^0x1
                                                       nil |-> () |-> E^0x1
                                                       cons |-> (x , y) |-> E^0x0 * x + E^0x0 * y + E^0x1
                                                       length |-> (x) |-> E^0x0 * x + E^0x1
                                                       cond |-> (x , y , z) |-> E^0x0 * x + E^0x0 * y + E^0x0 * z + E^0x1
                                , clusters = [ [ geP (s (u), s (v)) -> geP (u, v) ] , [ nthtailP (n, l) -> condP (ge (n, length (l)), n, l) , condP (false, n, l) -> nthtailP (s (n), l) ] ]
                                , comment = size 0 , heights ( 3 , 7 ) , time 
                                            split_dimension:  0
                                }
                        from
                            value Just
                                      True
                            for property Top_Termination
                            for system with 1 strict rules and 10 non-strict rules
                            follows by transformation
                                Remove
                                    { interpretation = Interpretation
                                                           geP |-> (x , y) |-> (1) * x + (0) * y + (1)
                                                           nthtail |-> (x , y) |-> (0) * x + (1) * y + (0)
                                                           0 |-> () |-> (0)
                                                           s |-> (x) |-> (1) * x + (1)
                                                           false |-> () |-> (0)
                                                           ge |-> (x , y) |-> (0) * x + (0) * y + (0)
                                                           tail |-> (x) |-> (1) * x + (0)
                                                           true |-> () |-> (0)
                                                           nil |-> () |-> (0)
                                                           cons |-> (x , y) |-> (0) * x + (1) * y + (1)
                                                           length |-> (x) |-> (1) * x + (0)
                                                           cond |-> (x , y , z) |-> (0) * x + (0) * y + (1) * z + (0)
                                    , removes_rules = [ geP (s (u), s (v)) -> geP (u, v) ] , comment = size 1 , heights ( 7 , 15 ) , time 1 sec
                                    }
                            from
                                value Just
                                          True
                                for property Top_Termination
                                for system with 0 strict rules and 10 non-strict rules
                                follows by transformation
                                    No_Strict_Rules
                                from
                            Claim
                                { system = (VAR l n
                                                l x
                                                u v)
                                           (STRATEGY INNERMOST)
                                           (RULES nthtailP (n, l) -> condP (ge (n, length (l)), n, l)
                                                  condP (false, n, l) -> nthtailP (s (n), l)
                                                  nthtail (n, l) ->= cond (ge (n, length (l)), n, l)
                                                  cond (true, n, l) ->= l
                                                  cond (false, n, l) ->= tail (nthtail (s (n), l))
                                                  tail (nil) ->= nil
                                                  tail (cons (x, l)) ->= l
                                                  length (nil) ->= 0
                                                  length (cons (x, l)) ->= s (length (l))
                                                  ge (u, 0) ->= true
                                                  ge (0, s (v)) ->= false
                                                  ge (s (u), s (v)) ->= ge (u, v))
                                , property = Top_Termination
                                }
------------------------------------------------------------------
matchbox general information (including details on proof methods):
http://dfa.imn.htwk-leipzig.de/matchbox/

this matchbox implementation uses the SAT solver
SatELite/MiniSat by Niklas Een and Niklas Sörensson
http://www.cs.chalmers.se/Cs/Research/FormalMethods/MiniSat/

matchbox process information
arguments      : --solver=/home/nowonder/forschung/increasing/wst06/matchbox/SatELiteGTI --timeout-command=/home/nowonder/forschung/increasing/wst06/matchbox/timeout --tmpdir=/home/nowonder/forschung/increasing/wst06/matchbox --timeout=60 /tmp/tmpjXWGyY/ex17.trs
started        : Thu Feb 22 16:53:04 CET 2007
finished       : Thu Feb 22 16:53:59 CET 2007
run system     : Linux aprove 2.6.14-gentoo-r5 #1 SMP Sun Dec 25 15:42:02 CET 2005 x86_64
release date   : Thu Jun 8 23:18:07 CEST 2006
build date     : Thu Jun 8 23:18:07 CEST 2006
build system   : Linux dfa 2.6.8-2-k7 #1 Tue Aug 16 14:00:15 UTC 2005 i686 GNU/Linux

used clock time: 55 secs