(1) JBCNonTerm (EQUIVALENT transformation)
Reached a loop using the following run:
0:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a372092(lv_0_0)]
<NO_10.main||0: push 100|| - || ->
String.serialVersionUID: iconstLong_-6849794470754667710
String.serialPersistentFields: a372094
String.CASE_INSENSITIVE_ORDER: o186047
String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
Exception.serialVersionUID: iconstLong_-3387516993124229948
Throwable.serialVersionUID: iconstLong_-3042686055658047285
i1: [0,+inf){0,+inf}
a372092([java.lang.String...]): length i1
a372094([java.io.ObjectStreamField|]): length iconst_0
o186047!: String$CaseInsensitiveComparator()
Relations:
1:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a372092(lv_0_0)]
<NO_10.main||2: store INT to #1|| - ||iconst_100>
String.serialVersionUID: iconstLong_-6849794470754667710
String.serialPersistentFields: a372094
String.CASE_INSENSITIVE_ORDER: o186047
String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
Exception.serialVersionUID: iconstLong_-3387516993124229948
Throwable.serialVersionUID: iconstLong_-3042686055658047285
i1: [0,+inf){0,+inf}
a372092([java.lang.String...]): length i1
a372094([java.io.ObjectStreamField|]): length iconst_0
o186047!: String$CaseInsensitiveComparator()
Relations:
2:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a372092(lv_0_0)]
<NO_10.main||3: push 0||#1: iconst_100|| ->
String.serialVersionUID: iconstLong_-6849794470754667710
String.serialPersistentFields: a372094
String.CASE_INSENSITIVE_ORDER: o186047
String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
Exception.serialVersionUID: iconstLong_-3387516993124229948
Throwable.serialVersionUID: iconstLong_-3042686055658047285
i1: [0,+inf){0,+inf}
a372092([java.lang.String...]): length i1
a372094([java.io.ObjectStreamField|]): length iconst_0
o186047!: String$CaseInsensitiveComparator()
Relations:
3:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a372092(lv_0_0)]
<NO_10.main||4: store INT to #2||#1: iconst_100||iconst_0>
String.serialVersionUID: iconstLong_-6849794470754667710
String.serialPersistentFields: a372094
String.CASE_INSENSITIVE_ORDER: o186047
String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
Exception.serialVersionUID: iconstLong_-3387516993124229948
Throwable.serialVersionUID: iconstLong_-3042686055658047285
i1: [0,+inf){0,+inf}
a372092([java.lang.String...]): length i1
a372094([java.io.ObjectStreamField|]): length iconst_0
o186047!: String$CaseInsensitiveComparator()
Relations:
4:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a372092(lv_0_0)]
<NO_10.main||5: load INT #2||#1: iconst_100, #2: iconst_0|| ->
String.serialVersionUID: iconstLong_-6849794470754667710
String.serialPersistentFields: a372094
String.CASE_INSENSITIVE_ORDER: o186047
String$CaseInsensitiveComparator.serialVersionUID: iconstLong_8575799808933029326
RuntimeException.serialVersionUID: iconstLong_-7034897190745766939
Exception.serialVersionUID: iconstLong_-3387516993124229948
Throwable.serialVersionUID: iconstLong_-3042686055658047285
i1: [0,+inf){0,+inf}
a372092([java.lang.String...]): length i1
a372094([java.io.ObjectStreamField|]): length iconst_0
o186047!: String$CaseInsensitiveComparator()
Relations:
Start state of loop:
java.lang.String = serialPersistentFields, CASE_INSENSITIVE_ORDER
[a24(lv_0_0)]
<NO_10.main||5: load INT #2||#1: i20, #2: i21|| ->
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
i20: [100,+inf)(4){1,+inf}
i21: [0,+inf)(4){0,+inf}
Relations:
In the loop head node, references [i21, i20] were interesting.
By SMT, we could prove
((100 <= initial_i20 and 0 <= initial_i21 and 0 <= initial_i1) and (((path1_i24 = (path1_i20 + 1) and path1_i25 = (path1_i21 + 1) and path1_i24 = res_i20 and path1_i25 = res_i21 and path1_i1 = res_i1 and path1_i20 = initial_i20 and path1_i21 = initial_i21 and path1_i1 = initial_i1) and path1_i21 < path1_i20) and ((res_i24 = (res_i20 + 1) and res_i25 = (res_i21 + 1)) and !res_i21 < res_i20)))
to be UNSAT. Consequently, the loop will not terminate.