./jbmc --propertyfile ../git-sv-benchmarks/java/ReachSafety.prp ../git-sv-benchmarks/java/jpf-regression/ExSymExe6_false-assert.jar -------------------------------------------------------------------------------- ./jbmc-binary --throw-runtime-exceptions --string-max-input-length 100 --classpath core-models.jar --graphml-witness /tmp/JBMC-log.WJS1v3.witness --unwind 11 --stop-on-fail --64 --object-bits 11 --function Main.main ../git-sv-benchmarks/java/jpf-regression/ExSymExe6_false-assert.jar Unwind: 11 JBMC version 5.9 (cbmc-5.7-5176-g7c4b5aa) 64-bit x86_64 linux Parsing ../git-sv-benchmarks/java/jpf-regression/ExSymExe6_false-assert.jar JAR file without entry point: loading class files failed to load class `java.io.ObjectOutputStream' failed to load class `java.io.ObjectInputStream' failed to load class `java.io.PrintWriter' failed to load class `java.io.PrintStream' failed to load class `java.io.IOException' failed to load class `java.io.Serializable' failed to load class `java.lang.StackTraceElement' failed to load class `java.util.Objects' failed to load class `java.lang.AbstractStringBuilder' failed to load class `java.lang.invoke.MethodHandles' failed to load class `java.util.PrimitiveIterator' failed to load class `java.lang.invoke.LambdaMetafactory' failed to load class `java.lang.invoke.MethodHandle' failed to load class `java.lang.invoke.MethodType' failed to load class `java.lang.invoke.MethodHandles$Lookup' failed to load class `java.lang.invoke.CallSite' failed to load class `java.util.Spliterators' failed to load class `java.util.PrimitiveIterator$OfInt' failed to load class `java.util.Spliterator$OfInt' failed to load class `java.util.stream.StreamSupport' failed to load class `java.util.stream.IntStream' failed to load class `java.util.Spliterator' failed to load class `java.util.function.Supplier' failed to load class `java.util.NoSuchElementException' failed to load class `java.util.function.IntConsumer' failed to load class `java.lang.Comparable' failed to load class `java.util.Locale' failed to load class `java.lang.CharacterName' failed to load class `java.lang.CharacterData' failed to load class `java.lang.Byte' failed to load class `java.io.UnsupportedEncodingException' failed to load class `java.util.Comparator' failed to load class `java.lang.Iterable' failed to load class `java.util.Iterator' failed to load class `java.nio.charset.Charset' failed to load class `java.io.BufferedInputStream' failed to load class `java.lang.Number' failed to load class `java.lang.Long' failed to load class `java.lang.Appendable' failed to load class `java.util.HashMap' failed to load class `sun.reflect.Reflection' failed to load class `java.lang.System' failed to load class `java.lang.SecurityManager' failed to load class `java.lang.ClassLoader' failed to load class `java.util.Map' failed to load class `java.io.ObjectStreamException' failed to load class `java.io.InvalidObjectException' failed to load class `java.util.Arrays' Converting Method: java::java.lang.Object.getClass could not parse signature: ()Ljava/lang/Class<*>; Unsupported class signature: wild card generic reverting to descriptor: ()Ljava/lang/Class; Method: java::java.lang.String.join could not parse signature: (Ljava/lang/CharSequence;Ljava/lang/Iterable<+Ljava/lang/CharSequence;>;)Ljava/lang/String; Unsupported class signature: wild card generic reverting to descriptor: (Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; Method: java::java.lang.Class.forName could not parse signature: (Ljava/lang/String;)Ljava/lang/Class<*>; Unsupported class signature: wild card generic reverting to descriptor: (Ljava/lang/String;)Ljava/lang/Class; Method: java::java.lang.Class.forName could not parse signature: (Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class<*>; Unsupported class signature: wild card generic reverting to descriptor: (Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class; Method: java::java.lang.Class.desiredAssertionStatus0 could not parse signature: (Ljava/lang/Class<*>;)Z Unsupported class signature: wild card generic reverting to descriptor: (Ljava/lang/Class;)Z Method: java::java.lang.Character$UnicodeScript. signature: ()V descriptor: (Ljava/lang/String;I)V different number of parameters, reverting to descriptor Class: java.lang.Enum could not parse signature: ;>Ljava/lang/Object;Ljava/lang/Comparable;Ljava/io/Serializable; Unsupported class signature: Failed to find generic signature closing delimiter (or recursive generic): java/lang/Enum;>(Ljava/lang/Class;Ljava/lang/String;)TT; Unsupported class signature: Cannot currently parse bounds on generic types reverting to descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; Method: java::org.cprover.CProver.nondetWithNull could not parse signature: ()TT; Unsupported class signature: Cannot currently parse bounds on generic types reverting to descriptor: ()Ljava/lang/Object; Method: java::org.cprover.CProver.nondetWithNull could not parse signature: (TT;)TT; Unsupported class signature: Cannot currently parse bounds on generic types reverting to descriptor: (Ljava/lang/Object;)Ljava/lang/Object; Method: java::org.cprover.CProver.nondetWithoutNull could not parse signature: ()TT; Unsupported class signature: Cannot currently parse bounds on generic types reverting to descriptor: ()Ljava/lang/Object; Method: java::org.cprover.CProver.nondetWithoutNull could not parse signature: (TT;)TT; Unsupported class signature: Cannot currently parse bounds on generic types reverting to descriptor: (Ljava/lang/Object;)Ljava/lang/Object; Method: java::org.cprover.CProver.nondetWithNullForNotModelled could not parse signature: ()TT; Unsupported class signature: Cannot currently parse bounds on generic types reverting to descriptor: ()Ljava/lang/Object; Method: java::org.cprover.CProver.nondetWithoutNullForNotModelled could not parse signature: ()TT; Unsupported class signature: Cannot currently parse bounds on generic types reverting to descriptor: ()Ljava/lang/Object; Java: added 2234 String or Class constant symbols Generating GOTO Program Running GOTO functions transformation passes Running with 11 object bits, 53 offset bits (user-specified) Starting Bounded Model Checking Unwinding loop __CPROVER__start.0 iteration 1 thread 0 Unwinding loop __CPROVER__start.0 iteration 2 thread 0 Unwinding loop __CPROVER__start.0 iteration 3 thread 0 Unwinding loop __CPROVER__start.0 iteration 4 thread 0 Unwinding loop __CPROVER__start.0 iteration 5 thread 0 size of program expression: 358 steps simple slicing removed 1 assignments Generated 2 VCC(s), 1 remaining after simplification Passing problem to string refinement loop with MiniSAT 2.2.1 without simplifier converting SSA Running string refinement loop with MiniSAT 2.2.1 without simplifier BV-Refinement: post-processing BV-Refinement: iteration 1 12800 variables, 15940 clauses SAT checker: instance is SATISFIABLE BV-Refinement: got SAT, and it simulates => SAT Total iterations: 1 Runtime decision procedure: 0.012937s Building error trace Counterexample: State 3 thread 0 ---------------------------------------------------- __CPROVER_rounding_mode=0 (00000000 00000000 00000000 00000000) State 4 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- java$$java_lang_System$$clinit_already_run=false (0) State 5 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20BOO1_return_value=0 (00000000 00000000 00000000 00000000) State 6 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20FOO1={ .@java.lang.Object={ .@class_identifier="java::java.lang.String", .cproverMonitorCount=0 }, .length=11, .data=branch_20FOO1_constarray } ({ { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00001011, 00000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 7 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- $assertionsDisabled=false (00000000) State 8 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20BOO1_constarray={ (char)'b', (char)'r', (char)'a', (char)'n', (char)'c', (char)'h', (char)' ', (char)'B', (char)'O', (char)'O', (char)'1' } ({ 00000000 01100010, 00000000 01110010, 00000000 01100001, 00000000 01101110, 00000000 01100011, 00000000 01101000, 00000000 00100000, 00000000 01000010, 00000000 01001111, 00000000 01001111, 00000000 00110001 }) State 9 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20BOO1={ .@java.lang.Object={ .@class_identifier="java::java.lang.String", .cproverMonitorCount=0 }, .length=11, .data=branch_20BOO1_constarray } ({ { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00001011, 00000000 01100000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 10 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- Testing_20ExSymExe6={ .@java.lang.Object={ .@class_identifier="java::java.lang.String", .cproverMonitorCount=0 }, .length=17, .data=Testing_20ExSymExe6_constarray } ({ { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00010001, 00000000 10000000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 12 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- out=null (00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000) State 13 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20FOO2={ .@java.lang.Object={ .@class_identifier="java::java.lang.String", .cproverMonitorCount=0 }, .length=11, .data=branch_20FOO2_constarray } ({ { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00001011, 00000000 10100000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 14 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20FOO1_constarray={ (char)'b', (char)'r', (char)'a', (char)'n', (char)'c', (char)'h', (char)' ', (char)'F', (char)'O', (char)'O', (char)'1' } ({ 00000000 01100010, 00000000 01110010, 00000000 01100001, 00000000 01101110, 00000000 01100011, 00000000 01101000, 00000000 00100000, 00000000 01000110, 00000000 01001111, 00000000 01001111, 00000000 00110001 }) State 15 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20FOO2_constarray={ (char)'b', (char)'r', (char)'a', (char)'n', (char)'c', (char)'h', (char)' ', (char)'F', (char)'O', (char)'O', (char)'2' } ({ 00000000 01100010, 00000000 01110010, 00000000 01100001, 00000000 01101110, 00000000 01100011, 00000000 01101000, 00000000 00100000, 00000000 01000110, 00000000 01001111, 00000000 01001111, 00000000 00110010 }) State 16 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- java$$Main$$clinit_already_run=false (0) State 17 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- Testing_20ExSymExe6_return_value=0 (00000000 00000000 00000000 00000000) State 18 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- Testing_20ExSymExe6_constarray={ (char)'T', (char)'e', (char)'s', (char)'t', (char)'i', (char)'n', (char)'g', (char)' ', (char)'E', (char)'x', (char)'S', (char)'y', (char)'m', (char)'E', (char)'x', (char)'e', (char)'6' } ({ 00000000 01010100, 00000000 01100101, 00000000 01110011, 00000000 01110100, 00000000 01101001, 00000000 01101110, 00000000 01100111, 00000000 00100000, 00000000 01000101, 00000000 01111000, 00000000 01010011, 00000000 01111001, 00000000 01101101, 00000000 01000101, 00000000 01111000, 00000000 01100101, 00000000 00110110 }) State 19 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20FOO1_return_value=0 (00000000 00000000 00000000 00000000) State 20 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20FOO2_return_value=0 (00000000 00000000 00000000 00000000) State 21 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20BOO2={ .@java.lang.Object={ .@class_identifier="java::java.lang.String", .cproverMonitorCount=0 }, .length=11, .data=branch_20BOO2_constarray } ({ { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00001011, 00000000 11000000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 22 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20BOO2_return_value=0 (00000000 00000000 00000000 00000000) State 23 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- branch_20BOO2_constarray={ (char)'b', (char)'r', (char)'a', (char)'n', (char)'c', (char)'h', (char)' ', (char)'B', (char)'O', (char)'O', (char)'2' } ({ 00000000 01100010, 00000000 01110010, 00000000 01100001, 00000000 01101110, 00000000 01100011, 00000000 01101000, 00000000 00100000, 00000000 01000010, 00000000 01001111, 00000000 01001111, 00000000 00110010 }) State 24 thread 0 ---------------------------------------------------- Main@class_model={ .@java.lang.Object={ .@class_identifier="java::java.lang.Class", .cproverMonitorCount=0 }, .name=null, .isAnnotation=false, .isArray=false, .isInterface=false, .isSynthetic=false, .isLocalClass=false, .isMemberClass=false, .isEnum=false, .enumConstantDirectory=null } ({ { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 27 thread 0 ---------------------------------------------------- this=&Main@class_model.@java.lang.Object.@class_identifier (00000000 11100000 00000000 00000000 00000000 00000000 00000000 00000000) State 28 thread 0 ---------------------------------------------------- name=&Main.@java.lang.Object.@class_identifier (00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000) State 29 thread 0 ---------------------------------------------------- isAnnotation=false (00000000) State 30 thread 0 ---------------------------------------------------- isArray=false (00000000) State 31 thread 0 ---------------------------------------------------- isInterface=false (00000000) State 32 thread 0 ---------------------------------------------------- isSynthetic=false (00000000) State 33 thread 0 ---------------------------------------------------- isLocalClass=false (00000000) State 34 thread 0 ---------------------------------------------------- isMemberClass=false (00000000) State 35 thread 0 ---------------------------------------------------- isEnum=false (00000000) State 37 file java/lang/Class.java line 463 function java::java.lang.Class.cproverInitializeClassLiteral:(Ljava/lang/String;ZZZZZZZ)V bytecode-index 2 thread 0 ---------------------------------------------------- Main@class_model.name=&Main.@java.lang.Object.@class_identifier (00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000) State 39 file java/lang/Class.java line 464 function java::java.lang.Class.cproverInitializeClassLiteral:(Ljava/lang/String;ZZZZZZZ)V bytecode-index 5 thread 0 ---------------------------------------------------- Main@class_model.isAnnotation=false (00000000) State 41 file java/lang/Class.java line 465 function java::java.lang.Class.cproverInitializeClassLiteral:(Ljava/lang/String;ZZZZZZZ)V bytecode-index 8 thread 0 ---------------------------------------------------- Main@class_model.isArray=false (00000000) State 43 file java/lang/Class.java line 466 function java::java.lang.Class.cproverInitializeClassLiteral:(Ljava/lang/String;ZZZZZZZ)V bytecode-index 11 thread 0 ---------------------------------------------------- Main@class_model.isInterface=false (00000000) State 45 file java/lang/Class.java line 467 function java::java.lang.Class.cproverInitializeClassLiteral:(Ljava/lang/String;ZZZZZZZ)V bytecode-index 14 thread 0 ---------------------------------------------------- Main@class_model.isSynthetic=false (00000000) State 47 file java/lang/Class.java line 468 function java::java.lang.Class.cproverInitializeClassLiteral:(Ljava/lang/String;ZZZZZZZ)V bytecode-index 17 thread 0 ---------------------------------------------------- Main@class_model.isLocalClass=false (00000000) State 49 file java/lang/Class.java line 469 function java::java.lang.Class.cproverInitializeClassLiteral:(Ljava/lang/String;ZZZZZZZ)V bytecode-index 20 thread 0 ---------------------------------------------------- Main@class_model.isMemberClass=false (00000000) State 51 file java/lang/Class.java line 470 function java::java.lang.Class.cproverInitializeClassLiteral:(Ljava/lang/String;ZZZZZZZ)V bytecode-index 23 thread 0 ---------------------------------------------------- Main@class_model.isEnum=false (00000000) State 64 thread 0 ---------------------------------------------------- dynamic_object1={ .@java.lang.Object={ .@class_identifier="java::java.lang.String", .cproverMonitorCount=0 }, .length=0, .data=null } ({ { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 66 thread 0 ---------------------------------------------------- dynamic_object1={ .@java.lang.Object={ .@class_identifier="java::array[reference]", .cproverMonitorCount=0 }, .length=0, .data=null } ({ { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 67 thread 0 ---------------------------------------------------- dynamic_object1.length=0 (00000000 00000000 00000000 00000000) State 70 thread 0 ---------------------------------------------------- dynamic_object1.data=dynamic_2_array (00000001 01000000 00000000 00000000 00000000 00000000 00000000 00000000) State 71 thread 0 ---------------------------------------------------- dynamic_2_array={ null, null, null, null, null } ({ 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 }) State 75 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- INPUT arg0a: &dynamic_object1.@java.lang.Object.@class_identifier (00000001 00100000 00000000 00000000 00000000 00000000 00000000 00000000) State 78 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- arg0a=&dynamic_object1.@java.lang.Object.@class_identifier (00000001 00100000 00000000 00000000 00000000 00000000 00000000 00000000) State 79 thread 0 ---------------------------------------------------- anonlocal::2i=0 (00000000 00000000 00000000 00000000) State 80 thread 0 ---------------------------------------------------- anonlocal::1i=0 (00000000 00000000 00000000 00000000) State 81 thread 0 ---------------------------------------------------- anonlocal::3a=null (00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000) State 85 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V bytecode-index 4 thread 0 ---------------------------------------------------- anonlocal::1i=0 (00000000 00000000 00000000 00000000) State 88 file Main.java line 32 function java::Main.main:([Ljava/lang/String;)V bytecode-index 9 thread 0 ---------------------------------------------------- dynamic_object13={ .@java.lang.RuntimeException={ .@java.lang.Exception={ .@java.lang.Throwable={ .@java.lang.Object={ .@class_identifier="java::java.lang.String", .cproverMonitorCount=0 }, .detailMessage=null, .cause=null } } } } ({ { { { { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 } } } }) State 90 file Main.java line 32 function java::Main.main:([Ljava/lang/String;)V bytecode-index 9 thread 0 ---------------------------------------------------- dynamic_object13={ .@java.lang.RuntimeException={ .@java.lang.Exception={ .@java.lang.Throwable={ .@java.lang.Object={ .@class_identifier="java::java.lang.ArithmeticException", .cproverMonitorCount=0 }, .detailMessage=null, .cause=null } } } } ({ { { { { ?, 00000000 00000000 00000000 00000000 }, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 } } } }) State 98 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- OUTPUT arg0a: &dynamic_object1.@java.lang.Object.@class_identifier (00000001 00100000 00000000 00000000 00000000 00000000 00000000 00000000) State 99 file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V thread 0 ---------------------------------------------------- OUTPUT uncaught_exception': &dynamic_object13.@java.lang.RuntimeException.@java.lang.Exception.@java.lang.Throwable.@java.lang.Object.@class_identifier (00000010 10100000 00000000 00000000 00000000 00000000 00000000 00000000) Violated property: file Main.java line 31 function java::Main.main:([Ljava/lang/String;)V no uncaught exception uncaught_exception' == null VERIFICATION FAILED EC=10 FALSE