(0) Obligation:

JBC Problem based on JBC Program:
public class Choose {
public static void main(String[] args) {
int i = 3;
while (i >= 3) {
if (i > 5)
i += 3;
else if (i > 10)
i -= 2;
else
i++;
}
}
}

(1) JBCNonTerm (EQUIVALENT transformation)

Reached a loop using the following run:
0:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a273928(lv_0_0)]
<Choose.main||0: push 3|| - || ->
	String.serialVersionUID: iconstLong_-6849794470754667710
	String.serialPersistentFields: a273930
	String.CASE_INSENSITIVE_ORDER: o136965
	String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
	RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
	Exception.serialVersionUID: iconstLong_-3387516993124229948
	Throwable.serialVersionUID: iconstLong_-3042686055658047285
	i1: [0,+inf){0,+inf}
	a273928([java.lang.String...]): length i1
	a273930([java.io.ObjectStreamField|]): length iconst_0
	o136965!: String$CaseInsensitiveComparator()
Relations: 
1:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a273928(lv_0_0)]
<Choose.main||1: store INT to #1|| - ||iconst_3>
	String.serialVersionUID: iconstLong_-6849794470754667710
	String.serialPersistentFields: a273930
	String.CASE_INSENSITIVE_ORDER: o136965
	String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
	RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
	Exception.serialVersionUID: iconstLong_-3387516993124229948
	Throwable.serialVersionUID: iconstLong_-3042686055658047285
	i1: [0,+inf){0,+inf}
	a273928([java.lang.String...]): length i1
	a273930([java.io.ObjectStreamField|]): length iconst_0
	o136965!: String$CaseInsensitiveComparator()
Relations: 
2:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a273928(lv_0_0)]
<Choose.main||2: load INT #1||#1: iconst_3|| ->
	String.serialVersionUID: iconstLong_-6849794470754667710
	String.serialPersistentFields: a273930
	String.CASE_INSENSITIVE_ORDER: o136965
	String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
	RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
	Exception.serialVersionUID: iconstLong_-3387516993124229948
	Throwable.serialVersionUID: iconstLong_-3042686055658047285
	i1: [0,+inf){0,+inf}
	a273928([java.lang.String...]): length i1
	a273930([java.io.ObjectStreamField|]): length iconst_0
	o136965!: String$CaseInsensitiveComparator()
Relations: 
Start state of loop:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a24(lv_0_0)]
<Choose.main||2: load INT #1||#1: i12|| ->
	String.serialVersionUID: iconstLong_-6849794470754667710
	String.serialPersistentFields: a23
	String.CASE_INSENSITIVE_ORDER: o12
	String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
	RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
	Exception.serialVersionUID: iconstLong_-3387516993124229948
	Throwable.serialVersionUID: iconstLong_-3042686055658047285
	a23([java.io.ObjectStreamField|]): length iconst_0
	o12!: String$CaseInsensitiveComparator()
	i1: [0,+inf){0,+inf}
	a24([java.lang.String...]): length i1
	i12: [3,+inf)(4){1,+inf}
Relations: 

In the loop head node, references [i12] were interesting.
By SMT, we could prove
((3 <= initial_i12 and 0 <= initial_i1) and (((path1_i12 = path1_i17 and path1_i18 = (path1_i17 + 3) and path1_i18 = res_i12 and path1_i1 = res_i1 and path1_i12 = initial_i12 and path1_i1 = initial_i1) and (path1_i12 >= 3 and T and path1_i17 > 5)) and ((res_i12 = res_i17 and res_i18 = (res_i17 + 3)) and !(res_i12 >= 3 and T and res_i17 > 5))))
to be UNSAT. Consequently, the loop will not terminate.

(2) NO