WORST_CASE(?,O(n^1))
* Step 1: LocalSizeboundsProc WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. eval1(A,B,C) -> eval2(A,B,C)           [A >= 1 + B && C = A] (?,1)
          1. eval2(A,B,C) -> eval2(-1 + A,B,-1 + C) [A >= 1 + B]          (?,1)
          2. eval2(A,B,C) -> eval1(A,B,C)           [B >= A]              (?,1)
          3. start(A,B,C) -> eval1(A,B,C)           True                  (1,1)
        Signature:
          {(eval1,3);(eval2,3);(start,3)}
        Flow Graph:
          [0->{1,2},1->{1,2},2->{0},3->{0}]
        
    + Applied Processor:
        LocalSizeboundsProc
    + Details:
        LocalSizebounds generated; rvgraph
          (<0,0,A>,     A, .= 0) (<0,0,B>, B, .= 0) (<0,0,C>,     C, .= 0) 
          (<1,0,A>, 1 + A, .+ 1) (<1,0,B>, B, .= 0) (<1,0,C>, 1 + C, .+ 1) 
          (<2,0,A>,     A, .= 0) (<2,0,B>, B, .= 0) (<2,0,C>,     C, .= 0) 
          (<3,0,A>,     A, .= 0) (<3,0,B>, B, .= 0) (<3,0,C>,     C, .= 0) 
* Step 2: SizeboundsProc WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. eval1(A,B,C) -> eval2(A,B,C)           [A >= 1 + B && C = A] (?,1)
          1. eval2(A,B,C) -> eval2(-1 + A,B,-1 + C) [A >= 1 + B]          (?,1)
          2. eval2(A,B,C) -> eval1(A,B,C)           [B >= A]              (?,1)
          3. start(A,B,C) -> eval1(A,B,C)           True                  (1,1)
        Signature:
          {(eval1,3);(eval2,3);(start,3)}
        Flow Graph:
          [0->{1,2},1->{1,2},2->{0},3->{0}]
        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>, A + B) (<0,0,B>, B) (<0,0,C>, A + B) 
          (<1,0,A>,     ?) (<1,0,B>, B) (<1,0,C>,     ?) 
          (<2,0,A>,     B) (<2,0,B>, B) (<2,0,C>,     ?) 
          (<3,0,A>,     A) (<3,0,B>, B) (<3,0,C>,     C) 
* Step 3: UnsatPaths WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. eval1(A,B,C) -> eval2(A,B,C)           [A >= 1 + B && C = A] (?,1)
          1. eval2(A,B,C) -> eval2(-1 + A,B,-1 + C) [A >= 1 + B]          (?,1)
          2. eval2(A,B,C) -> eval1(A,B,C)           [B >= A]              (?,1)
          3. start(A,B,C) -> eval1(A,B,C)           True                  (1,1)
        Signature:
          {(eval1,3);(eval2,3);(start,3)}
        Flow Graph:
          [0->{1,2},1->{1,2},2->{0},3->{0}]
        Sizebounds:
          (<0,0,A>, A + B) (<0,0,B>, B) (<0,0,C>, A + B) 
          (<1,0,A>,     ?) (<1,0,B>, B) (<1,0,C>,     ?) 
          (<2,0,A>,     B) (<2,0,B>, B) (<2,0,C>,     ?) 
          (<3,0,A>,     A) (<3,0,B>, B) (<3,0,C>,     C) 
    + Applied Processor:
        UnsatPaths
    + Details:
        We remove following edges from the transition graph: [(0,2),(2,0)]
* Step 4: LeafRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. eval1(A,B,C) -> eval2(A,B,C)           [A >= 1 + B && C = A] (?,1)
          1. eval2(A,B,C) -> eval2(-1 + A,B,-1 + C) [A >= 1 + B]          (?,1)
          2. eval2(A,B,C) -> eval1(A,B,C)           [B >= A]              (?,1)
          3. start(A,B,C) -> eval1(A,B,C)           True                  (1,1)
        Signature:
          {(eval1,3);(eval2,3);(start,3)}
        Flow Graph:
          [0->{1},1->{1,2},2->{},3->{0}]
        Sizebounds:
          (<0,0,A>, A + B) (<0,0,B>, B) (<0,0,C>, A + B) 
          (<1,0,A>,     ?) (<1,0,B>, B) (<1,0,C>,     ?) 
          (<2,0,A>,     B) (<2,0,B>, B) (<2,0,C>,     ?) 
          (<3,0,A>,     A) (<3,0,B>, B) (<3,0,C>,     C) 
    + Applied Processor:
        LeafRules
    + Details:
        The following transitions are estimated by its predecessors and are removed [2]
* Step 5: PolyRank WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. eval1(A,B,C) -> eval2(A,B,C)           [A >= 1 + B && C = A] (?,1)
          1. eval2(A,B,C) -> eval2(-1 + A,B,-1 + C) [A >= 1 + B]          (?,1)
          3. start(A,B,C) -> eval1(A,B,C)           True                  (1,1)
        Signature:
          {(eval1,3);(eval2,3);(start,3)}
        Flow Graph:
          [0->{1},1->{1},3->{0}]
        Sizebounds:
          (<0,0,A>, A + B) (<0,0,B>, B) (<0,0,C>, A + B) 
          (<1,0,A>,     ?) (<1,0,B>, B) (<1,0,C>,     ?) 
          (<3,0,A>,     A) (<3,0,B>, B) (<3,0,C>,     C) 
    + Applied Processor:
        PolyRank {useFarkas = True, withSizebounds = [], shape = Linear}
    + Details:
        We apply a polynomial interpretation of shape linear:
          p(eval1) = x1 + -1*x2
          p(eval2) = x1 + -1*x2
          p(start) = x1 + -1*x2
        
        The following rules are strictly oriented:
          [A >= 1 + B] ==>                       
          eval2(A,B,C)   = A + -1*B              
                         > -1 + A + -1*B         
                         = eval2(-1 + A,B,-1 + C)
        
        
        The following rules are weakly oriented:
        [A >= 1 + B && C = A] ==>             
                 eval1(A,B,C)   = A + -1*B    
                               >= A + -1*B    
                                = eval2(A,B,C)
        
                         True ==>             
                 start(A,B,C)   = A + -1*B    
                               >= A + -1*B    
                                = eval1(A,B,C)
        
        
* Step 6: KnowledgePropagation WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. eval1(A,B,C) -> eval2(A,B,C)           [A >= 1 + B && C = A] (?,1)    
          1. eval2(A,B,C) -> eval2(-1 + A,B,-1 + C) [A >= 1 + B]          (A + B,1)
          3. start(A,B,C) -> eval1(A,B,C)           True                  (1,1)    
        Signature:
          {(eval1,3);(eval2,3);(start,3)}
        Flow Graph:
          [0->{1},1->{1},3->{0}]
        Sizebounds:
          (<0,0,A>, A + B) (<0,0,B>, B) (<0,0,C>, A + B) 
          (<1,0,A>,     ?) (<1,0,B>, B) (<1,0,C>,     ?) 
          (<3,0,A>,     A) (<3,0,B>, B) (<3,0,C>,     C) 
    + Applied Processor:
        KnowledgePropagation
    + Details:
        We propagate bounds from predecessors.
* Step 7: LocalSizeboundsProc WORST_CASE(?,O(n^1))
    + Considered Problem:
        Rules:
          0. eval1(A,B,C) -> eval2(A,B,C)           [A >= 1 + B && C = A] (1,1)    
          1. eval2(A,B,C) -> eval2(-1 + A,B,-1 + C) [A >= 1 + B]          (A + B,1)
          3. start(A,B,C) -> eval1(A,B,C)           True                  (1,1)    
        Signature:
          {(eval1,3);(eval2,3);(start,3)}
        Flow Graph:
          [0->{1},1->{1},3->{0}]
        Sizebounds:
          (<0,0,A>, A + B) (<0,0,B>, B) (<0,0,C>, A + B) 
          (<1,0,A>,     ?) (<1,0,B>, B) (<1,0,C>,     ?) 
          (<3,0,A>,     A) (<3,0,B>, B) (<3,0,C>,     C) 
    + Applied Processor:
        LocalSizeboundsProc
    + Details:
        The problem is already solved.

WORST_CASE(?,O(n^1))