WORST_CASE(?,O(n^1))
* Step 1: RestrictVarsProcessor WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. f3(A,B,C,D) -> f1(0,B,C,D)          True                                (1,1)
          1. f1(A,B,C,D) -> f2(A,B,C,E)          [B >= C]                            (?,1)
          2. f1(A,B,C,D) -> f2(1,1 + B,C,E)      [1 + B = C && A = 0]                (?,1)
          3. f1(A,B,C,D) -> f1(0,1 + B,-1 + C,D) [C >= 2 + B && C >= 1 + B && A = 0] (?,1)
        Signature:
          {(f1,4);(f2,4);(f3,4)}
        Flow Graph:
          [0->{1,2,3},1->{},2->{},3->{1,2,3}]
        
    + Applied Processor:
        RestrictVarsProcessor
    + Details:
        We removed the arguments [D] .
* Step 2: LocalSizeboundsProc WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. f3(A,B,C) -> f1(0,B,C)          True                                (1,1)
          1. f1(A,B,C) -> f2(A,B,C)          [B >= C]                            (?,1)
          2. f1(A,B,C) -> f2(1,1 + B,C)      [1 + B = C && A = 0]                (?,1)
          3. f1(A,B,C) -> f1(0,1 + B,-1 + C) [C >= 2 + B && C >= 1 + B && A = 0] (?,1)
        Signature:
          {(f1,3);(f2,3);(f3,3)}
        Flow Graph:
          [0->{1,2,3},1->{},2->{},3->{1,2,3}]
        
    + Applied Processor:
        LocalSizeboundsProc
    + Details:
        LocalSizebounds generated; rvgraph
          (<0,0,A>, 0, .= 0) (<0,0,B>,     B, .= 0) (<0,0,C>,     C, .= 0) 
          (<1,0,A>, A, .= 0) (<1,0,B>,     B, .= 0) (<1,0,C>,     C, .= 0) 
          (<2,0,A>, 1, .= 1) (<2,0,B>, 1 + B, .+ 1) (<2,0,C>,     C, .= 0) 
          (<3,0,A>, 0, .= 0) (<3,0,B>, 1 + B, .+ 1) (<3,0,C>, 1 + C, .+ 1) 
* Step 3: SizeboundsProc WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. f3(A,B,C) -> f1(0,B,C)          True                                (1,1)
          1. f1(A,B,C) -> f2(A,B,C)          [B >= C]                            (?,1)
          2. f1(A,B,C) -> f2(1,1 + B,C)      [1 + B = C && A = 0]                (?,1)
          3. f1(A,B,C) -> f1(0,1 + B,-1 + C) [C >= 2 + B && C >= 1 + B && A = 0] (?,1)
        Signature:
          {(f1,3);(f2,3);(f3,3)}
        Flow Graph:
          [0->{1,2,3},1->{},2->{},3->{1,2,3}]
        Sizebounds:
          (<0,0,A>, ?) (<0,0,B>, ?) (<0,0,C>, ?) 
          (<1,0,A>, ?) (<1,0,B>, ?) (<1,0,C>, ?) 
          (<2,0,A>, ?) (<2,0,B>, ?) (<2,0,C>, ?) 
          (<3,0,A>, ?) (<3,0,B>, ?) (<3,0,C>, ?) 
    + Applied Processor:
        SizeboundsProc
    + Details:
        Sizebounds computed:
          (<0,0,A>, 0) (<0,0,B>, B) (<0,0,C>, C) 
          (<1,0,A>, 0) (<1,0,B>, ?) (<1,0,C>, ?) 
          (<2,0,A>, 1) (<2,0,B>, ?) (<2,0,C>, ?) 
          (<3,0,A>, 0) (<3,0,B>, ?) (<3,0,C>, ?) 
* Step 4: LeafRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. f3(A,B,C) -> f1(0,B,C)          True                                (1,1)
          1. f1(A,B,C) -> f2(A,B,C)          [B >= C]                            (?,1)
          2. f1(A,B,C) -> f2(1,1 + B,C)      [1 + B = C && A = 0]                (?,1)
          3. f1(A,B,C) -> f1(0,1 + B,-1 + C) [C >= 2 + B && C >= 1 + B && A = 0] (?,1)
        Signature:
          {(f1,3);(f2,3);(f3,3)}
        Flow Graph:
          [0->{1,2,3},1->{},2->{},3->{1,2,3}]
        Sizebounds:
          (<0,0,A>, 0) (<0,0,B>, B) (<0,0,C>, C) 
          (<1,0,A>, 0) (<1,0,B>, ?) (<1,0,C>, ?) 
          (<2,0,A>, 1) (<2,0,B>, ?) (<2,0,C>, ?) 
          (<3,0,A>, 0) (<3,0,B>, ?) (<3,0,C>, ?) 
    + Applied Processor:
        LeafRules
    + Details:
        The following transitions are estimated by its predecessors and are removed [1,2]
* Step 5: PolyRank WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. f3(A,B,C) -> f1(0,B,C)          True                                (1,1)
          3. f1(A,B,C) -> f1(0,1 + B,-1 + C) [C >= 2 + B && C >= 1 + B && A = 0] (?,1)
        Signature:
          {(f1,3);(f2,3);(f3,3)}
        Flow Graph:
          [0->{3},3->{3}]
        Sizebounds:
          (<0,0,A>, 0) (<0,0,B>, B) (<0,0,C>, C) 
          (<3,0,A>, 0) (<3,0,B>, ?) (<3,0,C>, ?) 
    + Applied Processor:
        PolyRank {useFarkas = True, withSizebounds = [], shape = Linear}
    + Details:
        We apply a polynomial interpretation of shape linear:
          p(f1) = -1*x2 + x3
          p(f3) = -1*x2 + x3
        
        The following rules are strictly oriented:
        [C >= 2 + B && C >= 1 + B && A = 0] ==>                   
                                  f1(A,B,C)   = -1*B + C          
                                              > -2 + -1*B + C     
                                              = f1(0,1 + B,-1 + C)
        
        
        The following rules are weakly oriented:
               True ==>          
          f3(A,B,C)   = -1*B + C 
                     >= -1*B + C 
                      = f1(0,B,C)
        
        
* Step 6: KnowledgePropagation WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. f3(A,B,C) -> f1(0,B,C)          True                                (1,1)    
          3. f1(A,B,C) -> f1(0,1 + B,-1 + C) [C >= 2 + B && C >= 1 + B && A = 0] (B + C,1)
        Signature:
          {(f1,3);(f2,3);(f3,3)}
        Flow Graph:
          [0->{3},3->{3}]
        Sizebounds:
          (<0,0,A>, 0) (<0,0,B>, B) (<0,0,C>, C) 
          (<3,0,A>, 0) (<3,0,B>, ?) (<3,0,C>, ?) 
    + Applied Processor:
        KnowledgePropagation
    + Details:
        The problem is already solved.

WORST_CASE(?,O(n^1))