Problem Strategy outermost added 08 ExIntrod Zan97

Tool CaT

Execution TimeUnknown
Answer
MAYBE
InputStrategy outermost added 08 ExIntrod Zan97

stdout:

MAYBE

Problem:
 fact(X) -> if(zero(X),s(0()),prod(X,fact(p(X))))
 add(0(),X) -> X
 add(s(X),Y) -> s(add(X,Y))
 prod(0(),X) -> 0()
 prod(s(X),Y) -> add(Y,prod(X,Y))
 if(true(),X,Y) -> X
 if(false(),X,Y) -> Y
 zero(0()) -> true()
 zero(s(X)) -> false()
 p(s(X)) -> X

Proof:
 Open

Tool IRC1

Execution TimeUnknown
Answer
MAYBE
InputStrategy outermost added 08 ExIntrod Zan97

stdout:

MAYBE
 Warning when parsing problem:
                             
                               Unsupported strategy 'OUTERMOST'

Tool IRC2

Execution TimeUnknown
Answer
MAYBE
InputStrategy outermost added 08 ExIntrod Zan97

stdout:

MAYBE

'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer:           MAYBE
Input Problem:    innermost runtime-complexity with respect to
  Rules:
    {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
     , add(0(), X) -> X
     , add(s(X), Y) -> s(add(X, Y))
     , prod(0(), X) -> 0()
     , prod(s(X), Y) -> add(Y, prod(X, Y))
     , if(true(), X, Y) -> X
     , if(false(), X, Y) -> Y
     , zero(0()) -> true()
     , zero(s(X)) -> false()
     , p(s(X)) -> X}

Proof Output:    
  None of the processors succeeded.
  
  Details of failed attempt(s):
  -----------------------------
    1) 'wdg' failed due to the following reason:
         Transformation Details:
         -----------------------
           We have computed the following set of weak (innermost) dependency pairs:
           
             {  1: fact^#(X) -> c_0(if^#(zero(X), s(0()), prod(X, fact(p(X)))))
              , 2: add^#(0(), X) -> c_1()
              , 3: add^#(s(X), Y) -> c_2(add^#(X, Y))
              , 4: prod^#(0(), X) -> c_3()
              , 5: prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
              , 6: if^#(true(), X, Y) -> c_5()
              , 7: if^#(false(), X, Y) -> c_6()
              , 8: zero^#(0()) -> c_7()
              , 9: zero^#(s(X)) -> c_8()
              , 10: p^#(s(X)) -> c_9()}
           
           Following Dependency Graph (modulo SCCs) was computed. (Answers to
           subproofs are indicated to the right.)
           
             ->{10}                                                      [    YES(?,O(1))     ]
             
             ->{9}                                                       [    YES(?,O(1))     ]
             
             ->{8}                                                       [    YES(?,O(1))     ]
             
             ->{5}                                                       [     inherited      ]
                |
                |->{2}                                                   [       MAYBE        ]
                |
                `->{3}                                                   [     inherited      ]
                    |
                    `->{2}                                               [         NA         ]
             
             ->{4}                                                       [    YES(?,O(1))     ]
             
             ->{1}                                                       [     inherited      ]
                |
                |->{6}                                                   [         NA         ]
                |
                `->{7}                                                   [         NA         ]
             
           
         
         Sub-problems:
         -------------
           * Path {1}: inherited
             -------------------
             
             This path is subsumed by the proof of path {1}->{7}.
           
           * Path {1}->{6}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {1}->{7}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {4}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                if(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                zero(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                s(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                0() = [0]
                      [0]
                      [0]
                prod(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                               [0 0 0]      [0 0 0]      [0]
                               [0 0 0]      [0 0 0]      [0]
                p(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                add(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                              [0 0 0]      [0 0 0]      [0]
                              [0 0 0]      [0 0 0]      [0]
                true() = [0]
                         [0]
                         [0]
                false() = [0]
                          [0]
                          [0]
                fact^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_0(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                if^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                add^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                [0 0 0]      [0 0 0]      [0]
                                [0 0 0]      [0 0 0]      [0]
                c_1() = [0]
                        [0]
                        [0]
                c_2(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                prod^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0]
                c_3() = [0]
                        [0]
                        [0]
                c_4(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_5() = [0]
                        [0]
                        [0]
                c_6() = [0]
                        [0]
                        [0]
                zero^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_7() = [0]
                        [0]
                        [0]
                c_8() = [0]
                        [0]
                        [0]
                p^#(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_9() = [0]
                        [0]
                        [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {prod^#(0(), X) -> c_3()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(prod^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [2]
                      [2]
                      [2]
                prod^#(x1, x2) = [0 2 0] x1 + [0 0 0] x2 + [7]
                                 [2 2 0]      [0 0 0]      [3]
                                 [2 2 2]      [0 0 0]      [3]
                c_3() = [0]
                        [1]
                        [1]
           
           * Path {5}: inherited
             -------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{2}: MAYBE
             --------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           MAYBE
             Input Problem:    innermost runtime-complexity with respect to
               Rules:
                 {  prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
                  , add^#(0(), X) -> c_1()
                  , prod(0(), X) -> 0()
                  , prod(s(X), Y) -> add(Y, prod(X, Y))
                  , add(0(), X) -> X
                  , add(s(X), Y) -> s(add(X, Y))}
             
             Proof Output:    
               The input cannot be shown compatible
           
           * Path {5}->{3}: inherited
             ------------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{3}->{2}: NA
             ----------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {8}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                if(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                zero(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                s(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                0() = [0]
                      [0]
                      [0]
                prod(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                               [0 0 0]      [0 0 0]      [0]
                               [0 0 0]      [0 0 0]      [0]
                p(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                add(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                              [0 0 0]      [0 0 0]      [0]
                              [0 0 0]      [0 0 0]      [0]
                true() = [0]
                         [0]
                         [0]
                false() = [0]
                          [0]
                          [0]
                fact^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_0(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                if^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                add^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                [0 0 0]      [0 0 0]      [0]
                                [0 0 0]      [0 0 0]      [0]
                c_1() = [0]
                        [0]
                        [0]
                c_2(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                prod^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0]
                c_3() = [0]
                        [0]
                        [0]
                c_4(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_5() = [0]
                        [0]
                        [0]
                c_6() = [0]
                        [0]
                        [0]
                zero^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_7() = [0]
                        [0]
                        [0]
                c_8() = [0]
                        [0]
                        [0]
                p^#(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_9() = [0]
                        [0]
                        [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {zero^#(0()) -> c_7()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [2]
                      [2]
                      [2]
                zero^#(x1) = [0 2 0] x1 + [7]
                             [2 2 0]      [3]
                             [2 2 2]      [3]
                c_7() = [0]
                        [1]
                        [1]
           
           * Path {9}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                if(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                zero(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                s(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                0() = [0]
                      [0]
                      [0]
                prod(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                               [0 0 0]      [0 0 0]      [0]
                               [0 0 0]      [0 0 0]      [0]
                p(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                add(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                              [0 0 0]      [0 0 0]      [0]
                              [0 0 0]      [0 0 0]      [0]
                true() = [0]
                         [0]
                         [0]
                false() = [0]
                          [0]
                          [0]
                fact^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_0(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                if^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                add^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                [0 0 0]      [0 0 0]      [0]
                                [0 0 0]      [0 0 0]      [0]
                c_1() = [0]
                        [0]
                        [0]
                c_2(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                prod^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0]
                c_3() = [0]
                        [0]
                        [0]
                c_4(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_5() = [0]
                        [0]
                        [0]
                c_6() = [0]
                        [0]
                        [0]
                zero^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_7() = [0]
                        [0]
                        [0]
                c_8() = [0]
                        [0]
                        [0]
                p^#(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_9() = [0]
                        [0]
                        [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {zero^#(s(X)) -> c_8()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0 0 0] x1 + [2]
                        [0 0 0]      [2]
                        [0 0 0]      [2]
                zero^#(x1) = [0 2 0] x1 + [7]
                             [2 2 0]      [3]
                             [2 2 2]      [3]
                c_8() = [0]
                        [1]
                        [1]
           
           * Path {10}: YES(?,O(1))
             ----------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                if(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                zero(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                s(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                0() = [0]
                      [0]
                      [0]
                prod(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                               [0 0 0]      [0 0 0]      [0]
                               [0 0 0]      [0 0 0]      [0]
                p(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                add(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                              [0 0 0]      [0 0 0]      [0]
                              [0 0 0]      [0 0 0]      [0]
                true() = [0]
                         [0]
                         [0]
                false() = [0]
                          [0]
                          [0]
                fact^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_0(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                if^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                add^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                [0 0 0]      [0 0 0]      [0]
                                [0 0 0]      [0 0 0]      [0]
                c_1() = [0]
                        [0]
                        [0]
                c_2(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                prod^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0]
                c_3() = [0]
                        [0]
                        [0]
                c_4(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_5() = [0]
                        [0]
                        [0]
                c_6() = [0]
                        [0]
                        [0]
                zero^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_7() = [0]
                        [0]
                        [0]
                c_8() = [0]
                        [0]
                        [0]
                p^#(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_9() = [0]
                        [0]
                        [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {p^#(s(X)) -> c_9()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0 0 0] x1 + [2]
                        [0 0 0]      [2]
                        [0 0 0]      [2]
                p^#(x1) = [0 2 0] x1 + [7]
                          [2 2 0]      [3]
                          [2 2 2]      [3]
                c_9() = [0]
                        [1]
                        [1]
    
    2) 'wdg' failed due to the following reason:
         Transformation Details:
         -----------------------
           We have computed the following set of weak (innermost) dependency pairs:
           
             {  1: fact^#(X) -> c_0(if^#(zero(X), s(0()), prod(X, fact(p(X)))))
              , 2: add^#(0(), X) -> c_1()
              , 3: add^#(s(X), Y) -> c_2(add^#(X, Y))
              , 4: prod^#(0(), X) -> c_3()
              , 5: prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
              , 6: if^#(true(), X, Y) -> c_5()
              , 7: if^#(false(), X, Y) -> c_6()
              , 8: zero^#(0()) -> c_7()
              , 9: zero^#(s(X)) -> c_8()
              , 10: p^#(s(X)) -> c_9()}
           
           Following Dependency Graph (modulo SCCs) was computed. (Answers to
           subproofs are indicated to the right.)
           
             ->{10}                                                      [    YES(?,O(1))     ]
             
             ->{9}                                                       [    YES(?,O(1))     ]
             
             ->{8}                                                       [    YES(?,O(1))     ]
             
             ->{5}                                                       [     inherited      ]
                |
                |->{2}                                                   [       MAYBE        ]
                |
                `->{3}                                                   [     inherited      ]
                    |
                    `->{2}                                               [         NA         ]
             
             ->{4}                                                       [    YES(?,O(1))     ]
             
             ->{1}                                                       [     inherited      ]
                |
                |->{6}                                                   [         NA         ]
                |
                `->{7}                                                   [         NA         ]
             
           
         
         Sub-problems:
         -------------
           * Path {1}: inherited
             -------------------
             
             This path is subsumed by the proof of path {1}->{7}.
           
           * Path {1}->{6}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {1}->{7}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {4}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
                zero(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                s(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                0() = [0]
                      [0]
                prod(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                               [0 0]      [0 0]      [0]
                p(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                add(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                true() = [0]
                         [0]
                false() = [0]
                          [0]
                fact^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_0(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                   [0 0]      [0 0]      [0 0]      [0]
                add^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                c_1() = [0]
                        [0]
                c_2(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                prod^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 0]      [0 0]      [0]
                c_3() = [0]
                        [0]
                c_4(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_5() = [0]
                        [0]
                c_6() = [0]
                        [0]
                zero^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_7() = [0]
                        [0]
                c_8() = [0]
                        [0]
                p^#(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_9() = [0]
                        [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {prod^#(0(), X) -> c_3()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(prod^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [2]
                      [2]
                prod^#(x1, x2) = [2 0] x1 + [0 0] x2 + [7]
                                 [2 2]      [0 0]      [7]
                c_3() = [0]
                        [1]
           
           * Path {5}: inherited
             -------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{2}: MAYBE
             --------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           MAYBE
             Input Problem:    innermost runtime-complexity with respect to
               Rules:
                 {  prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
                  , add^#(0(), X) -> c_1()
                  , prod(0(), X) -> 0()
                  , prod(s(X), Y) -> add(Y, prod(X, Y))
                  , add(0(), X) -> X
                  , add(s(X), Y) -> s(add(X, Y))}
             
             Proof Output:    
               The input cannot be shown compatible
           
           * Path {5}->{3}: inherited
             ------------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{3}->{2}: NA
             ----------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {8}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
                zero(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                s(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                0() = [0]
                      [0]
                prod(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                               [0 0]      [0 0]      [0]
                p(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                add(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                true() = [0]
                         [0]
                false() = [0]
                          [0]
                fact^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_0(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                   [0 0]      [0 0]      [0 0]      [0]
                add^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                c_1() = [0]
                        [0]
                c_2(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                prod^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 0]      [0 0]      [0]
                c_3() = [0]
                        [0]
                c_4(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_5() = [0]
                        [0]
                c_6() = [0]
                        [0]
                zero^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_7() = [0]
                        [0]
                c_8() = [0]
                        [0]
                p^#(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_9() = [0]
                        [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {zero^#(0()) -> c_7()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [2]
                      [2]
                zero^#(x1) = [2 0] x1 + [7]
                             [2 2]      [7]
                c_7() = [0]
                        [1]
           
           * Path {9}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
                zero(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                s(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                0() = [0]
                      [0]
                prod(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                               [0 0]      [0 0]      [0]
                p(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                add(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                true() = [0]
                         [0]
                false() = [0]
                          [0]
                fact^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_0(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                   [0 0]      [0 0]      [0 0]      [0]
                add^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                c_1() = [0]
                        [0]
                c_2(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                prod^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 0]      [0 0]      [0]
                c_3() = [0]
                        [0]
                c_4(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_5() = [0]
                        [0]
                c_6() = [0]
                        [0]
                zero^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_7() = [0]
                        [0]
                c_8() = [0]
                        [0]
                p^#(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_9() = [0]
                        [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {zero^#(s(X)) -> c_8()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0 0] x1 + [2]
                        [0 0]      [2]
                zero^#(x1) = [2 0] x1 + [7]
                             [2 2]      [7]
                c_8() = [0]
                        [1]
           
           * Path {10}: YES(?,O(1))
             ----------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
                zero(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                s(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                0() = [0]
                      [0]
                prod(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                               [0 0]      [0 0]      [0]
                p(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                add(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                true() = [0]
                         [0]
                false() = [0]
                          [0]
                fact^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_0(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                   [0 0]      [0 0]      [0 0]      [0]
                add^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                c_1() = [0]
                        [0]
                c_2(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                prod^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 0]      [0 0]      [0]
                c_3() = [0]
                        [0]
                c_4(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_5() = [0]
                        [0]
                c_6() = [0]
                        [0]
                zero^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_7() = [0]
                        [0]
                c_8() = [0]
                        [0]
                p^#(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_9() = [0]
                        [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {p^#(s(X)) -> c_9()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0 0] x1 + [2]
                        [0 0]      [2]
                p^#(x1) = [2 0] x1 + [7]
                          [2 2]      [7]
                c_9() = [0]
                        [1]
    
    3) 'wdg' failed due to the following reason:
         Transformation Details:
         -----------------------
           We have computed the following set of weak (innermost) dependency pairs:
           
             {  1: fact^#(X) -> c_0(if^#(zero(X), s(0()), prod(X, fact(p(X)))))
              , 2: add^#(0(), X) -> c_1()
              , 3: add^#(s(X), Y) -> c_2(add^#(X, Y))
              , 4: prod^#(0(), X) -> c_3()
              , 5: prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
              , 6: if^#(true(), X, Y) -> c_5()
              , 7: if^#(false(), X, Y) -> c_6()
              , 8: zero^#(0()) -> c_7()
              , 9: zero^#(s(X)) -> c_8()
              , 10: p^#(s(X)) -> c_9()}
           
           Following Dependency Graph (modulo SCCs) was computed. (Answers to
           subproofs are indicated to the right.)
           
             ->{10}                                                      [    YES(?,O(1))     ]
             
             ->{9}                                                       [    YES(?,O(1))     ]
             
             ->{8}                                                       [    YES(?,O(1))     ]
             
             ->{5}                                                       [     inherited      ]
                |
                |->{2}                                                   [       MAYBE        ]
                |
                `->{3}                                                   [     inherited      ]
                    |
                    `->{2}                                               [         NA         ]
             
             ->{4}                                                       [    YES(?,O(1))     ]
             
             ->{1}                                                       [     inherited      ]
                |
                |->{6}                                                   [         NA         ]
                |
                `->{7}                                                   [         NA         ]
             
           
         
         Sub-problems:
         -------------
           * Path {1}: inherited
             -------------------
             
             This path is subsumed by the proof of path {1}->{7}.
           
           * Path {1}->{6}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {1}->{7}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {4}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0] x1 + [0]
                if(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                zero(x1) = [0] x1 + [0]
                s(x1) = [0] x1 + [0]
                0() = [0]
                prod(x1, x2) = [0] x1 + [0] x2 + [0]
                p(x1) = [0] x1 + [0]
                add(x1, x2) = [0] x1 + [0] x2 + [0]
                true() = [0]
                false() = [0]
                fact^#(x1) = [0] x1 + [0]
                c_0(x1) = [0] x1 + [0]
                if^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                add^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_1() = [0]
                c_2(x1) = [0] x1 + [0]
                prod^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_3() = [0]
                c_4(x1) = [0] x1 + [0]
                c_5() = [0]
                c_6() = [0]
                zero^#(x1) = [0] x1 + [0]
                c_7() = [0]
                c_8() = [0]
                p^#(x1) = [0] x1 + [0]
                c_9() = [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {prod^#(0(), X) -> c_3()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(prod^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [7]
                prod^#(x1, x2) = [1] x1 + [0] x2 + [7]
                c_3() = [1]
           
           * Path {5}: inherited
             -------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{2}: MAYBE
             --------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           MAYBE
             Input Problem:    innermost runtime-complexity with respect to
               Rules:
                 {  prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
                  , add^#(0(), X) -> c_1()
                  , prod(0(), X) -> 0()
                  , prod(s(X), Y) -> add(Y, prod(X, Y))
                  , add(0(), X) -> X
                  , add(s(X), Y) -> s(add(X, Y))}
             
             Proof Output:    
               The input cannot be shown compatible
           
           * Path {5}->{3}: inherited
             ------------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{3}->{2}: NA
             ----------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {8}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0] x1 + [0]
                if(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                zero(x1) = [0] x1 + [0]
                s(x1) = [0] x1 + [0]
                0() = [0]
                prod(x1, x2) = [0] x1 + [0] x2 + [0]
                p(x1) = [0] x1 + [0]
                add(x1, x2) = [0] x1 + [0] x2 + [0]
                true() = [0]
                false() = [0]
                fact^#(x1) = [0] x1 + [0]
                c_0(x1) = [0] x1 + [0]
                if^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                add^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_1() = [0]
                c_2(x1) = [0] x1 + [0]
                prod^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_3() = [0]
                c_4(x1) = [0] x1 + [0]
                c_5() = [0]
                c_6() = [0]
                zero^#(x1) = [0] x1 + [0]
                c_7() = [0]
                c_8() = [0]
                p^#(x1) = [0] x1 + [0]
                c_9() = [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {zero^#(0()) -> c_7()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [7]
                zero^#(x1) = [1] x1 + [7]
                c_7() = [1]
           
           * Path {9}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0] x1 + [0]
                if(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                zero(x1) = [0] x1 + [0]
                s(x1) = [0] x1 + [0]
                0() = [0]
                prod(x1, x2) = [0] x1 + [0] x2 + [0]
                p(x1) = [0] x1 + [0]
                add(x1, x2) = [0] x1 + [0] x2 + [0]
                true() = [0]
                false() = [0]
                fact^#(x1) = [0] x1 + [0]
                c_0(x1) = [0] x1 + [0]
                if^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                add^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_1() = [0]
                c_2(x1) = [0] x1 + [0]
                prod^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_3() = [0]
                c_4(x1) = [0] x1 + [0]
                c_5() = [0]
                c_6() = [0]
                zero^#(x1) = [0] x1 + [0]
                c_7() = [0]
                c_8() = [0]
                p^#(x1) = [0] x1 + [0]
                c_9() = [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {zero^#(s(X)) -> c_8()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0] x1 + [7]
                zero^#(x1) = [1] x1 + [7]
                c_8() = [1]
           
           * Path {10}: YES(?,O(1))
             ----------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_2) = {}, Uargs(prod^#) = {},
                 Uargs(c_4) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0] x1 + [0]
                if(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                zero(x1) = [0] x1 + [0]
                s(x1) = [0] x1 + [0]
                0() = [0]
                prod(x1, x2) = [0] x1 + [0] x2 + [0]
                p(x1) = [0] x1 + [0]
                add(x1, x2) = [0] x1 + [0] x2 + [0]
                true() = [0]
                false() = [0]
                fact^#(x1) = [0] x1 + [0]
                c_0(x1) = [0] x1 + [0]
                if^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                add^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_1() = [0]
                c_2(x1) = [0] x1 + [0]
                prod^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_3() = [0]
                c_4(x1) = [0] x1 + [0]
                c_5() = [0]
                c_6() = [0]
                zero^#(x1) = [0] x1 + [0]
                c_7() = [0]
                c_8() = [0]
                p^#(x1) = [0] x1 + [0]
                c_9() = [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    innermost DP runtime-complexity with respect to
               Strict Rules: {p^#(s(X)) -> c_9()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(p^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0] x1 + [7]
                p^#(x1) = [1] x1 + [7]
                c_9() = [1]
    
    4) 'matrix-interpretation of dimension 1' failed due to the following reason:
         The input cannot be shown compatible
    
    5) 'Bounds with perSymbol-enrichment and initial automaton 'match'' failed due to the following reason:
         match-boundness of the problem could not be verified.
    
    6) 'Bounds with minimal-enrichment and initial automaton 'match'' failed due to the following reason:
         match-boundness of the problem could not be verified.
    

Tool RC1

Execution TimeUnknown
Answer
MAYBE
InputStrategy outermost added 08 ExIntrod Zan97

stdout:

MAYBE
 Warning when parsing problem:
                             
                               Unsupported strategy 'OUTERMOST'

Tool RC2

Execution TimeUnknown
Answer
MAYBE
InputStrategy outermost added 08 ExIntrod Zan97

stdout:

MAYBE

'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer:           MAYBE
Input Problem:    runtime-complexity with respect to
  Rules:
    {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
     , add(0(), X) -> X
     , add(s(X), Y) -> s(add(X, Y))
     , prod(0(), X) -> 0()
     , prod(s(X), Y) -> add(Y, prod(X, Y))
     , if(true(), X, Y) -> X
     , if(false(), X, Y) -> Y
     , zero(0()) -> true()
     , zero(s(X)) -> false()
     , p(s(X)) -> X}

Proof Output:    
  None of the processors succeeded.
  
  Details of failed attempt(s):
  -----------------------------
    1) 'wdg' failed due to the following reason:
         Transformation Details:
         -----------------------
           We have computed the following set of weak (innermost) dependency pairs:
           
             {  1: fact^#(X) -> c_0(if^#(zero(X), s(0()), prod(X, fact(p(X)))))
              , 2: add^#(0(), X) -> c_1(X)
              , 3: add^#(s(X), Y) -> c_2(add^#(X, Y))
              , 4: prod^#(0(), X) -> c_3()
              , 5: prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
              , 6: if^#(true(), X, Y) -> c_5(X)
              , 7: if^#(false(), X, Y) -> c_6(Y)
              , 8: zero^#(0()) -> c_7()
              , 9: zero^#(s(X)) -> c_8()
              , 10: p^#(s(X)) -> c_9(X)}
           
           Following Dependency Graph (modulo SCCs) was computed. (Answers to
           subproofs are indicated to the right.)
           
             ->{10}                                                      [   YES(?,O(n^3))    ]
             
             ->{9}                                                       [    YES(?,O(1))     ]
             
             ->{8}                                                       [    YES(?,O(1))     ]
             
             ->{5}                                                       [     inherited      ]
                |
                |->{2}                                                   [       MAYBE        ]
                |
                `->{3}                                                   [     inherited      ]
                    |
                    `->{2}                                               [         NA         ]
             
             ->{4}                                                       [    YES(?,O(1))     ]
             
             ->{1}                                                       [     inherited      ]
                |
                |->{6}                                                   [         NA         ]
                |
                `->{7}                                                   [         NA         ]
             
           
         
         Sub-problems:
         -------------
           * Path {1}: inherited
             -------------------
             
             This path is subsumed by the proof of path {1}->{7}.
           
           * Path {1}->{6}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {1}->{7}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {4}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                if(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                zero(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                s(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                0() = [0]
                      [0]
                      [0]
                prod(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                               [0 0 0]      [0 0 0]      [0]
                               [0 0 0]      [0 0 0]      [0]
                p(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                add(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                              [0 0 0]      [0 0 0]      [0]
                              [0 0 0]      [0 0 0]      [0]
                true() = [0]
                         [0]
                         [0]
                false() = [0]
                          [0]
                          [0]
                fact^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_0(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                if^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                add^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                [0 0 0]      [0 0 0]      [0]
                                [0 0 0]      [0 0 0]      [0]
                c_1(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_2(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                prod^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0]
                c_3() = [0]
                        [0]
                        [0]
                c_4(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_5(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_6(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                zero^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_7() = [0]
                        [0]
                        [0]
                c_8() = [0]
                        [0]
                        [0]
                p^#(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_9(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {prod^#(0(), X) -> c_3()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(prod^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [2]
                      [2]
                      [2]
                prod^#(x1, x2) = [0 2 0] x1 + [0 0 0] x2 + [7]
                                 [2 2 0]      [0 0 0]      [3]
                                 [2 2 2]      [0 0 0]      [3]
                c_3() = [0]
                        [1]
                        [1]
           
           * Path {5}: inherited
             -------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{2}: MAYBE
             --------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           MAYBE
             Input Problem:    runtime-complexity with respect to
               Rules:
                 {  prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
                  , add^#(0(), X) -> c_1(X)
                  , prod(0(), X) -> 0()
                  , prod(s(X), Y) -> add(Y, prod(X, Y))
                  , add(0(), X) -> X
                  , add(s(X), Y) -> s(add(X, Y))}
             
             Proof Output:    
               The input cannot be shown compatible
           
           * Path {5}->{3}: inherited
             ------------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{3}->{2}: NA
             ----------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {8}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                if(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                zero(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                s(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                0() = [0]
                      [0]
                      [0]
                prod(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                               [0 0 0]      [0 0 0]      [0]
                               [0 0 0]      [0 0 0]      [0]
                p(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                add(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                              [0 0 0]      [0 0 0]      [0]
                              [0 0 0]      [0 0 0]      [0]
                true() = [0]
                         [0]
                         [0]
                false() = [0]
                          [0]
                          [0]
                fact^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_0(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                if^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                add^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                [0 0 0]      [0 0 0]      [0]
                                [0 0 0]      [0 0 0]      [0]
                c_1(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_2(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                prod^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0]
                c_3() = [0]
                        [0]
                        [0]
                c_4(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_5(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_6(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                zero^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_7() = [0]
                        [0]
                        [0]
                c_8() = [0]
                        [0]
                        [0]
                p^#(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_9(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {zero^#(0()) -> c_7()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [2]
                      [2]
                      [2]
                zero^#(x1) = [0 2 0] x1 + [7]
                             [2 2 0]      [3]
                             [2 2 2]      [3]
                c_7() = [0]
                        [1]
                        [1]
           
           * Path {9}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                if(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                zero(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                s(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                0() = [0]
                      [0]
                      [0]
                prod(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                               [0 0 0]      [0 0 0]      [0]
                               [0 0 0]      [0 0 0]      [0]
                p(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                add(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                              [0 0 0]      [0 0 0]      [0]
                              [0 0 0]      [0 0 0]      [0]
                true() = [0]
                         [0]
                         [0]
                false() = [0]
                          [0]
                          [0]
                fact^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_0(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                if^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                add^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                [0 0 0]      [0 0 0]      [0]
                                [0 0 0]      [0 0 0]      [0]
                c_1(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_2(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                prod^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0]
                c_3() = [0]
                        [0]
                        [0]
                c_4(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_5(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_6(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                zero^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_7() = [0]
                        [0]
                        [0]
                c_8() = [0]
                        [0]
                        [0]
                p^#(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_9(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {zero^#(s(X)) -> c_8()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0 0 0] x1 + [2]
                        [0 0 0]      [2]
                        [0 0 0]      [2]
                zero^#(x1) = [0 2 0] x1 + [7]
                             [2 2 0]      [3]
                             [2 2 2]      [3]
                c_8() = [0]
                        [1]
                        [1]
           
           * Path {10}: YES(?,O(n^3))
             ------------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                if(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0 0 0]      [0]
                zero(x1) = [0 0 0] x1 + [0]
                           [0 0 0]      [0]
                           [0 0 0]      [0]
                s(x1) = [1 3 3] x1 + [0]
                        [0 1 1]      [0]
                        [0 0 1]      [0]
                0() = [0]
                      [0]
                      [0]
                prod(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                               [0 0 0]      [0 0 0]      [0]
                               [0 0 0]      [0 0 0]      [0]
                p(x1) = [0 0 0] x1 + [0]
                        [0 0 0]      [0]
                        [0 0 0]      [0]
                add(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                              [0 0 0]      [0 0 0]      [0]
                              [0 0 0]      [0 0 0]      [0]
                true() = [0]
                         [0]
                         [0]
                false() = [0]
                          [0]
                          [0]
                fact^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_0(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                if^#(x1, x2, x3) = [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                                   [0 0 0]      [0 0 0]      [0 0 0]      [0]
                add^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                [0 0 0]      [0 0 0]      [0]
                                [0 0 0]      [0 0 0]      [0]
                c_1(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_2(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                prod^#(x1, x2) = [0 0 0] x1 + [0 0 0] x2 + [0]
                                 [0 0 0]      [0 0 0]      [0]
                                 [0 0 0]      [0 0 0]      [0]
                c_3() = [0]
                        [0]
                        [0]
                c_4(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_5(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_6(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                zero^#(x1) = [0 0 0] x1 + [0]
                             [0 0 0]      [0]
                             [0 0 0]      [0]
                c_7() = [0]
                        [0]
                        [0]
                c_8() = [0]
                        [0]
                        [0]
                p^#(x1) = [1 3 3] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
                c_9(x1) = [1 0 1] x1 + [0]
                          [0 0 0]      [0]
                          [0 0 0]      [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 3'
             --------------------------------------
             Answer:           YES(?,O(n^1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {p^#(s(X)) -> c_9(X)}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(p^#) = {}, Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [1 2 2] x1 + [2]
                        [0 0 2]      [2]
                        [0 0 0]      [2]
                p^#(x1) = [2 2 2] x1 + [3]
                          [2 2 2]      [3]
                          [2 2 2]      [3]
                c_9(x1) = [0 0 0] x1 + [0]
                          [0 0 0]      [1]
                          [0 0 0]      [1]
    
    2) 'wdg' failed due to the following reason:
         Transformation Details:
         -----------------------
           We have computed the following set of weak (innermost) dependency pairs:
           
             {  1: fact^#(X) -> c_0(if^#(zero(X), s(0()), prod(X, fact(p(X)))))
              , 2: add^#(0(), X) -> c_1(X)
              , 3: add^#(s(X), Y) -> c_2(add^#(X, Y))
              , 4: prod^#(0(), X) -> c_3()
              , 5: prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
              , 6: if^#(true(), X, Y) -> c_5(X)
              , 7: if^#(false(), X, Y) -> c_6(Y)
              , 8: zero^#(0()) -> c_7()
              , 9: zero^#(s(X)) -> c_8()
              , 10: p^#(s(X)) -> c_9(X)}
           
           Following Dependency Graph (modulo SCCs) was computed. (Answers to
           subproofs are indicated to the right.)
           
             ->{10}                                                      [   YES(?,O(n^2))    ]
             
             ->{9}                                                       [    YES(?,O(1))     ]
             
             ->{8}                                                       [    YES(?,O(1))     ]
             
             ->{5}                                                       [     inherited      ]
                |
                |->{2}                                                   [       MAYBE        ]
                |
                `->{3}                                                   [     inherited      ]
                    |
                    `->{2}                                               [         NA         ]
             
             ->{4}                                                       [    YES(?,O(1))     ]
             
             ->{1}                                                       [     inherited      ]
                |
                |->{6}                                                   [         NA         ]
                |
                `->{7}                                                   [         NA         ]
             
           
         
         Sub-problems:
         -------------
           * Path {1}: inherited
             -------------------
             
             This path is subsumed by the proof of path {1}->{7}.
           
           * Path {1}->{6}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {1}->{7}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {4}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
                zero(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                s(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                0() = [0]
                      [0]
                prod(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                               [0 0]      [0 0]      [0]
                p(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                add(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                true() = [0]
                         [0]
                false() = [0]
                          [0]
                fact^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_0(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                   [0 0]      [0 0]      [0 0]      [0]
                add^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                c_1(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_2(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                prod^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 0]      [0 0]      [0]
                c_3() = [0]
                        [0]
                c_4(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_5(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_6(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                zero^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_7() = [0]
                        [0]
                c_8() = [0]
                        [0]
                p^#(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_9(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {prod^#(0(), X) -> c_3()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(prod^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [2]
                      [2]
                prod^#(x1, x2) = [2 0] x1 + [0 0] x2 + [7]
                                 [2 2]      [0 0]      [7]
                c_3() = [0]
                        [1]
           
           * Path {5}: inherited
             -------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{2}: MAYBE
             --------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           MAYBE
             Input Problem:    runtime-complexity with respect to
               Rules:
                 {  prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
                  , add^#(0(), X) -> c_1(X)
                  , prod(0(), X) -> 0()
                  , prod(s(X), Y) -> add(Y, prod(X, Y))
                  , add(0(), X) -> X
                  , add(s(X), Y) -> s(add(X, Y))}
             
             Proof Output:    
               The input cannot be shown compatible
           
           * Path {5}->{3}: inherited
             ------------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{3}->{2}: NA
             ----------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {8}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
                zero(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                s(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                0() = [0]
                      [0]
                prod(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                               [0 0]      [0 0]      [0]
                p(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                add(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                true() = [0]
                         [0]
                false() = [0]
                          [0]
                fact^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_0(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                   [0 0]      [0 0]      [0 0]      [0]
                add^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                c_1(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_2(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                prod^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 0]      [0 0]      [0]
                c_3() = [0]
                        [0]
                c_4(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_5(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_6(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                zero^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_7() = [0]
                        [0]
                c_8() = [0]
                        [0]
                p^#(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_9(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {zero^#(0()) -> c_7()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [2]
                      [2]
                zero^#(x1) = [2 0] x1 + [7]
                             [2 2]      [7]
                c_7() = [0]
                        [1]
           
           * Path {9}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
                zero(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                s(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                0() = [0]
                      [0]
                prod(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                               [0 0]      [0 0]      [0]
                p(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                add(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                true() = [0]
                         [0]
                false() = [0]
                          [0]
                fact^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_0(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                   [0 0]      [0 0]      [0 0]      [0]
                add^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                c_1(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_2(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                prod^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 0]      [0 0]      [0]
                c_3() = [0]
                        [0]
                c_4(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_5(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_6(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                zero^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_7() = [0]
                        [0]
                c_8() = [0]
                        [0]
                p^#(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_9(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {zero^#(s(X)) -> c_8()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0 0] x1 + [2]
                        [0 0]      [2]
                zero^#(x1) = [2 0] x1 + [7]
                             [2 2]      [7]
                c_8() = [0]
                        [1]
           
           * Path {10}: YES(?,O(n^2))
             ------------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                if(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
                zero(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                s(x1) = [1 1] x1 + [0]
                        [0 1]      [0]
                0() = [0]
                      [0]
                prod(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                               [0 0]      [0 0]      [0]
                p(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
                add(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                true() = [0]
                         [0]
                false() = [0]
                          [0]
                fact^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_0(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                   [0 0]      [0 0]      [0 0]      [0]
                add^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                c_1(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_2(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                prod^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                                 [0 0]      [0 0]      [0]
                c_3() = [0]
                        [0]
                c_4(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_5(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                c_6(x1) = [0 0] x1 + [0]
                          [0 0]      [0]
                zero^#(x1) = [0 0] x1 + [0]
                             [0 0]      [0]
                c_7() = [0]
                        [0]
                c_8() = [0]
                        [0]
                p^#(x1) = [3 3] x1 + [0]
                          [0 0]      [0]
                c_9(x1) = [1 0] x1 + [0]
                          [0 0]      [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 2'
             --------------------------------------
             Answer:           YES(?,O(n^1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {p^#(s(X)) -> c_9(X)}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(p^#) = {}, Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [1 2] x1 + [2]
                        [0 0]      [2]
                p^#(x1) = [2 2] x1 + [7]
                          [2 0]      [7]
                c_9(x1) = [0 0] x1 + [0]
                          [0 0]      [1]
    
    3) 'wdg' failed due to the following reason:
         Transformation Details:
         -----------------------
           We have computed the following set of weak (innermost) dependency pairs:
           
             {  1: fact^#(X) -> c_0(if^#(zero(X), s(0()), prod(X, fact(p(X)))))
              , 2: add^#(0(), X) -> c_1(X)
              , 3: add^#(s(X), Y) -> c_2(add^#(X, Y))
              , 4: prod^#(0(), X) -> c_3()
              , 5: prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
              , 6: if^#(true(), X, Y) -> c_5(X)
              , 7: if^#(false(), X, Y) -> c_6(Y)
              , 8: zero^#(0()) -> c_7()
              , 9: zero^#(s(X)) -> c_8()
              , 10: p^#(s(X)) -> c_9(X)}
           
           Following Dependency Graph (modulo SCCs) was computed. (Answers to
           subproofs are indicated to the right.)
           
             ->{10}                                                      [   YES(?,O(n^1))    ]
             
             ->{9}                                                       [    YES(?,O(1))     ]
             
             ->{8}                                                       [    YES(?,O(1))     ]
             
             ->{5}                                                       [     inherited      ]
                |
                |->{2}                                                   [       MAYBE        ]
                |
                `->{3}                                                   [     inherited      ]
                    |
                    `->{2}                                               [         NA         ]
             
             ->{4}                                                       [    YES(?,O(1))     ]
             
             ->{1}                                                       [     inherited      ]
                |
                |->{6}                                                   [         NA         ]
                |
                `->{7}                                                   [         NA         ]
             
           
         
         Sub-problems:
         -------------
           * Path {1}: inherited
             -------------------
             
             This path is subsumed by the proof of path {1}->{7}.
           
           * Path {1}->{6}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {1}->{7}: NA
             -----------------
             
             The usable rules for this path are:
             
               {  fact(X) -> if(zero(X), s(0()), prod(X, fact(p(X))))
                , prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , zero(0()) -> true()
                , zero(s(X)) -> false()
                , p(s(X)) -> X
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))
                , if(true(), X, Y) -> X
                , if(false(), X, Y) -> Y}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {4}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0] x1 + [0]
                if(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                zero(x1) = [0] x1 + [0]
                s(x1) = [0] x1 + [0]
                0() = [0]
                prod(x1, x2) = [0] x1 + [0] x2 + [0]
                p(x1) = [0] x1 + [0]
                add(x1, x2) = [0] x1 + [0] x2 + [0]
                true() = [0]
                false() = [0]
                fact^#(x1) = [0] x1 + [0]
                c_0(x1) = [0] x1 + [0]
                if^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                add^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_1(x1) = [0] x1 + [0]
                c_2(x1) = [0] x1 + [0]
                prod^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_3() = [0]
                c_4(x1) = [0] x1 + [0]
                c_5(x1) = [0] x1 + [0]
                c_6(x1) = [0] x1 + [0]
                zero^#(x1) = [0] x1 + [0]
                c_7() = [0]
                c_8() = [0]
                p^#(x1) = [0] x1 + [0]
                c_9(x1) = [0] x1 + [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {prod^#(0(), X) -> c_3()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(prod^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [7]
                prod^#(x1, x2) = [1] x1 + [0] x2 + [7]
                c_3() = [1]
           
           * Path {5}: inherited
             -------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{2}: MAYBE
             --------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           MAYBE
             Input Problem:    runtime-complexity with respect to
               Rules:
                 {  prod^#(s(X), Y) -> c_4(add^#(Y, prod(X, Y)))
                  , add^#(0(), X) -> c_1(X)
                  , prod(0(), X) -> 0()
                  , prod(s(X), Y) -> add(Y, prod(X, Y))
                  , add(0(), X) -> X
                  , add(s(X), Y) -> s(add(X, Y))}
             
             Proof Output:    
               The input cannot be shown compatible
           
           * Path {5}->{3}: inherited
             ------------------------
             
             This path is subsumed by the proof of path {5}->{3}->{2}.
           
           * Path {5}->{3}->{2}: NA
             ----------------------
             
             The usable rules for this path are:
             
               {  prod(0(), X) -> 0()
                , prod(s(X), Y) -> add(Y, prod(X, Y))
                , add(0(), X) -> X
                , add(s(X), Y) -> s(add(X, Y))}
             
             The weight gap principle does not apply:
               The input cannot be shown compatible
             Complexity induced by the adequate RMI: MAYBE
             
             We have not generated a proof for the resulting sub-problem.
           
           * Path {8}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0] x1 + [0]
                if(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                zero(x1) = [0] x1 + [0]
                s(x1) = [0] x1 + [0]
                0() = [0]
                prod(x1, x2) = [0] x1 + [0] x2 + [0]
                p(x1) = [0] x1 + [0]
                add(x1, x2) = [0] x1 + [0] x2 + [0]
                true() = [0]
                false() = [0]
                fact^#(x1) = [0] x1 + [0]
                c_0(x1) = [0] x1 + [0]
                if^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                add^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_1(x1) = [0] x1 + [0]
                c_2(x1) = [0] x1 + [0]
                prod^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_3() = [0]
                c_4(x1) = [0] x1 + [0]
                c_5(x1) = [0] x1 + [0]
                c_6(x1) = [0] x1 + [0]
                zero^#(x1) = [0] x1 + [0]
                c_7() = [0]
                c_8() = [0]
                p^#(x1) = [0] x1 + [0]
                c_9(x1) = [0] x1 + [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {zero^#(0()) -> c_7()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                0() = [7]
                zero^#(x1) = [1] x1 + [7]
                c_7() = [1]
           
           * Path {9}: YES(?,O(1))
             ---------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0] x1 + [0]
                if(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                zero(x1) = [0] x1 + [0]
                s(x1) = [0] x1 + [0]
                0() = [0]
                prod(x1, x2) = [0] x1 + [0] x2 + [0]
                p(x1) = [0] x1 + [0]
                add(x1, x2) = [0] x1 + [0] x2 + [0]
                true() = [0]
                false() = [0]
                fact^#(x1) = [0] x1 + [0]
                c_0(x1) = [0] x1 + [0]
                if^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                add^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_1(x1) = [0] x1 + [0]
                c_2(x1) = [0] x1 + [0]
                prod^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_3() = [0]
                c_4(x1) = [0] x1 + [0]
                c_5(x1) = [0] x1 + [0]
                c_6(x1) = [0] x1 + [0]
                zero^#(x1) = [0] x1 + [0]
                c_7() = [0]
                c_8() = [0]
                p^#(x1) = [0] x1 + [0]
                c_9(x1) = [0] x1 + [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           YES(?,O(1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {zero^#(s(X)) -> c_8()}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(zero^#) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [0] x1 + [7]
                zero^#(x1) = [1] x1 + [7]
                c_8() = [1]
           
           * Path {10}: YES(?,O(n^1))
             ------------------------
             
             The usable rules of this path are empty.
             
             The weightgap principle applies, using the following adequate RMI:
               The following argument positions are usable:
                 Uargs(fact) = {}, Uargs(if) = {}, Uargs(zero) = {}, Uargs(s) = {},
                 Uargs(prod) = {}, Uargs(p) = {}, Uargs(add) = {},
                 Uargs(fact^#) = {}, Uargs(c_0) = {}, Uargs(if^#) = {},
                 Uargs(add^#) = {}, Uargs(c_1) = {}, Uargs(c_2) = {},
                 Uargs(prod^#) = {}, Uargs(c_4) = {}, Uargs(c_5) = {},
                 Uargs(c_6) = {}, Uargs(zero^#) = {}, Uargs(p^#) = {},
                 Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                fact(x1) = [0] x1 + [0]
                if(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                zero(x1) = [0] x1 + [0]
                s(x1) = [1] x1 + [0]
                0() = [0]
                prod(x1, x2) = [0] x1 + [0] x2 + [0]
                p(x1) = [0] x1 + [0]
                add(x1, x2) = [0] x1 + [0] x2 + [0]
                true() = [0]
                false() = [0]
                fact^#(x1) = [0] x1 + [0]
                c_0(x1) = [0] x1 + [0]
                if^#(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
                add^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_1(x1) = [0] x1 + [0]
                c_2(x1) = [0] x1 + [0]
                prod^#(x1, x2) = [0] x1 + [0] x2 + [0]
                c_3() = [0]
                c_4(x1) = [0] x1 + [0]
                c_5(x1) = [0] x1 + [0]
                c_6(x1) = [0] x1 + [0]
                zero^#(x1) = [0] x1 + [0]
                c_7() = [0]
                c_8() = [0]
                p^#(x1) = [3] x1 + [0]
                c_9(x1) = [1] x1 + [0]
             
             We apply the sub-processor on the resulting sub-problem:
             
             'matrix-interpretation of dimension 1'
             --------------------------------------
             Answer:           YES(?,O(n^1))
             Input Problem:    DP runtime-complexity with respect to
               Strict Rules: {p^#(s(X)) -> c_9(X)}
               Weak Rules: {}
             
             Proof Output:    
               The following argument positions are usable:
                 Uargs(s) = {}, Uargs(p^#) = {}, Uargs(c_9) = {}
               We have the following constructor-restricted matrix interpretation:
               Interpretation Functions:
                s(x1) = [1] x1 + [7]
                p^#(x1) = [1] x1 + [7]
                c_9(x1) = [1] x1 + [1]
    
    4) 'matrix-interpretation of dimension 1' failed due to the following reason:
         The input cannot be shown compatible
    
    5) 'Bounds with perSymbol-enrichment and initial automaton 'match'' failed due to the following reason:
         match-boundness of the problem could not be verified.
    
    6) 'Bounds with minimal-enrichment and initial automaton 'match'' failed due to the following reason:
         match-boundness of the problem could not be verified.