
Abstract Syntax:
[ 1:]
int main( ):
[ 2:] $4{x} := $1{A}
[ 3:] $5{y} := 0
[ 4:] while [ 5:] ( $4{x} > $2{B} ) do
[ 6:]   $4{x} := $4{x} - 1
[ 7:]   $5{y} := $5{y} + 1
[ 8:]
      od
[ 9:] assert( $5{y} > 2 )
[10:] $3{$3} := 0
[11:] return
[12:]
polyhedra

Forward Analysis:
[ 1:]: [A >= 0 && B >= 0 && -B >= -31 && -A >= -31 ? A >= 0 && B >= 0 && -B >= -31 && -A >= -31] 
[ 2:]: [A >= 0 && B >= 0 && -B >= -31 && -A >= -31 ? A >= 0 && B >= 0 && -B >= -31 && -A >= -31] 
[ 3:]: [A >= 0 && B >= 0 && -B >= -31 && -A >= -31 ? A >= 0 && B >= 0 && -B >= -31 && -A >= -31 && -A+x == 0] 
[ 4:]: [A >= 0 && B >= 0 && -B >= -31 && -A >= -31 ? A >= 0 && B >= 0 && -B >= -31 && -A >= -31 && y == 0 && -A+x == 0] 
[ 5:]: [A >= 0 && -B >= -31 && -A+B >= 0 ? A >= 0 && -B >= -31 && -A+B >= 0 && y == 0 && -A+x == 0] [A-B >= 1 && B >= 0 && -A >= -31 ? A-x >= 1 && B >= 0 && -B+x >= 0 && -A >= -31 && -A+x+y == 0] 
[ 6:]: [A >= 0 && -B >= -31 && -A+B >= 0 ? bottom] [A-B >= 1 && B >= 0 && -A >= -31 ? A-x >= 0 && B >= 0 && -B+x >= 1 && -A >= -31 && -A+x+y == 0] 
[ 7:]: [A >= 0 && -B >= -31 && -A+B >= 0 ? bottom] [A-B >= 1 && B >= 0 && -A >= -31 ? A-x >= 1 && B >= 0 && -B+x >= 0 && -A >= -31 && -A+x+y == -1] 
[ 8:]: [A >= 0 && -B >= -31 && -A+B >= 0 ? bottom] [A-B >= 1 && B >= 0 && -A >= -31 ? A-x >= 1 && B >= 0 && -B+x >= 0 && -A >= -31 && -A+x+y == 0] 
[ 9:]: [A >= 0 && -B >= -31 && -A+B >= 0 ? A >= 0 && -B >= -31 && -A+B >= 0 && y == 0 && -A+x == 0] [A-B >= 1 && B >= 0 && -A >= -31 ? A-B >= 1 && B >= 0 && -A >= -31 && -B+x == 0 && -A+B+y == 0] 
[10:]: [A >= 0 && -B >= -31 && -A+B >= 0 ? bottom] [A-B >= 1 && B >= 0 && -A >= -31 ? A-B >= 3 && B >= 0 && -A >= -31 && -B+x == 0 && -A+B+y == 0] 
[11:]: [A >= 0 && -B >= -31 && -A+B >= 0 ? bottom] [A-B >= 1 && B >= 0 && -A >= -31 ? A-B >= 3 && B >= 0 && -A >= -31 && $3 == 0 && -B+x == 0 && -A+B+y == 0] 
[12:]: [top ? bottom] 

Assertion Analysis:
{ CORRECT: A-B >= 3 && B >= 0 && -A >= -31 ? ; DON'T KNOW: others;ERROR: A >= 0 && -B >= -31 && -A+B >= 0 ? ;  }

Backward Analysis 1:
[ 1:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -A >= -31 ? 3A-3B+4
] 
[ 2:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -A >= -31 ? 3A-3B+4
] 
[ 3:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -B+x >= 2 && -A >= -31 ? -3B+3x+3
A-B >= 3 && B >= 0 && -A >= -31 && -B+x == 1 ? 6
A-B >= 3 && B >= 0 && B-x >= 0 && -A >= -31 ? 3
] 
[ 4:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -B+x >= 2 && -A >= -31 ? -3B+3x+2
A-B >= 3 && B >= 0 && -A >= -31 && -B+x == 1 ? 5
A-B >= 3 && B >= 0 && B-x >= 0 && -A >= -31 ? 2
] 
[ 5:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -B+x >= 2 && -A >= -31 ? -3B+3x+2
A-B >= 3 && B >= 0 && -A >= -31 && -B+x == 1 ? 5
A-B >= 3 && B >= 0 && B-x >= 0 && -A >= -31 ? 2
] 
[ 6:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -B+x >= 3 && -A >= -31 ? -3B+3x+1
A-B >= 3 && B >= 0 && -A >= -31 && -B+x == 2 ? 7
A-B >= 3 && B >= 0 && B-x >= -1 && -A >= -31 ? 4
] 
[ 7:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -B+x >= 2 && -A >= -31 ? -3B+3x+3
A-B >= 3 && B >= 0 && -A >= -31 && -B+x == 1 ? 6
A-B >= 3 && B >= 0 && B-x >= 0 && -A >= -31 ? 3
] 
[ 8:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -B+x >= 2 && -A >= -31 ? -3B+3x+2
A-B >= 3 && B >= 0 && -A >= -31 && -B+x == 1 ? 5
A-B >= 3 && B >= 0 && B-x >= 0 && -A >= -31 ? 2
] 
[ 9:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -A >= -31 ? 1
] 
[10:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -A >= -31 ? 1
] 
[11:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -A >= -31 ? 0.
] 
[12:]: [A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -A >= -31 ? 0.
] 


Solution: A-B >= 3 && B >= 0 && -A >= -31
Ranking function is: 
[A-B >= 3 && B >= 0 && -A >= -31 ?? A-B >= 3 && B >= 0 && -A >= -31 ? 3A-3B+4
] 
Minimal objective is: 13 
Hole {B} is: 0 
Hole {A} is: 3 
Time: 0.016569 s

Done.
