Problem AG01 innermost 4.34

Tool CaT

Execution TimeUnknown
Answer
MAYBE
InputAG01 innermost 4.34

stdout:

MAYBE

Problem:
 f(0()) -> true()
 f(1()) -> false()
 f(s(x)) -> f(x)
 if(true(),x,y) -> x
 if(false(),x,y) -> y
 g(s(x),s(y)) -> if(f(x),s(x),s(y))
 g(x,c(y)) -> g(x,g(s(c(y)),y))

Proof:
 Open

Tool IRC1

Execution TimeUnknown
Answer
MAYBE
InputAG01 innermost 4.34

stdout:

MAYBE

Tool IRC2

Execution TimeUnknown
Answer
YES(?,O(n^2))
InputAG01 innermost 4.34

stdout:

YES(?,O(n^2))

'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer:           YES(?,O(n^2))
Input Problem:    innermost runtime-complexity with respect to
  Rules:
    {  f(0()) -> true()
     , f(1()) -> false()
     , f(s(x)) -> f(x)
     , if(true(), x, y) -> x
     , if(false(), x, y) -> y
     , g(s(x), s(y)) -> if(f(x), s(x), s(y))
     , g(x, c(y)) -> g(x, g(s(c(y)), y))}

Proof Output:    
  'wdg' proved the best result:
  
  Details:
  --------
    'wdg' succeeded with the following output:
     'wdg'
     -----
     Answer:           YES(?,O(n^2))
     Input Problem:    innermost runtime-complexity with respect to
       Rules:
         {  f(0()) -> true()
          , f(1()) -> false()
          , f(s(x)) -> f(x)
          , if(true(), x, y) -> x
          , if(false(), x, y) -> y
          , g(s(x), s(y)) -> if(f(x), s(x), s(y))
          , g(x, c(y)) -> g(x, g(s(c(y)), y))}
     
     Proof Output:    
       Transformation Details:
       -----------------------
         We have computed the following set of weak (innermost) dependency pairs:
         
           {  1: f^#(0()) -> c_0()
            , 2: f^#(1()) -> c_1()
            , 3: f^#(s(x)) -> c_2(f^#(x))
            , 4: if^#(true(), x, y) -> c_3()
            , 5: if^#(false(), x, y) -> c_4()
            , 6: g^#(s(x), s(y)) -> c_5(if^#(f(x), s(x), s(y)))
            , 7: g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))}
         
         Following Dependency Graph (modulo SCCs) was computed. (Answers to
         subproofs are indicated to the right.)
         
           ->{7}                                                       [   YES(?,O(n^2))    ]
              |
              `->{6}                                                   [   YES(?,O(n^2))    ]
                  |
                  |->{4}                                               [   YES(?,O(n^2))    ]
                  |
                  `->{5}                                               [   YES(?,O(n^2))    ]
           
           ->{3}                                                       [   YES(?,O(n^1))    ]
              |
              |->{1}                                                   [   YES(?,O(n^1))    ]
              |
              `->{2}                                                   [   YES(?,O(n^1))    ]
           
         
       
       Sub-problems:
       -------------
         * Path {3}: 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(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}, Uargs(if^#) = {},
               Uargs(g^#) = {}, Uargs(c_5) = {}, Uargs(c_6) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [1 2] 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]
              g(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                          [0 0]      [0 0]      [0]
              c(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              f^#(x1) = [3 3] x1 + [0]
                        [3 3]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3() = [0]
                      [0]
              c_4() = [0]
                      [0]
              g^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_6(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(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {f^#(s(x)) -> c_2(f^#(x))}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(s) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              s(x1) = [1 0] x1 + [0]
                      [0 1]      [1]
              f^#(x1) = [0 1] x1 + [1]
                        [0 0]      [0]
              c_2(x1) = [1 0] x1 + [0]
                        [0 0]      [0]
         
         * Path {3}->{1}: 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(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}, Uargs(if^#) = {},
               Uargs(g^#) = {}, Uargs(c_5) = {}, Uargs(c_6) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(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]
              g(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                          [0 0]      [0 0]      [0]
              c(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3() = [0]
                      [0]
              c_4() = [0]
                      [0]
              g^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_6(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(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {f^#(0()) -> c_0()}
             Weak Rules: {f^#(s(x)) -> c_2(f^#(x))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(s) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              0() = [2]
                    [2]
              s(x1) = [1 2] x1 + [1]
                      [0 0]      [3]
              f^#(x1) = [1 2] x1 + [2]
                        [6 1]      [0]
              c_0() = [1]
                      [0]
              c_2(x1) = [1 0] x1 + [5]
                        [2 0]      [3]
         
         * Path {3}->{2}: 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(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}, Uargs(if^#) = {},
               Uargs(g^#) = {}, Uargs(c_5) = {}, Uargs(c_6) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(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]
              g(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                          [0 0]      [0 0]      [0]
              c(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3() = [0]
                      [0]
              c_4() = [0]
                      [0]
              g^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_6(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(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {f^#(1()) -> c_1()}
             Weak Rules: {f^#(s(x)) -> c_2(f^#(x))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(s) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              1() = [2]
                    [2]
              s(x1) = [1 2] x1 + [1]
                      [0 0]      [3]
              f^#(x1) = [1 2] x1 + [2]
                        [6 1]      [0]
              c_1() = [1]
                      [0]
              c_2(x1) = [1 0] x1 + [5]
                        [2 0]      [3]
         
         * Path {7}: YES(?,O(n^2))
           -----------------------
           
           The usable rules for this path are:
           
             {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
              , g(x, c(y)) -> g(x, g(s(c(y)), y))
              , f(0()) -> true()
              , f(1()) -> false()
              , f(s(x)) -> f(x)
              , if(true(), x, y) -> x
              , if(false(), x, y) -> y}
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {1}, Uargs(g) = {2},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {}, Uargs(if^#) = {},
               Uargs(g^#) = {2}, Uargs(c_5) = {}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 1]      [0]
              0() = [0]
                    [2]
              true() = [1]
                       [0]
              1() = [0]
                    [2]
              false() = [1]
                        [0]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [1]
              if(x1, x2, x3) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [0 1]      [0 1]      [1 2]      [0]
              g(x1, x2) = [1 1] x1 + [1 0] x2 + [0]
                          [1 2]      [2 0]      [1]
              c(x1) = [1 2] x1 + [2]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(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]
              c_3() = [0]
                      [0]
              c_4() = [0]
                      [0]
              g^#(x1, x2) = [3 3] x1 + [1 0] x2 + [0]
                            [3 3]      [3 3]      [0]
              c_5(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
           Complexity induced by the adequate RMI: YES(?,O(n^2))
           
           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: {g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))}
             Weak Rules:
               {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
                , g(x, c(y)) -> g(x, g(s(c(y)), y))
                , f(0()) -> true()
                , f(1()) -> false()
                , f(s(x)) -> f(x)
                , if(true(), x, y) -> x
                , if(false(), x, y) -> y}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(g^#) = {}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              if(x1, x2, x3) = [0 0] x1 + [4 0] x2 + [4 0] x3 + [0]
                               [0 0]      [0 4]      [0 2]      [0]
              g(x1, x2) = [2 0] x1 + [0 0] x2 + [0]
                          [2 2]      [0 0]      [0]
              c(x1) = [0 0] x1 + [2]
                      [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [2 2] x2 + [0]
                            [4 4]      [0 0]      [0]
              c_6(x1) = [3 0] x1 + [3]
                        [0 0]      [0]
         
         * Path {7}->{6}: YES(?,O(n^2))
           ----------------------------
           
           The usable rules for this path are:
           
             {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
              , g(x, c(y)) -> g(x, g(s(c(y)), y))
              , f(0()) -> true()
              , f(1()) -> false()
              , f(s(x)) -> f(x)
              , if(true(), x, y) -> x
              , if(false(), x, y) -> y}
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {1}, Uargs(g) = {2},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {}, Uargs(if^#) = {1},
               Uargs(g^#) = {2}, Uargs(c_5) = {1}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [2]
              true() = [1]
                       [0]
              1() = [0]
                    [2]
              false() = [1]
                        [0]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [1]
              if(x1, x2, x3) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [0 0]      [0 2]      [0 1]      [0]
              g(x1, x2) = [1 1] x1 + [1 0] x2 + [0]
                          [1 2]      [1 0]      [1]
              c(x1) = [1 0] x1 + [3]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              if^#(x1, x2, x3) = [1 0] x1 + [0 0] x2 + [0 1] x3 + [0]
                                 [3 3]      [3 3]      [3 3]      [0]
              c_3() = [0]
                      [0]
              c_4() = [0]
                      [0]
              g^#(x1, x2) = [1 2] x1 + [1 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
           Complexity induced by the adequate RMI: YES(?,O(n^2))
           
           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: {g^#(s(x), s(y)) -> c_5(if^#(f(x), s(x), s(y)))}
             Weak Rules:
               {  g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))
                , g(s(x), s(y)) -> if(f(x), s(x), s(y))
                , g(x, c(y)) -> g(x, g(s(c(y)), y))
                , f(0()) -> true()
                , f(1()) -> false()
                , f(s(x)) -> f(x)
                , if(true(), x, y) -> x
                , if(false(), x, y) -> y}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(if^#) = {}, Uargs(g^#) = {}, Uargs(c_5) = {1},
               Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              if(x1, x2, x3) = [0 0] x1 + [4 0] x2 + [1 0] x3 + [0]
                               [0 0]      [0 4]      [0 4]      [0]
              g(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                          [0 0]      [0 0]      [0]
              c(x1) = [0 0] x1 + [0]
                      [0 0]      [1]
              if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [0 4] x2 + [1]
                            [0 0]      [0 2]      [0]
              c_5(x1) = [1 0] x1 + [0]
                        [0 0]      [0]
              c_6(x1) = [2 2] x1 + [1]
                        [0 0]      [2]
         
         * Path {7}->{6}->{4}: YES(?,O(n^2))
           ---------------------------------
           
           The usable rules for this path are:
           
             {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
              , g(x, c(y)) -> g(x, g(s(c(y)), y))
              , f(0()) -> true()
              , f(1()) -> false()
              , f(s(x)) -> f(x)
              , if(true(), x, y) -> x
              , if(false(), x, y) -> y}
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {1}, Uargs(g) = {2},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {}, Uargs(if^#) = {1},
               Uargs(g^#) = {2}, Uargs(c_5) = {1}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 2] x1 + [0]
                      [0 2]      [0]
              0() = [0]
                    [1]
              true() = [0]
                       [0]
              1() = [0]
                    [2]
              false() = [0]
                        [0]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [1]
              if(x1, x2, x3) = [2 1] x1 + [1 0] x2 + [1 0] x3 + [1]
                               [0 0]      [0 1]      [0 1]      [0]
              g(x1, x2) = [3 2] x1 + [1 0] x2 + [0]
                          [0 1]      [2 0]      [2]
              c(x1) = [1 2] x1 + [3]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              if^#(x1, x2, x3) = [3 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3() = [0]
                      [0]
              c_4() = [0]
                      [0]
              g^#(x1, x2) = [0 0] x1 + [3 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
           Complexity induced by the adequate RMI: YES(?,O(n^2))
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 2'
           --------------------------------------
           Answer:           YES(?,O(n^2))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {if^#(true(), x, y) -> c_3()}
             Weak Rules:
               {  g^#(s(x), s(y)) -> c_5(if^#(f(x), s(x), s(y)))
                , g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))
                , g(s(x), s(y)) -> if(f(x), s(x), s(y))
                , g(x, c(y)) -> g(x, g(s(c(y)), y))
                , f(0()) -> true()
                , f(1()) -> false()
                , f(s(x)) -> f(x)
                , if(true(), x, y) -> x
                , if(false(), x, y) -> y}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(if^#) = {}, Uargs(g^#) = {}, Uargs(c_5) = {1},
               Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 2]      [0]
              0() = [0]
                    [4]
              true() = [2]
                       [2]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [0]
              if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [0 0]      [0 1]      [0 1]      [0]
              g(x1, x2) = [0 2] x1 + [1 0] x2 + [0]
                          [4 0]      [4 0]      [0]
              c(x1) = [1 2] x1 + [0]
                      [0 0]      [0]
              if^#(x1, x2, x3) = [2 2] x1 + [0 0] x2 + [1 2] x3 + [0]
                                 [2 0]      [0 0]      [0 0]      [0]
              c_3() = [1]
                      [0]
              g^#(x1, x2) = [4 4] x1 + [4 0] x2 + [0]
                            [4 4]      [2 5]      [0]
              c_5(x1) = [2 0] x1 + [0]
                        [2 0]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 0]      [0]
         
         * Path {7}->{6}->{5}: YES(?,O(n^2))
           ---------------------------------
           
           The usable rules for this path are:
           
             {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
              , g(x, c(y)) -> g(x, g(s(c(y)), y))
              , f(0()) -> true()
              , f(1()) -> false()
              , f(s(x)) -> f(x)
              , if(true(), x, y) -> x
              , if(false(), x, y) -> y}
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {1}, Uargs(g) = {2},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {}, Uargs(if^#) = {1},
               Uargs(g^#) = {2}, Uargs(c_5) = {1}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 2] x1 + [0]
                      [0 2]      [0]
              0() = [0]
                    [1]
              true() = [0]
                       [0]
              1() = [0]
                    [2]
              false() = [0]
                        [0]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [1]
              if(x1, x2, x3) = [2 1] x1 + [1 0] x2 + [1 0] x3 + [1]
                               [0 0]      [0 1]      [0 1]      [0]
              g(x1, x2) = [3 2] x1 + [1 0] x2 + [0]
                          [0 1]      [2 0]      [2]
              c(x1) = [1 2] x1 + [3]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              if^#(x1, x2, x3) = [3 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3() = [0]
                      [0]
              c_4() = [0]
                      [0]
              g^#(x1, x2) = [0 0] x1 + [3 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
           Complexity induced by the adequate RMI: YES(?,O(n^2))
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 2'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {if^#(false(), x, y) -> c_4()}
             Weak Rules:
               {  g^#(s(x), s(y)) -> c_5(if^#(f(x), s(x), s(y)))
                , g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))
                , g(s(x), s(y)) -> if(f(x), s(x), s(y))
                , g(x, c(y)) -> g(x, g(s(c(y)), y))
                , f(0()) -> true()
                , f(1()) -> false()
                , f(s(x)) -> f(x)
                , if(true(), x, y) -> x
                , if(false(), x, y) -> y}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(if^#) = {}, Uargs(g^#) = {}, Uargs(c_5) = {1},
               Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [0 0] x1 + [3]
                      [0 0]      [1]
              if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [4 0] x3 + [0]
                               [0 0]      [0 2]      [0 1]      [0]
              g(x1, x2) = [0 4] x1 + [0 4] x2 + [7]
                          [0 0]      [0 1]      [2]
              c(x1) = [0 0] x1 + [0]
                      [0 1]      [2]
              if^#(x1, x2, x3) = [2 0] x1 + [1 1] x2 + [0 0] x3 + [2]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_4() = [1]
                      [0]
              g^#(x1, x2) = [1 6] x1 + [0 0] x2 + [4]
                            [0 4]      [0 2]      [4]
              c_5(x1) = [2 0] x1 + [0]
                        [0 0]      [6]
              c_6(x1) = [1 0] x1 + [0]
                        [0 0]      [7]

Tool RC1

Execution TimeUnknown
Answer
MAYBE
InputAG01 innermost 4.34

stdout:

MAYBE

Tool RC2

Execution TimeUnknown
Answer
YES(?,O(n^2))
InputAG01 innermost 4.34

stdout:

YES(?,O(n^2))

'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer:           YES(?,O(n^2))
Input Problem:    runtime-complexity with respect to
  Rules:
    {  f(0()) -> true()
     , f(1()) -> false()
     , f(s(x)) -> f(x)
     , if(true(), x, y) -> x
     , if(false(), x, y) -> y
     , g(s(x), s(y)) -> if(f(x), s(x), s(y))
     , g(x, c(y)) -> g(x, g(s(c(y)), y))}

Proof Output:    
  'wdg' proved the best result:
  
  Details:
  --------
    'wdg' succeeded with the following output:
     'wdg'
     -----
     Answer:           YES(?,O(n^2))
     Input Problem:    runtime-complexity with respect to
       Rules:
         {  f(0()) -> true()
          , f(1()) -> false()
          , f(s(x)) -> f(x)
          , if(true(), x, y) -> x
          , if(false(), x, y) -> y
          , g(s(x), s(y)) -> if(f(x), s(x), s(y))
          , g(x, c(y)) -> g(x, g(s(c(y)), y))}
     
     Proof Output:    
       Transformation Details:
       -----------------------
         We have computed the following set of weak (innermost) dependency pairs:
         
           {  1: f^#(0()) -> c_0()
            , 2: f^#(1()) -> c_1()
            , 3: f^#(s(x)) -> c_2(f^#(x))
            , 4: if^#(true(), x, y) -> c_3(x)
            , 5: if^#(false(), x, y) -> c_4(y)
            , 6: g^#(s(x), s(y)) -> c_5(if^#(f(x), s(x), s(y)))
            , 7: g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))}
         
         Following Dependency Graph (modulo SCCs) was computed. (Answers to
         subproofs are indicated to the right.)
         
           ->{7}                                                       [   YES(?,O(n^2))    ]
              |
              `->{6}                                                   [   YES(?,O(n^2))    ]
                  |
                  |->{4}                                               [   YES(?,O(n^2))    ]
                  |
                  `->{5}                                               [   YES(?,O(n^2))    ]
           
           ->{3}                                                       [   YES(?,O(n^1))    ]
              |
              |->{1}                                                   [   YES(?,O(n^1))    ]
              |
              `->{2}                                                   [   YES(?,O(n^1))    ]
           
         
       
       Sub-problems:
       -------------
         * Path {3}: 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(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}, Uargs(if^#) = {},
               Uargs(c_3) = {}, Uargs(c_4) = {}, Uargs(g^#) = {}, Uargs(c_5) = {},
               Uargs(c_6) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [1 2] 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]
              g(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                          [0 0]      [0 0]      [0]
              c(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              f^#(x1) = [3 3] x1 + [0]
                        [3 3]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_4(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_6(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(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {f^#(s(x)) -> c_2(f^#(x))}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(s) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              s(x1) = [1 0] x1 + [0]
                      [0 1]      [1]
              f^#(x1) = [0 1] x1 + [1]
                        [0 0]      [0]
              c_2(x1) = [1 0] x1 + [0]
                        [0 0]      [0]
         
         * Path {3}->{1}: 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(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}, Uargs(if^#) = {},
               Uargs(c_3) = {}, Uargs(c_4) = {}, Uargs(g^#) = {}, Uargs(c_5) = {},
               Uargs(c_6) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(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]
              g(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                          [0 0]      [0 0]      [0]
              c(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_4(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_6(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(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {f^#(0()) -> c_0()}
             Weak Rules: {f^#(s(x)) -> c_2(f^#(x))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(s) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              0() = [2]
                    [2]
              s(x1) = [1 2] x1 + [1]
                      [0 0]      [3]
              f^#(x1) = [1 2] x1 + [2]
                        [6 1]      [0]
              c_0() = [1]
                      [0]
              c_2(x1) = [1 0] x1 + [5]
                        [2 0]      [3]
         
         * Path {3}->{2}: 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(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}, Uargs(if^#) = {},
               Uargs(c_3) = {}, Uargs(c_4) = {}, Uargs(g^#) = {}, Uargs(c_5) = {},
               Uargs(c_6) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(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]
              g(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                          [0 0]      [0 0]      [0]
              c(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_4(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_6(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(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {f^#(1()) -> c_1()}
             Weak Rules: {f^#(s(x)) -> c_2(f^#(x))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(s) = {}, Uargs(f^#) = {}, Uargs(c_2) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              1() = [2]
                    [2]
              s(x1) = [1 2] x1 + [1]
                      [0 0]      [3]
              f^#(x1) = [1 2] x1 + [2]
                        [6 1]      [0]
              c_1() = [1]
                      [0]
              c_2(x1) = [1 0] x1 + [5]
                        [2 0]      [3]
         
         * Path {7}: YES(?,O(n^2))
           -----------------------
           
           The usable rules for this path are:
           
             {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
              , g(x, c(y)) -> g(x, g(s(c(y)), y))
              , f(0()) -> true()
              , f(1()) -> false()
              , f(s(x)) -> f(x)
              , if(true(), x, y) -> x
              , if(false(), x, y) -> y}
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {1}, Uargs(g) = {2},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {}, Uargs(if^#) = {},
               Uargs(c_3) = {}, Uargs(c_4) = {}, Uargs(g^#) = {2},
               Uargs(c_5) = {}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 1]      [0]
              0() = [0]
                    [2]
              true() = [1]
                       [0]
              1() = [0]
                    [2]
              false() = [1]
                        [0]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [1]
              if(x1, x2, x3) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [0 1]      [0 1]      [1 2]      [0]
              g(x1, x2) = [1 1] x1 + [1 0] x2 + [0]
                          [1 2]      [2 0]      [1]
              c(x1) = [1 2] x1 + [2]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(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]
              c_3(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_4(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              g^#(x1, x2) = [3 3] x1 + [1 0] x2 + [0]
                            [3 3]      [3 3]      [0]
              c_5(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
           Complexity induced by the adequate RMI: YES(?,O(n^2))
           
           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: {g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))}
             Weak Rules:
               {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
                , g(x, c(y)) -> g(x, g(s(c(y)), y))
                , f(0()) -> true()
                , f(1()) -> false()
                , f(s(x)) -> f(x)
                , if(true(), x, y) -> x
                , if(false(), x, y) -> y}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(g^#) = {}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              if(x1, x2, x3) = [0 0] x1 + [4 0] x2 + [4 0] x3 + [0]
                               [0 0]      [0 4]      [0 2]      [0]
              g(x1, x2) = [2 0] x1 + [0 0] x2 + [0]
                          [2 2]      [0 0]      [0]
              c(x1) = [0 0] x1 + [2]
                      [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [2 2] x2 + [0]
                            [4 4]      [0 0]      [0]
              c_6(x1) = [3 0] x1 + [3]
                        [0 0]      [0]
         
         * Path {7}->{6}: YES(?,O(n^2))
           ----------------------------
           
           The usable rules for this path are:
           
             {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
              , g(x, c(y)) -> g(x, g(s(c(y)), y))
              , f(0()) -> true()
              , f(1()) -> false()
              , f(s(x)) -> f(x)
              , if(true(), x, y) -> x
              , if(false(), x, y) -> y}
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {1}, Uargs(g) = {2},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {}, Uargs(if^#) = {1},
               Uargs(c_3) = {}, Uargs(c_4) = {}, Uargs(g^#) = {2},
               Uargs(c_5) = {1}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [2]
              true() = [1]
                       [0]
              1() = [0]
                    [2]
              false() = [1]
                        [0]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [1]
              if(x1, x2, x3) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [0 0]      [0 2]      [0 1]      [0]
              g(x1, x2) = [1 1] x1 + [1 0] x2 + [0]
                          [1 2]      [1 0]      [1]
              c(x1) = [1 0] x1 + [3]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              if^#(x1, x2, x3) = [1 0] x1 + [0 0] x2 + [0 1] x3 + [0]
                                 [3 3]      [3 3]      [3 3]      [0]
              c_3(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_4(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              g^#(x1, x2) = [1 2] x1 + [1 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
           Complexity induced by the adequate RMI: YES(?,O(n^2))
           
           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: {g^#(s(x), s(y)) -> c_5(if^#(f(x), s(x), s(y)))}
             Weak Rules:
               {  g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))
                , g(s(x), s(y)) -> if(f(x), s(x), s(y))
                , g(x, c(y)) -> g(x, g(s(c(y)), y))
                , f(0()) -> true()
                , f(1()) -> false()
                , f(s(x)) -> f(x)
                , if(true(), x, y) -> x
                , if(false(), x, y) -> y}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(if^#) = {}, Uargs(g^#) = {}, Uargs(c_5) = {1},
               Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
              if(x1, x2, x3) = [0 0] x1 + [4 0] x2 + [1 0] x3 + [0]
                               [0 0]      [0 4]      [0 4]      [0]
              g(x1, x2) = [0 0] x1 + [0 0] x2 + [0]
                          [0 0]      [0 0]      [0]
              c(x1) = [0 0] x1 + [0]
                      [0 0]      [1]
              if^#(x1, x2, x3) = [0 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [0 4] x2 + [1]
                            [0 0]      [0 2]      [0]
              c_5(x1) = [1 0] x1 + [0]
                        [0 0]      [0]
              c_6(x1) = [2 2] x1 + [1]
                        [0 0]      [2]
         
         * Path {7}->{6}->{4}: YES(?,O(n^2))
           ---------------------------------
           
           The usable rules for this path are:
           
             {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
              , g(x, c(y)) -> g(x, g(s(c(y)), y))
              , f(0()) -> true()
              , f(1()) -> false()
              , f(s(x)) -> f(x)
              , if(true(), x, y) -> x
              , if(false(), x, y) -> y}
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {1}, Uargs(g) = {2},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {}, Uargs(if^#) = {1},
               Uargs(c_3) = {}, Uargs(c_4) = {}, Uargs(g^#) = {2},
               Uargs(c_5) = {1}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 1]      [0]
              0() = [0]
                    [2]
              true() = [0]
                       [1]
              1() = [0]
                    [2]
              false() = [0]
                        [1]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [2]
              if(x1, x2, x3) = [1 1] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [0 0]      [0 1]      [0 2]      [0]
              g(x1, x2) = [2 0] x1 + [1 0] x2 + [2]
                          [0 2]      [2 0]      [2]
              c(x1) = [1 2] x1 + [3]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              if^#(x1, x2, x3) = [3 0] x1 + [3 3] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3(x1) = [1 1] x1 + [0]
                        [0 0]      [0]
              c_4(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [3 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
           Complexity induced by the adequate RMI: YES(?,O(n^2))
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 2'
           --------------------------------------
           Answer:           YES(?,O(n^2))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {if^#(true(), x, y) -> c_3(x)}
             Weak Rules:
               {  g^#(s(x), s(y)) -> c_5(if^#(f(x), s(x), s(y)))
                , g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))
                , g(s(x), s(y)) -> if(f(x), s(x), s(y))
                , g(x, c(y)) -> g(x, g(s(c(y)), y))
                , f(0()) -> true()
                , f(1()) -> false()
                , f(s(x)) -> f(x)
                , if(true(), x, y) -> x
                , if(false(), x, y) -> y}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(if^#) = {}, Uargs(c_3) = {}, Uargs(g^#) = {},
               Uargs(c_5) = {1}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 0]      [1]
              0() = [0]
                    [4]
              true() = [3]
                       [1]
              1() = [0]
                    [0]
              false() = [0]
                        [0]
              s(x1) = [0 0] x1 + [1]
                      [0 1]      [1]
              if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [2 0]      [0 1]      [0 1]      [0]
              g(x1, x2) = [2 0] x1 + [0 0] x2 + [0]
                          [0 4]      [1 1]      [0]
              c(x1) = [1 2] x1 + [6]
                      [0 0]      [0]
              if^#(x1, x2, x3) = [2 2] x1 + [0 1] x2 + [1 0] x3 + [0]
                                 [2 4]      [0 0]      [0 0]      [0]
              c_3(x1) = [0 1] x1 + [1]
                        [0 0]      [0]
              g^#(x1, x2) = [2 6] x1 + [0 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [2 0] x1 + [0]
                        [0 0]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 0]      [0]
         
         * Path {7}->{6}->{5}: YES(?,O(n^2))
           ---------------------------------
           
           The usable rules for this path are:
           
             {  g(s(x), s(y)) -> if(f(x), s(x), s(y))
              , g(x, c(y)) -> g(x, g(s(c(y)), y))
              , f(0()) -> true()
              , f(1()) -> false()
              , f(s(x)) -> f(x)
              , if(true(), x, y) -> x
              , if(false(), x, y) -> y}
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {1}, Uargs(g) = {2},
               Uargs(c) = {}, Uargs(f^#) = {}, Uargs(c_2) = {}, Uargs(if^#) = {1},
               Uargs(c_3) = {}, Uargs(c_4) = {}, Uargs(g^#) = {2},
               Uargs(c_5) = {1}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 1]      [0]
              0() = [0]
                    [2]
              true() = [0]
                       [1]
              1() = [0]
                    [2]
              false() = [0]
                        [1]
              s(x1) = [0 2] x1 + [0]
                      [0 1]      [2]
              if(x1, x2, x3) = [1 1] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [0 0]      [0 1]      [0 2]      [0]
              g(x1, x2) = [2 0] x1 + [1 0] x2 + [2]
                          [0 2]      [2 0]      [2]
              c(x1) = [1 2] x1 + [3]
                      [0 0]      [0]
              f^#(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_0() = [0]
                      [0]
              c_1() = [0]
                      [0]
              c_2(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              if^#(x1, x2, x3) = [3 0] x1 + [3 3] x2 + [0 0] x3 + [0]
                                 [0 0]      [0 0]      [0 0]      [0]
              c_3(x1) = [0 0] x1 + [0]
                        [0 0]      [0]
              c_4(x1) = [1 1] x1 + [0]
                        [0 0]      [0]
              g^#(x1, x2) = [0 0] x1 + [3 0] x2 + [0]
                            [0 0]      [0 0]      [0]
              c_5(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 1]      [0]
           Complexity induced by the adequate RMI: YES(?,O(n^2))
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 2'
           --------------------------------------
           Answer:           YES(?,O(n^2))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {if^#(false(), x, y) -> c_4(y)}
             Weak Rules:
               {  g^#(s(x), s(y)) -> c_5(if^#(f(x), s(x), s(y)))
                , g^#(x, c(y)) -> c_6(g^#(x, g(s(c(y)), y)))
                , g(s(x), s(y)) -> if(f(x), s(x), s(y))
                , g(x, c(y)) -> g(x, g(s(c(y)), y))
                , f(0()) -> true()
                , f(1()) -> false()
                , f(s(x)) -> f(x)
                , if(true(), x, y) -> x
                , if(false(), x, y) -> y}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(s) = {}, Uargs(if) = {}, Uargs(g) = {},
               Uargs(c) = {}, Uargs(if^#) = {}, Uargs(c_4) = {}, Uargs(g^#) = {},
               Uargs(c_5) = {1}, Uargs(c_6) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1) = [0 1] x1 + [0]
                      [0 0]      [2]
              0() = [0]
                    [0]
              true() = [0]
                       [0]
              1() = [0]
                    [2]
              false() = [2]
                        [2]
              s(x1) = [0 4] x1 + [0]
                      [0 1]      [1]
              if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [0]
                               [0 0]      [0 1]      [0 1]      [0]
              g(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
                          [0 1]      [1 0]      [3]
              c(x1) = [1 4] x1 + [7]
                      [0 0]      [1]
              if^#(x1, x2, x3) = [2 0] x1 + [0 0] x2 + [0 0] x3 + [0]
                                 [2 2]      [0 0]      [0 0]      [2]
              c_4(x1) = [0 0] x1 + [1]
                        [0 0]      [0]
              g^#(x1, x2) = [2 0] x1 + [0 0] x2 + [0]
                            [1 1]      [0 4]      [7]
              c_5(x1) = [2 0] x1 + [0]
                        [0 2]      [0]
              c_6(x1) = [1 0] x1 + [0]
                        [0 0]      [7]