./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/ldv-regression/rule60_list2.i --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/ldv-regression/rule60_list2.i -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash ec34d681fc532ab8881c0bb28aeb7b8d0ef0df29d4602290c71f943db752a206 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 16:49:44,423 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 16:49:44,425 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 16:49:44,452 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 16:49:44,453 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 16:49:44,456 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 16:49:44,458 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 16:49:44,461 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 16:49:44,463 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 16:49:44,468 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 16:49:44,468 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 16:49:44,470 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 16:49:44,470 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 16:49:44,472 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 16:49:44,474 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 16:49:44,475 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 16:49:44,476 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 16:49:44,477 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 16:49:44,481 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 16:49:44,486 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 16:49:44,487 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 16:49:44,488 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 16:49:44,489 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 16:49:44,490 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 16:49:44,493 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 16:49:44,493 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 16:49:44,494 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 16:49:44,495 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 16:49:44,495 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 16:49:44,496 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 16:49:44,496 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 16:49:44,497 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 16:49:44,499 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 16:49:44,499 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 16:49:44,500 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 16:49:44,500 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 16:49:44,501 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 16:49:44,501 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 16:49:44,501 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 16:49:44,502 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 16:49:44,503 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 16:49:44,503 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2022-02-20 16:49:44,526 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 16:49:44,526 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 16:49:44,527 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 16:49:44,527 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 16:49:44,528 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 16:49:44,528 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 16:49:44,528 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 16:49:44,529 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 16:49:44,529 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 16:49:44,529 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 16:49:44,530 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 16:49:44,530 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 16:49:44,530 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 16:49:44,530 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 16:49:44,530 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 16:49:44,531 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 16:49:44,531 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 16:49:44,531 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 16:49:44,531 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 16:49:44,531 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 16:49:44,532 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 16:49:44,532 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 16:49:44,532 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 16:49:44,532 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 16:49:44,532 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:49:44,532 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 16:49:44,533 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 16:49:44,534 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 16:49:44,534 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 16:49:44,534 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 16:49:44,534 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 16:49:44,534 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 16:49:44,535 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 16:49:44,535 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> ec34d681fc532ab8881c0bb28aeb7b8d0ef0df29d4602290c71f943db752a206 [2022-02-20 16:49:44,775 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 16:49:44,796 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 16:49:44,799 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 16:49:44,800 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 16:49:44,800 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 16:49:44,802 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/ldv-regression/rule60_list2.i [2022-02-20 16:49:44,867 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/1de4c5ab9/cd1e410cceb044bda375009b5c08cb95/FLAGb38e3dec2 [2022-02-20 16:49:45,239 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 16:49:45,242 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/ldv-regression/rule60_list2.i [2022-02-20 16:49:45,254 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/1de4c5ab9/cd1e410cceb044bda375009b5c08cb95/FLAGb38e3dec2 [2022-02-20 16:49:45,619 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/1de4c5ab9/cd1e410cceb044bda375009b5c08cb95 [2022-02-20 16:49:45,621 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 16:49:45,622 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 16:49:45,628 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 16:49:45,629 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 16:49:45,631 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 16:49:45,632 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:49:45" (1/1) ... [2022-02-20 16:49:45,633 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@4f079ae and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:45, skipping insertion in model container [2022-02-20 16:49:45,634 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:49:45" (1/1) ... [2022-02-20 16:49:45,639 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 16:49:45,672 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 16:49:45,805 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/ldv-regression/rule60_list2.i[292,305] [2022-02-20 16:49:45,901 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:49:45,908 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 16:49:45,919 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/ldv-regression/rule60_list2.i[292,305] [2022-02-20 16:49:45,969 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:49:46,007 INFO L208 MainTranslator]: Completed translation [2022-02-20 16:49:46,008 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46 WrapperNode [2022-02-20 16:49:46,008 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 16:49:46,009 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 16:49:46,010 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 16:49:46,010 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 16:49:46,016 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,039 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,067 INFO L137 Inliner]: procedures = 126, calls = 19, calls flagged for inlining = 4, calls inlined = 4, statements flattened = 53 [2022-02-20 16:49:46,068 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 16:49:46,069 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 16:49:46,069 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 16:49:46,069 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 16:49:46,076 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,077 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,089 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,091 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,096 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,099 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,100 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,102 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 16:49:46,103 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 16:49:46,103 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 16:49:46,103 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 16:49:46,106 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (1/1) ... [2022-02-20 16:49:46,114 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:49:46,123 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:46,141 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 16:49:46,162 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 16:49:46,181 INFO L130 BoogieDeclarations]: Found specification of procedure my_malloc [2022-02-20 16:49:46,182 INFO L138 BoogieDeclarations]: Found implementation of procedure my_malloc [2022-02-20 16:49:46,182 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 16:49:46,182 INFO L130 BoogieDeclarations]: Found specification of procedure list_add [2022-02-20 16:49:46,182 INFO L138 BoogieDeclarations]: Found implementation of procedure list_add [2022-02-20 16:49:46,182 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2022-02-20 16:49:46,182 INFO L130 BoogieDeclarations]: Found specification of procedure __blast_assert [2022-02-20 16:49:46,182 INFO L138 BoogieDeclarations]: Found implementation of procedure __blast_assert [2022-02-20 16:49:46,183 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 16:49:46,184 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 16:49:46,184 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 16:49:46,272 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 16:49:46,274 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 16:49:46,393 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 16:49:46,399 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 16:49:46,399 INFO L299 CfgBuilder]: Removed 0 assume(true) statements. [2022-02-20 16:49:46,400 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:49:46 BoogieIcfgContainer [2022-02-20 16:49:46,401 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 16:49:46,402 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 16:49:46,402 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 16:49:46,405 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 16:49:46,405 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 04:49:45" (1/3) ... [2022-02-20 16:49:46,406 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@6cba951b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:49:46, skipping insertion in model container [2022-02-20 16:49:46,406 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:46" (2/3) ... [2022-02-20 16:49:46,406 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@6cba951b and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:49:46, skipping insertion in model container [2022-02-20 16:49:46,406 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:49:46" (3/3) ... [2022-02-20 16:49:46,407 INFO L111 eAbstractionObserver]: Analyzing ICFG rule60_list2.i [2022-02-20 16:49:46,411 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 16:49:46,411 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 16:49:46,459 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 16:49:46,470 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 16:49:46,470 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 16:49:46,491 INFO L276 IsEmpty]: Start isEmpty. Operand has 36 states, 24 states have (on average 1.2916666666666667) internal successors, (31), 28 states have internal predecessors, (31), 7 states have call successors, (7), 3 states have call predecessors, (7), 3 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-02-20 16:49:46,496 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2022-02-20 16:49:46,496 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:46,497 INFO L514 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:49:46,499 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:46,503 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:46,504 INFO L85 PathProgramCache]: Analyzing trace with hash 483918471, now seen corresponding path program 1 times [2022-02-20 16:49:46,517 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:46,517 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [994888655] [2022-02-20 16:49:46,518 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:46,519 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:46,654 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:46,778 INFO L290 TraceCheckUtils]: 0: Hoare triple {39#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {39#true} is VALID [2022-02-20 16:49:46,779 INFO L290 TraceCheckUtils]: 1: Hoare triple {39#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {39#true} is VALID [2022-02-20 16:49:46,780 INFO L272 TraceCheckUtils]: 2: Hoare triple {39#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {41#(= |my_malloc_#in~size#1| 8)} is VALID [2022-02-20 16:49:46,781 INFO L290 TraceCheckUtils]: 3: Hoare triple {41#(= |my_malloc_#in~size#1| 8)} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {42#(= (+ |my_malloc___getMemory_~size#1| (- 8)) 0)} is VALID [2022-02-20 16:49:46,782 INFO L290 TraceCheckUtils]: 4: Hoare triple {42#(= (+ |my_malloc___getMemory_~size#1| (- 8)) 0)} assume !(__getMemory_~size#1 > 0); {40#false} is VALID [2022-02-20 16:49:46,782 INFO L272 TraceCheckUtils]: 5: Hoare triple {40#false} call __blast_assert(); {40#false} is VALID [2022-02-20 16:49:46,783 INFO L290 TraceCheckUtils]: 6: Hoare triple {40#false} assume !false; {40#false} is VALID [2022-02-20 16:49:46,784 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 16:49:46,784 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:46,785 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [994888655] [2022-02-20 16:49:46,786 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [994888655] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:49:46,786 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:49:46,787 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:49:46,790 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1271820901] [2022-02-20 16:49:46,791 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:49:46,796 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 1.25) internal successors, (5), 3 states have internal predecessors, (5), 2 states have call successors, (2), 2 states have call predecessors, (2), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Word has length 7 [2022-02-20 16:49:46,797 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:46,800 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 1.25) internal successors, (5), 3 states have internal predecessors, (5), 2 states have call successors, (2), 2 states have call predecessors, (2), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:49:46,814 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 7 edges. 7 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:46,814 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:49:46,816 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:46,845 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:49:46,847 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:49:46,850 INFO L87 Difference]: Start difference. First operand has 36 states, 24 states have (on average 1.2916666666666667) internal successors, (31), 28 states have internal predecessors, (31), 7 states have call successors, (7), 3 states have call predecessors, (7), 3 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) Second operand has 4 states, 4 states have (on average 1.25) internal successors, (5), 3 states have internal predecessors, (5), 2 states have call successors, (2), 2 states have call predecessors, (2), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:49:47,052 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:47,053 INFO L93 Difference]: Finished difference Result 66 states and 88 transitions. [2022-02-20 16:49:47,053 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:49:47,053 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 1.25) internal successors, (5), 3 states have internal predecessors, (5), 2 states have call successors, (2), 2 states have call predecessors, (2), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Word has length 7 [2022-02-20 16:49:47,054 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:47,055 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 1.25) internal successors, (5), 3 states have internal predecessors, (5), 2 states have call successors, (2), 2 states have call predecessors, (2), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:49:47,069 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 88 transitions. [2022-02-20 16:49:47,069 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 1.25) internal successors, (5), 3 states have internal predecessors, (5), 2 states have call successors, (2), 2 states have call predecessors, (2), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:49:47,080 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 88 transitions. [2022-02-20 16:49:47,082 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 88 transitions. [2022-02-20 16:49:47,191 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 88 edges. 88 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:47,199 INFO L225 Difference]: With dead ends: 66 [2022-02-20 16:49:47,199 INFO L226 Difference]: Without dead ends: 29 [2022-02-20 16:49:47,202 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 5 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:49:47,205 INFO L933 BasicCegarLoop]: 35 mSDtfsCounter, 13 mSDsluCounter, 58 mSDsCounter, 0 mSdLazyCounter, 8 mSolverCounterSat, 1 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 13 SdHoareTripleChecker+Valid, 93 SdHoareTripleChecker+Invalid, 9 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 1 IncrementalHoareTripleChecker+Valid, 8 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:47,205 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [13 Valid, 93 Invalid, 9 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [1 Valid, 8 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:49:47,216 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 29 states. [2022-02-20 16:49:47,226 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 29 to 29. [2022-02-20 16:49:47,227 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:47,227 INFO L82 GeneralOperation]: Start isEquivalent. First operand 29 states. Second operand has 29 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:49:47,228 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand has 29 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:49:47,229 INFO L87 Difference]: Start difference. First operand 29 states. Second operand has 29 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:49:47,232 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:47,232 INFO L93 Difference]: Finished difference Result 29 states and 34 transitions. [2022-02-20 16:49:47,232 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2022-02-20 16:49:47,233 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:47,233 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:47,234 INFO L74 IsIncluded]: Start isIncluded. First operand has 29 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 29 states. [2022-02-20 16:49:47,234 INFO L87 Difference]: Start difference. First operand has 29 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 29 states. [2022-02-20 16:49:47,237 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:47,237 INFO L93 Difference]: Finished difference Result 29 states and 34 transitions. [2022-02-20 16:49:47,237 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2022-02-20 16:49:47,238 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:47,238 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:47,238 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:47,239 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:47,239 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 29 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:49:47,241 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 34 transitions. [2022-02-20 16:49:47,242 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 34 transitions. Word has length 7 [2022-02-20 16:49:47,243 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:47,243 INFO L470 AbstractCegarLoop]: Abstraction has 29 states and 34 transitions. [2022-02-20 16:49:47,243 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 1.25) internal successors, (5), 3 states have internal predecessors, (5), 2 states have call successors, (2), 2 states have call predecessors, (2), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:49:47,244 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2022-02-20 16:49:47,244 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:49:47,245 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:47,245 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:49:47,245 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 16:49:47,245 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:47,246 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:47,246 INFO L85 PathProgramCache]: Analyzing trace with hash -1376776956, now seen corresponding path program 1 times [2022-02-20 16:49:47,247 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:47,247 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [448286717] [2022-02-20 16:49:47,247 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:47,247 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:47,275 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,339 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:47,356 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,445 INFO L290 TraceCheckUtils]: 0: Hoare triple {250#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {232#true} is VALID [2022-02-20 16:49:47,445 INFO L290 TraceCheckUtils]: 1: Hoare triple {232#true} assume __getMemory_~size#1 > 0; {232#true} is VALID [2022-02-20 16:49:47,446 INFO L290 TraceCheckUtils]: 2: Hoare triple {232#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {232#true} is VALID [2022-02-20 16:49:47,449 INFO L290 TraceCheckUtils]: 3: Hoare triple {232#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {251#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,450 INFO L290 TraceCheckUtils]: 4: Hoare triple {251#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,451 INFO L290 TraceCheckUtils]: 5: Hoare triple {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} assume true; {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,452 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} {232#true} #69#return; {241#(and (= |ULTIMATE.start_main_#t~ret10#1.base| 0) (= |ULTIMATE.start_main_#t~ret10#1.offset| 0))} is VALID [2022-02-20 16:49:47,453 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:47,460 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,468 INFO L290 TraceCheckUtils]: 0: Hoare triple {250#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {232#true} is VALID [2022-02-20 16:49:47,468 INFO L290 TraceCheckUtils]: 1: Hoare triple {232#true} assume __getMemory_~size#1 > 0; {232#true} is VALID [2022-02-20 16:49:47,469 INFO L290 TraceCheckUtils]: 2: Hoare triple {232#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {232#true} is VALID [2022-02-20 16:49:47,469 INFO L290 TraceCheckUtils]: 3: Hoare triple {232#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {232#true} is VALID [2022-02-20 16:49:47,469 INFO L290 TraceCheckUtils]: 4: Hoare triple {232#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {232#true} is VALID [2022-02-20 16:49:47,469 INFO L290 TraceCheckUtils]: 5: Hoare triple {232#true} assume true; {232#true} is VALID [2022-02-20 16:49:47,470 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {232#true} {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} #71#return; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:47,471 INFO L290 TraceCheckUtils]: 0: Hoare triple {232#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {232#true} is VALID [2022-02-20 16:49:47,471 INFO L290 TraceCheckUtils]: 1: Hoare triple {232#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {232#true} is VALID [2022-02-20 16:49:47,472 INFO L272 TraceCheckUtils]: 2: Hoare triple {232#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {250#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:47,472 INFO L290 TraceCheckUtils]: 3: Hoare triple {250#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {232#true} is VALID [2022-02-20 16:49:47,472 INFO L290 TraceCheckUtils]: 4: Hoare triple {232#true} assume __getMemory_~size#1 > 0; {232#true} is VALID [2022-02-20 16:49:47,472 INFO L290 TraceCheckUtils]: 5: Hoare triple {232#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {232#true} is VALID [2022-02-20 16:49:47,473 INFO L290 TraceCheckUtils]: 6: Hoare triple {232#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {251#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,474 INFO L290 TraceCheckUtils]: 7: Hoare triple {251#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,474 INFO L290 TraceCheckUtils]: 8: Hoare triple {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} assume true; {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,475 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} {232#true} #69#return; {241#(and (= |ULTIMATE.start_main_#t~ret10#1.base| 0) (= |ULTIMATE.start_main_#t~ret10#1.offset| 0))} is VALID [2022-02-20 16:49:47,476 INFO L290 TraceCheckUtils]: 10: Hoare triple {241#(and (= |ULTIMATE.start_main_#t~ret10#1.base| 0) (= |ULTIMATE.start_main_#t~ret10#1.offset| 0))} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:47,477 INFO L272 TraceCheckUtils]: 11: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {250#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:47,477 INFO L290 TraceCheckUtils]: 12: Hoare triple {250#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {232#true} is VALID [2022-02-20 16:49:47,477 INFO L290 TraceCheckUtils]: 13: Hoare triple {232#true} assume __getMemory_~size#1 > 0; {232#true} is VALID [2022-02-20 16:49:47,478 INFO L290 TraceCheckUtils]: 14: Hoare triple {232#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {232#true} is VALID [2022-02-20 16:49:47,478 INFO L290 TraceCheckUtils]: 15: Hoare triple {232#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {232#true} is VALID [2022-02-20 16:49:47,478 INFO L290 TraceCheckUtils]: 16: Hoare triple {232#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {232#true} is VALID [2022-02-20 16:49:47,478 INFO L290 TraceCheckUtils]: 17: Hoare triple {232#true} assume true; {232#true} is VALID [2022-02-20 16:49:47,479 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {232#true} {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} #71#return; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:47,480 INFO L290 TraceCheckUtils]: 19: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:47,481 INFO L290 TraceCheckUtils]: 20: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {233#false} is VALID [2022-02-20 16:49:47,481 INFO L272 TraceCheckUtils]: 21: Hoare triple {233#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {233#false} is VALID [2022-02-20 16:49:47,481 INFO L290 TraceCheckUtils]: 22: Hoare triple {233#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {233#false} is VALID [2022-02-20 16:49:47,481 INFO L290 TraceCheckUtils]: 23: Hoare triple {233#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {233#false} is VALID [2022-02-20 16:49:47,482 INFO L272 TraceCheckUtils]: 24: Hoare triple {233#false} call __blast_assert(); {233#false} is VALID [2022-02-20 16:49:47,482 INFO L290 TraceCheckUtils]: 25: Hoare triple {233#false} assume !false; {233#false} is VALID [2022-02-20 16:49:47,482 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 16:49:47,483 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:47,483 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [448286717] [2022-02-20 16:49:47,483 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [448286717] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:47,483 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [980530808] [2022-02-20 16:49:47,483 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:47,484 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:47,484 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:47,491 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 16:49:47,503 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-02-20 16:49:47,581 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,584 INFO L263 TraceCheckSpWp]: Trace formula consists of 168 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:49:47,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,602 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:47,809 INFO L290 TraceCheckUtils]: 0: Hoare triple {232#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {232#true} is VALID [2022-02-20 16:49:47,809 INFO L290 TraceCheckUtils]: 1: Hoare triple {232#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {232#true} is VALID [2022-02-20 16:49:47,810 INFO L272 TraceCheckUtils]: 2: Hoare triple {232#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {232#true} is VALID [2022-02-20 16:49:47,810 INFO L290 TraceCheckUtils]: 3: Hoare triple {232#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {232#true} is VALID [2022-02-20 16:49:47,810 INFO L290 TraceCheckUtils]: 4: Hoare triple {232#true} assume __getMemory_~size#1 > 0; {232#true} is VALID [2022-02-20 16:49:47,810 INFO L290 TraceCheckUtils]: 5: Hoare triple {232#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {232#true} is VALID [2022-02-20 16:49:47,811 INFO L290 TraceCheckUtils]: 6: Hoare triple {232#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {251#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,812 INFO L290 TraceCheckUtils]: 7: Hoare triple {251#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,812 INFO L290 TraceCheckUtils]: 8: Hoare triple {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} assume true; {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:47,813 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} {232#true} #69#return; {241#(and (= |ULTIMATE.start_main_#t~ret10#1.base| 0) (= |ULTIMATE.start_main_#t~ret10#1.offset| 0))} is VALID [2022-02-20 16:49:47,814 INFO L290 TraceCheckUtils]: 10: Hoare triple {241#(and (= |ULTIMATE.start_main_#t~ret10#1.base| 0) (= |ULTIMATE.start_main_#t~ret10#1.offset| 0))} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:47,814 INFO L272 TraceCheckUtils]: 11: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {232#true} is VALID [2022-02-20 16:49:47,814 INFO L290 TraceCheckUtils]: 12: Hoare triple {232#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {232#true} is VALID [2022-02-20 16:49:47,815 INFO L290 TraceCheckUtils]: 13: Hoare triple {232#true} assume __getMemory_~size#1 > 0; {232#true} is VALID [2022-02-20 16:49:47,815 INFO L290 TraceCheckUtils]: 14: Hoare triple {232#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {232#true} is VALID [2022-02-20 16:49:47,815 INFO L290 TraceCheckUtils]: 15: Hoare triple {232#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {232#true} is VALID [2022-02-20 16:49:47,815 INFO L290 TraceCheckUtils]: 16: Hoare triple {232#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {232#true} is VALID [2022-02-20 16:49:47,816 INFO L290 TraceCheckUtils]: 17: Hoare triple {232#true} assume true; {232#true} is VALID [2022-02-20 16:49:47,817 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {232#true} {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} #71#return; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:47,817 INFO L290 TraceCheckUtils]: 19: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:47,818 INFO L290 TraceCheckUtils]: 20: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {233#false} is VALID [2022-02-20 16:49:47,818 INFO L272 TraceCheckUtils]: 21: Hoare triple {233#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {233#false} is VALID [2022-02-20 16:49:47,818 INFO L290 TraceCheckUtils]: 22: Hoare triple {233#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {233#false} is VALID [2022-02-20 16:49:47,818 INFO L290 TraceCheckUtils]: 23: Hoare triple {233#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {233#false} is VALID [2022-02-20 16:49:47,819 INFO L272 TraceCheckUtils]: 24: Hoare triple {233#false} call __blast_assert(); {233#false} is VALID [2022-02-20 16:49:47,819 INFO L290 TraceCheckUtils]: 25: Hoare triple {233#false} assume !false; {233#false} is VALID [2022-02-20 16:49:47,819 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 16:49:47,819 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:49:47,998 INFO L290 TraceCheckUtils]: 25: Hoare triple {233#false} assume !false; {233#false} is VALID [2022-02-20 16:49:47,999 INFO L272 TraceCheckUtils]: 24: Hoare triple {233#false} call __blast_assert(); {233#false} is VALID [2022-02-20 16:49:47,999 INFO L290 TraceCheckUtils]: 23: Hoare triple {233#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {233#false} is VALID [2022-02-20 16:49:47,999 INFO L290 TraceCheckUtils]: 22: Hoare triple {233#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {233#false} is VALID [2022-02-20 16:49:47,999 INFO L272 TraceCheckUtils]: 21: Hoare triple {233#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {233#false} is VALID [2022-02-20 16:49:48,000 INFO L290 TraceCheckUtils]: 20: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {233#false} is VALID [2022-02-20 16:49:48,001 INFO L290 TraceCheckUtils]: 19: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:48,002 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {232#true} {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} #71#return; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:48,002 INFO L290 TraceCheckUtils]: 17: Hoare triple {232#true} assume true; {232#true} is VALID [2022-02-20 16:49:48,002 INFO L290 TraceCheckUtils]: 16: Hoare triple {232#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {232#true} is VALID [2022-02-20 16:49:48,002 INFO L290 TraceCheckUtils]: 15: Hoare triple {232#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {232#true} is VALID [2022-02-20 16:49:48,003 INFO L290 TraceCheckUtils]: 14: Hoare triple {232#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {232#true} is VALID [2022-02-20 16:49:48,003 INFO L290 TraceCheckUtils]: 13: Hoare triple {232#true} assume __getMemory_~size#1 > 0; {232#true} is VALID [2022-02-20 16:49:48,003 INFO L290 TraceCheckUtils]: 12: Hoare triple {232#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {232#true} is VALID [2022-02-20 16:49:48,003 INFO L272 TraceCheckUtils]: 11: Hoare triple {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {232#true} is VALID [2022-02-20 16:49:48,004 INFO L290 TraceCheckUtils]: 10: Hoare triple {241#(and (= |ULTIMATE.start_main_#t~ret10#1.base| 0) (= |ULTIMATE.start_main_#t~ret10#1.offset| 0))} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {242#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} is VALID [2022-02-20 16:49:48,005 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} {232#true} #69#return; {241#(and (= |ULTIMATE.start_main_#t~ret10#1.base| 0) (= |ULTIMATE.start_main_#t~ret10#1.offset| 0))} is VALID [2022-02-20 16:49:48,006 INFO L290 TraceCheckUtils]: 8: Hoare triple {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} assume true; {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,006 INFO L290 TraceCheckUtils]: 7: Hoare triple {251#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {252#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,007 INFO L290 TraceCheckUtils]: 6: Hoare triple {232#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {251#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,007 INFO L290 TraceCheckUtils]: 5: Hoare triple {232#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {232#true} is VALID [2022-02-20 16:49:48,007 INFO L290 TraceCheckUtils]: 4: Hoare triple {232#true} assume __getMemory_~size#1 > 0; {232#true} is VALID [2022-02-20 16:49:48,008 INFO L290 TraceCheckUtils]: 3: Hoare triple {232#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {232#true} is VALID [2022-02-20 16:49:48,008 INFO L272 TraceCheckUtils]: 2: Hoare triple {232#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {232#true} is VALID [2022-02-20 16:49:48,008 INFO L290 TraceCheckUtils]: 1: Hoare triple {232#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {232#true} is VALID [2022-02-20 16:49:48,008 INFO L290 TraceCheckUtils]: 0: Hoare triple {232#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {232#true} is VALID [2022-02-20 16:49:48,009 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 16:49:48,009 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [980530808] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:49:48,009 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:49:48,009 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 6, 6] total 7 [2022-02-20 16:49:48,010 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1715468188] [2022-02-20 16:49:48,010 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:49:48,011 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 5 states have internal predecessors, (18), 3 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 26 [2022-02-20 16:49:48,012 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:48,012 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 5 states have internal predecessors, (18), 3 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:48,033 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 26 edges. 26 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:48,033 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 16:49:48,033 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:48,034 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 16:49:48,034 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 16:49:48,035 INFO L87 Difference]: Start difference. First operand 29 states and 34 transitions. Second operand has 7 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 5 states have internal predecessors, (18), 3 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:48,337 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,338 INFO L93 Difference]: Finished difference Result 51 states and 62 transitions. [2022-02-20 16:49:48,338 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 16:49:48,338 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 5 states have internal predecessors, (18), 3 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 26 [2022-02-20 16:49:48,341 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:48,341 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 5 states have internal predecessors, (18), 3 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:48,345 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 62 transitions. [2022-02-20 16:49:48,345 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 5 states have internal predecessors, (18), 3 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:48,348 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 62 transitions. [2022-02-20 16:49:48,348 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 62 transitions. [2022-02-20 16:49:48,411 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:48,413 INFO L225 Difference]: With dead ends: 51 [2022-02-20 16:49:48,413 INFO L226 Difference]: Without dead ends: 32 [2022-02-20 16:49:48,414 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 61 GetRequests, 52 SyntacticMatches, 3 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=15, Invalid=41, Unknown=0, NotChecked=0, Total=56 [2022-02-20 16:49:48,415 INFO L933 BasicCegarLoop]: 33 mSDtfsCounter, 12 mSDsluCounter, 93 mSDsCounter, 0 mSdLazyCounter, 71 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 12 SdHoareTripleChecker+Valid, 126 SdHoareTripleChecker+Invalid, 76 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 71 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:48,415 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [12 Valid, 126 Invalid, 76 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 71 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 16:49:48,416 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2022-02-20 16:49:48,423 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 32. [2022-02-20 16:49:48,423 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:48,423 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand has 32 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 6 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (5), 4 states have call predecessors, (5), 4 states have call successors, (5) [2022-02-20 16:49:48,424 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand has 32 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 6 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (5), 4 states have call predecessors, (5), 4 states have call successors, (5) [2022-02-20 16:49:48,424 INFO L87 Difference]: Start difference. First operand 32 states. Second operand has 32 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 6 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (5), 4 states have call predecessors, (5), 4 states have call successors, (5) [2022-02-20 16:49:48,426 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,426 INFO L93 Difference]: Finished difference Result 32 states and 37 transitions. [2022-02-20 16:49:48,426 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 37 transitions. [2022-02-20 16:49:48,427 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:48,427 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:48,427 INFO L74 IsIncluded]: Start isIncluded. First operand has 32 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 6 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (5), 4 states have call predecessors, (5), 4 states have call successors, (5) Second operand 32 states. [2022-02-20 16:49:48,428 INFO L87 Difference]: Start difference. First operand has 32 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 6 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (5), 4 states have call predecessors, (5), 4 states have call successors, (5) Second operand 32 states. [2022-02-20 16:49:48,429 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,430 INFO L93 Difference]: Finished difference Result 32 states and 37 transitions. [2022-02-20 16:49:48,430 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 37 transitions. [2022-02-20 16:49:48,430 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:48,430 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:48,430 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:48,430 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:48,431 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 32 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 6 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (5), 4 states have call predecessors, (5), 4 states have call successors, (5) [2022-02-20 16:49:48,432 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 37 transitions. [2022-02-20 16:49:48,432 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 37 transitions. Word has length 26 [2022-02-20 16:49:48,433 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:48,433 INFO L470 AbstractCegarLoop]: Abstraction has 32 states and 37 transitions. [2022-02-20 16:49:48,433 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 2.5714285714285716) internal successors, (18), 5 states have internal predecessors, (18), 3 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:48,433 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 37 transitions. [2022-02-20 16:49:48,434 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:49:48,434 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:48,434 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:49:48,462 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Forceful destruction successful, exit code 0 [2022-02-20 16:49:48,655 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:48,656 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:48,656 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:48,656 INFO L85 PathProgramCache]: Analyzing trace with hash 2100541890, now seen corresponding path program 1 times [2022-02-20 16:49:48,656 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:48,657 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1099095958] [2022-02-20 16:49:48,657 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:48,657 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:48,684 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:48,734 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:48,737 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:48,751 INFO L290 TraceCheckUtils]: 0: Hoare triple {601#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {583#true} is VALID [2022-02-20 16:49:48,752 INFO L290 TraceCheckUtils]: 1: Hoare triple {583#true} assume __getMemory_~size#1 > 0; {583#true} is VALID [2022-02-20 16:49:48,753 INFO L290 TraceCheckUtils]: 2: Hoare triple {583#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {583#true} is VALID [2022-02-20 16:49:48,753 INFO L290 TraceCheckUtils]: 3: Hoare triple {583#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {583#true} is VALID [2022-02-20 16:49:48,753 INFO L290 TraceCheckUtils]: 4: Hoare triple {583#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {583#true} is VALID [2022-02-20 16:49:48,756 INFO L290 TraceCheckUtils]: 5: Hoare triple {583#true} assume true; {583#true} is VALID [2022-02-20 16:49:48,756 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {583#true} {583#true} #69#return; {583#true} is VALID [2022-02-20 16:49:48,756 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:48,764 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:48,834 INFO L290 TraceCheckUtils]: 0: Hoare triple {601#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {583#true} is VALID [2022-02-20 16:49:48,834 INFO L290 TraceCheckUtils]: 1: Hoare triple {583#true} assume __getMemory_~size#1 > 0; {583#true} is VALID [2022-02-20 16:49:48,834 INFO L290 TraceCheckUtils]: 2: Hoare triple {583#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {583#true} is VALID [2022-02-20 16:49:48,835 INFO L290 TraceCheckUtils]: 3: Hoare triple {583#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {602#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,836 INFO L290 TraceCheckUtils]: 4: Hoare triple {602#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {603#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,837 INFO L290 TraceCheckUtils]: 5: Hoare triple {603#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} assume true; {603#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,838 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {603#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} {583#true} #71#return; {599#(and (= |ULTIMATE.start_main_#t~ret11#1.base| 0) (= |ULTIMATE.start_main_#t~ret11#1.offset| 0))} is VALID [2022-02-20 16:49:48,839 INFO L290 TraceCheckUtils]: 0: Hoare triple {583#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {583#true} is VALID [2022-02-20 16:49:48,841 INFO L290 TraceCheckUtils]: 1: Hoare triple {583#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {583#true} is VALID [2022-02-20 16:49:48,842 INFO L272 TraceCheckUtils]: 2: Hoare triple {583#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {601#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:48,854 INFO L290 TraceCheckUtils]: 3: Hoare triple {601#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {583#true} is VALID [2022-02-20 16:49:48,854 INFO L290 TraceCheckUtils]: 4: Hoare triple {583#true} assume __getMemory_~size#1 > 0; {583#true} is VALID [2022-02-20 16:49:48,855 INFO L290 TraceCheckUtils]: 5: Hoare triple {583#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {583#true} is VALID [2022-02-20 16:49:48,855 INFO L290 TraceCheckUtils]: 6: Hoare triple {583#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {583#true} is VALID [2022-02-20 16:49:48,855 INFO L290 TraceCheckUtils]: 7: Hoare triple {583#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {583#true} is VALID [2022-02-20 16:49:48,855 INFO L290 TraceCheckUtils]: 8: Hoare triple {583#true} assume true; {583#true} is VALID [2022-02-20 16:49:48,855 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {583#true} {583#true} #69#return; {583#true} is VALID [2022-02-20 16:49:48,855 INFO L290 TraceCheckUtils]: 10: Hoare triple {583#true} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {583#true} is VALID [2022-02-20 16:49:48,859 INFO L272 TraceCheckUtils]: 11: Hoare triple {583#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {601#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:48,859 INFO L290 TraceCheckUtils]: 12: Hoare triple {601#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {583#true} is VALID [2022-02-20 16:49:48,860 INFO L290 TraceCheckUtils]: 13: Hoare triple {583#true} assume __getMemory_~size#1 > 0; {583#true} is VALID [2022-02-20 16:49:48,860 INFO L290 TraceCheckUtils]: 14: Hoare triple {583#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {583#true} is VALID [2022-02-20 16:49:48,860 INFO L290 TraceCheckUtils]: 15: Hoare triple {583#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {602#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,861 INFO L290 TraceCheckUtils]: 16: Hoare triple {602#(and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {603#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,861 INFO L290 TraceCheckUtils]: 17: Hoare triple {603#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} assume true; {603#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} is VALID [2022-02-20 16:49:48,862 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {603#(and (<= 0 |my_malloc_#res#1.offset|) (<= 0 |my_malloc_#res#1.base|) (<= |my_malloc_#res#1.offset| 0) (<= |my_malloc_#res#1.base| 0))} {583#true} #71#return; {599#(and (= |ULTIMATE.start_main_#t~ret11#1.base| 0) (= |ULTIMATE.start_main_#t~ret11#1.offset| 0))} is VALID [2022-02-20 16:49:48,863 INFO L290 TraceCheckUtils]: 19: Hoare triple {599#(and (= |ULTIMATE.start_main_#t~ret11#1.base| 0) (= |ULTIMATE.start_main_#t~ret11#1.offset| 0))} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {600#(and (= |ULTIMATE.start_main_~dev2~0#1.base| 0) (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:48,863 INFO L290 TraceCheckUtils]: 20: Hoare triple {600#(and (= |ULTIMATE.start_main_~dev2~0#1.base| 0) (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {584#false} is VALID [2022-02-20 16:49:48,863 INFO L272 TraceCheckUtils]: 21: Hoare triple {584#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {584#false} is VALID [2022-02-20 16:49:48,863 INFO L290 TraceCheckUtils]: 22: Hoare triple {584#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {584#false} is VALID [2022-02-20 16:49:48,864 INFO L290 TraceCheckUtils]: 23: Hoare triple {584#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {584#false} is VALID [2022-02-20 16:49:48,864 INFO L272 TraceCheckUtils]: 24: Hoare triple {584#false} call __blast_assert(); {584#false} is VALID [2022-02-20 16:49:48,864 INFO L290 TraceCheckUtils]: 25: Hoare triple {584#false} assume !false; {584#false} is VALID [2022-02-20 16:49:48,864 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 16:49:48,864 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:48,865 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1099095958] [2022-02-20 16:49:48,865 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1099095958] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:49:48,865 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:49:48,865 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-02-20 16:49:48,865 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2125560894] [2022-02-20 16:49:48,865 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:49:48,866 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 2.4285714285714284) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) Word has length 26 [2022-02-20 16:49:48,866 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:48,866 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 2.4285714285714284) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:49:48,892 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 23 edges. 23 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:48,892 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 16:49:48,892 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:48,893 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 16:49:48,893 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 16:49:48,893 INFO L87 Difference]: Start difference. First operand 32 states and 37 transitions. Second operand has 7 states, 7 states have (on average 2.4285714285714284) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:49:49,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:49,165 INFO L93 Difference]: Finished difference Result 49 states and 57 transitions. [2022-02-20 16:49:49,165 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 16:49:49,165 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 2.4285714285714284) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) Word has length 26 [2022-02-20 16:49:49,166 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:49,166 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 2.4285714285714284) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:49:49,170 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2022-02-20 16:49:49,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 2.4285714285714284) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:49:49,179 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2022-02-20 16:49:49,180 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 57 transitions. [2022-02-20 16:49:49,245 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:49,246 INFO L225 Difference]: With dead ends: 49 [2022-02-20 16:49:49,247 INFO L226 Difference]: Without dead ends: 29 [2022-02-20 16:49:49,248 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=15, Invalid=41, Unknown=0, NotChecked=0, Total=56 [2022-02-20 16:49:49,253 INFO L933 BasicCegarLoop]: 31 mSDtfsCounter, 12 mSDsluCounter, 84 mSDsCounter, 0 mSdLazyCounter, 72 mSolverCounterSat, 4 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 12 SdHoareTripleChecker+Valid, 115 SdHoareTripleChecker+Invalid, 76 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 4 IncrementalHoareTripleChecker+Valid, 72 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:49,254 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [12 Valid, 115 Invalid, 76 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [4 Valid, 72 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 16:49:49,255 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 29 states. [2022-02-20 16:49:49,261 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 29 to 29. [2022-02-20 16:49:49,261 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:49,262 INFO L82 GeneralOperation]: Start isEquivalent. First operand 29 states. Second operand has 29 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:49:49,262 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand has 29 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:49:49,262 INFO L87 Difference]: Start difference. First operand 29 states. Second operand has 29 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:49:49,266 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:49,266 INFO L93 Difference]: Finished difference Result 29 states and 33 transitions. [2022-02-20 16:49:49,266 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 33 transitions. [2022-02-20 16:49:49,267 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:49,267 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:49,267 INFO L74 IsIncluded]: Start isIncluded. First operand has 29 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 29 states. [2022-02-20 16:49:49,267 INFO L87 Difference]: Start difference. First operand has 29 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 29 states. [2022-02-20 16:49:49,269 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:49,269 INFO L93 Difference]: Finished difference Result 29 states and 33 transitions. [2022-02-20 16:49:49,269 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 33 transitions. [2022-02-20 16:49:49,269 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:49,269 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:49,269 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:49,270 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:49,270 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 29 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 6 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:49:49,271 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 33 transitions. [2022-02-20 16:49:49,271 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 33 transitions. Word has length 26 [2022-02-20 16:49:49,271 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:49,271 INFO L470 AbstractCegarLoop]: Abstraction has 29 states and 33 transitions. [2022-02-20 16:49:49,272 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 2.4285714285714284) internal successors, (17), 5 states have internal predecessors, (17), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 16:49:49,272 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 33 transitions. [2022-02-20 16:49:49,272 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:49:49,272 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:49,272 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:49:49,272 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-02-20 16:49:49,273 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:49,273 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:49,273 INFO L85 PathProgramCache]: Analyzing trace with hash -1493360828, now seen corresponding path program 1 times [2022-02-20 16:49:49,273 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:49,273 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1708088298] [2022-02-20 16:49:49,274 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:49,274 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:49,290 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,373 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:49,378 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,404 INFO L290 TraceCheckUtils]: 0: Hoare triple {793#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,405 INFO L290 TraceCheckUtils]: 1: Hoare triple {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,405 INFO L290 TraceCheckUtils]: 2: Hoare triple {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,406 INFO L290 TraceCheckUtils]: 3: Hoare triple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,406 INFO L290 TraceCheckUtils]: 4: Hoare triple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,407 INFO L290 TraceCheckUtils]: 5: Hoare triple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,407 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {773#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} #69#return; {781#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,408 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:49,412 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,455 INFO L290 TraceCheckUtils]: 0: Hoare triple {793#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,456 INFO L290 TraceCheckUtils]: 1: Hoare triple {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,456 INFO L290 TraceCheckUtils]: 2: Hoare triple {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,457 INFO L290 TraceCheckUtils]: 3: Hoare triple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {796#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:49,457 INFO L290 TraceCheckUtils]: 4: Hoare triple {796#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {797#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:49,458 INFO L290 TraceCheckUtils]: 5: Hoare triple {797#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {797#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:49,459 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {797#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {781#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} #71#return; {789#(and (<= 2 |ULTIMATE.start_main_#t~ret11#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,460 INFO L290 TraceCheckUtils]: 0: Hoare triple {771#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {773#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,460 INFO L290 TraceCheckUtils]: 1: Hoare triple {773#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {773#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,461 INFO L272 TraceCheckUtils]: 2: Hoare triple {773#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {793#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:49,461 INFO L290 TraceCheckUtils]: 3: Hoare triple {793#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,462 INFO L290 TraceCheckUtils]: 4: Hoare triple {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,462 INFO L290 TraceCheckUtils]: 5: Hoare triple {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,463 INFO L290 TraceCheckUtils]: 6: Hoare triple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,463 INFO L290 TraceCheckUtils]: 7: Hoare triple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,463 INFO L290 TraceCheckUtils]: 8: Hoare triple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,464 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {773#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} #69#return; {781#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,465 INFO L290 TraceCheckUtils]: 10: Hoare triple {781#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {781#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,465 INFO L272 TraceCheckUtils]: 11: Hoare triple {781#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {793#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:49,466 INFO L290 TraceCheckUtils]: 12: Hoare triple {793#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,466 INFO L290 TraceCheckUtils]: 13: Hoare triple {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,466 INFO L290 TraceCheckUtils]: 14: Hoare triple {794#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,467 INFO L290 TraceCheckUtils]: 15: Hoare triple {795#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {796#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:49,467 INFO L290 TraceCheckUtils]: 16: Hoare triple {796#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {797#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:49,467 INFO L290 TraceCheckUtils]: 17: Hoare triple {797#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {797#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:49,472 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {797#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {781#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} #71#return; {789#(and (<= 2 |ULTIMATE.start_main_#t~ret11#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,473 INFO L290 TraceCheckUtils]: 19: Hoare triple {789#(and (<= 2 |ULTIMATE.start_main_#t~ret11#1.offset|) (= ~elem~0.offset 0))} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {790#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,473 INFO L290 TraceCheckUtils]: 20: Hoare triple {790#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.offset 0))} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {790#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,474 INFO L272 TraceCheckUtils]: 21: Hoare triple {790#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.offset 0))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {791#(and (= ~elem~0.offset 0) (<= 2 |list_add_#in~new.offset|))} is VALID [2022-02-20 16:49:49,475 INFO L290 TraceCheckUtils]: 22: Hoare triple {791#(and (= ~elem~0.offset 0) (<= 2 |list_add_#in~new.offset|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {792#(and (not (= list_add_~new.offset 0)) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,475 INFO L290 TraceCheckUtils]: 23: Hoare triple {792#(and (not (= list_add_~new.offset 0)) (= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {772#false} is VALID [2022-02-20 16:49:49,475 INFO L272 TraceCheckUtils]: 24: Hoare triple {772#false} call __blast_assert(); {772#false} is VALID [2022-02-20 16:49:49,475 INFO L290 TraceCheckUtils]: 25: Hoare triple {772#false} assume !false; {772#false} is VALID [2022-02-20 16:49:49,476 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 16:49:49,476 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:49,476 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1708088298] [2022-02-20 16:49:49,476 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1708088298] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:49,476 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1323188025] [2022-02-20 16:49:49,476 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:49,476 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:49,477 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:49,478 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 16:49:49,480 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-02-20 16:49:49,555 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,556 INFO L263 TraceCheckSpWp]: Trace formula consists of 166 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:49:49,572 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,575 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:50,166 INFO L290 TraceCheckUtils]: 0: Hoare triple {771#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {801#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:50,167 INFO L290 TraceCheckUtils]: 1: Hoare triple {801#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {801#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:50,167 INFO L272 TraceCheckUtils]: 2: Hoare triple {801#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:50,168 INFO L290 TraceCheckUtils]: 3: Hoare triple {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:50,169 INFO L290 TraceCheckUtils]: 4: Hoare triple {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} assume __getMemory_~size#1 > 0; {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:50,170 INFO L290 TraceCheckUtils]: 5: Hoare triple {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,170 INFO L290 TraceCheckUtils]: 6: Hoare triple {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,171 INFO L290 TraceCheckUtils]: 7: Hoare triple {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,171 INFO L290 TraceCheckUtils]: 8: Hoare triple {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,172 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {801#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} #69#return; {831#(and (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,173 INFO L290 TraceCheckUtils]: 10: Hoare triple {831#(and (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {831#(and (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,173 INFO L272 TraceCheckUtils]: 11: Hoare triple {831#(and (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:50,174 INFO L290 TraceCheckUtils]: 12: Hoare triple {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:50,174 INFO L290 TraceCheckUtils]: 13: Hoare triple {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} assume __getMemory_~size#1 > 0; {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:50,178 INFO L290 TraceCheckUtils]: 14: Hoare triple {808#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,179 INFO L290 TraceCheckUtils]: 15: Hoare triple {818#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {850#(and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,179 INFO L290 TraceCheckUtils]: 16: Hoare triple {850#(and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {854#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,180 INFO L290 TraceCheckUtils]: 17: Hoare triple {854#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {854#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,180 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {854#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {831#(and (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #71#return; {861#(and (<= 2 |ULTIMATE.start_main_#t~ret11#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,181 INFO L290 TraceCheckUtils]: 19: Hoare triple {861#(and (<= 2 |ULTIMATE.start_main_#t~ret11#1.offset|) (<= ~elem~0.offset 0))} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {865#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,181 INFO L290 TraceCheckUtils]: 20: Hoare triple {865#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (<= ~elem~0.offset 0))} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {865#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,186 INFO L272 TraceCheckUtils]: 21: Hoare triple {865#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (<= ~elem~0.offset 0))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {872#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:50,186 INFO L290 TraceCheckUtils]: 22: Hoare triple {872#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {876#(and (<= ~elem~0.offset 0) (<= 2 list_add_~new.offset))} is VALID [2022-02-20 16:49:50,187 INFO L290 TraceCheckUtils]: 23: Hoare triple {876#(and (<= ~elem~0.offset 0) (<= 2 list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {772#false} is VALID [2022-02-20 16:49:50,187 INFO L272 TraceCheckUtils]: 24: Hoare triple {772#false} call __blast_assert(); {772#false} is VALID [2022-02-20 16:49:50,187 INFO L290 TraceCheckUtils]: 25: Hoare triple {772#false} assume !false; {772#false} is VALID [2022-02-20 16:49:50,187 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 16:49:50,187 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:49:50,188 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1323188025] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:49:50,188 INFO L191 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-02-20 16:49:50,188 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [12] total 22 [2022-02-20 16:49:50,188 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1204693392] [2022-02-20 16:49:50,188 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:49:50,189 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 1.4166666666666667) internal successors, (17), 9 states have internal predecessors, (17), 4 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 26 [2022-02-20 16:49:50,189 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:50,189 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 12 states, 12 states have (on average 1.4166666666666667) internal successors, (17), 9 states have internal predecessors, (17), 4 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:50,207 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 23 edges. 23 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:50,208 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-02-20 16:49:50,208 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:50,208 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-02-20 16:49:50,209 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=445, Unknown=0, NotChecked=0, Total=506 [2022-02-20 16:49:50,209 INFO L87 Difference]: Start difference. First operand 29 states and 33 transitions. Second operand has 12 states, 12 states have (on average 1.4166666666666667) internal successors, (17), 9 states have internal predecessors, (17), 4 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:50,896 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:50,896 INFO L93 Difference]: Finished difference Result 55 states and 63 transitions. [2022-02-20 16:49:50,896 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-02-20 16:49:50,896 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 1.4166666666666667) internal successors, (17), 9 states have internal predecessors, (17), 4 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) Word has length 26 [2022-02-20 16:49:50,897 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:50,897 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 1.4166666666666667) internal successors, (17), 9 states have internal predecessors, (17), 4 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:50,899 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 63 transitions. [2022-02-20 16:49:50,899 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 1.4166666666666667) internal successors, (17), 9 states have internal predecessors, (17), 4 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:50,901 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 63 transitions. [2022-02-20 16:49:50,901 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 63 transitions. [2022-02-20 16:49:50,953 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:50,954 INFO L225 Difference]: With dead ends: 55 [2022-02-20 16:49:50,954 INFO L226 Difference]: Without dead ends: 46 [2022-02-20 16:49:50,955 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 49 GetRequests, 19 SyntacticMatches, 0 SemanticMatches, 30 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 101 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=135, Invalid=857, Unknown=0, NotChecked=0, Total=992 [2022-02-20 16:49:50,956 INFO L933 BasicCegarLoop]: 26 mSDtfsCounter, 74 mSDsluCounter, 80 mSDsCounter, 0 mSdLazyCounter, 200 mSolverCounterSat, 31 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 74 SdHoareTripleChecker+Valid, 106 SdHoareTripleChecker+Invalid, 231 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 31 IncrementalHoareTripleChecker+Valid, 200 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:50,956 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [74 Valid, 106 Invalid, 231 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [31 Valid, 200 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-02-20 16:49:50,957 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states. [2022-02-20 16:49:50,984 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 40. [2022-02-20 16:49:50,984 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:50,985 INFO L82 GeneralOperation]: Start isEquivalent. First operand 46 states. Second operand has 40 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 29 states have internal predecessors, (34), 7 states have call successors, (7), 5 states have call predecessors, (7), 3 states have return successors, (6), 5 states have call predecessors, (6), 5 states have call successors, (6) [2022-02-20 16:49:50,985 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand has 40 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 29 states have internal predecessors, (34), 7 states have call successors, (7), 5 states have call predecessors, (7), 3 states have return successors, (6), 5 states have call predecessors, (6), 5 states have call successors, (6) [2022-02-20 16:49:50,985 INFO L87 Difference]: Start difference. First operand 46 states. Second operand has 40 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 29 states have internal predecessors, (34), 7 states have call successors, (7), 5 states have call predecessors, (7), 3 states have return successors, (6), 5 states have call predecessors, (6), 5 states have call successors, (6) [2022-02-20 16:49:50,987 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:50,987 INFO L93 Difference]: Finished difference Result 46 states and 52 transitions. [2022-02-20 16:49:50,987 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 52 transitions. [2022-02-20 16:49:50,987 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:50,988 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:50,988 INFO L74 IsIncluded]: Start isIncluded. First operand has 40 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 29 states have internal predecessors, (34), 7 states have call successors, (7), 5 states have call predecessors, (7), 3 states have return successors, (6), 5 states have call predecessors, (6), 5 states have call successors, (6) Second operand 46 states. [2022-02-20 16:49:50,988 INFO L87 Difference]: Start difference. First operand has 40 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 29 states have internal predecessors, (34), 7 states have call successors, (7), 5 states have call predecessors, (7), 3 states have return successors, (6), 5 states have call predecessors, (6), 5 states have call successors, (6) Second operand 46 states. [2022-02-20 16:49:50,990 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:50,990 INFO L93 Difference]: Finished difference Result 46 states and 52 transitions. [2022-02-20 16:49:50,990 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 52 transitions. [2022-02-20 16:49:50,990 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:50,991 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:50,991 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:50,991 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:50,991 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 40 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 29 states have internal predecessors, (34), 7 states have call successors, (7), 5 states have call predecessors, (7), 3 states have return successors, (6), 5 states have call predecessors, (6), 5 states have call successors, (6) [2022-02-20 16:49:50,992 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 47 transitions. [2022-02-20 16:49:50,993 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 47 transitions. Word has length 26 [2022-02-20 16:49:50,993 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:50,993 INFO L470 AbstractCegarLoop]: Abstraction has 40 states and 47 transitions. [2022-02-20 16:49:50,993 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 12 states have (on average 1.4166666666666667) internal successors, (17), 9 states have internal predecessors, (17), 4 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 16:49:50,993 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 47 transitions. [2022-02-20 16:49:50,994 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2022-02-20 16:49:50,994 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:50,994 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:49:51,013 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-02-20 16:49:51,203 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable3 [2022-02-20 16:49:51,204 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:51,204 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:51,204 INFO L85 PathProgramCache]: Analyzing trace with hash 1025994815, now seen corresponding path program 1 times [2022-02-20 16:49:51,204 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:51,204 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [303848742] [2022-02-20 16:49:51,204 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:51,204 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:51,230 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,308 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:51,314 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,344 INFO L290 TraceCheckUtils]: 0: Hoare triple {1151#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1122#true} is VALID [2022-02-20 16:49:51,345 INFO L290 TraceCheckUtils]: 1: Hoare triple {1122#true} assume __getMemory_~size#1 > 0; {1122#true} is VALID [2022-02-20 16:49:51,345 INFO L290 TraceCheckUtils]: 2: Hoare triple {1122#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1122#true} is VALID [2022-02-20 16:49:51,345 INFO L290 TraceCheckUtils]: 3: Hoare triple {1122#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1152#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,346 INFO L290 TraceCheckUtils]: 4: Hoare triple {1152#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,346 INFO L290 TraceCheckUtils]: 5: Hoare triple {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,347 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {1122#true} #69#return; {1131#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,347 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:51,352 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,411 INFO L290 TraceCheckUtils]: 0: Hoare triple {1151#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1154#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:51,412 INFO L290 TraceCheckUtils]: 1: Hoare triple {1154#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {1154#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:51,412 INFO L290 TraceCheckUtils]: 2: Hoare triple {1154#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1155#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,413 INFO L290 TraceCheckUtils]: 3: Hoare triple {1155#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1156#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:51,413 INFO L290 TraceCheckUtils]: 4: Hoare triple {1156#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:51,414 INFO L290 TraceCheckUtils]: 5: Hoare triple {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:51,415 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #71#return; {1140#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:51,427 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 16:49:51,432 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,474 INFO L290 TraceCheckUtils]: 0: Hoare triple {1158#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,475 INFO L290 TraceCheckUtils]: 1: Hoare triple {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,475 INFO L290 TraceCheckUtils]: 2: Hoare triple {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,475 INFO L290 TraceCheckUtils]: 3: Hoare triple {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1160#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:51,476 INFO L290 TraceCheckUtils]: 4: Hoare triple {1160#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {1160#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:51,477 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1160#(= ~elem~0.offset |list_add_#in~new.offset|)} {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #73#return; {1148#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,477 INFO L290 TraceCheckUtils]: 0: Hoare triple {1122#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1122#true} is VALID [2022-02-20 16:49:51,477 INFO L290 TraceCheckUtils]: 1: Hoare triple {1122#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {1122#true} is VALID [2022-02-20 16:49:51,478 INFO L272 TraceCheckUtils]: 2: Hoare triple {1122#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1151#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:51,478 INFO L290 TraceCheckUtils]: 3: Hoare triple {1151#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1122#true} is VALID [2022-02-20 16:49:51,478 INFO L290 TraceCheckUtils]: 4: Hoare triple {1122#true} assume __getMemory_~size#1 > 0; {1122#true} is VALID [2022-02-20 16:49:51,478 INFO L290 TraceCheckUtils]: 5: Hoare triple {1122#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1122#true} is VALID [2022-02-20 16:49:51,479 INFO L290 TraceCheckUtils]: 6: Hoare triple {1122#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1152#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,479 INFO L290 TraceCheckUtils]: 7: Hoare triple {1152#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,480 INFO L290 TraceCheckUtils]: 8: Hoare triple {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,480 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {1122#true} #69#return; {1131#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,481 INFO L290 TraceCheckUtils]: 10: Hoare triple {1131#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,481 INFO L272 TraceCheckUtils]: 11: Hoare triple {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {1151#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:51,482 INFO L290 TraceCheckUtils]: 12: Hoare triple {1151#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1154#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:51,482 INFO L290 TraceCheckUtils]: 13: Hoare triple {1154#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {1154#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:51,487 INFO L290 TraceCheckUtils]: 14: Hoare triple {1154#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1155#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,488 INFO L290 TraceCheckUtils]: 15: Hoare triple {1155#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1156#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:51,489 INFO L290 TraceCheckUtils]: 16: Hoare triple {1156#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:51,489 INFO L290 TraceCheckUtils]: 17: Hoare triple {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:51,494 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #71#return; {1140#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:51,495 INFO L290 TraceCheckUtils]: 19: Hoare triple {1140#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:51,495 INFO L290 TraceCheckUtils]: 20: Hoare triple {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:51,497 INFO L272 TraceCheckUtils]: 21: Hoare triple {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1158#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:49:51,497 INFO L290 TraceCheckUtils]: 22: Hoare triple {1158#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,497 INFO L290 TraceCheckUtils]: 23: Hoare triple {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,498 INFO L290 TraceCheckUtils]: 24: Hoare triple {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,499 INFO L290 TraceCheckUtils]: 25: Hoare triple {1159#(= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1160#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:51,500 INFO L290 TraceCheckUtils]: 26: Hoare triple {1160#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {1160#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:51,500 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1160#(= ~elem~0.offset |list_add_#in~new.offset|)} {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #73#return; {1148#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,502 INFO L272 TraceCheckUtils]: 28: Hoare triple {1148#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1149#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,502 INFO L290 TraceCheckUtils]: 29: Hoare triple {1149#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1150#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2022-02-20 16:49:51,504 INFO L290 TraceCheckUtils]: 30: Hoare triple {1150#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1123#false} is VALID [2022-02-20 16:49:51,505 INFO L272 TraceCheckUtils]: 31: Hoare triple {1123#false} call __blast_assert(); {1123#false} is VALID [2022-02-20 16:49:51,505 INFO L290 TraceCheckUtils]: 32: Hoare triple {1123#false} assume !false; {1123#false} is VALID [2022-02-20 16:49:51,505 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 3 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-02-20 16:49:51,505 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:51,505 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [303848742] [2022-02-20 16:49:51,505 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [303848742] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:51,506 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [680457376] [2022-02-20 16:49:51,506 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:51,506 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:51,506 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:51,508 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 16:49:51,525 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-02-20 16:49:51,583 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,584 INFO L263 TraceCheckSpWp]: Trace formula consists of 200 conjuncts, 19 conjunts are in the unsatisfiable core [2022-02-20 16:49:51,605 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,608 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:52,048 INFO L290 TraceCheckUtils]: 0: Hoare triple {1122#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1122#true} is VALID [2022-02-20 16:49:52,048 INFO L290 TraceCheckUtils]: 1: Hoare triple {1122#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {1122#true} is VALID [2022-02-20 16:49:52,048 INFO L272 TraceCheckUtils]: 2: Hoare triple {1122#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1122#true} is VALID [2022-02-20 16:49:52,048 INFO L290 TraceCheckUtils]: 3: Hoare triple {1122#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1122#true} is VALID [2022-02-20 16:49:52,048 INFO L290 TraceCheckUtils]: 4: Hoare triple {1122#true} assume __getMemory_~size#1 > 0; {1122#true} is VALID [2022-02-20 16:49:52,048 INFO L290 TraceCheckUtils]: 5: Hoare triple {1122#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1122#true} is VALID [2022-02-20 16:49:52,049 INFO L290 TraceCheckUtils]: 6: Hoare triple {1122#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1152#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,049 INFO L290 TraceCheckUtils]: 7: Hoare triple {1152#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,050 INFO L290 TraceCheckUtils]: 8: Hoare triple {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,051 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {1122#true} #69#return; {1131#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,051 INFO L290 TraceCheckUtils]: 10: Hoare triple {1131#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,052 INFO L272 TraceCheckUtils]: 11: Hoare triple {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,052 INFO L290 TraceCheckUtils]: 12: Hoare triple {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,053 INFO L290 TraceCheckUtils]: 13: Hoare triple {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume __getMemory_~size#1 > 0; {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,053 INFO L290 TraceCheckUtils]: 14: Hoare triple {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1155#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,054 INFO L290 TraceCheckUtils]: 15: Hoare triple {1155#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1210#(and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:52,054 INFO L290 TraceCheckUtils]: 16: Hoare triple {1210#(and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1214#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:52,055 INFO L290 TraceCheckUtils]: 17: Hoare triple {1214#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} assume true; {1214#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:52,056 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1214#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #71#return; {1140#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:52,057 INFO L290 TraceCheckUtils]: 19: Hoare triple {1140#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:52,057 INFO L290 TraceCheckUtils]: 20: Hoare triple {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:52,057 INFO L272 TraceCheckUtils]: 21: Hoare triple {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1122#true} is VALID [2022-02-20 16:49:52,058 INFO L290 TraceCheckUtils]: 22: Hoare triple {1122#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,058 INFO L290 TraceCheckUtils]: 23: Hoare triple {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,058 INFO L290 TraceCheckUtils]: 24: Hoare triple {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,059 INFO L290 TraceCheckUtils]: 25: Hoare triple {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1243#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:49:52,060 INFO L290 TraceCheckUtils]: 26: Hoare triple {1243#(<= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {1243#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:49:52,061 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1243#(<= |list_add_#in~new.offset| ~elem~0.offset)} {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #73#return; {1148#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,062 INFO L272 TraceCheckUtils]: 28: Hoare triple {1148#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1149#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,062 INFO L290 TraceCheckUtils]: 29: Hoare triple {1149#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1256#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,062 INFO L290 TraceCheckUtils]: 30: Hoare triple {1256#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1123#false} is VALID [2022-02-20 16:49:52,063 INFO L272 TraceCheckUtils]: 31: Hoare triple {1123#false} call __blast_assert(); {1123#false} is VALID [2022-02-20 16:49:52,063 INFO L290 TraceCheckUtils]: 32: Hoare triple {1123#false} assume !false; {1123#false} is VALID [2022-02-20 16:49:52,063 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 5 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 16:49:52,063 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:49:52,756 INFO L290 TraceCheckUtils]: 32: Hoare triple {1123#false} assume !false; {1123#false} is VALID [2022-02-20 16:49:52,756 INFO L272 TraceCheckUtils]: 31: Hoare triple {1123#false} call __blast_assert(); {1123#false} is VALID [2022-02-20 16:49:52,758 INFO L290 TraceCheckUtils]: 30: Hoare triple {1256#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1123#false} is VALID [2022-02-20 16:49:52,758 INFO L290 TraceCheckUtils]: 29: Hoare triple {1149#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1256#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,759 INFO L272 TraceCheckUtils]: 28: Hoare triple {1148#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1149#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,760 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1243#(<= |list_add_#in~new.offset| ~elem~0.offset)} {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #73#return; {1148#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,760 INFO L290 TraceCheckUtils]: 26: Hoare triple {1243#(<= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {1243#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:49:52,761 INFO L290 TraceCheckUtils]: 25: Hoare triple {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1243#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:49:52,761 INFO L290 TraceCheckUtils]: 24: Hoare triple {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,761 INFO L290 TraceCheckUtils]: 23: Hoare triple {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,762 INFO L290 TraceCheckUtils]: 22: Hoare triple {1122#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1233#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,762 INFO L272 TraceCheckUtils]: 21: Hoare triple {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1122#true} is VALID [2022-02-20 16:49:52,763 INFO L290 TraceCheckUtils]: 20: Hoare triple {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:52,763 INFO L290 TraceCheckUtils]: 19: Hoare triple {1140#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {1141#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:52,764 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #71#return; {1140#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:52,764 INFO L290 TraceCheckUtils]: 17: Hoare triple {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:52,765 INFO L290 TraceCheckUtils]: 16: Hoare triple {1156#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1157#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:52,765 INFO L290 TraceCheckUtils]: 15: Hoare triple {1155#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1156#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:52,767 INFO L290 TraceCheckUtils]: 14: Hoare triple {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1155#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,771 INFO L290 TraceCheckUtils]: 13: Hoare triple {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume __getMemory_~size#1 > 0; {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,772 INFO L290 TraceCheckUtils]: 12: Hoare triple {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,772 INFO L272 TraceCheckUtils]: 11: Hoare triple {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {1197#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,773 INFO L290 TraceCheckUtils]: 10: Hoare triple {1131#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {1132#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,773 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {1122#true} #69#return; {1131#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,774 INFO L290 TraceCheckUtils]: 8: Hoare triple {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,774 INFO L290 TraceCheckUtils]: 7: Hoare triple {1152#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1153#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,775 INFO L290 TraceCheckUtils]: 6: Hoare triple {1122#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1152#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,775 INFO L290 TraceCheckUtils]: 5: Hoare triple {1122#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1122#true} is VALID [2022-02-20 16:49:52,775 INFO L290 TraceCheckUtils]: 4: Hoare triple {1122#true} assume __getMemory_~size#1 > 0; {1122#true} is VALID [2022-02-20 16:49:52,775 INFO L290 TraceCheckUtils]: 3: Hoare triple {1122#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1122#true} is VALID [2022-02-20 16:49:52,775 INFO L272 TraceCheckUtils]: 2: Hoare triple {1122#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1122#true} is VALID [2022-02-20 16:49:52,775 INFO L290 TraceCheckUtils]: 1: Hoare triple {1122#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {1122#true} is VALID [2022-02-20 16:49:52,775 INFO L290 TraceCheckUtils]: 0: Hoare triple {1122#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1122#true} is VALID [2022-02-20 16:49:52,776 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 5 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 16:49:52,776 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [680457376] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:49:52,776 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:49:52,776 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 17, 17] total 25 [2022-02-20 16:49:52,776 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [95828622] [2022-02-20 16:49:52,776 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:49:52,777 INFO L78 Accepts]: Start accepts. Automaton has has 25 states, 23 states have (on average 1.6956521739130435) internal successors, (39), 19 states have internal predecessors, (39), 5 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 33 [2022-02-20 16:49:52,778 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:52,778 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 25 states, 23 states have (on average 1.6956521739130435) internal successors, (39), 19 states have internal predecessors, (39), 5 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 16:49:52,825 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:52,825 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 25 states [2022-02-20 16:49:52,825 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:52,825 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2022-02-20 16:49:52,826 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=539, Unknown=0, NotChecked=0, Total=600 [2022-02-20 16:49:52,826 INFO L87 Difference]: Start difference. First operand 40 states and 47 transitions. Second operand has 25 states, 23 states have (on average 1.6956521739130435) internal successors, (39), 19 states have internal predecessors, (39), 5 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 16:49:54,279 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:54,280 INFO L93 Difference]: Finished difference Result 55 states and 63 transitions. [2022-02-20 16:49:54,280 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-02-20 16:49:54,280 INFO L78 Accepts]: Start accepts. Automaton has has 25 states, 23 states have (on average 1.6956521739130435) internal successors, (39), 19 states have internal predecessors, (39), 5 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 33 [2022-02-20 16:49:54,280 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:54,280 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 25 states, 23 states have (on average 1.6956521739130435) internal successors, (39), 19 states have internal predecessors, (39), 5 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 16:49:54,282 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 52 transitions. [2022-02-20 16:49:54,282 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 25 states, 23 states have (on average 1.6956521739130435) internal successors, (39), 19 states have internal predecessors, (39), 5 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 16:49:54,283 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 52 transitions. [2022-02-20 16:49:54,284 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states and 52 transitions. [2022-02-20 16:49:54,336 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:54,337 INFO L225 Difference]: With dead ends: 55 [2022-02-20 16:49:54,337 INFO L226 Difference]: Without dead ends: 48 [2022-02-20 16:49:54,338 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 98 GetRequests, 62 SyntacticMatches, 1 SemanticMatches, 35 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 120 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=163, Invalid=1169, Unknown=0, NotChecked=0, Total=1332 [2022-02-20 16:49:54,338 INFO L933 BasicCegarLoop]: 24 mSDtfsCounter, 73 mSDsluCounter, 82 mSDsCounter, 0 mSdLazyCounter, 603 mSolverCounterSat, 42 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 73 SdHoareTripleChecker+Valid, 106 SdHoareTripleChecker+Invalid, 645 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 42 IncrementalHoareTripleChecker+Valid, 603 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.6s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:54,339 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [73 Valid, 106 Invalid, 645 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [42 Valid, 603 Invalid, 0 Unknown, 0 Unchecked, 0.6s Time] [2022-02-20 16:49:54,339 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2022-02-20 16:49:54,387 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 44. [2022-02-20 16:49:54,387 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:54,388 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand has 44 states, 32 states have (on average 1.125) internal successors, (36), 32 states have internal predecessors, (36), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-02-20 16:49:54,388 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand has 44 states, 32 states have (on average 1.125) internal successors, (36), 32 states have internal predecessors, (36), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-02-20 16:49:54,388 INFO L87 Difference]: Start difference. First operand 48 states. Second operand has 44 states, 32 states have (on average 1.125) internal successors, (36), 32 states have internal predecessors, (36), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-02-20 16:49:54,390 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:54,390 INFO L93 Difference]: Finished difference Result 48 states and 55 transitions. [2022-02-20 16:49:54,390 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 55 transitions. [2022-02-20 16:49:54,391 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:54,391 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:54,391 INFO L74 IsIncluded]: Start isIncluded. First operand has 44 states, 32 states have (on average 1.125) internal successors, (36), 32 states have internal predecessors, (36), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Second operand 48 states. [2022-02-20 16:49:54,391 INFO L87 Difference]: Start difference. First operand has 44 states, 32 states have (on average 1.125) internal successors, (36), 32 states have internal predecessors, (36), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Second operand 48 states. [2022-02-20 16:49:54,393 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:54,393 INFO L93 Difference]: Finished difference Result 48 states and 55 transitions. [2022-02-20 16:49:54,394 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 55 transitions. [2022-02-20 16:49:54,394 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:54,394 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:54,394 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:54,394 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:54,395 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 32 states have (on average 1.125) internal successors, (36), 32 states have internal predecessors, (36), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-02-20 16:49:54,396 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 50 transitions. [2022-02-20 16:49:54,396 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 50 transitions. Word has length 33 [2022-02-20 16:49:54,397 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:54,397 INFO L470 AbstractCegarLoop]: Abstraction has 44 states and 50 transitions. [2022-02-20 16:49:54,397 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 25 states, 23 states have (on average 1.6956521739130435) internal successors, (39), 19 states have internal predecessors, (39), 5 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 16:49:54,397 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 50 transitions. [2022-02-20 16:49:54,399 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2022-02-20 16:49:54,400 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:54,400 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:49:54,426 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-02-20 16:49:54,623 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:54,623 INFO L402 AbstractCegarLoop]: === Iteration 6 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:54,624 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:54,624 INFO L85 PathProgramCache]: Analyzing trace with hash 216648189, now seen corresponding path program 1 times [2022-02-20 16:49:54,624 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:54,624 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2028359416] [2022-02-20 16:49:54,624 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:54,624 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:54,639 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:54,702 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:54,706 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:54,747 INFO L290 TraceCheckUtils]: 0: Hoare triple {1639#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1640#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:54,747 INFO L290 TraceCheckUtils]: 1: Hoare triple {1640#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {1640#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:54,748 INFO L290 TraceCheckUtils]: 2: Hoare triple {1640#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1641#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:54,749 INFO L290 TraceCheckUtils]: 3: Hoare triple {1641#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1642#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:54,750 INFO L290 TraceCheckUtils]: 4: Hoare triple {1642#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1643#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:54,750 INFO L290 TraceCheckUtils]: 5: Hoare triple {1643#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1643#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:54,751 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1643#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1614#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} #69#return; {1622#(and (<= 1 |ULTIMATE.start_main_#t~ret10#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:54,751 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:54,754 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:54,758 INFO L290 TraceCheckUtils]: 0: Hoare triple {1639#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1612#true} is VALID [2022-02-20 16:49:54,758 INFO L290 TraceCheckUtils]: 1: Hoare triple {1612#true} assume __getMemory_~size#1 > 0; {1612#true} is VALID [2022-02-20 16:49:54,758 INFO L290 TraceCheckUtils]: 2: Hoare triple {1612#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1612#true} is VALID [2022-02-20 16:49:54,758 INFO L290 TraceCheckUtils]: 3: Hoare triple {1612#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1612#true} is VALID [2022-02-20 16:49:54,759 INFO L290 TraceCheckUtils]: 4: Hoare triple {1612#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1612#true} is VALID [2022-02-20 16:49:54,759 INFO L290 TraceCheckUtils]: 5: Hoare triple {1612#true} assume true; {1612#true} is VALID [2022-02-20 16:49:54,761 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1612#true} {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} #71#return; {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:54,771 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 16:49:54,773 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:54,789 INFO L290 TraceCheckUtils]: 0: Hoare triple {1644#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,790 INFO L290 TraceCheckUtils]: 1: Hoare triple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,790 INFO L290 TraceCheckUtils]: 2: Hoare triple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,791 INFO L290 TraceCheckUtils]: 3: Hoare triple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0 != #t~nondet9);havoc #t~nondet9; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,791 INFO L290 TraceCheckUtils]: 4: Hoare triple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,792 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} #73#return; {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:54,793 INFO L290 TraceCheckUtils]: 0: Hoare triple {1612#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1614#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:54,793 INFO L290 TraceCheckUtils]: 1: Hoare triple {1614#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {1614#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:54,794 INFO L272 TraceCheckUtils]: 2: Hoare triple {1614#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1639#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:54,794 INFO L290 TraceCheckUtils]: 3: Hoare triple {1639#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1640#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:54,795 INFO L290 TraceCheckUtils]: 4: Hoare triple {1640#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {1640#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:54,795 INFO L290 TraceCheckUtils]: 5: Hoare triple {1640#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1641#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:54,796 INFO L290 TraceCheckUtils]: 6: Hoare triple {1641#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1642#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:54,796 INFO L290 TraceCheckUtils]: 7: Hoare triple {1642#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1643#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:54,797 INFO L290 TraceCheckUtils]: 8: Hoare triple {1643#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1643#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:54,797 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1643#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1614#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} #69#return; {1622#(and (<= 1 |ULTIMATE.start_main_#t~ret10#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:54,798 INFO L290 TraceCheckUtils]: 10: Hoare triple {1622#(and (<= 1 |ULTIMATE.start_main_#t~ret10#1.offset|) (= ~elem~0.offset 0))} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:54,799 INFO L272 TraceCheckUtils]: 11: Hoare triple {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {1639#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:54,799 INFO L290 TraceCheckUtils]: 12: Hoare triple {1639#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1612#true} is VALID [2022-02-20 16:49:54,799 INFO L290 TraceCheckUtils]: 13: Hoare triple {1612#true} assume __getMemory_~size#1 > 0; {1612#true} is VALID [2022-02-20 16:49:54,799 INFO L290 TraceCheckUtils]: 14: Hoare triple {1612#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1612#true} is VALID [2022-02-20 16:49:54,799 INFO L290 TraceCheckUtils]: 15: Hoare triple {1612#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1612#true} is VALID [2022-02-20 16:49:54,799 INFO L290 TraceCheckUtils]: 16: Hoare triple {1612#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1612#true} is VALID [2022-02-20 16:49:54,800 INFO L290 TraceCheckUtils]: 17: Hoare triple {1612#true} assume true; {1612#true} is VALID [2022-02-20 16:49:54,800 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1612#true} {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} #71#return; {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:54,801 INFO L290 TraceCheckUtils]: 19: Hoare triple {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:54,801 INFO L290 TraceCheckUtils]: 20: Hoare triple {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:54,802 INFO L272 TraceCheckUtils]: 21: Hoare triple {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1644#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:49:54,803 INFO L290 TraceCheckUtils]: 22: Hoare triple {1644#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,803 INFO L290 TraceCheckUtils]: 23: Hoare triple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,804 INFO L290 TraceCheckUtils]: 24: Hoare triple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,805 INFO L290 TraceCheckUtils]: 25: Hoare triple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0 != #t~nondet9);havoc #t~nondet9; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,805 INFO L290 TraceCheckUtils]: 26: Hoare triple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:54,807 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1645#(= |old(~elem~0.offset)| ~elem~0.offset)} {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} #73#return; {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:54,809 INFO L272 TraceCheckUtils]: 28: Hoare triple {1623#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1637#(and (<= 1 |list_add_#in~new.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:54,809 INFO L290 TraceCheckUtils]: 29: Hoare triple {1637#(and (<= 1 |list_add_#in~new.offset|) (= ~elem~0.offset 0))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1638#(and (not (= list_add_~new.offset 0)) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:54,810 INFO L290 TraceCheckUtils]: 30: Hoare triple {1638#(and (not (= list_add_~new.offset 0)) (= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1613#false} is VALID [2022-02-20 16:49:54,810 INFO L272 TraceCheckUtils]: 31: Hoare triple {1613#false} call __blast_assert(); {1613#false} is VALID [2022-02-20 16:49:54,810 INFO L290 TraceCheckUtils]: 32: Hoare triple {1613#false} assume !false; {1613#false} is VALID [2022-02-20 16:49:54,810 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-02-20 16:49:54,810 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:54,811 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2028359416] [2022-02-20 16:49:54,811 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2028359416] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:54,811 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [813158997] [2022-02-20 16:49:54,811 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:54,811 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:54,811 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:54,812 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 16:49:54,819 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-02-20 16:49:54,888 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:54,890 INFO L263 TraceCheckSpWp]: Trace formula consists of 197 conjuncts, 16 conjunts are in the unsatisfiable core [2022-02-20 16:49:54,904 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:54,905 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:55,456 INFO L290 TraceCheckUtils]: 0: Hoare triple {1612#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1649#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,456 INFO L290 TraceCheckUtils]: 1: Hoare triple {1649#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {1649#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,457 INFO L272 TraceCheckUtils]: 2: Hoare triple {1649#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1656#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,458 INFO L290 TraceCheckUtils]: 3: Hoare triple {1656#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1656#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,458 INFO L290 TraceCheckUtils]: 4: Hoare triple {1656#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} assume __getMemory_~size#1 > 0; {1656#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,459 INFO L290 TraceCheckUtils]: 5: Hoare triple {1656#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1666#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,459 INFO L290 TraceCheckUtils]: 6: Hoare triple {1666#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1670#(and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,460 INFO L290 TraceCheckUtils]: 7: Hoare triple {1670#(and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1674#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,460 INFO L290 TraceCheckUtils]: 8: Hoare triple {1674#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {1674#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,461 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1674#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {1649#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} #69#return; {1681#(and (<= 1 |ULTIMATE.start_main_#t~ret10#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,462 INFO L290 TraceCheckUtils]: 10: Hoare triple {1681#(and (<= 1 |ULTIMATE.start_main_#t~ret10#1.offset|) (<= ~elem~0.offset 0))} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,462 INFO L272 TraceCheckUtils]: 11: Hoare triple {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {1689#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,463 INFO L290 TraceCheckUtils]: 12: Hoare triple {1689#(<= ~elem~0.offset 0)} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1689#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,463 INFO L290 TraceCheckUtils]: 13: Hoare triple {1689#(<= ~elem~0.offset 0)} assume __getMemory_~size#1 > 0; {1689#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,464 INFO L290 TraceCheckUtils]: 14: Hoare triple {1689#(<= ~elem~0.offset 0)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1689#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,464 INFO L290 TraceCheckUtils]: 15: Hoare triple {1689#(<= ~elem~0.offset 0)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1689#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,464 INFO L290 TraceCheckUtils]: 16: Hoare triple {1689#(<= ~elem~0.offset 0)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1689#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,465 INFO L290 TraceCheckUtils]: 17: Hoare triple {1689#(<= ~elem~0.offset 0)} assume true; {1689#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,465 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1689#(<= ~elem~0.offset 0)} {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} #71#return; {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,466 INFO L290 TraceCheckUtils]: 19: Hoare triple {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,466 INFO L290 TraceCheckUtils]: 20: Hoare triple {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,467 INFO L272 TraceCheckUtils]: 21: Hoare triple {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,468 INFO L290 TraceCheckUtils]: 22: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,468 INFO L290 TraceCheckUtils]: 23: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,469 INFO L290 TraceCheckUtils]: 24: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,469 INFO L290 TraceCheckUtils]: 25: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume !(0 != #t~nondet9);havoc #t~nondet9; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,469 INFO L290 TraceCheckUtils]: 26: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume true; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,471 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} #73#return; {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,472 INFO L272 TraceCheckUtils]: 28: Hoare triple {1685#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1742#(and (<= 1 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,477 INFO L290 TraceCheckUtils]: 29: Hoare triple {1742#(and (<= 1 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1746#(and (<= 1 list_add_~new.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,477 INFO L290 TraceCheckUtils]: 30: Hoare triple {1746#(and (<= 1 list_add_~new.offset) (<= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1613#false} is VALID [2022-02-20 16:49:55,478 INFO L272 TraceCheckUtils]: 31: Hoare triple {1613#false} call __blast_assert(); {1613#false} is VALID [2022-02-20 16:49:55,478 INFO L290 TraceCheckUtils]: 32: Hoare triple {1613#false} assume !false; {1613#false} is VALID [2022-02-20 16:49:55,478 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 16:49:55,478 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:49:56,131 INFO L290 TraceCheckUtils]: 32: Hoare triple {1613#false} assume !false; {1613#false} is VALID [2022-02-20 16:49:56,131 INFO L272 TraceCheckUtils]: 31: Hoare triple {1613#false} call __blast_assert(); {1613#false} is VALID [2022-02-20 16:49:56,132 INFO L290 TraceCheckUtils]: 30: Hoare triple {1762#(not (<= list_add_~new.offset ~elem~0.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1613#false} is VALID [2022-02-20 16:49:56,132 INFO L290 TraceCheckUtils]: 29: Hoare triple {1766#(< ~elem~0.offset |list_add_#in~new.offset|)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1762#(not (<= list_add_~new.offset ~elem~0.offset))} is VALID [2022-02-20 16:49:56,133 INFO L272 TraceCheckUtils]: 28: Hoare triple {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1766#(< ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:56,134 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} #73#return; {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,134 INFO L290 TraceCheckUtils]: 26: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume true; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,134 INFO L290 TraceCheckUtils]: 25: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume !(0 != #t~nondet9);havoc #t~nondet9; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,135 INFO L290 TraceCheckUtils]: 24: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,135 INFO L290 TraceCheckUtils]: 23: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,135 INFO L290 TraceCheckUtils]: 22: Hoare triple {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,136 INFO L272 TraceCheckUtils]: 21: Hoare triple {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1720#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,136 INFO L290 TraceCheckUtils]: 20: Hoare triple {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,136 INFO L290 TraceCheckUtils]: 19: Hoare triple {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,147 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1612#true} {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} #71#return; {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,147 INFO L290 TraceCheckUtils]: 17: Hoare triple {1612#true} assume true; {1612#true} is VALID [2022-02-20 16:49:56,147 INFO L290 TraceCheckUtils]: 16: Hoare triple {1612#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1612#true} is VALID [2022-02-20 16:49:56,147 INFO L290 TraceCheckUtils]: 15: Hoare triple {1612#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1612#true} is VALID [2022-02-20 16:49:56,147 INFO L290 TraceCheckUtils]: 14: Hoare triple {1612#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1612#true} is VALID [2022-02-20 16:49:56,147 INFO L290 TraceCheckUtils]: 13: Hoare triple {1612#true} assume __getMemory_~size#1 > 0; {1612#true} is VALID [2022-02-20 16:49:56,147 INFO L290 TraceCheckUtils]: 12: Hoare triple {1612#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1612#true} is VALID [2022-02-20 16:49:56,148 INFO L272 TraceCheckUtils]: 11: Hoare triple {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {1612#true} is VALID [2022-02-20 16:49:56,148 INFO L290 TraceCheckUtils]: 10: Hoare triple {1825#(< ~elem~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|)} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {1770#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,149 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1833#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset |my_malloc_#res#1.offset|))} {1829#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} #69#return; {1825#(< ~elem~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|)} is VALID [2022-02-20 16:49:56,149 INFO L290 TraceCheckUtils]: 8: Hoare triple {1833#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset |my_malloc_#res#1.offset|))} assume true; {1833#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:49:56,150 INFO L290 TraceCheckUtils]: 7: Hoare triple {1840#(or (< ~elem~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {1833#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:49:56,151 INFO L290 TraceCheckUtils]: 6: Hoare triple {1844#(or (< ~elem~0.offset ~guard_malloc_counter~0.offset) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset))} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {1840#(or (< ~elem~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset))} is VALID [2022-02-20 16:49:56,151 INFO L290 TraceCheckUtils]: 5: Hoare triple {1848#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1)))} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {1844#(or (< ~elem~0.offset ~guard_malloc_counter~0.offset) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset))} is VALID [2022-02-20 16:49:56,152 INFO L290 TraceCheckUtils]: 4: Hoare triple {1848#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1)))} assume __getMemory_~size#1 > 0; {1848#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1)))} is VALID [2022-02-20 16:49:56,153 INFO L290 TraceCheckUtils]: 3: Hoare triple {1848#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1)))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {1848#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1)))} is VALID [2022-02-20 16:49:56,153 INFO L272 TraceCheckUtils]: 2: Hoare triple {1829#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1848#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1)))} is VALID [2022-02-20 16:49:56,154 INFO L290 TraceCheckUtils]: 1: Hoare triple {1829#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {1829#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} is VALID [2022-02-20 16:49:56,154 INFO L290 TraceCheckUtils]: 0: Hoare triple {1612#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {1829#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} is VALID [2022-02-20 16:49:56,154 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 16:49:56,155 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [813158997] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:49:56,155 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:49:56,155 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 12, 12] total 34 [2022-02-20 16:49:56,155 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [297325088] [2022-02-20 16:49:56,155 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:49:56,156 INFO L78 Accepts]: Start accepts. Automaton has has 34 states, 34 states have (on average 1.8529411764705883) internal successors, (63), 26 states have internal predecessors, (63), 7 states have call successors, (13), 11 states have call predecessors, (13), 7 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) Word has length 33 [2022-02-20 16:49:56,157 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:56,157 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 34 states, 34 states have (on average 1.8529411764705883) internal successors, (63), 26 states have internal predecessors, (63), 7 states have call successors, (13), 11 states have call predecessors, (13), 7 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 16:49:56,218 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 85 edges. 85 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:56,219 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 34 states [2022-02-20 16:49:56,219 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:56,219 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 34 interpolants. [2022-02-20 16:49:56,220 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=125, Invalid=997, Unknown=0, NotChecked=0, Total=1122 [2022-02-20 16:49:56,220 INFO L87 Difference]: Start difference. First operand 44 states and 50 transitions. Second operand has 34 states, 34 states have (on average 1.8529411764705883) internal successors, (63), 26 states have internal predecessors, (63), 7 states have call successors, (13), 11 states have call predecessors, (13), 7 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 16:49:57,615 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:57,616 INFO L93 Difference]: Finished difference Result 57 states and 61 transitions. [2022-02-20 16:49:57,616 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-02-20 16:49:57,617 INFO L78 Accepts]: Start accepts. Automaton has has 34 states, 34 states have (on average 1.8529411764705883) internal successors, (63), 26 states have internal predecessors, (63), 7 states have call successors, (13), 11 states have call predecessors, (13), 7 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) Word has length 33 [2022-02-20 16:49:57,617 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:57,618 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 34 states have (on average 1.8529411764705883) internal successors, (63), 26 states have internal predecessors, (63), 7 states have call successors, (13), 11 states have call predecessors, (13), 7 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 16:49:57,620 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 60 transitions. [2022-02-20 16:49:57,620 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 34 states have (on average 1.8529411764705883) internal successors, (63), 26 states have internal predecessors, (63), 7 states have call successors, (13), 11 states have call predecessors, (13), 7 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 16:49:57,621 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 60 transitions. [2022-02-20 16:49:57,622 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states and 60 transitions. [2022-02-20 16:49:57,678 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:57,679 INFO L225 Difference]: With dead ends: 57 [2022-02-20 16:49:57,680 INFO L226 Difference]: Without dead ends: 54 [2022-02-20 16:49:57,680 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 93 GetRequests, 50 SyntacticMatches, 0 SemanticMatches, 43 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 302 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=285, Invalid=1695, Unknown=0, NotChecked=0, Total=1980 [2022-02-20 16:49:57,681 INFO L933 BasicCegarLoop]: 26 mSDtfsCounter, 133 mSDsluCounter, 71 mSDsCounter, 0 mSdLazyCounter, 556 mSolverCounterSat, 77 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 133 SdHoareTripleChecker+Valid, 97 SdHoareTripleChecker+Invalid, 633 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 77 IncrementalHoareTripleChecker+Valid, 556 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:57,681 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [133 Valid, 97 Invalid, 633 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [77 Valid, 556 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-02-20 16:49:57,682 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2022-02-20 16:49:57,711 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 44. [2022-02-20 16:49:57,712 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:57,712 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand has 44 states, 32 states have (on average 1.09375) internal successors, (35), 32 states have internal predecessors, (35), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-02-20 16:49:57,712 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand has 44 states, 32 states have (on average 1.09375) internal successors, (35), 32 states have internal predecessors, (35), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-02-20 16:49:57,712 INFO L87 Difference]: Start difference. First operand 54 states. Second operand has 44 states, 32 states have (on average 1.09375) internal successors, (35), 32 states have internal predecessors, (35), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-02-20 16:49:57,714 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:57,714 INFO L93 Difference]: Finished difference Result 54 states and 58 transitions. [2022-02-20 16:49:57,714 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 58 transitions. [2022-02-20 16:49:57,715 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:57,715 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:57,715 INFO L74 IsIncluded]: Start isIncluded. First operand has 44 states, 32 states have (on average 1.09375) internal successors, (35), 32 states have internal predecessors, (35), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Second operand 54 states. [2022-02-20 16:49:57,715 INFO L87 Difference]: Start difference. First operand has 44 states, 32 states have (on average 1.09375) internal successors, (35), 32 states have internal predecessors, (35), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Second operand 54 states. [2022-02-20 16:49:57,717 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:57,717 INFO L93 Difference]: Finished difference Result 54 states and 58 transitions. [2022-02-20 16:49:57,717 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 58 transitions. [2022-02-20 16:49:57,718 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:57,718 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:57,718 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:57,718 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:57,718 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 32 states have (on average 1.09375) internal successors, (35), 32 states have internal predecessors, (35), 7 states have call successors, (7), 6 states have call predecessors, (7), 4 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-02-20 16:49:57,720 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 49 transitions. [2022-02-20 16:49:57,720 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 49 transitions. Word has length 33 [2022-02-20 16:49:57,720 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:57,720 INFO L470 AbstractCegarLoop]: Abstraction has 44 states and 49 transitions. [2022-02-20 16:49:57,721 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 34 states, 34 states have (on average 1.8529411764705883) internal successors, (63), 26 states have internal predecessors, (63), 7 states have call successors, (13), 11 states have call predecessors, (13), 7 states have return successors, (9), 6 states have call predecessors, (9), 6 states have call successors, (9) [2022-02-20 16:49:57,721 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2022-02-20 16:49:57,721 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2022-02-20 16:49:57,722 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:57,722 INFO L514 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:49:57,747 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Forceful destruction successful, exit code 0 [2022-02-20 16:49:57,935 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:57,935 INFO L402 AbstractCegarLoop]: === Iteration 7 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:57,936 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:57,936 INFO L85 PathProgramCache]: Analyzing trace with hash 1230299368, now seen corresponding path program 1 times [2022-02-20 16:49:57,936 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:57,936 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [725299506] [2022-02-20 16:49:57,936 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:57,936 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:57,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:58,022 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:58,035 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:58,051 INFO L290 TraceCheckUtils]: 0: Hoare triple {2163#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,052 INFO L290 TraceCheckUtils]: 1: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume __getMemory_~size#1 > 0; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,052 INFO L290 TraceCheckUtils]: 2: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,053 INFO L290 TraceCheckUtils]: 3: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,053 INFO L290 TraceCheckUtils]: 4: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,054 INFO L290 TraceCheckUtils]: 5: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume true; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,055 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} {2130#(= ~guard_malloc_counter~0.base 0)} #69#return; {2130#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:58,055 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:58,059 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:58,082 INFO L290 TraceCheckUtils]: 0: Hoare triple {2163#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,083 INFO L290 TraceCheckUtils]: 1: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume __getMemory_~size#1 > 0; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,083 INFO L290 TraceCheckUtils]: 2: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,084 INFO L290 TraceCheckUtils]: 3: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2165#(= |my_malloc___getMemory_#res#1.base| |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,084 INFO L290 TraceCheckUtils]: 4: Hoare triple {2165#(= |my_malloc___getMemory_#res#1.base| |old(~guard_malloc_counter~0.base)|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2166#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} is VALID [2022-02-20 16:49:58,084 INFO L290 TraceCheckUtils]: 5: Hoare triple {2166#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} assume true; {2166#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} is VALID [2022-02-20 16:49:58,085 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2166#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} {2130#(= ~guard_malloc_counter~0.base 0)} #71#return; {2145#(= |ULTIMATE.start_main_#t~ret11#1.base| 0)} is VALID [2022-02-20 16:49:58,097 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 16:49:58,099 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:58,102 INFO L290 TraceCheckUtils]: 0: Hoare triple {2167#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2128#true} is VALID [2022-02-20 16:49:58,102 INFO L290 TraceCheckUtils]: 1: Hoare triple {2128#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2128#true} is VALID [2022-02-20 16:49:58,102 INFO L290 TraceCheckUtils]: 2: Hoare triple {2128#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2128#true} is VALID [2022-02-20 16:49:58,103 INFO L290 TraceCheckUtils]: 3: Hoare triple {2128#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2128#true} is VALID [2022-02-20 16:49:58,103 INFO L290 TraceCheckUtils]: 4: Hoare triple {2128#true} assume true; {2128#true} is VALID [2022-02-20 16:49:58,104 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2128#true} {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} #73#return; {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:58,104 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 28 [2022-02-20 16:49:58,106 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:58,109 INFO L290 TraceCheckUtils]: 0: Hoare triple {2167#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2128#true} is VALID [2022-02-20 16:49:58,109 INFO L290 TraceCheckUtils]: 1: Hoare triple {2128#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2128#true} is VALID [2022-02-20 16:49:58,109 INFO L290 TraceCheckUtils]: 2: Hoare triple {2128#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2128#true} is VALID [2022-02-20 16:49:58,109 INFO L290 TraceCheckUtils]: 3: Hoare triple {2128#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2128#true} is VALID [2022-02-20 16:49:58,109 INFO L290 TraceCheckUtils]: 4: Hoare triple {2128#true} assume true; {2128#true} is VALID [2022-02-20 16:49:58,110 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2128#true} {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} #75#return; {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:58,111 INFO L290 TraceCheckUtils]: 0: Hoare triple {2128#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2130#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:58,111 INFO L290 TraceCheckUtils]: 1: Hoare triple {2130#(= ~guard_malloc_counter~0.base 0)} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {2130#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:58,112 INFO L272 TraceCheckUtils]: 2: Hoare triple {2130#(= ~guard_malloc_counter~0.base 0)} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2163#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:58,112 INFO L290 TraceCheckUtils]: 3: Hoare triple {2163#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,112 INFO L290 TraceCheckUtils]: 4: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume __getMemory_~size#1 > 0; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,113 INFO L290 TraceCheckUtils]: 5: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,113 INFO L290 TraceCheckUtils]: 6: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,114 INFO L290 TraceCheckUtils]: 7: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,114 INFO L290 TraceCheckUtils]: 8: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume true; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,115 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} {2130#(= ~guard_malloc_counter~0.base 0)} #69#return; {2130#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:58,115 INFO L290 TraceCheckUtils]: 10: Hoare triple {2130#(= ~guard_malloc_counter~0.base 0)} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {2130#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:58,116 INFO L272 TraceCheckUtils]: 11: Hoare triple {2130#(= ~guard_malloc_counter~0.base 0)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2163#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:49:58,116 INFO L290 TraceCheckUtils]: 12: Hoare triple {2163#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,117 INFO L290 TraceCheckUtils]: 13: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume __getMemory_~size#1 > 0; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,117 INFO L290 TraceCheckUtils]: 14: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,118 INFO L290 TraceCheckUtils]: 15: Hoare triple {2164#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2165#(= |my_malloc___getMemory_#res#1.base| |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:58,118 INFO L290 TraceCheckUtils]: 16: Hoare triple {2165#(= |my_malloc___getMemory_#res#1.base| |old(~guard_malloc_counter~0.base)|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2166#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} is VALID [2022-02-20 16:49:58,119 INFO L290 TraceCheckUtils]: 17: Hoare triple {2166#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} assume true; {2166#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} is VALID [2022-02-20 16:49:58,119 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2166#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} {2130#(= ~guard_malloc_counter~0.base 0)} #71#return; {2145#(= |ULTIMATE.start_main_#t~ret11#1.base| 0)} is VALID [2022-02-20 16:49:58,120 INFO L290 TraceCheckUtils]: 19: Hoare triple {2145#(= |ULTIMATE.start_main_#t~ret11#1.base| 0)} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {2146#(= |ULTIMATE.start_main_~dev2~0#1.base| 0)} is VALID [2022-02-20 16:49:58,120 INFO L290 TraceCheckUtils]: 20: Hoare triple {2146#(= |ULTIMATE.start_main_~dev2~0#1.base| 0)} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:58,121 INFO L272 TraceCheckUtils]: 21: Hoare triple {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2167#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:49:58,121 INFO L290 TraceCheckUtils]: 22: Hoare triple {2167#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2128#true} is VALID [2022-02-20 16:49:58,121 INFO L290 TraceCheckUtils]: 23: Hoare triple {2128#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2128#true} is VALID [2022-02-20 16:49:58,122 INFO L290 TraceCheckUtils]: 24: Hoare triple {2128#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2128#true} is VALID [2022-02-20 16:49:58,122 INFO L290 TraceCheckUtils]: 25: Hoare triple {2128#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2128#true} is VALID [2022-02-20 16:49:58,122 INFO L290 TraceCheckUtils]: 26: Hoare triple {2128#true} assume true; {2128#true} is VALID [2022-02-20 16:49:58,123 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2128#true} {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} #73#return; {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:58,124 INFO L272 TraceCheckUtils]: 28: Hoare triple {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {2167#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:49:58,124 INFO L290 TraceCheckUtils]: 29: Hoare triple {2167#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2128#true} is VALID [2022-02-20 16:49:58,124 INFO L290 TraceCheckUtils]: 30: Hoare triple {2128#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2128#true} is VALID [2022-02-20 16:49:58,124 INFO L290 TraceCheckUtils]: 31: Hoare triple {2128#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2128#true} is VALID [2022-02-20 16:49:58,124 INFO L290 TraceCheckUtils]: 32: Hoare triple {2128#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2128#true} is VALID [2022-02-20 16:49:58,124 INFO L290 TraceCheckUtils]: 33: Hoare triple {2128#true} assume true; {2128#true} is VALID [2022-02-20 16:49:58,125 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2128#true} {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} #75#return; {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:58,126 INFO L290 TraceCheckUtils]: 35: Hoare triple {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} assume { :begin_inline_list_del } true;list_del_#in~entry#1.base, list_del_#in~entry#1.offset := main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc list_del_~entry#1.base, list_del_~entry#1.offset;list_del_~entry#1.base, list_del_~entry#1.offset := list_del_#in~entry#1.base, list_del_#in~entry#1.offset; {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:58,126 INFO L290 TraceCheckUtils]: 36: Hoare triple {2147#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} assume list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {2160#(and (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|)) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:58,127 INFO L290 TraceCheckUtils]: 37: Hoare triple {2160#(and (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|)) (= ~elem~0.offset 0))} assume { :end_inline_list_del } true; {2160#(and (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|)) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:58,128 INFO L272 TraceCheckUtils]: 38: Hoare triple {2160#(and (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|)) (= ~elem~0.offset 0))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2161#(not (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:49:58,128 INFO L290 TraceCheckUtils]: 39: Hoare triple {2161#(not (= ~elem~0.offset |list_add_#in~new.offset|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2162#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2022-02-20 16:49:58,128 INFO L290 TraceCheckUtils]: 40: Hoare triple {2162#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2129#false} is VALID [2022-02-20 16:49:58,129 INFO L272 TraceCheckUtils]: 41: Hoare triple {2129#false} call __blast_assert(); {2129#false} is VALID [2022-02-20 16:49:58,129 INFO L290 TraceCheckUtils]: 42: Hoare triple {2129#false} assume !false; {2129#false} is VALID [2022-02-20 16:49:58,129 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 2 proven. 5 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 16:49:58,129 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:58,129 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [725299506] [2022-02-20 16:49:58,129 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [725299506] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:58,130 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2057499771] [2022-02-20 16:49:58,130 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:58,130 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:58,130 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:58,132 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 16:49:58,136 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-02-20 16:49:58,215 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:58,217 INFO L263 TraceCheckSpWp]: Trace formula consists of 251 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:49:58,236 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:58,237 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:58,717 INFO L290 TraceCheckUtils]: 0: Hoare triple {2128#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2128#true} is VALID [2022-02-20 16:49:58,717 INFO L290 TraceCheckUtils]: 1: Hoare triple {2128#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {2128#true} is VALID [2022-02-20 16:49:58,717 INFO L272 TraceCheckUtils]: 2: Hoare triple {2128#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2128#true} is VALID [2022-02-20 16:49:58,718 INFO L290 TraceCheckUtils]: 3: Hoare triple {2128#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2128#true} is VALID [2022-02-20 16:49:58,718 INFO L290 TraceCheckUtils]: 4: Hoare triple {2128#true} assume __getMemory_~size#1 > 0; {2128#true} is VALID [2022-02-20 16:49:58,718 INFO L290 TraceCheckUtils]: 5: Hoare triple {2128#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2128#true} is VALID [2022-02-20 16:49:58,718 INFO L290 TraceCheckUtils]: 6: Hoare triple {2128#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2189#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,718 INFO L290 TraceCheckUtils]: 7: Hoare triple {2189#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2193#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,719 INFO L290 TraceCheckUtils]: 8: Hoare triple {2193#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {2193#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,719 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2193#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {2128#true} #69#return; {2200#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,720 INFO L290 TraceCheckUtils]: 10: Hoare triple {2200#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {2204#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,720 INFO L272 TraceCheckUtils]: 11: Hoare triple {2204#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,720 INFO L290 TraceCheckUtils]: 12: Hoare triple {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,721 INFO L290 TraceCheckUtils]: 13: Hoare triple {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume __getMemory_~size#1 > 0; {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,721 INFO L290 TraceCheckUtils]: 14: Hoare triple {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2218#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:58,722 INFO L290 TraceCheckUtils]: 15: Hoare triple {2218#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2222#(and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:58,722 INFO L290 TraceCheckUtils]: 16: Hoare triple {2222#(and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2226#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:58,722 INFO L290 TraceCheckUtils]: 17: Hoare triple {2226#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} assume true; {2226#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:58,723 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2226#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} {2204#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #71#return; {2233#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:58,724 INFO L290 TraceCheckUtils]: 19: Hoare triple {2233#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:58,724 INFO L290 TraceCheckUtils]: 20: Hoare triple {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:58,724 INFO L272 TraceCheckUtils]: 21: Hoare triple {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2128#true} is VALID [2022-02-20 16:49:58,724 INFO L290 TraceCheckUtils]: 22: Hoare triple {2128#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2128#true} is VALID [2022-02-20 16:49:58,724 INFO L290 TraceCheckUtils]: 23: Hoare triple {2128#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2128#true} is VALID [2022-02-20 16:49:58,724 INFO L290 TraceCheckUtils]: 24: Hoare triple {2128#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2128#true} is VALID [2022-02-20 16:49:58,724 INFO L290 TraceCheckUtils]: 25: Hoare triple {2128#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2128#true} is VALID [2022-02-20 16:49:58,724 INFO L290 TraceCheckUtils]: 26: Hoare triple {2128#true} assume true; {2128#true} is VALID [2022-02-20 16:49:58,725 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2128#true} {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #73#return; {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:58,725 INFO L272 TraceCheckUtils]: 28: Hoare triple {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {2128#true} is VALID [2022-02-20 16:49:58,725 INFO L290 TraceCheckUtils]: 29: Hoare triple {2128#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:58,726 INFO L290 TraceCheckUtils]: 30: Hoare triple {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:58,726 INFO L290 TraceCheckUtils]: 31: Hoare triple {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:58,727 INFO L290 TraceCheckUtils]: 32: Hoare triple {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2278#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:58,727 INFO L290 TraceCheckUtils]: 33: Hoare triple {2278#(<= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2278#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:58,728 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2278#(<= ~elem~0.offset |list_add_#in~new.offset|)} {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #75#return; {2285#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:58,728 INFO L290 TraceCheckUtils]: 35: Hoare triple {2285#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} assume { :begin_inline_list_del } true;list_del_#in~entry#1.base, list_del_#in~entry#1.offset := main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc list_del_~entry#1.base, list_del_~entry#1.offset;list_del_~entry#1.base, list_del_~entry#1.offset := list_del_#in~entry#1.base, list_del_#in~entry#1.offset; {2289#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_list_del_~entry#1.offset|)} is VALID [2022-02-20 16:49:58,728 INFO L290 TraceCheckUtils]: 36: Hoare triple {2289#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_list_del_~entry#1.offset|)} assume list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {2129#false} is VALID [2022-02-20 16:49:58,729 INFO L290 TraceCheckUtils]: 37: Hoare triple {2129#false} assume { :end_inline_list_del } true; {2129#false} is VALID [2022-02-20 16:49:58,729 INFO L272 TraceCheckUtils]: 38: Hoare triple {2129#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2129#false} is VALID [2022-02-20 16:49:58,729 INFO L290 TraceCheckUtils]: 39: Hoare triple {2129#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2129#false} is VALID [2022-02-20 16:49:58,729 INFO L290 TraceCheckUtils]: 40: Hoare triple {2129#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2129#false} is VALID [2022-02-20 16:49:58,729 INFO L272 TraceCheckUtils]: 41: Hoare triple {2129#false} call __blast_assert(); {2129#false} is VALID [2022-02-20 16:49:58,729 INFO L290 TraceCheckUtils]: 42: Hoare triple {2129#false} assume !false; {2129#false} is VALID [2022-02-20 16:49:58,729 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 13 proven. 3 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-02-20 16:49:58,729 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:49:59,346 INFO L290 TraceCheckUtils]: 42: Hoare triple {2129#false} assume !false; {2129#false} is VALID [2022-02-20 16:49:59,346 INFO L272 TraceCheckUtils]: 41: Hoare triple {2129#false} call __blast_assert(); {2129#false} is VALID [2022-02-20 16:49:59,346 INFO L290 TraceCheckUtils]: 40: Hoare triple {2129#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2129#false} is VALID [2022-02-20 16:49:59,346 INFO L290 TraceCheckUtils]: 39: Hoare triple {2129#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2129#false} is VALID [2022-02-20 16:49:59,347 INFO L272 TraceCheckUtils]: 38: Hoare triple {2129#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2129#false} is VALID [2022-02-20 16:49:59,347 INFO L290 TraceCheckUtils]: 37: Hoare triple {2129#false} assume { :end_inline_list_del } true; {2129#false} is VALID [2022-02-20 16:49:59,347 INFO L290 TraceCheckUtils]: 36: Hoare triple {2289#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_list_del_~entry#1.offset|)} assume list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0, 0; {2129#false} is VALID [2022-02-20 16:49:59,348 INFO L290 TraceCheckUtils]: 35: Hoare triple {2285#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} assume { :begin_inline_list_del } true;list_del_#in~entry#1.base, list_del_#in~entry#1.offset := main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc list_del_~entry#1.base, list_del_~entry#1.offset;list_del_~entry#1.base, list_del_~entry#1.offset := list_del_#in~entry#1.base, list_del_#in~entry#1.offset; {2289#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_list_del_~entry#1.offset|)} is VALID [2022-02-20 16:49:59,349 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2278#(<= ~elem~0.offset |list_add_#in~new.offset|)} {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #75#return; {2285#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:59,350 INFO L290 TraceCheckUtils]: 33: Hoare triple {2278#(<= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2278#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,350 INFO L290 TraceCheckUtils]: 32: Hoare triple {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2278#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,350 INFO L290 TraceCheckUtils]: 31: Hoare triple {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,351 INFO L290 TraceCheckUtils]: 30: Hoare triple {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,351 INFO L290 TraceCheckUtils]: 29: Hoare triple {2128#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2268#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,351 INFO L272 TraceCheckUtils]: 28: Hoare triple {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {2128#true} is VALID [2022-02-20 16:49:59,352 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2128#true} {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #73#return; {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:59,352 INFO L290 TraceCheckUtils]: 26: Hoare triple {2128#true} assume true; {2128#true} is VALID [2022-02-20 16:49:59,353 INFO L290 TraceCheckUtils]: 25: Hoare triple {2128#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2128#true} is VALID [2022-02-20 16:49:59,353 INFO L290 TraceCheckUtils]: 24: Hoare triple {2128#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2128#true} is VALID [2022-02-20 16:49:59,353 INFO L290 TraceCheckUtils]: 23: Hoare triple {2128#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2128#true} is VALID [2022-02-20 16:49:59,353 INFO L290 TraceCheckUtils]: 22: Hoare triple {2128#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2128#true} is VALID [2022-02-20 16:49:59,353 INFO L272 TraceCheckUtils]: 21: Hoare triple {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2128#true} is VALID [2022-02-20 16:49:59,354 INFO L290 TraceCheckUtils]: 20: Hoare triple {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:59,354 INFO L290 TraceCheckUtils]: 19: Hoare triple {2233#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {2237#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:59,355 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2386#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {2204#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #71#return; {2233#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:59,356 INFO L290 TraceCheckUtils]: 17: Hoare triple {2386#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {2386#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:59,356 INFO L290 TraceCheckUtils]: 16: Hoare triple {2393#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2386#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:59,357 INFO L290 TraceCheckUtils]: 15: Hoare triple {2218#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2393#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:59,357 INFO L290 TraceCheckUtils]: 14: Hoare triple {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2218#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,358 INFO L290 TraceCheckUtils]: 13: Hoare triple {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume __getMemory_~size#1 > 0; {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,358 INFO L290 TraceCheckUtils]: 12: Hoare triple {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,359 INFO L272 TraceCheckUtils]: 11: Hoare triple {2204#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2208#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,359 INFO L290 TraceCheckUtils]: 10: Hoare triple {2200#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {2204#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,360 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2193#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {2128#true} #69#return; {2200#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,360 INFO L290 TraceCheckUtils]: 8: Hoare triple {2193#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {2193#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,361 INFO L290 TraceCheckUtils]: 7: Hoare triple {2189#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2193#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,361 INFO L290 TraceCheckUtils]: 6: Hoare triple {2128#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2189#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,362 INFO L290 TraceCheckUtils]: 5: Hoare triple {2128#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2128#true} is VALID [2022-02-20 16:49:59,362 INFO L290 TraceCheckUtils]: 4: Hoare triple {2128#true} assume __getMemory_~size#1 > 0; {2128#true} is VALID [2022-02-20 16:49:59,362 INFO L290 TraceCheckUtils]: 3: Hoare triple {2128#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2128#true} is VALID [2022-02-20 16:49:59,362 INFO L272 TraceCheckUtils]: 2: Hoare triple {2128#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2128#true} is VALID [2022-02-20 16:49:59,362 INFO L290 TraceCheckUtils]: 1: Hoare triple {2128#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {2128#true} is VALID [2022-02-20 16:49:59,362 INFO L290 TraceCheckUtils]: 0: Hoare triple {2128#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2128#true} is VALID [2022-02-20 16:49:59,363 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 13 proven. 3 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-02-20 16:49:59,363 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2057499771] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:49:59,363 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:49:59,363 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 16, 16] total 30 [2022-02-20 16:49:59,363 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1434240361] [2022-02-20 16:49:59,364 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:49:59,364 INFO L78 Accepts]: Start accepts. Automaton has has 30 states, 29 states have (on average 1.9310344827586208) internal successors, (56), 23 states have internal predecessors, (56), 7 states have call successors, (11), 6 states have call predecessors, (11), 7 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) Word has length 43 [2022-02-20 16:49:59,365 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:59,365 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 30 states, 29 states have (on average 1.9310344827586208) internal successors, (56), 23 states have internal predecessors, (56), 7 states have call successors, (11), 6 states have call predecessors, (11), 7 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:49:59,422 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:59,422 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 30 states [2022-02-20 16:49:59,422 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:59,422 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 30 interpolants. [2022-02-20 16:49:59,423 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=803, Unknown=0, NotChecked=0, Total=870 [2022-02-20 16:49:59,423 INFO L87 Difference]: Start difference. First operand 44 states and 49 transitions. Second operand has 30 states, 29 states have (on average 1.9310344827586208) internal successors, (56), 23 states have internal predecessors, (56), 7 states have call successors, (11), 6 states have call predecessors, (11), 7 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:50:01,065 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:01,071 INFO L93 Difference]: Finished difference Result 61 states and 66 transitions. [2022-02-20 16:50:01,072 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2022-02-20 16:50:01,072 INFO L78 Accepts]: Start accepts. Automaton has has 30 states, 29 states have (on average 1.9310344827586208) internal successors, (56), 23 states have internal predecessors, (56), 7 states have call successors, (11), 6 states have call predecessors, (11), 7 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) Word has length 43 [2022-02-20 16:50:01,073 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:01,073 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 30 states, 29 states have (on average 1.9310344827586208) internal successors, (56), 23 states have internal predecessors, (56), 7 states have call successors, (11), 6 states have call predecessors, (11), 7 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:50:01,075 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 53 transitions. [2022-02-20 16:50:01,076 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 30 states, 29 states have (on average 1.9310344827586208) internal successors, (56), 23 states have internal predecessors, (56), 7 states have call successors, (11), 6 states have call predecessors, (11), 7 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:50:01,080 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 53 transitions. [2022-02-20 16:50:01,080 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 22 states and 53 transitions. [2022-02-20 16:50:01,132 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:01,135 INFO L225 Difference]: With dead ends: 61 [2022-02-20 16:50:01,135 INFO L226 Difference]: Without dead ends: 37 [2022-02-20 16:50:01,136 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 126 GetRequests, 78 SyntacticMatches, 1 SemanticMatches, 47 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 275 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=256, Invalid=2096, Unknown=0, NotChecked=0, Total=2352 [2022-02-20 16:50:01,137 INFO L933 BasicCegarLoop]: 22 mSDtfsCounter, 102 mSDsluCounter, 136 mSDsCounter, 0 mSdLazyCounter, 675 mSolverCounterSat, 58 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 102 SdHoareTripleChecker+Valid, 158 SdHoareTripleChecker+Invalid, 733 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 58 IncrementalHoareTripleChecker+Valid, 675 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.6s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:01,138 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [102 Valid, 158 Invalid, 733 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [58 Valid, 675 Invalid, 0 Unknown, 0 Unchecked, 0.6s Time] [2022-02-20 16:50:01,138 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 37 states. [2022-02-20 16:50:01,168 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 37 to 37. [2022-02-20 16:50:01,168 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:01,169 INFO L82 GeneralOperation]: Start isEquivalent. First operand 37 states. Second operand has 37 states, 27 states have (on average 1.037037037037037) internal successors, (28), 27 states have internal predecessors, (28), 6 states have call successors, (6), 5 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:50:01,169 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand has 37 states, 27 states have (on average 1.037037037037037) internal successors, (28), 27 states have internal predecessors, (28), 6 states have call successors, (6), 5 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:50:01,169 INFO L87 Difference]: Start difference. First operand 37 states. Second operand has 37 states, 27 states have (on average 1.037037037037037) internal successors, (28), 27 states have internal predecessors, (28), 6 states have call successors, (6), 5 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:50:01,170 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:01,170 INFO L93 Difference]: Finished difference Result 37 states and 38 transitions. [2022-02-20 16:50:01,170 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 38 transitions. [2022-02-20 16:50:01,170 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:01,171 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:01,171 INFO L74 IsIncluded]: Start isIncluded. First operand has 37 states, 27 states have (on average 1.037037037037037) internal successors, (28), 27 states have internal predecessors, (28), 6 states have call successors, (6), 5 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 37 states. [2022-02-20 16:50:01,171 INFO L87 Difference]: Start difference. First operand has 37 states, 27 states have (on average 1.037037037037037) internal successors, (28), 27 states have internal predecessors, (28), 6 states have call successors, (6), 5 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 37 states. [2022-02-20 16:50:01,172 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:01,172 INFO L93 Difference]: Finished difference Result 37 states and 38 transitions. [2022-02-20 16:50:01,172 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 38 transitions. [2022-02-20 16:50:01,173 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:01,173 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:01,173 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:01,173 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:01,173 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 37 states, 27 states have (on average 1.037037037037037) internal successors, (28), 27 states have internal predecessors, (28), 6 states have call successors, (6), 5 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-02-20 16:50:01,174 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 38 transitions. [2022-02-20 16:50:01,175 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 38 transitions. Word has length 43 [2022-02-20 16:50:01,175 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:01,175 INFO L470 AbstractCegarLoop]: Abstraction has 37 states and 38 transitions. [2022-02-20 16:50:01,175 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 30 states, 29 states have (on average 1.9310344827586208) internal successors, (56), 23 states have internal predecessors, (56), 7 states have call successors, (11), 6 states have call predecessors, (11), 7 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:50:01,175 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 38 transitions. [2022-02-20 16:50:01,176 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2022-02-20 16:50:01,176 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:01,176 INFO L514 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:50:01,194 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:01,383 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:50:01,384 INFO L402 AbstractCegarLoop]: === Iteration 8 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:01,384 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:01,384 INFO L85 PathProgramCache]: Analyzing trace with hash -588595988, now seen corresponding path program 1 times [2022-02-20 16:50:01,384 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:50:01,384 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [702327333] [2022-02-20 16:50:01,384 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:01,385 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:50:01,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:01,445 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:50:01,447 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:01,451 INFO L290 TraceCheckUtils]: 0: Hoare triple {2717#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2684#true} is VALID [2022-02-20 16:50:01,451 INFO L290 TraceCheckUtils]: 1: Hoare triple {2684#true} assume __getMemory_~size#1 > 0; {2684#true} is VALID [2022-02-20 16:50:01,451 INFO L290 TraceCheckUtils]: 2: Hoare triple {2684#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2684#true} is VALID [2022-02-20 16:50:01,451 INFO L290 TraceCheckUtils]: 3: Hoare triple {2684#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2684#true} is VALID [2022-02-20 16:50:01,451 INFO L290 TraceCheckUtils]: 4: Hoare triple {2684#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,451 INFO L290 TraceCheckUtils]: 5: Hoare triple {2684#true} assume true; {2684#true} is VALID [2022-02-20 16:50:01,452 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2684#true} {2684#true} #69#return; {2684#true} is VALID [2022-02-20 16:50:01,452 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:50:01,454 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:01,464 INFO L290 TraceCheckUtils]: 0: Hoare triple {2717#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2684#true} is VALID [2022-02-20 16:50:01,464 INFO L290 TraceCheckUtils]: 1: Hoare triple {2684#true} assume __getMemory_~size#1 > 0; {2684#true} is VALID [2022-02-20 16:50:01,465 INFO L290 TraceCheckUtils]: 2: Hoare triple {2684#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2684#true} is VALID [2022-02-20 16:50:01,465 INFO L290 TraceCheckUtils]: 3: Hoare triple {2684#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2684#true} is VALID [2022-02-20 16:50:01,465 INFO L290 TraceCheckUtils]: 4: Hoare triple {2684#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,465 INFO L290 TraceCheckUtils]: 5: Hoare triple {2684#true} assume true; {2684#true} is VALID [2022-02-20 16:50:01,465 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2684#true} {2684#true} #71#return; {2684#true} is VALID [2022-02-20 16:50:01,472 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 16:50:01,475 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:01,492 INFO L290 TraceCheckUtils]: 0: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2719#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,493 INFO L290 TraceCheckUtils]: 1: Hoare triple {2719#(= list_add_~new.base |list_add_#in~new.base|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2719#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,494 INFO L290 TraceCheckUtils]: 2: Hoare triple {2719#(= list_add_~new.base |list_add_#in~new.base|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2719#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,494 INFO L290 TraceCheckUtils]: 3: Hoare triple {2719#(= list_add_~new.base |list_add_#in~new.base|)} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2720#(= ~elem~0.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,494 INFO L290 TraceCheckUtils]: 4: Hoare triple {2720#(= ~elem~0.base |list_add_#in~new.base|)} assume true; {2720#(= ~elem~0.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,495 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2720#(= ~elem~0.base |list_add_#in~new.base|)} {2684#true} #73#return; {2706#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} is VALID [2022-02-20 16:50:01,496 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 28 [2022-02-20 16:50:01,498 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:01,511 INFO L290 TraceCheckUtils]: 0: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,512 INFO L290 TraceCheckUtils]: 1: Hoare triple {2721#(= |old(~elem~0.base)| ~elem~0.base)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,513 INFO L290 TraceCheckUtils]: 2: Hoare triple {2721#(= |old(~elem~0.base)| ~elem~0.base)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,513 INFO L290 TraceCheckUtils]: 3: Hoare triple {2721#(= |old(~elem~0.base)| ~elem~0.base)} assume !(0 != #t~nondet9);havoc #t~nondet9; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,513 INFO L290 TraceCheckUtils]: 4: Hoare triple {2721#(= |old(~elem~0.base)| ~elem~0.base)} assume true; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,514 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2721#(= |old(~elem~0.base)| ~elem~0.base)} {2706#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} #75#return; {2706#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} is VALID [2022-02-20 16:50:01,514 INFO L290 TraceCheckUtils]: 0: Hoare triple {2684#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2684#true} is VALID [2022-02-20 16:50:01,514 INFO L290 TraceCheckUtils]: 1: Hoare triple {2684#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,515 INFO L272 TraceCheckUtils]: 2: Hoare triple {2684#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2717#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:50:01,515 INFO L290 TraceCheckUtils]: 3: Hoare triple {2717#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2684#true} is VALID [2022-02-20 16:50:01,515 INFO L290 TraceCheckUtils]: 4: Hoare triple {2684#true} assume __getMemory_~size#1 > 0; {2684#true} is VALID [2022-02-20 16:50:01,515 INFO L290 TraceCheckUtils]: 5: Hoare triple {2684#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2684#true} is VALID [2022-02-20 16:50:01,515 INFO L290 TraceCheckUtils]: 6: Hoare triple {2684#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2684#true} is VALID [2022-02-20 16:50:01,515 INFO L290 TraceCheckUtils]: 7: Hoare triple {2684#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,515 INFO L290 TraceCheckUtils]: 8: Hoare triple {2684#true} assume true; {2684#true} is VALID [2022-02-20 16:50:01,515 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2684#true} {2684#true} #69#return; {2684#true} is VALID [2022-02-20 16:50:01,515 INFO L290 TraceCheckUtils]: 10: Hoare triple {2684#true} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,516 INFO L272 TraceCheckUtils]: 11: Hoare triple {2684#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2717#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} is VALID [2022-02-20 16:50:01,516 INFO L290 TraceCheckUtils]: 12: Hoare triple {2717#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2684#true} is VALID [2022-02-20 16:50:01,516 INFO L290 TraceCheckUtils]: 13: Hoare triple {2684#true} assume __getMemory_~size#1 > 0; {2684#true} is VALID [2022-02-20 16:50:01,516 INFO L290 TraceCheckUtils]: 14: Hoare triple {2684#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2684#true} is VALID [2022-02-20 16:50:01,516 INFO L290 TraceCheckUtils]: 15: Hoare triple {2684#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2684#true} is VALID [2022-02-20 16:50:01,516 INFO L290 TraceCheckUtils]: 16: Hoare triple {2684#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,516 INFO L290 TraceCheckUtils]: 17: Hoare triple {2684#true} assume true; {2684#true} is VALID [2022-02-20 16:50:01,516 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2684#true} {2684#true} #71#return; {2684#true} is VALID [2022-02-20 16:50:01,516 INFO L290 TraceCheckUtils]: 19: Hoare triple {2684#true} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,517 INFO L290 TraceCheckUtils]: 20: Hoare triple {2684#true} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {2684#true} is VALID [2022-02-20 16:50:01,517 INFO L272 TraceCheckUtils]: 21: Hoare triple {2684#true} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:01,518 INFO L290 TraceCheckUtils]: 22: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2719#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,518 INFO L290 TraceCheckUtils]: 23: Hoare triple {2719#(= list_add_~new.base |list_add_#in~new.base|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2719#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,518 INFO L290 TraceCheckUtils]: 24: Hoare triple {2719#(= list_add_~new.base |list_add_#in~new.base|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2719#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,519 INFO L290 TraceCheckUtils]: 25: Hoare triple {2719#(= list_add_~new.base |list_add_#in~new.base|)} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2720#(= ~elem~0.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,519 INFO L290 TraceCheckUtils]: 26: Hoare triple {2720#(= ~elem~0.base |list_add_#in~new.base|)} assume true; {2720#(= ~elem~0.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:01,520 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2720#(= ~elem~0.base |list_add_#in~new.base|)} {2684#true} #73#return; {2706#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} is VALID [2022-02-20 16:50:01,520 INFO L272 TraceCheckUtils]: 28: Hoare triple {2706#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:01,521 INFO L290 TraceCheckUtils]: 29: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,521 INFO L290 TraceCheckUtils]: 30: Hoare triple {2721#(= |old(~elem~0.base)| ~elem~0.base)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,521 INFO L290 TraceCheckUtils]: 31: Hoare triple {2721#(= |old(~elem~0.base)| ~elem~0.base)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,522 INFO L290 TraceCheckUtils]: 32: Hoare triple {2721#(= |old(~elem~0.base)| ~elem~0.base)} assume !(0 != #t~nondet9);havoc #t~nondet9; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,522 INFO L290 TraceCheckUtils]: 33: Hoare triple {2721#(= |old(~elem~0.base)| ~elem~0.base)} assume true; {2721#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:01,523 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2721#(= |old(~elem~0.base)| ~elem~0.base)} {2706#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} #75#return; {2706#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} is VALID [2022-02-20 16:50:01,523 INFO L290 TraceCheckUtils]: 35: Hoare triple {2706#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} assume { :begin_inline_list_del } true;list_del_#in~entry#1.base, list_del_#in~entry#1.offset := main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc list_del_~entry#1.base, list_del_~entry#1.offset;list_del_~entry#1.base, list_del_~entry#1.offset := list_del_#in~entry#1.base, list_del_#in~entry#1.offset; {2713#(and (= ~elem~0.base |ULTIMATE.start_list_del_~entry#1.base|) (= |ULTIMATE.start_list_del_~entry#1.offset| |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:50:01,523 INFO L290 TraceCheckUtils]: 36: Hoare triple {2713#(and (= ~elem~0.base |ULTIMATE.start_list_del_~entry#1.base|) (= |ULTIMATE.start_list_del_~entry#1.offset| |ULTIMATE.start_main_~dev2~0#1.offset|))} assume !(list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset); {2714#(not (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:50:01,524 INFO L290 TraceCheckUtils]: 37: Hoare triple {2714#(not (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|))} assume { :end_inline_list_del } true; {2714#(not (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:50:01,524 INFO L272 TraceCheckUtils]: 38: Hoare triple {2714#(not (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2715#(not (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:01,525 INFO L290 TraceCheckUtils]: 39: Hoare triple {2715#(not (= ~elem~0.offset |list_add_#in~new.offset|))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2716#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2022-02-20 16:50:01,527 INFO L290 TraceCheckUtils]: 40: Hoare triple {2716#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2685#false} is VALID [2022-02-20 16:50:01,527 INFO L272 TraceCheckUtils]: 41: Hoare triple {2685#false} call __blast_assert(); {2685#false} is VALID [2022-02-20 16:50:01,527 INFO L290 TraceCheckUtils]: 42: Hoare triple {2685#false} assume !false; {2685#false} is VALID [2022-02-20 16:50:01,527 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-02-20 16:50:01,527 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:50:01,528 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [702327333] [2022-02-20 16:50:01,528 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [702327333] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:50:01,528 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [637116718] [2022-02-20 16:50:01,528 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:01,528 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:50:01,528 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:50:01,529 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 16:50:01,530 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-02-20 16:50:01,586 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:01,588 INFO L263 TraceCheckSpWp]: Trace formula consists of 241 conjuncts, 29 conjunts are in the unsatisfiable core [2022-02-20 16:50:01,607 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:01,611 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:01,787 INFO L290 TraceCheckUtils]: 0: Hoare triple {2684#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2684#true} is VALID [2022-02-20 16:50:01,787 INFO L290 TraceCheckUtils]: 1: Hoare triple {2684#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,787 INFO L272 TraceCheckUtils]: 2: Hoare triple {2684#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2684#true} is VALID [2022-02-20 16:50:01,788 INFO L290 TraceCheckUtils]: 3: Hoare triple {2684#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2684#true} is VALID [2022-02-20 16:50:01,788 INFO L290 TraceCheckUtils]: 4: Hoare triple {2684#true} assume __getMemory_~size#1 > 0; {2684#true} is VALID [2022-02-20 16:50:01,788 INFO L290 TraceCheckUtils]: 5: Hoare triple {2684#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2684#true} is VALID [2022-02-20 16:50:01,788 INFO L290 TraceCheckUtils]: 6: Hoare triple {2684#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2684#true} is VALID [2022-02-20 16:50:01,788 INFO L290 TraceCheckUtils]: 7: Hoare triple {2684#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,788 INFO L290 TraceCheckUtils]: 8: Hoare triple {2684#true} assume true; {2684#true} is VALID [2022-02-20 16:50:01,788 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2684#true} {2684#true} #69#return; {2684#true} is VALID [2022-02-20 16:50:01,789 INFO L290 TraceCheckUtils]: 10: Hoare triple {2684#true} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,789 INFO L272 TraceCheckUtils]: 11: Hoare triple {2684#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2684#true} is VALID [2022-02-20 16:50:01,789 INFO L290 TraceCheckUtils]: 12: Hoare triple {2684#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2684#true} is VALID [2022-02-20 16:50:01,789 INFO L290 TraceCheckUtils]: 13: Hoare triple {2684#true} assume __getMemory_~size#1 > 0; {2684#true} is VALID [2022-02-20 16:50:01,789 INFO L290 TraceCheckUtils]: 14: Hoare triple {2684#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2684#true} is VALID [2022-02-20 16:50:01,789 INFO L290 TraceCheckUtils]: 15: Hoare triple {2684#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2684#true} is VALID [2022-02-20 16:50:01,790 INFO L290 TraceCheckUtils]: 16: Hoare triple {2684#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,790 INFO L290 TraceCheckUtils]: 17: Hoare triple {2684#true} assume true; {2684#true} is VALID [2022-02-20 16:50:01,790 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2684#true} {2684#true} #71#return; {2684#true} is VALID [2022-02-20 16:50:01,790 INFO L290 TraceCheckUtils]: 19: Hoare triple {2684#true} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {2684#true} is VALID [2022-02-20 16:50:01,790 INFO L290 TraceCheckUtils]: 20: Hoare triple {2684#true} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {2684#true} is VALID [2022-02-20 16:50:01,790 INFO L272 TraceCheckUtils]: 21: Hoare triple {2684#true} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2684#true} is VALID [2022-02-20 16:50:01,791 INFO L290 TraceCheckUtils]: 22: Hoare triple {2684#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2022-02-20 16:50:01,791 INFO L290 TraceCheckUtils]: 23: Hoare triple {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2022-02-20 16:50:01,791 INFO L290 TraceCheckUtils]: 24: Hoare triple {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2022-02-20 16:50:01,792 INFO L290 TraceCheckUtils]: 25: Hoare triple {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2801#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:01,792 INFO L290 TraceCheckUtils]: 26: Hoare triple {2801#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {2801#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:01,793 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2801#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {2684#true} #73#return; {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} is VALID [2022-02-20 16:50:01,794 INFO L272 TraceCheckUtils]: 28: Hoare triple {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:01,794 INFO L290 TraceCheckUtils]: 29: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:01,794 INFO L290 TraceCheckUtils]: 30: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:01,795 INFO L290 TraceCheckUtils]: 31: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:01,795 INFO L290 TraceCheckUtils]: 32: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume !(0 != #t~nondet9);havoc #t~nondet9; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:01,796 INFO L290 TraceCheckUtils]: 33: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume true; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:01,797 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} #75#return; {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} is VALID [2022-02-20 16:50:01,797 INFO L290 TraceCheckUtils]: 35: Hoare triple {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} assume { :begin_inline_list_del } true;list_del_#in~entry#1.base, list_del_#in~entry#1.offset := main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc list_del_~entry#1.base, list_del_~entry#1.offset;list_del_~entry#1.base, list_del_~entry#1.offset := list_del_#in~entry#1.base, list_del_#in~entry#1.offset; {2833#(and (= ~elem~0.base |ULTIMATE.start_list_del_~entry#1.base|) (= ~elem~0.offset |ULTIMATE.start_list_del_~entry#1.offset|))} is VALID [2022-02-20 16:50:01,797 INFO L290 TraceCheckUtils]: 36: Hoare triple {2833#(and (= ~elem~0.base |ULTIMATE.start_list_del_~entry#1.base|) (= ~elem~0.offset |ULTIMATE.start_list_del_~entry#1.offset|))} assume !(list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset); {2685#false} is VALID [2022-02-20 16:50:01,797 INFO L290 TraceCheckUtils]: 37: Hoare triple {2685#false} assume { :end_inline_list_del } true; {2685#false} is VALID [2022-02-20 16:50:01,797 INFO L272 TraceCheckUtils]: 38: Hoare triple {2685#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2685#false} is VALID [2022-02-20 16:50:01,798 INFO L290 TraceCheckUtils]: 39: Hoare triple {2685#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2685#false} is VALID [2022-02-20 16:50:01,798 INFO L290 TraceCheckUtils]: 40: Hoare triple {2685#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2685#false} is VALID [2022-02-20 16:50:01,798 INFO L272 TraceCheckUtils]: 41: Hoare triple {2685#false} call __blast_assert(); {2685#false} is VALID [2022-02-20 16:50:01,798 INFO L290 TraceCheckUtils]: 42: Hoare triple {2685#false} assume !false; {2685#false} is VALID [2022-02-20 16:50:01,798 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 16:50:01,798 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:50:02,057 INFO L290 TraceCheckUtils]: 42: Hoare triple {2685#false} assume !false; {2685#false} is VALID [2022-02-20 16:50:02,058 INFO L272 TraceCheckUtils]: 41: Hoare triple {2685#false} call __blast_assert(); {2685#false} is VALID [2022-02-20 16:50:02,058 INFO L290 TraceCheckUtils]: 40: Hoare triple {2685#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2685#false} is VALID [2022-02-20 16:50:02,058 INFO L290 TraceCheckUtils]: 39: Hoare triple {2685#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2685#false} is VALID [2022-02-20 16:50:02,058 INFO L272 TraceCheckUtils]: 38: Hoare triple {2685#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2685#false} is VALID [2022-02-20 16:50:02,058 INFO L290 TraceCheckUtils]: 37: Hoare triple {2685#false} assume { :end_inline_list_del } true; {2685#false} is VALID [2022-02-20 16:50:02,059 INFO L290 TraceCheckUtils]: 36: Hoare triple {2833#(and (= ~elem~0.base |ULTIMATE.start_list_del_~entry#1.base|) (= ~elem~0.offset |ULTIMATE.start_list_del_~entry#1.offset|))} assume !(list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset); {2685#false} is VALID [2022-02-20 16:50:02,059 INFO L290 TraceCheckUtils]: 35: Hoare triple {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} assume { :begin_inline_list_del } true;list_del_#in~entry#1.base, list_del_#in~entry#1.offset := main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc list_del_~entry#1.base, list_del_~entry#1.offset;list_del_~entry#1.base, list_del_~entry#1.offset := list_del_#in~entry#1.base, list_del_#in~entry#1.offset; {2833#(and (= ~elem~0.base |ULTIMATE.start_list_del_~entry#1.base|) (= ~elem~0.offset |ULTIMATE.start_list_del_~entry#1.offset|))} is VALID [2022-02-20 16:50:02,061 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} #75#return; {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} is VALID [2022-02-20 16:50:02,061 INFO L290 TraceCheckUtils]: 33: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume true; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:02,062 INFO L290 TraceCheckUtils]: 32: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume !(0 != #t~nondet9);havoc #t~nondet9; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:02,062 INFO L290 TraceCheckUtils]: 31: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:02,063 INFO L290 TraceCheckUtils]: 30: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:02,063 INFO L290 TraceCheckUtils]: 29: Hoare triple {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:02,064 INFO L272 TraceCheckUtils]: 28: Hoare triple {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {2718#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:02,065 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2801#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {2684#true} #73#return; {2808#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} is VALID [2022-02-20 16:50:02,066 INFO L290 TraceCheckUtils]: 26: Hoare triple {2801#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {2801#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:02,066 INFO L290 TraceCheckUtils]: 25: Hoare triple {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2801#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:02,067 INFO L290 TraceCheckUtils]: 24: Hoare triple {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2022-02-20 16:50:02,067 INFO L290 TraceCheckUtils]: 23: Hoare triple {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2022-02-20 16:50:02,068 INFO L290 TraceCheckUtils]: 22: Hoare triple {2684#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2791#(and (= list_add_~new.base |list_add_#in~new.base|) (= |list_add_#in~new.offset| list_add_~new.offset))} is VALID [2022-02-20 16:50:02,068 INFO L272 TraceCheckUtils]: 21: Hoare triple {2684#true} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2684#true} is VALID [2022-02-20 16:50:02,068 INFO L290 TraceCheckUtils]: 20: Hoare triple {2684#true} assume (main_~dev1~0#1.base != 0 || main_~dev1~0#1.offset != 0) && (main_~dev2~0#1.base != 0 || main_~dev2~0#1.offset != 0); {2684#true} is VALID [2022-02-20 16:50:02,068 INFO L290 TraceCheckUtils]: 19: Hoare triple {2684#true} main_~dev2~0#1.base, main_~dev2~0#1.offset := main_#t~ret11#1.base, main_#t~ret11#1.offset;havoc main_#t~ret11#1.base, main_#t~ret11#1.offset; {2684#true} is VALID [2022-02-20 16:50:02,069 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2684#true} {2684#true} #71#return; {2684#true} is VALID [2022-02-20 16:50:02,069 INFO L290 TraceCheckUtils]: 17: Hoare triple {2684#true} assume true; {2684#true} is VALID [2022-02-20 16:50:02,069 INFO L290 TraceCheckUtils]: 16: Hoare triple {2684#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2684#true} is VALID [2022-02-20 16:50:02,069 INFO L290 TraceCheckUtils]: 15: Hoare triple {2684#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2684#true} is VALID [2022-02-20 16:50:02,069 INFO L290 TraceCheckUtils]: 14: Hoare triple {2684#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2684#true} is VALID [2022-02-20 16:50:02,069 INFO L290 TraceCheckUtils]: 13: Hoare triple {2684#true} assume __getMemory_~size#1 > 0; {2684#true} is VALID [2022-02-20 16:50:02,069 INFO L290 TraceCheckUtils]: 12: Hoare triple {2684#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2684#true} is VALID [2022-02-20 16:50:02,070 INFO L272 TraceCheckUtils]: 11: Hoare triple {2684#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2684#true} is VALID [2022-02-20 16:50:02,070 INFO L290 TraceCheckUtils]: 10: Hoare triple {2684#true} main_~dev1~0#1.base, main_~dev1~0#1.offset := main_#t~ret10#1.base, main_#t~ret10#1.offset;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset; {2684#true} is VALID [2022-02-20 16:50:02,070 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2684#true} {2684#true} #69#return; {2684#true} is VALID [2022-02-20 16:50:02,070 INFO L290 TraceCheckUtils]: 8: Hoare triple {2684#true} assume true; {2684#true} is VALID [2022-02-20 16:50:02,070 INFO L290 TraceCheckUtils]: 7: Hoare triple {2684#true} #t~ret8#1.base, #t~ret8#1.offset := __getMemory_#res#1.base, __getMemory_#res#1.offset;assume { :end_inline___getMemory } true;#res#1.base, #res#1.offset := #t~ret8#1.base, #t~ret8#1.offset;havoc #t~ret8#1.base, #t~ret8#1.offset; {2684#true} is VALID [2022-02-20 16:50:02,070 INFO L290 TraceCheckUtils]: 6: Hoare triple {2684#true} assume !(0 == __getMemory_#t~nondet7#1);havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset; {2684#true} is VALID [2022-02-20 16:50:02,070 INFO L290 TraceCheckUtils]: 5: Hoare triple {2684#true} __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset := ~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset;~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := __getMemory_#t~post6#1.base, 1 + __getMemory_#t~post6#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset;assume -2147483648 <= __getMemory_#t~nondet7#1 && __getMemory_#t~nondet7#1 <= 2147483647; {2684#true} is VALID [2022-02-20 16:50:02,071 INFO L290 TraceCheckUtils]: 4: Hoare triple {2684#true} assume __getMemory_~size#1 > 0; {2684#true} is VALID [2022-02-20 16:50:02,071 INFO L290 TraceCheckUtils]: 3: Hoare triple {2684#true} ~size#1 := #in~size#1;assume { :begin_inline___getMemory } true;__getMemory_#in~size#1 := ~size#1;havoc __getMemory_#res#1.base, __getMemory_#res#1.offset;havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset, __getMemory_#t~nondet7#1, __getMemory_~size#1;__getMemory_~size#1 := __getMemory_#in~size#1; {2684#true} is VALID [2022-02-20 16:50:02,071 INFO L272 TraceCheckUtils]: 2: Hoare triple {2684#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2684#true} is VALID [2022-02-20 16:50:02,071 INFO L290 TraceCheckUtils]: 1: Hoare triple {2684#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~ret10#1.base, main_#t~ret10#1.offset, main_#t~ret11#1.base, main_#t~ret11#1.offset, main_~dev1~0#1.base, main_~dev1~0#1.offset, main_~dev2~0#1.base, main_~dev2~0#1.offset;havoc main_~dev1~0#1.base, main_~dev1~0#1.offset;havoc main_~dev2~0#1.base, main_~dev2~0#1.offset; {2684#true} is VALID [2022-02-20 16:50:02,071 INFO L290 TraceCheckUtils]: 0: Hoare triple {2684#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0, 0;~elem~0.base, ~elem~0.offset := 0, 0;~#head~0.base, ~#head~0.offset := 4, 0;call #Ultimate.allocInit(8, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, ~#head~0.offset, 4);call write~init~$Pointer$(0, 0, ~#head~0.base, 4 + ~#head~0.offset, 4); {2684#true} is VALID [2022-02-20 16:50:02,072 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 16:50:02,072 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [637116718] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:50:02,072 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:50:02,072 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 7, 7] total 16 [2022-02-20 16:50:02,072 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1479855314] [2022-02-20 16:50:02,072 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:50:02,075 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 16 states have (on average 2.6875) internal successors, (43), 12 states have internal predecessors, (43), 5 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) Word has length 43 [2022-02-20 16:50:02,076 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:02,077 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 16 states, 16 states have (on average 2.6875) internal successors, (43), 12 states have internal predecessors, (43), 5 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:50:02,125 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:02,125 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-02-20 16:50:02,126 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:50:02,127 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-02-20 16:50:02,127 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=207, Unknown=0, NotChecked=0, Total=240 [2022-02-20 16:50:02,127 INFO L87 Difference]: Start difference. First operand 37 states and 38 transitions. Second operand has 16 states, 16 states have (on average 2.6875) internal successors, (43), 12 states have internal predecessors, (43), 5 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:50:02,593 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:02,593 INFO L93 Difference]: Finished difference Result 37 states and 38 transitions. [2022-02-20 16:50:02,593 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-02-20 16:50:02,594 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 16 states have (on average 2.6875) internal successors, (43), 12 states have internal predecessors, (43), 5 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) Word has length 43 [2022-02-20 16:50:02,594 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:02,594 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 16 states have (on average 2.6875) internal successors, (43), 12 states have internal predecessors, (43), 5 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:50:02,595 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 34 transitions. [2022-02-20 16:50:02,595 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 16 states have (on average 2.6875) internal successors, (43), 12 states have internal predecessors, (43), 5 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:50:02,596 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 34 transitions. [2022-02-20 16:50:02,596 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 34 transitions. [2022-02-20 16:50:02,624 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:02,624 INFO L225 Difference]: With dead ends: 37 [2022-02-20 16:50:02,624 INFO L226 Difference]: Without dead ends: 0 [2022-02-20 16:50:02,625 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 106 GetRequests, 88 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 23 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=59, Invalid=321, Unknown=0, NotChecked=0, Total=380 [2022-02-20 16:50:02,625 INFO L933 BasicCegarLoop]: 21 mSDtfsCounter, 22 mSDsluCounter, 70 mSDsCounter, 0 mSdLazyCounter, 233 mSolverCounterSat, 12 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 22 SdHoareTripleChecker+Valid, 91 SdHoareTripleChecker+Invalid, 245 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 12 IncrementalHoareTripleChecker+Valid, 233 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:02,626 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [22 Valid, 91 Invalid, 245 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [12 Valid, 233 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-02-20 16:50:02,626 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2022-02-20 16:50:02,626 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2022-02-20 16:50:02,626 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:02,627 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:50:02,627 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:50:02,627 INFO L87 Difference]: Start difference. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:50:02,627 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:02,627 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-02-20 16:50:02,627 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-02-20 16:50:02,628 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:02,628 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:02,628 INFO L74 IsIncluded]: Start isIncluded. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand 0 states. [2022-02-20 16:50:02,628 INFO L87 Difference]: Start difference. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand 0 states. [2022-02-20 16:50:02,628 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:02,628 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-02-20 16:50:02,628 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-02-20 16:50:02,629 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:02,629 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:02,629 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:02,629 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:02,629 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 16:50:02,629 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2022-02-20 16:50:02,629 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 43 [2022-02-20 16:50:02,629 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:02,629 INFO L470 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2022-02-20 16:50:02,629 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 16 states, 16 states have (on average 2.6875) internal successors, (43), 12 states have internal predecessors, (43), 5 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:50:02,630 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-02-20 16:50:02,630 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:02,631 INFO L764 garLoopResultBuilder]: Registering result SAFE for location __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-02-20 16:50:02,653 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:02,847 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:50:02,849 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2022-02-20 16:50:03,317 INFO L858 garLoopResultBuilder]: For program point my_mallocFINAL(lines 528 530) no Hoare annotation was computed. [2022-02-20 16:50:03,317 INFO L854 garLoopResultBuilder]: At program point my_mallocENTRY(lines 528 530) the Hoare annotation is: (or (not (= |my_malloc_#in~size#1| 8)) (and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|))) [2022-02-20 16:50:03,318 INFO L854 garLoopResultBuilder]: At program point L526(lines 520 527) the Hoare annotation is: (let ((.cse0 (not (= |my_malloc_#in~size#1| 8)))) (and (or (= |my_malloc___getMemory_~size#1| 8) .cse0) (or (not (<= ~elem~0.offset 0)) (and (<= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (= |my_malloc___getMemory_#res#1.base| |old(~guard_malloc_counter~0.base)|) (<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset) (= ~guard_malloc_counter~0.base 0)) (and (<= 0 |my_malloc___getMemory_#res#1.base|) (<= |my_malloc___getMemory_#res#1.offset| 0) (<= 0 |my_malloc___getMemory_#res#1.offset|) (<= |my_malloc___getMemory_#res#1.base| 0)) .cse0 (not (= |old(~guard_malloc_counter~0.base)| 0)) (not (<= 0 |old(~guard_malloc_counter~0.offset)|))))) [2022-02-20 16:50:03,318 INFO L858 garLoopResultBuilder]: For program point L524(lines 524 525) no Hoare annotation was computed. [2022-02-20 16:50:03,318 INFO L858 garLoopResultBuilder]: For program point L522(line 522) no Hoare annotation was computed. [2022-02-20 16:50:03,318 INFO L854 garLoopResultBuilder]: At program point L522-2(line 522) the Hoare annotation is: (not (= |my_malloc_#in~size#1| 8)) [2022-02-20 16:50:03,318 INFO L858 garLoopResultBuilder]: For program point L522-3(line 522) no Hoare annotation was computed. [2022-02-20 16:50:03,318 INFO L858 garLoopResultBuilder]: For program point my_mallocEXIT(lines 528 530) no Hoare annotation was computed. [2022-02-20 16:50:03,318 INFO L854 garLoopResultBuilder]: At program point list_addENTRY(lines 535 539) the Hoare annotation is: (and (or (not (<= |old(~elem~0.offset)| 0)) (not (<= 1 ~guard_malloc_counter~0.offset)) (<= ~elem~0.offset 0) (not (<= 2 |list_add_#in~new.offset|))) (or (= |old(~elem~0.offset)| |list_add_#in~new.offset|) (and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base)) (not (= ~guard_malloc_counter~0.base 0)))) [2022-02-20 16:50:03,318 INFO L858 garLoopResultBuilder]: For program point L537(lines 537 538) no Hoare annotation was computed. [2022-02-20 16:50:03,318 INFO L858 garLoopResultBuilder]: For program point L536(line 536) no Hoare annotation was computed. [2022-02-20 16:50:03,318 INFO L858 garLoopResultBuilder]: For program point L537-2(lines 535 539) no Hoare annotation was computed. [2022-02-20 16:50:03,318 INFO L854 garLoopResultBuilder]: At program point L536-2(line 536) the Hoare annotation is: (and (or (= |old(~elem~0.offset)| |list_add_#in~new.offset|) (not (= ~guard_malloc_counter~0.base 0))) (or (not (<= |old(~elem~0.offset)| 0)) (not (<= 1 ~guard_malloc_counter~0.offset)) (not (<= 2 |list_add_#in~new.offset|)))) [2022-02-20 16:50:03,318 INFO L858 garLoopResultBuilder]: For program point L536-3(line 536) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point list_addEXIT(lines 535 539) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION(line 6) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point __blast_assertEXIT(lines 4 7) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point __blast_assertFINAL(lines 4 7) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L861 garLoopResultBuilder]: At program point __blast_assertENTRY(lines 4 7) the Hoare annotation is: true [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point L541(lines 541 542) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L854 garLoopResultBuilder]: At program point L550(line 550) the Hoare annotation is: (and (= |ULTIMATE.start_main_~dev2~0#1.base| 0) (<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (= ~guard_malloc_counter~0.base 0) (<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)) [2022-02-20 16:50:03,319 INFO L854 garLoopResultBuilder]: At program point L550-1(line 550) the Hoare annotation is: (let ((.cse0 (= |ULTIMATE.start_main_~dev2~0#1.base| 0)) (.cse1 (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1)) (.cse2 (= ~guard_malloc_counter~0.base 0)) (.cse3 (<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset))) (or (and .cse0 (<= .cse1 |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) .cse2 .cse3) (and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) .cse0 (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|)) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|) (<= .cse1 ~elem~0.offset) .cse2 .cse3))) [2022-02-20 16:50:03,319 INFO L854 garLoopResultBuilder]: At program point L548(line 548) the Hoare annotation is: (or (and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (= ~guard_malloc_counter~0.base 0) (<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)) (and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))) [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point L548-1(line 548) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point L-1(line -1) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point ULTIMATE.startENTRY(line -1) no Hoare annotation was computed. [2022-02-20 16:50:03,319 INFO L858 garLoopResultBuilder]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2022-02-20 16:50:03,320 INFO L858 garLoopResultBuilder]: For program point L540(lines 540 543) no Hoare annotation was computed. [2022-02-20 16:50:03,320 INFO L861 garLoopResultBuilder]: At program point L555(lines 545 556) the Hoare annotation is: true [2022-02-20 16:50:03,320 INFO L854 garLoopResultBuilder]: At program point L553(line 553) the Hoare annotation is: (let ((.cse0 (= |ULTIMATE.start_main_~dev2~0#1.base| 0)) (.cse1 (<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)) (.cse2 (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))) (.cse3 (= ~guard_malloc_counter~0.base 0)) (.cse4 (<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset))) (or (and .cse0 .cse1 .cse2 (= ~elem~0.offset 0) .cse3 .cse4) (let ((.cse5 (+ ~elem~0.offset 1))) (and (<= .cse5 |ULTIMATE.start_main_~dev2~0#1.offset|) .cse0 .cse1 .cse2 (<= .cse5 |ULTIMATE.start_list_del_~entry#1.offset|) .cse3 .cse4)) (and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0)))) [2022-02-20 16:50:03,320 INFO L858 garLoopResultBuilder]: For program point L551(line 551) no Hoare annotation was computed. [2022-02-20 16:50:03,320 INFO L858 garLoopResultBuilder]: For program point L549(lines 549 554) no Hoare annotation was computed. [2022-02-20 16:50:03,320 INFO L858 garLoopResultBuilder]: For program point L549-1(lines 549 554) no Hoare annotation was computed. [2022-02-20 16:50:03,320 INFO L854 garLoopResultBuilder]: At program point L547(line 547) the Hoare annotation is: (and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0) (= ~guard_malloc_counter~0.base 0)) [2022-02-20 16:50:03,320 INFO L858 garLoopResultBuilder]: For program point L547-1(line 547) no Hoare annotation was computed. [2022-02-20 16:50:03,323 INFO L732 BasicCegarLoop]: Path program histogram: [1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:50:03,324 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 16:50:03,326 WARN L170 areAnnotationChecker]: L522 has no Hoare annotation [2022-02-20 16:50:03,326 WARN L170 areAnnotationChecker]: L536 has no Hoare annotation [2022-02-20 16:50:03,326 WARN L170 areAnnotationChecker]: __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: __blast_assertFINAL has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: L522 has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: L522 has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: L536 has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: L536 has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: __blast_assertFINAL has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2022-02-20 16:50:03,327 WARN L170 areAnnotationChecker]: L522-3 has no Hoare annotation [2022-02-20 16:50:03,328 WARN L170 areAnnotationChecker]: L522-3 has no Hoare annotation [2022-02-20 16:50:03,328 WARN L170 areAnnotationChecker]: L536-3 has no Hoare annotation [2022-02-20 16:50:03,328 WARN L170 areAnnotationChecker]: L536-3 has no Hoare annotation [2022-02-20 16:50:03,328 WARN L170 areAnnotationChecker]: __blast_assertEXIT has no Hoare annotation [2022-02-20 16:50:03,328 WARN L170 areAnnotationChecker]: __blast_assertEXIT has no Hoare annotation [2022-02-20 16:50:03,328 WARN L170 areAnnotationChecker]: L547-1 has no Hoare annotation [2022-02-20 16:50:03,329 WARN L170 areAnnotationChecker]: L524 has no Hoare annotation [2022-02-20 16:50:03,329 WARN L170 areAnnotationChecker]: L524 has no Hoare annotation [2022-02-20 16:50:03,329 WARN L170 areAnnotationChecker]: L537 has no Hoare annotation [2022-02-20 16:50:03,329 WARN L170 areAnnotationChecker]: L537 has no Hoare annotation [2022-02-20 16:50:03,329 WARN L170 areAnnotationChecker]: L547-1 has no Hoare annotation [2022-02-20 16:50:03,329 WARN L170 areAnnotationChecker]: my_mallocFINAL has no Hoare annotation [2022-02-20 16:50:03,330 WARN L170 areAnnotationChecker]: L537-2 has no Hoare annotation [2022-02-20 16:50:03,330 WARN L170 areAnnotationChecker]: L548-1 has no Hoare annotation [2022-02-20 16:50:03,330 WARN L170 areAnnotationChecker]: my_mallocFINAL has no Hoare annotation [2022-02-20 16:50:03,330 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2022-02-20 16:50:03,331 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2022-02-20 16:50:03,331 WARN L170 areAnnotationChecker]: list_addEXIT has no Hoare annotation [2022-02-20 16:50:03,331 WARN L170 areAnnotationChecker]: L548-1 has no Hoare annotation [2022-02-20 16:50:03,331 WARN L170 areAnnotationChecker]: my_mallocEXIT has no Hoare annotation [2022-02-20 16:50:03,331 WARN L170 areAnnotationChecker]: my_mallocEXIT has no Hoare annotation [2022-02-20 16:50:03,331 WARN L170 areAnnotationChecker]: L551 has no Hoare annotation [2022-02-20 16:50:03,332 WARN L170 areAnnotationChecker]: L551 has no Hoare annotation [2022-02-20 16:50:03,332 WARN L170 areAnnotationChecker]: L549-1 has no Hoare annotation [2022-02-20 16:50:03,332 WARN L170 areAnnotationChecker]: L549 has no Hoare annotation [2022-02-20 16:50:03,333 WARN L170 areAnnotationChecker]: L549 has no Hoare annotation [2022-02-20 16:50:03,333 WARN L170 areAnnotationChecker]: L541 has no Hoare annotation [2022-02-20 16:50:03,333 WARN L170 areAnnotationChecker]: L541 has no Hoare annotation [2022-02-20 16:50:03,333 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-02-20 16:50:03,334 WARN L170 areAnnotationChecker]: L540 has no Hoare annotation [2022-02-20 16:50:03,334 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-02-20 16:50:03,334 WARN L170 areAnnotationChecker]: L549-1 has no Hoare annotation [2022-02-20 16:50:03,335 INFO L163 areAnnotationChecker]: CFG has 7 edges. 7 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2022-02-20 16:50:03,346 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 20.02 04:50:03 BoogieIcfgContainer [2022-02-20 16:50:03,347 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2022-02-20 16:50:03,347 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2022-02-20 16:50:03,347 INFO L271 PluginConnector]: Initializing Witness Printer... [2022-02-20 16:50:03,348 INFO L275 PluginConnector]: Witness Printer initialized [2022-02-20 16:50:03,348 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:49:46" (3/4) ... [2022-02-20 16:50:03,350 INFO L137 WitnessPrinter]: Generating witness for correct program [2022-02-20 16:50:03,354 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure my_malloc [2022-02-20 16:50:03,354 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure list_add [2022-02-20 16:50:03,354 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure __blast_assert [2022-02-20 16:50:03,358 INFO L910 BoogieBacktranslator]: Reduced CFG by removing 17 nodes and edges [2022-02-20 16:50:03,358 INFO L910 BoogieBacktranslator]: Reduced CFG by removing 6 nodes and edges [2022-02-20 16:50:03,358 INFO L910 BoogieBacktranslator]: Reduced CFG by removing 2 nodes and edges [2022-02-20 16:50:03,358 INFO L910 BoogieBacktranslator]: Reduced CFG by removing 1 nodes and edges [2022-02-20 16:50:03,376 WARN L220 nessWitnessGenerator]: Not writing invariant because ACSL is forbidden: (size == 8 || !(\old(size) == 8)) && (((((!(elem <= 0) || ((((guard_malloc_counter <= \result && \old(guard_malloc_counter) + 1 <= guard_malloc_counter) && \result == \old(guard_malloc_counter)) && \result <= guard_malloc_counter) && guard_malloc_counter == 0)) || (((0 <= \result && \result <= 0) && 0 <= \result) && \result <= 0)) || !(\old(size) == 8)) || !(\old(guard_malloc_counter) == 0)) || !(0 <= \old(guard_malloc_counter))) [2022-02-20 16:50:03,384 INFO L141 WitnessManager]: Wrote witness to /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/witness.graphml [2022-02-20 16:50:03,384 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2022-02-20 16:50:03,385 INFO L158 Benchmark]: Toolchain (without parser) took 17762.89ms. Allocated memory was 92.3MB in the beginning and 161.5MB in the end (delta: 69.2MB). Free memory was 53.2MB in the beginning and 128.2MB in the end (delta: -75.0MB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:50:03,385 INFO L158 Benchmark]: CDTParser took 0.17ms. Allocated memory is still 92.3MB. Free memory was 71.1MB in the beginning and 71.1MB in the end (delta: 48.1kB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:50:03,386 INFO L158 Benchmark]: CACSL2BoogieTranslator took 380.24ms. Allocated memory is still 92.3MB. Free memory was 53.0MB in the beginning and 60.3MB in the end (delta: -7.3MB). Peak memory consumption was 6.3MB. Max. memory is 16.1GB. [2022-02-20 16:50:03,386 INFO L158 Benchmark]: Boogie Procedure Inliner took 58.50ms. Allocated memory is still 92.3MB. Free memory was 60.3MB in the beginning and 58.3MB in the end (delta: 2.0MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:50:03,386 INFO L158 Benchmark]: Boogie Preprocessor took 33.47ms. Allocated memory is still 92.3MB. Free memory was 58.3MB in the beginning and 57.0MB in the end (delta: 1.3MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:50:03,387 INFO L158 Benchmark]: RCFGBuilder took 297.79ms. Allocated memory is still 92.3MB. Free memory was 56.7MB in the beginning and 44.5MB in the end (delta: 12.3MB). Peak memory consumption was 12.6MB. Max. memory is 16.1GB. [2022-02-20 16:50:03,387 INFO L158 Benchmark]: TraceAbstraction took 16944.90ms. Allocated memory was 92.3MB in the beginning and 161.5MB in the end (delta: 69.2MB). Free memory was 43.9MB in the beginning and 131.3MB in the end (delta: -87.4MB). Peak memory consumption was 73.6MB. Max. memory is 16.1GB. [2022-02-20 16:50:03,387 INFO L158 Benchmark]: Witness Printer took 37.09ms. Allocated memory is still 161.5MB. Free memory was 131.3MB in the beginning and 128.2MB in the end (delta: 3.1MB). Peak memory consumption was 4.2MB. Max. memory is 16.1GB. [2022-02-20 16:50:03,389 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.17ms. Allocated memory is still 92.3MB. Free memory was 71.1MB in the beginning and 71.1MB in the end (delta: 48.1kB). There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 380.24ms. Allocated memory is still 92.3MB. Free memory was 53.0MB in the beginning and 60.3MB in the end (delta: -7.3MB). Peak memory consumption was 6.3MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 58.50ms. Allocated memory is still 92.3MB. Free memory was 60.3MB in the beginning and 58.3MB in the end (delta: 2.0MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 33.47ms. Allocated memory is still 92.3MB. Free memory was 58.3MB in the beginning and 57.0MB in the end (delta: 1.3MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * RCFGBuilder took 297.79ms. Allocated memory is still 92.3MB. Free memory was 56.7MB in the beginning and 44.5MB in the end (delta: 12.3MB). Peak memory consumption was 12.6MB. Max. memory is 16.1GB. * TraceAbstraction took 16944.90ms. Allocated memory was 92.3MB in the beginning and 161.5MB in the end (delta: 69.2MB). Free memory was 43.9MB in the beginning and 131.3MB in the end (delta: -87.4MB). Peak memory consumption was 73.6MB. Max. memory is 16.1GB. * Witness Printer took 37.09ms. Allocated memory is still 161.5MB. Free memory was 131.3MB in the beginning and 128.2MB in the end (delta: 3.1MB). Peak memory consumption was 4.2MB. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - PositiveResult [Line: 6]: call to reach_error is unreachable For all program executions holds that call to reach_error is unreachable at this location - StatisticsResult: Ultimate Automizer benchmark data CFG has 4 procedures, 36 locations, 1 error locations. Started 1 CEGAR loops. OverallTime: 16.9s, OverallIterations: 8, TraceHistogramMax: 3, PathProgramHistogramMax: 1, EmptinessCheckTime: 0.0s, AutomataDifference: 7.1s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 0.5s, InitialAbstractionConstructionTime: 0.0s, PartialOrderReductionTime: 0.0s, HoareTripleCheckerStatistics: 0 mSolverCounterUnknown, 441 SdHoareTripleChecker+Valid, 2.2s IncrementalHoareTripleChecker+Time, 0 mSdLazyCounter, 441 mSDsluCounter, 892 SdHoareTripleChecker+Invalid, 2.2s Time, 0 mProtectedAction, 0 SdHoareTripleChecker+Unchecked, 0 IncrementalHoareTripleChecker+Unchecked, 674 mSDsCounter, 230 IncrementalHoareTripleChecker+Valid, 0 mProtectedPredicate, 2418 IncrementalHoareTripleChecker+Invalid, 2648 SdHoareTripleChecker+Unknown, 0 mSolverCounterNotChecked, 230 mSolverCounterUnsat, 218 mSDtfsCounter, 2418 mSolverCounterSat, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Unknown, PredicateUnifierStatistics: 0 DeclaredPredicates, 549 GetRequests, 356 SyntacticMatches, 5 SemanticMatches, 188 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 821 ImplicationChecksByTransitivity, 2.4s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=44occurred in iteration=5, InterpolantAutomatonStates: 93, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: 0.2s AutomataMinimizationTime, 8 MinimizatonAttempts, 20 StatesRemovedByMinimization, 3 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 12 LocationsWithAnnotation, 61 PreInvPairs, 76 NumberOfFragments, 290 HoareAnnotationTreeSize, 61 FomulaSimplifications, 88 FormulaSimplificationTreeSizeReduction, 0.1s HoareSimplificationTime, 12 FomulaSimplificationsInter, 782 FormulaSimplificationTreeSizeReductionInter, 0.3s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.1s SsaConstructionTime, 0.2s SatisfiabilityAnalysisTime, 6.6s InterpolantComputationTime, 441 NumberOfCodeBlocks, 441 NumberOfCodeBlocksAsserted, 14 NumberOfCheckSat, 600 ConstructedInterpolants, 0 QuantifiedInterpolants, 2176 SizeOfPredicates, 34 NumberOfNonLiveVariables, 1223 ConjunctsInSsa, 115 ConjunctsInUnsatCore, 19 InterpolantComputations, 3 PerfectInterpolantSequences, 117/198 InterpolantCoveringCapability, INVARIANT_SYNTHESIS: No data available, INTERPOLANT_CONSOLIDATION: No data available, ABSTRACT_INTERPRETATION: No data available, PDR: No data available, ACCELERATED_INTERPOLATION: No data available, SIFA: No data available, ReuseStatistics: No data available - AllSpecificationsHoldResult: All specifications hold 1 specifications checked. All of them hold - InvariantResult [Line: 545]: Loop Invariant Derived loop invariant: 1 - InvariantResult [Line: 520]: Loop Invariant Derived loop invariant: (size == 8 || !(\old(size) == 8)) && (((((!(elem <= 0) || ((((guard_malloc_counter <= \result && \old(guard_malloc_counter) + 1 <= guard_malloc_counter) && \result == \old(guard_malloc_counter)) && \result <= guard_malloc_counter) && guard_malloc_counter == 0)) || (((0 <= \result && \result <= 0) && 0 <= \result) && \result <= 0)) || !(\old(size) == 8)) || !(\old(guard_malloc_counter) == 0)) || !(0 <= \old(guard_malloc_counter))) RESULT: Ultimate proved your program to be correct! [2022-02-20 16:50:03,422 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Writing output log to file Ultimate.log Result: TRUE