./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/ldv-regression/rule60_list2.c_1.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.c_1.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 5dc0e184171498e703ccf08545f4f79d3c1c383c8c0fc13a1f35990befb669a4 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 16:49:43,972 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 16:49:43,975 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 16:49:43,997 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 16:49:43,998 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 16:49:43,999 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 16:49:44,000 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 16:49:44,001 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 16:49:44,003 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 16:49:44,003 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 16:49:44,004 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 16:49:44,005 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 16:49:44,005 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 16:49:44,006 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 16:49:44,007 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 16:49:44,008 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 16:49:44,009 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 16:49:44,010 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 16:49:44,011 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 16:49:44,012 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 16:49:44,014 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 16:49:44,015 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 16:49:44,016 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 16:49:44,016 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 16:49:44,019 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 16:49:44,019 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 16:49:44,020 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 16:49:44,020 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 16:49:44,021 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 16:49:44,021 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 16:49:44,022 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 16:49:44,022 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 16:49:44,023 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 16:49:44,024 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 16:49:44,025 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 16:49:44,025 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 16:49:44,025 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 16:49:44,026 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 16:49:44,026 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 16:49:44,027 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 16:49:44,027 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 16:49:44,028 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,047 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 16:49:44,047 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 16:49:44,047 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 16:49:44,048 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 16:49:44,048 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 16:49:44,049 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 16:49:44,049 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 16:49:44,049 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 16:49:44,050 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 16:49:44,050 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 16:49:44,050 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 16:49:44,050 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 16:49:44,051 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 16:49:44,051 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 16:49:44,053 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 16:49:44,053 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 16:49:44,053 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 16:49:44,054 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 16:49:44,054 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 16:49:44,054 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 16:49:44,055 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 16:49:44,055 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 16:49:44,055 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 16:49:44,056 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 16:49:44,056 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:49:44,056 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 16:49:44,056 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 16:49:44,057 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 16:49:44,058 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 16:49:44,058 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 16:49:44,058 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 16:49:44,058 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 16:49:44,059 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 16:49:44,059 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 -> 5dc0e184171498e703ccf08545f4f79d3c1c383c8c0fc13a1f35990befb669a4 [2022-02-20 16:49:44,278 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 16:49:44,306 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 16:49:44,308 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 16:49:44,309 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 16:49:44,310 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 16:49:44,311 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/ldv-regression/rule60_list2.c_1.i [2022-02-20 16:49:44,360 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/50ce1e706/46a3ad4707ff41818153f6aa6ef11b18/FLAGe2f08d95e [2022-02-20 16:49:44,764 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 16:49:44,767 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/ldv-regression/rule60_list2.c_1.i [2022-02-20 16:49:44,778 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/50ce1e706/46a3ad4707ff41818153f6aa6ef11b18/FLAGe2f08d95e [2022-02-20 16:49:45,125 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/50ce1e706/46a3ad4707ff41818153f6aa6ef11b18 [2022-02-20 16:49:45,127 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 16:49:45,128 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 16:49:45,129 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 16:49:45,129 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 16:49:45,135 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 16:49:45,137 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,138 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@34b24774 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,139 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,145 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 16:49:45,174 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 16:49:45,305 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.c_1.i[296,309] [2022-02-20 16:49:45,435 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:49:45,445 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 16:49:45,463 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.c_1.i[296,309] [2022-02-20 16:49:45,511 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:49:45,544 INFO L208 MainTranslator]: Completed translation [2022-02-20 16:49:45,545 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:45 WrapperNode [2022-02-20 16:49:45,545 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 16:49:45,546 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 16:49:45,547 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 16:49:45,547 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 16:49:45,553 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:45" (1/1) ... [2022-02-20 16:49:45,574 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:45" (1/1) ... [2022-02-20 16:49:45,597 INFO L137 Inliner]: procedures = 126, calls = 20, calls flagged for inlining = 4, calls inlined = 4, statements flattened = 54 [2022-02-20 16:49:45,598 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 16:49:45,598 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 16:49:45,599 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 16:49:45,599 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 16:49:45,606 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:45" (1/1) ... [2022-02-20 16:49:45,606 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:45" (1/1) ... [2022-02-20 16:49:45,612 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:45" (1/1) ... [2022-02-20 16:49:45,612 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:45" (1/1) ... [2022-02-20 16:49:45,619 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:45" (1/1) ... [2022-02-20 16:49:45,622 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:45" (1/1) ... [2022-02-20 16:49:45,626 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:45" (1/1) ... [2022-02-20 16:49:45,628 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 16:49:45,630 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 16:49:45,630 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 16:49:45,630 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 16:49:45,635 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:45" (1/1) ... [2022-02-20 16:49:45,641 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:49:45,652 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:45,665 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:45,667 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:45,696 INFO L130 BoogieDeclarations]: Found specification of procedure my_malloc [2022-02-20 16:49:45,697 INFO L138 BoogieDeclarations]: Found implementation of procedure my_malloc [2022-02-20 16:49:45,697 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 16:49:45,697 INFO L130 BoogieDeclarations]: Found specification of procedure list_add [2022-02-20 16:49:45,697 INFO L138 BoogieDeclarations]: Found implementation of procedure list_add [2022-02-20 16:49:45,697 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2022-02-20 16:49:45,697 INFO L130 BoogieDeclarations]: Found specification of procedure __blast_assert [2022-02-20 16:49:45,698 INFO L138 BoogieDeclarations]: Found implementation of procedure __blast_assert [2022-02-20 16:49:45,698 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 16:49:45,698 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 16:49:45,698 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 16:49:45,829 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 16:49:45,830 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 16:49:46,036 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 16:49:46,043 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 16:49:46,043 INFO L299 CfgBuilder]: Removed 0 assume(true) statements. [2022-02-20 16:49:46,045 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,045 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 16:49:46,047 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 16:49:46,048 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 16:49:46,050 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 16:49:46,051 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,051 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@4592e6cc 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,051 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:49:45" (2/3) ... [2022-02-20 16:49:46,052 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@4592e6cc 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,052 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,053 INFO L111 eAbstractionObserver]: Analyzing ICFG rule60_list2.c_1.i [2022-02-20 16:49:46,062 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 16:49:46,062 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 16:49:46,118 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 16:49:46,134 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,140 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 16:49:46,165 INFO L276 IsEmpty]: Start isEmpty. Operand has 37 states, 24 states have (on average 1.2916666666666667) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 16:49:46,168 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2022-02-20 16:49:46,169 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:46,169 INFO L514 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:49:46,170 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:46,174 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:46,175 INFO L85 PathProgramCache]: Analyzing trace with hash 484842023, now seen corresponding path program 1 times [2022-02-20 16:49:46,184 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:46,185 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [165983120] [2022-02-20 16:49:46,185 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:46,186 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:46,263 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:46,377 INFO L290 TraceCheckUtils]: 0: Hoare triple {40#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(19, 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); {40#true} is VALID [2022-02-20 16:49:46,377 INFO L290 TraceCheckUtils]: 1: Hoare triple {40#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; {40#true} is VALID [2022-02-20 16:49:46,379 INFO L272 TraceCheckUtils]: 2: Hoare triple {40#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {42#(= |my_malloc_#in~size#1| 8)} is VALID [2022-02-20 16:49:46,380 INFO L290 TraceCheckUtils]: 3: Hoare triple {42#(= |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; {43#(= (+ |my_malloc___getMemory_~size#1| (- 8)) 0)} is VALID [2022-02-20 16:49:46,380 INFO L290 TraceCheckUtils]: 4: Hoare triple {43#(= (+ |my_malloc___getMemory_~size#1| (- 8)) 0)} assume !(__getMemory_~size#1 > 0); {41#false} is VALID [2022-02-20 16:49:46,381 INFO L272 TraceCheckUtils]: 5: Hoare triple {41#false} call __blast_assert(); {41#false} is VALID [2022-02-20 16:49:46,381 INFO L290 TraceCheckUtils]: 6: Hoare triple {41#false} assume !false; {41#false} is VALID [2022-02-20 16:49:46,382 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,383 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:46,383 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [165983120] [2022-02-20 16:49:46,384 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [165983120] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:49:46,385 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:49:46,385 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:49:46,386 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1477270451] [2022-02-20 16:49:46,389 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:49:46,393 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,394 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:46,397 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,410 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,410 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:49:46,412 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:46,432 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:49:46,433 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:49:46,436 INFO L87 Difference]: Start difference. First operand has 37 states, 24 states have (on average 1.2916666666666667) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) 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:46,627 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:46,628 INFO L93 Difference]: Finished difference Result 68 states and 93 transitions. [2022-02-20 16:49:46,628 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:49:46,628 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,629 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:46,630 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:46,644 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 93 transitions. [2022-02-20 16:49:46,644 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:46,658 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 93 transitions. [2022-02-20 16:49:46,658 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 93 transitions. [2022-02-20 16:49:46,769 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 93 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:46,779 INFO L225 Difference]: With dead ends: 68 [2022-02-20 16:49:46,780 INFO L226 Difference]: Without dead ends: 30 [2022-02-20 16:49:46,783 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:46,787 INFO L933 BasicCegarLoop]: 37 mSDtfsCounter, 13 mSDsluCounter, 62 mSDsCounter, 0 mSdLazyCounter, 8 mSolverCounterSat, 1 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 13 SdHoareTripleChecker+Valid, 99 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:46,787 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [13 Valid, 99 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:46,800 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 30 states. [2022-02-20 16:49:46,815 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 30 to 30. [2022-02-20 16:49:46,816 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:46,817 INFO L82 GeneralOperation]: Start isEquivalent. First operand 30 states. Second operand has 30 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:49:46,818 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand has 30 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:49:46,819 INFO L87 Difference]: Start difference. First operand 30 states. Second operand has 30 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:49:46,824 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:46,825 INFO L93 Difference]: Finished difference Result 30 states and 36 transitions. [2022-02-20 16:49:46,825 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 36 transitions. [2022-02-20 16:49:46,826 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:46,826 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:46,827 INFO L74 IsIncluded]: Start isIncluded. First operand has 30 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 30 states. [2022-02-20 16:49:46,827 INFO L87 Difference]: Start difference. First operand has 30 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 30 states. [2022-02-20 16:49:46,831 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:46,832 INFO L93 Difference]: Finished difference Result 30 states and 36 transitions. [2022-02-20 16:49:46,832 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 36 transitions. [2022-02-20 16:49:46,833 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:46,833 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:46,834 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:46,834 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:46,835 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 30 states, 20 states have (on average 1.2) internal successors, (24), 21 states have internal predecessors, (24), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:49:46,838 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 36 transitions. [2022-02-20 16:49:46,840 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 36 transitions. Word has length 7 [2022-02-20 16:49:46,840 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:46,840 INFO L470 AbstractCegarLoop]: Abstraction has 30 states and 36 transitions. [2022-02-20 16:49:46,841 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:46,841 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 36 transitions. [2022-02-20 16:49:46,842 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:49:46,843 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:46,843 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:46,843 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 16:49:46,844 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:46,846 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:46,848 INFO L85 PathProgramCache]: Analyzing trace with hash -1134155612, now seen corresponding path program 1 times [2022-02-20 16:49:46,848 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:46,848 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1593157452] [2022-02-20 16:49:46,848 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:46,849 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:46,898 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:46,985 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:46,995 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,061 INFO L290 TraceCheckUtils]: 0: Hoare triple {259#(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; {241#true} is VALID [2022-02-20 16:49:47,062 INFO L290 TraceCheckUtils]: 1: Hoare triple {241#true} assume __getMemory_~size#1 > 0; {241#true} is VALID [2022-02-20 16:49:47,062 INFO L290 TraceCheckUtils]: 2: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,063 INFO L290 TraceCheckUtils]: 3: Hoare triple {241#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {260#(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,064 INFO L290 TraceCheckUtils]: 4: Hoare triple {260#(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; {261#(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,065 INFO L290 TraceCheckUtils]: 5: Hoare triple {261#(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; {261#(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,066 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {261#(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))} {241#true} #70#return; {250#(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,066 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:47,081 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,097 INFO L290 TraceCheckUtils]: 0: Hoare triple {259#(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; {241#true} is VALID [2022-02-20 16:49:47,097 INFO L290 TraceCheckUtils]: 1: Hoare triple {241#true} assume __getMemory_~size#1 > 0; {241#true} is VALID [2022-02-20 16:49:47,097 INFO L290 TraceCheckUtils]: 2: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,098 INFO L290 TraceCheckUtils]: 3: Hoare triple {241#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {241#true} is VALID [2022-02-20 16:49:47,098 INFO L290 TraceCheckUtils]: 4: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,098 INFO L290 TraceCheckUtils]: 5: Hoare triple {241#true} assume true; {241#true} is VALID [2022-02-20 16:49:47,100 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {241#true} {251#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} #72#return; {251#(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,101 INFO L290 TraceCheckUtils]: 0: Hoare triple {241#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(19, 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); {241#true} is VALID [2022-02-20 16:49:47,101 INFO L290 TraceCheckUtils]: 1: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,102 INFO L272 TraceCheckUtils]: 2: Hoare triple {241#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {259#(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,102 INFO L290 TraceCheckUtils]: 3: Hoare triple {259#(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; {241#true} is VALID [2022-02-20 16:49:47,102 INFO L290 TraceCheckUtils]: 4: Hoare triple {241#true} assume __getMemory_~size#1 > 0; {241#true} is VALID [2022-02-20 16:49:47,103 INFO L290 TraceCheckUtils]: 5: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,103 INFO L290 TraceCheckUtils]: 6: Hoare triple {241#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {260#(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,106 INFO L290 TraceCheckUtils]: 7: Hoare triple {260#(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; {261#(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,107 INFO L290 TraceCheckUtils]: 8: Hoare triple {261#(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; {261#(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,108 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {261#(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))} {241#true} #70#return; {250#(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,109 INFO L290 TraceCheckUtils]: 10: Hoare triple {250#(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; {251#(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,110 INFO L272 TraceCheckUtils]: 11: Hoare triple {251#(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); {259#(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,110 INFO L290 TraceCheckUtils]: 12: Hoare triple {259#(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; {241#true} is VALID [2022-02-20 16:49:47,110 INFO L290 TraceCheckUtils]: 13: Hoare triple {241#true} assume __getMemory_~size#1 > 0; {241#true} is VALID [2022-02-20 16:49:47,111 INFO L290 TraceCheckUtils]: 14: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,111 INFO L290 TraceCheckUtils]: 15: Hoare triple {241#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {241#true} is VALID [2022-02-20 16:49:47,111 INFO L290 TraceCheckUtils]: 16: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,111 INFO L290 TraceCheckUtils]: 17: Hoare triple {241#true} assume true; {241#true} is VALID [2022-02-20 16:49:47,112 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {241#true} {251#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} #72#return; {251#(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,113 INFO L290 TraceCheckUtils]: 19: Hoare triple {251#(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; {251#(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,114 INFO L290 TraceCheckUtils]: 20: Hoare triple {251#(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); {242#false} is VALID [2022-02-20 16:49:47,114 INFO L272 TraceCheckUtils]: 21: Hoare triple {242#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {242#false} is VALID [2022-02-20 16:49:47,114 INFO L290 TraceCheckUtils]: 22: Hoare triple {242#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {242#false} is VALID [2022-02-20 16:49:47,115 INFO L290 TraceCheckUtils]: 23: Hoare triple {242#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {242#false} is VALID [2022-02-20 16:49:47,115 INFO L272 TraceCheckUtils]: 24: Hoare triple {242#false} call __blast_assert(); {242#false} is VALID [2022-02-20 16:49:47,115 INFO L290 TraceCheckUtils]: 25: Hoare triple {242#false} assume !false; {242#false} is VALID [2022-02-20 16:49:47,115 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,116 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:47,116 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1593157452] [2022-02-20 16:49:47,116 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1593157452] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:47,116 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1771998445] [2022-02-20 16:49:47,117 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:47,117 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:47,117 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:47,119 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,120 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,218 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,220 INFO L263 TraceCheckSpWp]: Trace formula consists of 168 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:49:47,236 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:47,240 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:47,473 INFO L290 TraceCheckUtils]: 0: Hoare triple {241#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(19, 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); {241#true} is VALID [2022-02-20 16:49:47,474 INFO L290 TraceCheckUtils]: 1: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,474 INFO L272 TraceCheckUtils]: 2: Hoare triple {241#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {241#true} is VALID [2022-02-20 16:49:47,474 INFO L290 TraceCheckUtils]: 3: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,475 INFO L290 TraceCheckUtils]: 4: Hoare triple {241#true} assume __getMemory_~size#1 > 0; {241#true} is VALID [2022-02-20 16:49:47,475 INFO L290 TraceCheckUtils]: 5: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,477 INFO L290 TraceCheckUtils]: 6: Hoare triple {241#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {260#(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,478 INFO L290 TraceCheckUtils]: 7: Hoare triple {260#(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; {261#(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,479 INFO L290 TraceCheckUtils]: 8: Hoare triple {261#(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; {261#(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,481 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {261#(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))} {241#true} #70#return; {250#(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,481 INFO L290 TraceCheckUtils]: 10: Hoare triple {250#(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; {251#(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,482 INFO L272 TraceCheckUtils]: 11: Hoare triple {251#(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); {241#true} is VALID [2022-02-20 16:49:47,482 INFO L290 TraceCheckUtils]: 12: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,482 INFO L290 TraceCheckUtils]: 13: Hoare triple {241#true} assume __getMemory_~size#1 > 0; {241#true} is VALID [2022-02-20 16:49:47,482 INFO L290 TraceCheckUtils]: 14: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,482 INFO L290 TraceCheckUtils]: 15: Hoare triple {241#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {241#true} is VALID [2022-02-20 16:49:47,483 INFO L290 TraceCheckUtils]: 16: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,483 INFO L290 TraceCheckUtils]: 17: Hoare triple {241#true} assume true; {241#true} is VALID [2022-02-20 16:49:47,484 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {241#true} {251#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} #72#return; {251#(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,485 INFO L290 TraceCheckUtils]: 19: Hoare triple {251#(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; {251#(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,485 INFO L290 TraceCheckUtils]: 20: Hoare triple {251#(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); {242#false} is VALID [2022-02-20 16:49:47,485 INFO L272 TraceCheckUtils]: 21: Hoare triple {242#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {242#false} is VALID [2022-02-20 16:49:47,486 INFO L290 TraceCheckUtils]: 22: Hoare triple {242#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {242#false} is VALID [2022-02-20 16:49:47,486 INFO L290 TraceCheckUtils]: 23: Hoare triple {242#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {242#false} is VALID [2022-02-20 16:49:47,486 INFO L272 TraceCheckUtils]: 24: Hoare triple {242#false} call __blast_assert(); {242#false} is VALID [2022-02-20 16:49:47,486 INFO L290 TraceCheckUtils]: 25: Hoare triple {242#false} assume !false; {242#false} is VALID [2022-02-20 16:49:47,487 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,487 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:49:47,710 INFO L290 TraceCheckUtils]: 25: Hoare triple {242#false} assume !false; {242#false} is VALID [2022-02-20 16:49:47,710 INFO L272 TraceCheckUtils]: 24: Hoare triple {242#false} call __blast_assert(); {242#false} is VALID [2022-02-20 16:49:47,711 INFO L290 TraceCheckUtils]: 23: Hoare triple {242#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {242#false} is VALID [2022-02-20 16:49:47,711 INFO L290 TraceCheckUtils]: 22: Hoare triple {242#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {242#false} is VALID [2022-02-20 16:49:47,711 INFO L272 TraceCheckUtils]: 21: Hoare triple {242#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {242#false} is VALID [2022-02-20 16:49:47,712 INFO L290 TraceCheckUtils]: 20: Hoare triple {251#(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); {242#false} is VALID [2022-02-20 16:49:47,713 INFO L290 TraceCheckUtils]: 19: Hoare triple {251#(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; {251#(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,714 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {241#true} {251#(and (= |ULTIMATE.start_main_~dev1~0#1.base| 0) (= |ULTIMATE.start_main_~dev1~0#1.offset| 0))} #72#return; {251#(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,714 INFO L290 TraceCheckUtils]: 17: Hoare triple {241#true} assume true; {241#true} is VALID [2022-02-20 16:49:47,714 INFO L290 TraceCheckUtils]: 16: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,714 INFO L290 TraceCheckUtils]: 15: Hoare triple {241#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {241#true} is VALID [2022-02-20 16:49:47,716 INFO L290 TraceCheckUtils]: 14: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,716 INFO L290 TraceCheckUtils]: 13: Hoare triple {241#true} assume __getMemory_~size#1 > 0; {241#true} is VALID [2022-02-20 16:49:47,716 INFO L290 TraceCheckUtils]: 12: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,717 INFO L272 TraceCheckUtils]: 11: Hoare triple {251#(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); {241#true} is VALID [2022-02-20 16:49:47,717 INFO L290 TraceCheckUtils]: 10: Hoare triple {250#(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; {251#(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,718 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {261#(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))} {241#true} #70#return; {250#(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,719 INFO L290 TraceCheckUtils]: 8: Hoare triple {261#(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; {261#(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,720 INFO L290 TraceCheckUtils]: 7: Hoare triple {260#(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; {261#(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,721 INFO L290 TraceCheckUtils]: 6: Hoare triple {241#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {260#(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,721 INFO L290 TraceCheckUtils]: 5: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,721 INFO L290 TraceCheckUtils]: 4: Hoare triple {241#true} assume __getMemory_~size#1 > 0; {241#true} is VALID [2022-02-20 16:49:47,721 INFO L290 TraceCheckUtils]: 3: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,722 INFO L272 TraceCheckUtils]: 2: Hoare triple {241#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {241#true} is VALID [2022-02-20 16:49:47,722 INFO L290 TraceCheckUtils]: 1: Hoare triple {241#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; {241#true} is VALID [2022-02-20 16:49:47,722 INFO L290 TraceCheckUtils]: 0: Hoare triple {241#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(19, 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); {241#true} is VALID [2022-02-20 16:49:47,722 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,723 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1771998445] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:49:47,726 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:49:47,726 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 6, 6] total 7 [2022-02-20 16:49:47,727 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [800964684] [2022-02-20 16:49:47,727 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:49:47,729 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:47,729 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:47,730 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:47,753 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:47,753 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 16:49:47,754 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:47,754 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 16:49:47,754 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 16:49:47,755 INFO L87 Difference]: Start difference. First operand 30 states and 36 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,079 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,079 INFO L93 Difference]: Finished difference Result 53 states and 66 transitions. [2022-02-20 16:49:48,080 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 16:49:48,080 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,080 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:48,080 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,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 66 transitions. [2022-02-20 16:49:48,083 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,085 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 66 transitions. [2022-02-20 16:49:48,085 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 66 transitions. [2022-02-20 16:49:48,141 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:48,143 INFO L225 Difference]: With dead ends: 53 [2022-02-20 16:49:48,143 INFO L226 Difference]: Without dead ends: 33 [2022-02-20 16:49:48,144 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,145 INFO L933 BasicCegarLoop]: 35 mSDtfsCounter, 12 mSDsluCounter, 97 mSDsCounter, 0 mSdLazyCounter, 76 mSolverCounterSat, 6 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 12 SdHoareTripleChecker+Valid, 132 SdHoareTripleChecker+Invalid, 82 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 6 IncrementalHoareTripleChecker+Valid, 76 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:48,145 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [12 Valid, 132 Invalid, 82 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [6 Valid, 76 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 16:49:48,146 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 33 states. [2022-02-20 16:49:48,151 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 33 to 33. [2022-02-20 16:49:48,152 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:48,152 INFO L82 GeneralOperation]: Start isEquivalent. First operand 33 states. Second operand has 33 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 7 states have call successors, (7), 3 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:48,152 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand has 33 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 7 states have call successors, (7), 3 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:48,153 INFO L87 Difference]: Start difference. First operand 33 states. Second operand has 33 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 7 states have call successors, (7), 3 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:48,155 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,155 INFO L93 Difference]: Finished difference Result 33 states and 39 transitions. [2022-02-20 16:49:48,155 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 39 transitions. [2022-02-20 16:49:48,156 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:48,156 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:48,156 INFO L74 IsIncluded]: Start isIncluded. First operand has 33 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 7 states have call successors, (7), 3 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 33 states. [2022-02-20 16:49:48,156 INFO L87 Difference]: Start difference. First operand has 33 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 7 states have call successors, (7), 3 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 33 states. [2022-02-20 16:49:48,158 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,158 INFO L93 Difference]: Finished difference Result 33 states and 39 transitions. [2022-02-20 16:49:48,158 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 39 transitions. [2022-02-20 16:49:48,159 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:48,159 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:48,159 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:48,159 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:48,159 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 33 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 24 states have internal predecessors, (26), 7 states have call successors, (7), 3 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:48,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 39 transitions. [2022-02-20 16:49:48,161 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 39 transitions. Word has length 26 [2022-02-20 16:49:48,161 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:48,161 INFO L470 AbstractCegarLoop]: Abstraction has 33 states and 39 transitions. [2022-02-20 16:49:48,162 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,162 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 39 transitions. [2022-02-20 16:49:48,162 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:49:48,162 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:48,162 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,190 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,381 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,381 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:48,382 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:48,382 INFO L85 PathProgramCache]: Analyzing trace with hash -1951804062, now seen corresponding path program 1 times [2022-02-20 16:49:48,382 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:48,382 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [963882681] [2022-02-20 16:49:48,382 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:48,382 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:48,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:48,452 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:48,456 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:48,462 INFO L290 TraceCheckUtils]: 0: Hoare triple {618#(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; {600#true} is VALID [2022-02-20 16:49:48,462 INFO L290 TraceCheckUtils]: 1: Hoare triple {600#true} assume __getMemory_~size#1 > 0; {600#true} is VALID [2022-02-20 16:49:48,462 INFO L290 TraceCheckUtils]: 2: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,462 INFO L290 TraceCheckUtils]: 3: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,463 INFO L290 TraceCheckUtils]: 4: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,463 INFO L290 TraceCheckUtils]: 5: Hoare triple {600#true} assume true; {600#true} is VALID [2022-02-20 16:49:48,463 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {600#true} {600#true} #70#return; {600#true} is VALID [2022-02-20 16:49:48,463 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:48,470 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:48,517 INFO L290 TraceCheckUtils]: 0: Hoare triple {618#(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; {600#true} is VALID [2022-02-20 16:49:48,517 INFO L290 TraceCheckUtils]: 1: Hoare triple {600#true} assume __getMemory_~size#1 > 0; {600#true} is VALID [2022-02-20 16:49:48,517 INFO L290 TraceCheckUtils]: 2: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,518 INFO L290 TraceCheckUtils]: 3: Hoare triple {600#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {619#(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,519 INFO L290 TraceCheckUtils]: 4: Hoare triple {619#(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; {620#(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,519 INFO L290 TraceCheckUtils]: 5: Hoare triple {620#(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; {620#(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,520 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {620#(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))} {600#true} #72#return; {616#(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,521 INFO L290 TraceCheckUtils]: 0: Hoare triple {600#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(19, 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); {600#true} is VALID [2022-02-20 16:49:48,521 INFO L290 TraceCheckUtils]: 1: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,521 INFO L272 TraceCheckUtils]: 2: Hoare triple {600#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {618#(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,522 INFO L290 TraceCheckUtils]: 3: Hoare triple {618#(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; {600#true} is VALID [2022-02-20 16:49:48,522 INFO L290 TraceCheckUtils]: 4: Hoare triple {600#true} assume __getMemory_~size#1 > 0; {600#true} is VALID [2022-02-20 16:49:48,522 INFO L290 TraceCheckUtils]: 5: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,522 INFO L290 TraceCheckUtils]: 6: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,522 INFO L290 TraceCheckUtils]: 7: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,523 INFO L290 TraceCheckUtils]: 8: Hoare triple {600#true} assume true; {600#true} is VALID [2022-02-20 16:49:48,523 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {600#true} {600#true} #70#return; {600#true} is VALID [2022-02-20 16:49:48,523 INFO L290 TraceCheckUtils]: 10: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,524 INFO L272 TraceCheckUtils]: 11: Hoare triple {600#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {618#(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,524 INFO L290 TraceCheckUtils]: 12: Hoare triple {618#(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; {600#true} is VALID [2022-02-20 16:49:48,524 INFO L290 TraceCheckUtils]: 13: Hoare triple {600#true} assume __getMemory_~size#1 > 0; {600#true} is VALID [2022-02-20 16:49:48,524 INFO L290 TraceCheckUtils]: 14: Hoare triple {600#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; {600#true} is VALID [2022-02-20 16:49:48,525 INFO L290 TraceCheckUtils]: 15: Hoare triple {600#true} assume 0 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0, 0; {619#(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,525 INFO L290 TraceCheckUtils]: 16: Hoare triple {619#(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; {620#(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,526 INFO L290 TraceCheckUtils]: 17: Hoare triple {620#(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; {620#(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,527 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {620#(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))} {600#true} #72#return; {616#(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,527 INFO L290 TraceCheckUtils]: 19: Hoare triple {616#(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; {617#(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,528 INFO L290 TraceCheckUtils]: 20: Hoare triple {617#(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); {601#false} is VALID [2022-02-20 16:49:48,528 INFO L272 TraceCheckUtils]: 21: Hoare triple {601#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {601#false} is VALID [2022-02-20 16:49:48,528 INFO L290 TraceCheckUtils]: 22: Hoare triple {601#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {601#false} is VALID [2022-02-20 16:49:48,528 INFO L290 TraceCheckUtils]: 23: Hoare triple {601#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {601#false} is VALID [2022-02-20 16:49:48,529 INFO L272 TraceCheckUtils]: 24: Hoare triple {601#false} call __blast_assert(); {601#false} is VALID [2022-02-20 16:49:48,529 INFO L290 TraceCheckUtils]: 25: Hoare triple {601#false} assume !false; {601#false} is VALID [2022-02-20 16:49:48,529 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,529 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:48,529 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [963882681] [2022-02-20 16:49:48,530 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [963882681] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:49:48,530 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:49:48,530 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-02-20 16:49:48,530 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1951713866] [2022-02-20 16:49:48,530 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:49:48,531 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,531 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:48,531 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,548 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,549 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 16:49:48,549 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:48,549 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 16:49:48,549 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 16:49:48,550 INFO L87 Difference]: Start difference. First operand 33 states and 39 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:48,844 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,844 INFO L93 Difference]: Finished difference Result 51 states and 61 transitions. [2022-02-20 16:49:48,844 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 16:49:48,845 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,845 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:48,845 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:48,847 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 61 transitions. [2022-02-20 16:49:48,847 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:48,849 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 61 transitions. [2022-02-20 16:49:48,849 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 61 transitions. [2022-02-20 16:49:48,902 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:48,903 INFO L225 Difference]: With dead ends: 51 [2022-02-20 16:49:48,903 INFO L226 Difference]: Without dead ends: 30 [2022-02-20 16:49:48,904 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:48,905 INFO L933 BasicCegarLoop]: 33 mSDtfsCounter, 12 mSDsluCounter, 88 mSDsCounter, 0 mSdLazyCounter, 77 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 12 SdHoareTripleChecker+Valid, 121 SdHoareTripleChecker+Invalid, 82 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 77 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:48,905 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [12 Valid, 121 Invalid, 82 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 77 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 16:49:48,906 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 30 states. [2022-02-20 16:49:48,909 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 30 to 30. [2022-02-20 16:49:48,909 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:48,910 INFO L82 GeneralOperation]: Start isEquivalent. First operand 30 states. Second operand has 30 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:49:48,910 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand has 30 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:49:48,910 INFO L87 Difference]: Start difference. First operand 30 states. Second operand has 30 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:49:48,912 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,912 INFO L93 Difference]: Finished difference Result 30 states and 35 transitions. [2022-02-20 16:49:48,913 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 35 transitions. [2022-02-20 16:49:48,913 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:48,913 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:48,913 INFO L74 IsIncluded]: Start isIncluded. First operand has 30 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 30 states. [2022-02-20 16:49:48,914 INFO L87 Difference]: Start difference. First operand has 30 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 30 states. [2022-02-20 16:49:48,915 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:48,916 INFO L93 Difference]: Finished difference Result 30 states and 35 transitions. [2022-02-20 16:49:48,916 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 35 transitions. [2022-02-20 16:49:48,916 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:48,916 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:48,917 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:48,917 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:48,917 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 30 states, 20 states have (on average 1.15) internal successors, (23), 21 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:49:48,918 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 35 transitions. [2022-02-20 16:49:48,919 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 35 transitions. Word has length 26 [2022-02-20 16:49:48,919 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:48,919 INFO L470 AbstractCegarLoop]: Abstraction has 30 states and 35 transitions. [2022-02-20 16:49:48,919 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:48,919 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 35 transitions. [2022-02-20 16:49:48,920 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:49:48,920 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:48,920 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:48,920 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-02-20 16:49:48,921 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:48,921 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:48,921 INFO L85 PathProgramCache]: Analyzing trace with hash -1250739484, now seen corresponding path program 1 times [2022-02-20 16:49:48,921 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:48,922 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1306574495] [2022-02-20 16:49:48,922 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:48,922 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:48,939 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,020 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:49,025 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,052 INFO L290 TraceCheckUtils]: 0: Hoare triple {818#(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; {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,053 INFO L290 TraceCheckUtils]: 1: Hoare triple {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,054 INFO L290 TraceCheckUtils]: 2: Hoare triple {819#(= ~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; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,054 INFO L290 TraceCheckUtils]: 3: Hoare triple {820#(<= (+ |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; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,055 INFO L290 TraceCheckUtils]: 4: Hoare triple {820#(<= (+ |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; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,055 INFO L290 TraceCheckUtils]: 5: Hoare triple {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,056 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {798#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} #70#return; {806#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,056 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:49,061 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,098 INFO L290 TraceCheckUtils]: 0: Hoare triple {818#(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; {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,098 INFO L290 TraceCheckUtils]: 1: Hoare triple {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,099 INFO L290 TraceCheckUtils]: 2: Hoare triple {819#(= ~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; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,100 INFO L290 TraceCheckUtils]: 3: Hoare triple {820#(<= (+ |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; {821#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:49,100 INFO L290 TraceCheckUtils]: 4: Hoare triple {821#(<= (+ |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; {822#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:49,101 INFO L290 TraceCheckUtils]: 5: Hoare triple {822#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {822#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:49,102 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {822#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {806#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} #72#return; {814#(and (<= 2 |ULTIMATE.start_main_#t~ret11#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,103 INFO L290 TraceCheckUtils]: 0: Hoare triple {796#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(19, 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); {798#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,104 INFO L290 TraceCheckUtils]: 1: Hoare triple {798#(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; {798#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,104 INFO L272 TraceCheckUtils]: 2: Hoare triple {798#(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); {818#(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,105 INFO L290 TraceCheckUtils]: 3: Hoare triple {818#(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; {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,105 INFO L290 TraceCheckUtils]: 4: Hoare triple {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,106 INFO L290 TraceCheckUtils]: 5: Hoare triple {819#(= ~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; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,106 INFO L290 TraceCheckUtils]: 6: Hoare triple {820#(<= (+ |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; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,106 INFO L290 TraceCheckUtils]: 7: Hoare triple {820#(<= (+ |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; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,107 INFO L290 TraceCheckUtils]: 8: Hoare triple {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} assume true; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,107 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} {798#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} #70#return; {806#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,108 INFO L290 TraceCheckUtils]: 10: Hoare triple {806#(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; {806#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,108 INFO L272 TraceCheckUtils]: 11: Hoare triple {806#(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); {818#(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,109 INFO L290 TraceCheckUtils]: 12: Hoare triple {818#(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; {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,109 INFO L290 TraceCheckUtils]: 13: Hoare triple {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {819#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:49,110 INFO L290 TraceCheckUtils]: 14: Hoare triple {819#(= ~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; {820#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:49,115 INFO L290 TraceCheckUtils]: 15: Hoare triple {820#(<= (+ |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; {821#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:49,116 INFO L290 TraceCheckUtils]: 16: Hoare triple {821#(<= (+ |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; {822#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:49,123 INFO L290 TraceCheckUtils]: 17: Hoare triple {822#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {822#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:49,125 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {822#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {806#(and (= ~elem~0.offset 0) (<= 1 ~guard_malloc_counter~0.offset))} #72#return; {814#(and (<= 2 |ULTIMATE.start_main_#t~ret11#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,125 INFO L290 TraceCheckUtils]: 19: Hoare triple {814#(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; {815#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,126 INFO L290 TraceCheckUtils]: 20: Hoare triple {815#(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); {815#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,127 INFO L272 TraceCheckUtils]: 21: Hoare triple {815#(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); {816#(and (= ~elem~0.offset 0) (<= 2 |list_add_#in~new.offset|))} is VALID [2022-02-20 16:49:49,128 INFO L290 TraceCheckUtils]: 22: Hoare triple {816#(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; {817#(and (not (= list_add_~new.offset 0)) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,129 INFO L290 TraceCheckUtils]: 23: Hoare triple {817#(and (not (= list_add_~new.offset 0)) (= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {797#false} is VALID [2022-02-20 16:49:49,129 INFO L272 TraceCheckUtils]: 24: Hoare triple {797#false} call __blast_assert(); {797#false} is VALID [2022-02-20 16:49:49,129 INFO L290 TraceCheckUtils]: 25: Hoare triple {797#false} assume !false; {797#false} is VALID [2022-02-20 16:49:49,130 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,130 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:49,130 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1306574495] [2022-02-20 16:49:49,130 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1306574495] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:49,130 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2017482016] [2022-02-20 16:49:49,130 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:49,130 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:49,131 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:49,136 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,139 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,198 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,199 INFO L263 TraceCheckSpWp]: Trace formula consists of 166 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:49:49,214 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:49,216 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:49,760 INFO L290 TraceCheckUtils]: 0: Hoare triple {796#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(19, 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); {826#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,761 INFO L290 TraceCheckUtils]: 1: Hoare triple {826#(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; {826#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,761 INFO L272 TraceCheckUtils]: 2: Hoare triple {826#(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); {833#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,767 INFO L290 TraceCheckUtils]: 3: Hoare triple {833#(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; {833#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,768 INFO L290 TraceCheckUtils]: 4: Hoare triple {833#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} assume __getMemory_~size#1 > 0; {833#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,769 INFO L290 TraceCheckUtils]: 5: Hoare triple {833#(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; {843#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,769 INFO L290 TraceCheckUtils]: 6: Hoare triple {843#(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; {843#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,770 INFO L290 TraceCheckUtils]: 7: Hoare triple {843#(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; {843#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,770 INFO L290 TraceCheckUtils]: 8: Hoare triple {843#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} assume true; {843#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,771 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {843#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} {826#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} #70#return; {856#(and (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,772 INFO L290 TraceCheckUtils]: 10: Hoare triple {856#(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; {856#(and (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,772 INFO L272 TraceCheckUtils]: 11: Hoare triple {856#(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); {833#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,773 INFO L290 TraceCheckUtils]: 12: Hoare triple {833#(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; {833#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,773 INFO L290 TraceCheckUtils]: 13: Hoare triple {833#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} assume __getMemory_~size#1 > 0; {833#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:49,774 INFO L290 TraceCheckUtils]: 14: Hoare triple {833#(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; {843#(and (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,775 INFO L290 TraceCheckUtils]: 15: Hoare triple {843#(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; {875#(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:49,775 INFO L290 TraceCheckUtils]: 16: Hoare triple {875#(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; {879#(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:49,776 INFO L290 TraceCheckUtils]: 17: Hoare triple {879#(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; {879#(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:49,777 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {879#(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))} {856#(and (<= 1 ~guard_malloc_counter~0.offset) (<= ~elem~0.offset 0))} #72#return; {886#(and (<= 2 |ULTIMATE.start_main_#t~ret11#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,777 INFO L290 TraceCheckUtils]: 19: Hoare triple {886#(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; {890#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,777 INFO L290 TraceCheckUtils]: 20: Hoare triple {890#(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); {890#(and (<= 2 |ULTIMATE.start_main_~dev2~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,781 INFO L272 TraceCheckUtils]: 21: Hoare triple {890#(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); {897#(and (<= 2 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:49,782 INFO L290 TraceCheckUtils]: 22: Hoare triple {897#(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; {901#(and (<= ~elem~0.offset 0) (<= 2 list_add_~new.offset))} is VALID [2022-02-20 16:49:49,783 INFO L290 TraceCheckUtils]: 23: Hoare triple {901#(and (<= ~elem~0.offset 0) (<= 2 list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {797#false} is VALID [2022-02-20 16:49:49,783 INFO L272 TraceCheckUtils]: 24: Hoare triple {797#false} call __blast_assert(); {797#false} is VALID [2022-02-20 16:49:49,783 INFO L290 TraceCheckUtils]: 25: Hoare triple {797#false} assume !false; {797#false} is VALID [2022-02-20 16:49:49,783 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:49,783 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:49:49,784 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2017482016] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:49:49,784 INFO L191 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-02-20 16:49:49,784 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [12] total 22 [2022-02-20 16:49:49,784 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1860941362] [2022-02-20 16:49:49,784 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:49:49,785 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:49,785 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:49,786 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:49,805 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:49,805 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-02-20 16:49:49,805 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:49,806 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-02-20 16:49:49,806 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=445, Unknown=0, NotChecked=0, Total=506 [2022-02-20 16:49:49,806 INFO L87 Difference]: Start difference. First operand 30 states and 35 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,680 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:50,680 INFO L93 Difference]: Finished difference Result 57 states and 68 transitions. [2022-02-20 16:49:50,680 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-02-20 16:49:50,680 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,681 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:50,681 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,683 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 68 transitions. [2022-02-20 16:49:50,683 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,685 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 68 transitions. [2022-02-20 16:49:50,685 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 68 transitions. [2022-02-20 16:49:50,752 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:50,756 INFO L225 Difference]: With dead ends: 57 [2022-02-20 16:49:50,756 INFO L226 Difference]: Without dead ends: 54 [2022-02-20 16:49:50,757 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,761 INFO L933 BasicCegarLoop]: 30 mSDtfsCounter, 74 mSDsluCounter, 105 mSDsCounter, 0 mSdLazyCounter, 254 mSolverCounterSat, 37 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 74 SdHoareTripleChecker+Valid, 135 SdHoareTripleChecker+Invalid, 291 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 37 IncrementalHoareTripleChecker+Valid, 254 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:50,762 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [74 Valid, 135 Invalid, 291 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [37 Valid, 254 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-02-20 16:49:50,764 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2022-02-20 16:49:50,798 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 48. [2022-02-20 16:49:50,798 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:50,799 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand has 48 states, 33 states have (on average 1.2121212121212122) internal successors, (40), 34 states have internal predecessors, (40), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:49:50,799 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand has 48 states, 33 states have (on average 1.2121212121212122) internal successors, (40), 34 states have internal predecessors, (40), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:49:50,799 INFO L87 Difference]: Start difference. First operand 54 states. Second operand has 48 states, 33 states have (on average 1.2121212121212122) internal successors, (40), 34 states have internal predecessors, (40), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:49:50,802 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:50,802 INFO L93 Difference]: Finished difference Result 54 states and 65 transitions. [2022-02-20 16:49:50,802 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 65 transitions. [2022-02-20 16:49:50,803 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:50,803 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:50,803 INFO L74 IsIncluded]: Start isIncluded. First operand has 48 states, 33 states have (on average 1.2121212121212122) internal successors, (40), 34 states have internal predecessors, (40), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) Second operand 54 states. [2022-02-20 16:49:50,804 INFO L87 Difference]: Start difference. First operand has 48 states, 33 states have (on average 1.2121212121212122) internal successors, (40), 34 states have internal predecessors, (40), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) Second operand 54 states. [2022-02-20 16:49:50,806 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:50,806 INFO L93 Difference]: Finished difference Result 54 states and 65 transitions. [2022-02-20 16:49:50,806 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 65 transitions. [2022-02-20 16:49:50,807 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:50,807 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:50,807 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:50,807 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:50,808 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 48 states, 33 states have (on average 1.2121212121212122) internal successors, (40), 34 states have internal predecessors, (40), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:49:50,810 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 60 transitions. [2022-02-20 16:49:50,810 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 60 transitions. Word has length 26 [2022-02-20 16:49:50,810 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:50,810 INFO L470 AbstractCegarLoop]: Abstraction has 48 states and 60 transitions. [2022-02-20 16:49:50,810 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,810 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 60 transitions. [2022-02-20 16:49:50,811 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2022-02-20 16:49:50,811 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:50,811 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:50,831 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,023 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,024 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:51,024 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:51,024 INFO L85 PathProgramCache]: Analyzing trace with hash 937918941, now seen corresponding path program 1 times [2022-02-20 16:49:51,024 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:51,024 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1518503466] [2022-02-20 16:49:51,024 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:51,024 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:51,045 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,118 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:51,124 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,150 INFO L290 TraceCheckUtils]: 0: Hoare triple {1207#(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; {1178#true} is VALID [2022-02-20 16:49:51,150 INFO L290 TraceCheckUtils]: 1: Hoare triple {1178#true} assume __getMemory_~size#1 > 0; {1178#true} is VALID [2022-02-20 16:49:51,150 INFO L290 TraceCheckUtils]: 2: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:51,151 INFO L290 TraceCheckUtils]: 3: Hoare triple {1178#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; {1208#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,152 INFO L290 TraceCheckUtils]: 4: Hoare triple {1208#(<= |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; {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,152 INFO L290 TraceCheckUtils]: 5: Hoare triple {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,153 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {1178#true} #70#return; {1187#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,154 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:51,161 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,228 INFO L290 TraceCheckUtils]: 0: Hoare triple {1207#(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; {1210#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:51,229 INFO L290 TraceCheckUtils]: 1: Hoare triple {1210#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {1210#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:51,230 INFO L290 TraceCheckUtils]: 2: Hoare triple {1210#(= ~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; {1211#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,230 INFO L290 TraceCheckUtils]: 3: Hoare triple {1211#(<= (+ |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; {1212#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:51,231 INFO L290 TraceCheckUtils]: 4: Hoare triple {1212#(<= (+ |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; {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:51,231 INFO L290 TraceCheckUtils]: 5: Hoare triple {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:51,232 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1188#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #72#return; {1196#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:51,250 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 16:49:51,253 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,289 INFO L290 TraceCheckUtils]: 0: Hoare triple {1214#(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; {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,289 INFO L290 TraceCheckUtils]: 1: Hoare triple {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,290 INFO L290 TraceCheckUtils]: 2: Hoare triple {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,290 INFO L290 TraceCheckUtils]: 3: Hoare triple {1215#(= |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; {1216#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:51,291 INFO L290 TraceCheckUtils]: 4: Hoare triple {1216#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {1216#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:51,292 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1216#(= ~elem~0.offset |list_add_#in~new.offset|)} {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #74#return; {1204#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,292 INFO L290 TraceCheckUtils]: 0: Hoare triple {1178#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(19, 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); {1178#true} is VALID [2022-02-20 16:49:51,293 INFO L290 TraceCheckUtils]: 1: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:51,293 INFO L272 TraceCheckUtils]: 2: Hoare triple {1178#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1207#(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,293 INFO L290 TraceCheckUtils]: 3: Hoare triple {1207#(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; {1178#true} is VALID [2022-02-20 16:49:51,294 INFO L290 TraceCheckUtils]: 4: Hoare triple {1178#true} assume __getMemory_~size#1 > 0; {1178#true} is VALID [2022-02-20 16:49:51,294 INFO L290 TraceCheckUtils]: 5: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:51,294 INFO L290 TraceCheckUtils]: 6: Hoare triple {1178#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; {1208#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,295 INFO L290 TraceCheckUtils]: 7: Hoare triple {1208#(<= |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; {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,295 INFO L290 TraceCheckUtils]: 8: Hoare triple {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,296 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {1178#true} #70#return; {1187#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,296 INFO L290 TraceCheckUtils]: 10: Hoare triple {1187#(<= |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; {1188#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,297 INFO L272 TraceCheckUtils]: 11: Hoare triple {1188#(<= |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); {1207#(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,298 INFO L290 TraceCheckUtils]: 12: Hoare triple {1207#(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; {1210#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:51,298 INFO L290 TraceCheckUtils]: 13: Hoare triple {1210#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {1210#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:51,299 INFO L290 TraceCheckUtils]: 14: Hoare triple {1210#(= ~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; {1211#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,305 INFO L290 TraceCheckUtils]: 15: Hoare triple {1211#(<= (+ |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; {1212#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:51,305 INFO L290 TraceCheckUtils]: 16: Hoare triple {1212#(<= (+ |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; {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:51,307 INFO L290 TraceCheckUtils]: 17: Hoare triple {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:51,308 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1188#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #72#return; {1196#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:51,309 INFO L290 TraceCheckUtils]: 19: Hoare triple {1196#(<= (+ |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; {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:51,311 INFO L290 TraceCheckUtils]: 20: Hoare triple {1197#(<= (+ |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); {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:51,312 INFO L272 TraceCheckUtils]: 21: Hoare triple {1197#(<= (+ |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); {1214#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:49:51,313 INFO L290 TraceCheckUtils]: 22: Hoare triple {1214#(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; {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,313 INFO L290 TraceCheckUtils]: 23: Hoare triple {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,313 INFO L290 TraceCheckUtils]: 24: Hoare triple {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1215#(= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,314 INFO L290 TraceCheckUtils]: 25: Hoare triple {1215#(= |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; {1216#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:51,315 INFO L290 TraceCheckUtils]: 26: Hoare triple {1216#(= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {1216#(= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:51,316 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1216#(= ~elem~0.offset |list_add_#in~new.offset|)} {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #74#return; {1204#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,317 INFO L272 TraceCheckUtils]: 28: Hoare triple {1204#(<= (+ |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); {1205#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,317 INFO L290 TraceCheckUtils]: 29: Hoare triple {1205#(<= (+ |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; {1206#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2022-02-20 16:49:51,320 INFO L290 TraceCheckUtils]: 30: Hoare triple {1206#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1179#false} is VALID [2022-02-20 16:49:51,321 INFO L272 TraceCheckUtils]: 31: Hoare triple {1179#false} call __blast_assert(); {1179#false} is VALID [2022-02-20 16:49:51,321 INFO L290 TraceCheckUtils]: 32: Hoare triple {1179#false} assume !false; {1179#false} is VALID [2022-02-20 16:49:51,321 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,321 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:51,321 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1518503466] [2022-02-20 16:49:51,321 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1518503466] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:51,321 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [134312781] [2022-02-20 16:49:51,321 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:51,321 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:51,322 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:51,322 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,356 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,419 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,420 INFO L263 TraceCheckSpWp]: Trace formula consists of 200 conjuncts, 19 conjunts are in the unsatisfiable core [2022-02-20 16:49:51,438 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:51,439 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:51,864 INFO L290 TraceCheckUtils]: 0: Hoare triple {1178#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(19, 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); {1178#true} is VALID [2022-02-20 16:49:51,865 INFO L290 TraceCheckUtils]: 1: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:51,865 INFO L272 TraceCheckUtils]: 2: Hoare triple {1178#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1178#true} is VALID [2022-02-20 16:49:51,865 INFO L290 TraceCheckUtils]: 3: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:51,865 INFO L290 TraceCheckUtils]: 4: Hoare triple {1178#true} assume __getMemory_~size#1 > 0; {1178#true} is VALID [2022-02-20 16:49:51,865 INFO L290 TraceCheckUtils]: 5: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:51,866 INFO L290 TraceCheckUtils]: 6: Hoare triple {1178#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; {1208#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,866 INFO L290 TraceCheckUtils]: 7: Hoare triple {1208#(<= |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; {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,866 INFO L290 TraceCheckUtils]: 8: Hoare triple {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,867 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {1178#true} #70#return; {1187#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,868 INFO L290 TraceCheckUtils]: 10: Hoare triple {1187#(<= |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; {1188#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,868 INFO L272 TraceCheckUtils]: 11: Hoare triple {1188#(<= |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); {1253#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,869 INFO L290 TraceCheckUtils]: 12: Hoare triple {1253#(<= |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; {1253#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,869 INFO L290 TraceCheckUtils]: 13: Hoare triple {1253#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume __getMemory_~size#1 > 0; {1253#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,869 INFO L290 TraceCheckUtils]: 14: Hoare triple {1253#(<= |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; {1211#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:51,870 INFO L290 TraceCheckUtils]: 15: Hoare triple {1211#(<= (+ |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; {1266#(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:51,870 INFO L290 TraceCheckUtils]: 16: Hoare triple {1266#(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; {1270#(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:51,871 INFO L290 TraceCheckUtils]: 17: Hoare triple {1270#(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; {1270#(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:51,872 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1270#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} {1188#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #72#return; {1196#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:51,873 INFO L290 TraceCheckUtils]: 19: Hoare triple {1196#(<= (+ |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; {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:51,873 INFO L290 TraceCheckUtils]: 20: Hoare triple {1197#(<= (+ |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); {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:51,873 INFO L272 TraceCheckUtils]: 21: Hoare triple {1197#(<= (+ |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); {1178#true} is VALID [2022-02-20 16:49:51,874 INFO L290 TraceCheckUtils]: 22: Hoare triple {1178#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,874 INFO L290 TraceCheckUtils]: 23: Hoare triple {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,875 INFO L290 TraceCheckUtils]: 24: Hoare triple {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:51,875 INFO L290 TraceCheckUtils]: 25: Hoare triple {1289#(<= |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; {1299#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:49:51,875 INFO L290 TraceCheckUtils]: 26: Hoare triple {1299#(<= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {1299#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:49:51,876 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1299#(<= |list_add_#in~new.offset| ~elem~0.offset)} {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #74#return; {1204#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,877 INFO L272 TraceCheckUtils]: 28: Hoare triple {1204#(<= (+ |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); {1205#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,878 INFO L290 TraceCheckUtils]: 29: Hoare triple {1205#(<= (+ |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; {1312#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:51,878 INFO L290 TraceCheckUtils]: 30: Hoare triple {1312#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1179#false} is VALID [2022-02-20 16:49:51,878 INFO L272 TraceCheckUtils]: 31: Hoare triple {1179#false} call __blast_assert(); {1179#false} is VALID [2022-02-20 16:49:51,878 INFO L290 TraceCheckUtils]: 32: Hoare triple {1179#false} assume !false; {1179#false} is VALID [2022-02-20 16:49:51,879 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:51,879 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:49:52,599 INFO L290 TraceCheckUtils]: 32: Hoare triple {1179#false} assume !false; {1179#false} is VALID [2022-02-20 16:49:52,600 INFO L272 TraceCheckUtils]: 31: Hoare triple {1179#false} call __blast_assert(); {1179#false} is VALID [2022-02-20 16:49:52,600 INFO L290 TraceCheckUtils]: 30: Hoare triple {1312#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1179#false} is VALID [2022-02-20 16:49:52,601 INFO L290 TraceCheckUtils]: 29: Hoare triple {1205#(<= (+ |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; {1312#(<= (+ list_add_~new.offset 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,602 INFO L272 TraceCheckUtils]: 28: Hoare triple {1204#(<= (+ |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); {1205#(<= (+ |list_add_#in~new.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,605 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1299#(<= |list_add_#in~new.offset| ~elem~0.offset)} {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #74#return; {1204#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) ~elem~0.offset)} is VALID [2022-02-20 16:49:52,605 INFO L290 TraceCheckUtils]: 26: Hoare triple {1299#(<= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {1299#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:49:52,606 INFO L290 TraceCheckUtils]: 25: Hoare triple {1289#(<= |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; {1299#(<= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:49:52,606 INFO L290 TraceCheckUtils]: 24: Hoare triple {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,606 INFO L290 TraceCheckUtils]: 23: Hoare triple {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,607 INFO L290 TraceCheckUtils]: 22: Hoare triple {1178#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1289#(<= |list_add_#in~new.offset| list_add_~new.offset)} is VALID [2022-02-20 16:49:52,607 INFO L272 TraceCheckUtils]: 21: Hoare triple {1197#(<= (+ |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); {1178#true} is VALID [2022-02-20 16:49:52,608 INFO L290 TraceCheckUtils]: 20: Hoare triple {1197#(<= (+ |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); {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:52,608 INFO L290 TraceCheckUtils]: 19: Hoare triple {1196#(<= (+ |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; {1197#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:52,609 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1188#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #72#return; {1196#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:52,610 INFO L290 TraceCheckUtils]: 17: Hoare triple {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:52,610 INFO L290 TraceCheckUtils]: 16: Hoare triple {1212#(<= (+ |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; {1213#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:52,611 INFO L290 TraceCheckUtils]: 15: Hoare triple {1211#(<= (+ |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; {1212#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:52,612 INFO L290 TraceCheckUtils]: 14: Hoare triple {1253#(<= |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; {1211#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,613 INFO L290 TraceCheckUtils]: 13: Hoare triple {1253#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume __getMemory_~size#1 > 0; {1253#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,613 INFO L290 TraceCheckUtils]: 12: Hoare triple {1253#(<= |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; {1253#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,614 INFO L272 TraceCheckUtils]: 11: Hoare triple {1188#(<= |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); {1253#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,614 INFO L290 TraceCheckUtils]: 10: Hoare triple {1187#(<= |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; {1188#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,615 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {1178#true} #70#return; {1187#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,615 INFO L290 TraceCheckUtils]: 8: Hoare triple {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,616 INFO L290 TraceCheckUtils]: 7: Hoare triple {1208#(<= |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; {1209#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,616 INFO L290 TraceCheckUtils]: 6: Hoare triple {1178#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; {1208#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:52,616 INFO L290 TraceCheckUtils]: 5: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:52,616 INFO L290 TraceCheckUtils]: 4: Hoare triple {1178#true} assume __getMemory_~size#1 > 0; {1178#true} is VALID [2022-02-20 16:49:52,616 INFO L290 TraceCheckUtils]: 3: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:52,616 INFO L272 TraceCheckUtils]: 2: Hoare triple {1178#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1178#true} is VALID [2022-02-20 16:49:52,616 INFO L290 TraceCheckUtils]: 1: Hoare triple {1178#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; {1178#true} is VALID [2022-02-20 16:49:52,617 INFO L290 TraceCheckUtils]: 0: Hoare triple {1178#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(19, 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); {1178#true} is VALID [2022-02-20 16:49:52,617 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,617 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [134312781] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:49:52,617 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:49:52,617 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 17, 17] total 25 [2022-02-20 16:49:52,618 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1158182740] [2022-02-20 16:49:52,618 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:49:52,618 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,619 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:52,620 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,662 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,662 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 25 states [2022-02-20 16:49:52,664 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:52,665 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2022-02-20 16:49:52,665 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=539, Unknown=0, NotChecked=0, Total=600 [2022-02-20 16:49:52,666 INFO L87 Difference]: Start difference. First operand 48 states and 60 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,537 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:54,537 INFO L93 Difference]: Finished difference Result 64 states and 80 transitions. [2022-02-20 16:49:54,537 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-02-20 16:49:54,538 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,538 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:54,538 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,540 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 59 transitions. [2022-02-20 16:49:54,540 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,542 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 59 transitions. [2022-02-20 16:49:54,542 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states and 59 transitions. [2022-02-20 16:49:54,611 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:54,612 INFO L225 Difference]: With dead ends: 64 [2022-02-20 16:49:54,613 INFO L226 Difference]: Without dead ends: 60 [2022-02-20 16:49:54,613 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 98 GetRequests, 62 SyntacticMatches, 1 SemanticMatches, 35 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 120 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=163, Invalid=1169, Unknown=0, NotChecked=0, Total=1332 [2022-02-20 16:49:54,614 INFO L933 BasicCegarLoop]: 25 mSDtfsCounter, 68 mSDsluCounter, 83 mSDsCounter, 0 mSdLazyCounter, 703 mSolverCounterSat, 56 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 68 SdHoareTripleChecker+Valid, 108 SdHoareTripleChecker+Invalid, 759 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 56 IncrementalHoareTripleChecker+Valid, 703 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.8s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:54,614 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [68 Valid, 108 Invalid, 759 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [56 Valid, 703 Invalid, 0 Unknown, 0 Unchecked, 0.8s Time] [2022-02-20 16:49:54,615 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2022-02-20 16:49:54,651 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 60. [2022-02-20 16:49:54,651 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:54,652 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand has 60 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 11 states have call successors, (11), 6 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:49:54,652 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand has 60 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 11 states have call successors, (11), 6 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:49:54,652 INFO L87 Difference]: Start difference. First operand 60 states. Second operand has 60 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 11 states have call successors, (11), 6 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:49:54,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:54,655 INFO L93 Difference]: Finished difference Result 60 states and 72 transitions. [2022-02-20 16:49:54,655 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 72 transitions. [2022-02-20 16:49:54,656 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:54,656 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:54,656 INFO L74 IsIncluded]: Start isIncluded. First operand has 60 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 11 states have call successors, (11), 6 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) Second operand 60 states. [2022-02-20 16:49:54,656 INFO L87 Difference]: Start difference. First operand has 60 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 11 states have call successors, (11), 6 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) Second operand 60 states. [2022-02-20 16:49:54,659 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:54,659 INFO L93 Difference]: Finished difference Result 60 states and 72 transitions. [2022-02-20 16:49:54,659 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 72 transitions. [2022-02-20 16:49:54,659 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:54,659 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:54,659 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:54,660 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:54,660 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 60 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 11 states have call successors, (11), 6 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:49:54,662 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 72 transitions. [2022-02-20 16:49:54,662 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 72 transitions. Word has length 33 [2022-02-20 16:49:54,663 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:54,663 INFO L470 AbstractCegarLoop]: Abstraction has 60 states and 72 transitions. [2022-02-20 16:49:54,663 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,663 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 72 transitions. [2022-02-20 16:49:54,664 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2022-02-20 16:49:54,664 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:54,664 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,684 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,875 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,876 INFO L402 AbstractCegarLoop]: === Iteration 6 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:54,876 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:54,876 INFO L85 PathProgramCache]: Analyzing trace with hash 128572315, now seen corresponding path program 1 times [2022-02-20 16:49:54,876 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:54,876 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1311208050] [2022-02-20 16:49:54,876 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:54,877 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:54,890 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:54,958 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:54,962 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:55,004 INFO L290 TraceCheckUtils]: 0: Hoare triple {1752#(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; {1753#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:55,005 INFO L290 TraceCheckUtils]: 1: Hoare triple {1753#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {1753#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:55,006 INFO L290 TraceCheckUtils]: 2: Hoare triple {1753#(= ~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; {1754#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:55,007 INFO L290 TraceCheckUtils]: 3: Hoare triple {1754#(<= (+ |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; {1755#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:55,008 INFO L290 TraceCheckUtils]: 4: Hoare triple {1755#(<= (+ |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; {1756#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:55,008 INFO L290 TraceCheckUtils]: 5: Hoare triple {1756#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1756#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:55,009 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1756#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1727#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} #70#return; {1735#(and (<= 1 |ULTIMATE.start_main_#t~ret10#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,009 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:55,015 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:55,021 INFO L290 TraceCheckUtils]: 0: Hoare triple {1752#(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; {1725#true} is VALID [2022-02-20 16:49:55,022 INFO L290 TraceCheckUtils]: 1: Hoare triple {1725#true} assume __getMemory_~size#1 > 0; {1725#true} is VALID [2022-02-20 16:49:55,022 INFO L290 TraceCheckUtils]: 2: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:55,027 INFO L290 TraceCheckUtils]: 3: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:55,027 INFO L290 TraceCheckUtils]: 4: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:55,027 INFO L290 TraceCheckUtils]: 5: Hoare triple {1725#true} assume true; {1725#true} is VALID [2022-02-20 16:49:55,028 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1725#true} {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} #72#return; {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:55,038 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 16:49:55,046 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:55,061 INFO L290 TraceCheckUtils]: 0: Hoare triple {1757#(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; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,062 INFO L290 TraceCheckUtils]: 1: Hoare triple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,062 INFO L290 TraceCheckUtils]: 2: Hoare triple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,063 INFO L290 TraceCheckUtils]: 3: Hoare triple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0 != #t~nondet9);havoc #t~nondet9; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,063 INFO L290 TraceCheckUtils]: 4: Hoare triple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,064 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} #74#return; {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:55,066 INFO L290 TraceCheckUtils]: 0: Hoare triple {1725#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(19, 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); {1727#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,066 INFO L290 TraceCheckUtils]: 1: Hoare triple {1727#(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; {1727#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,067 INFO L272 TraceCheckUtils]: 2: Hoare triple {1727#(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); {1752#(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:55,067 INFO L290 TraceCheckUtils]: 3: Hoare triple {1752#(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; {1753#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:55,067 INFO L290 TraceCheckUtils]: 4: Hoare triple {1753#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume __getMemory_~size#1 > 0; {1753#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:49:55,068 INFO L290 TraceCheckUtils]: 5: Hoare triple {1753#(= ~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; {1754#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:55,068 INFO L290 TraceCheckUtils]: 6: Hoare triple {1754#(<= (+ |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; {1755#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:49:55,069 INFO L290 TraceCheckUtils]: 7: Hoare triple {1755#(<= (+ |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; {1756#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:55,069 INFO L290 TraceCheckUtils]: 8: Hoare triple {1756#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {1756#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:49:55,070 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1756#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {1727#(and (= ~guard_malloc_counter~0.offset 0) (= ~elem~0.offset 0))} #70#return; {1735#(and (<= 1 |ULTIMATE.start_main_#t~ret10#1.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,070 INFO L290 TraceCheckUtils]: 10: Hoare triple {1735#(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; {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:55,071 INFO L272 TraceCheckUtils]: 11: Hoare triple {1736#(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); {1752#(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:55,071 INFO L290 TraceCheckUtils]: 12: Hoare triple {1752#(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; {1725#true} is VALID [2022-02-20 16:49:55,071 INFO L290 TraceCheckUtils]: 13: Hoare triple {1725#true} assume __getMemory_~size#1 > 0; {1725#true} is VALID [2022-02-20 16:49:55,071 INFO L290 TraceCheckUtils]: 14: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:55,072 INFO L290 TraceCheckUtils]: 15: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:55,072 INFO L290 TraceCheckUtils]: 16: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:55,072 INFO L290 TraceCheckUtils]: 17: Hoare triple {1725#true} assume true; {1725#true} is VALID [2022-02-20 16:49:55,073 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1725#true} {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} #72#return; {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:55,073 INFO L290 TraceCheckUtils]: 19: Hoare triple {1736#(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; {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:55,074 INFO L290 TraceCheckUtils]: 20: Hoare triple {1736#(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); {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:55,075 INFO L272 TraceCheckUtils]: 21: Hoare triple {1736#(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); {1757#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:49:55,075 INFO L290 TraceCheckUtils]: 22: Hoare triple {1757#(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; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,076 INFO L290 TraceCheckUtils]: 23: Hoare triple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,077 INFO L290 TraceCheckUtils]: 24: Hoare triple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,077 INFO L290 TraceCheckUtils]: 25: Hoare triple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0 != #t~nondet9);havoc #t~nondet9; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,077 INFO L290 TraceCheckUtils]: 26: Hoare triple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:49:55,081 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1758#(= |old(~elem~0.offset)| ~elem~0.offset)} {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} #74#return; {1736#(and (= ~elem~0.offset 0) (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:49:55,082 INFO L272 TraceCheckUtils]: 28: Hoare triple {1736#(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); {1750#(and (<= 1 |list_add_#in~new.offset|) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,083 INFO L290 TraceCheckUtils]: 29: Hoare triple {1750#(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; {1751#(and (not (= list_add_~new.offset 0)) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,083 INFO L290 TraceCheckUtils]: 30: Hoare triple {1751#(and (not (= list_add_~new.offset 0)) (= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1726#false} is VALID [2022-02-20 16:49:55,083 INFO L272 TraceCheckUtils]: 31: Hoare triple {1726#false} call __blast_assert(); {1726#false} is VALID [2022-02-20 16:49:55,083 INFO L290 TraceCheckUtils]: 32: Hoare triple {1726#false} assume !false; {1726#false} is VALID [2022-02-20 16:49:55,083 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:55,083 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:55,083 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1311208050] [2022-02-20 16:49:55,084 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1311208050] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:55,084 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [608193770] [2022-02-20 16:49:55,084 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:55,084 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:55,084 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:55,085 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:55,086 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:55,139 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:55,140 INFO L263 TraceCheckSpWp]: Trace formula consists of 197 conjuncts, 16 conjunts are in the unsatisfiable core [2022-02-20 16:49:55,157 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:55,159 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:55,702 INFO L290 TraceCheckUtils]: 0: Hoare triple {1725#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(19, 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); {1762#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,703 INFO L290 TraceCheckUtils]: 1: Hoare triple {1762#(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; {1762#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,704 INFO L272 TraceCheckUtils]: 2: Hoare triple {1762#(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); {1769#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,704 INFO L290 TraceCheckUtils]: 3: Hoare triple {1769#(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; {1769#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,705 INFO L290 TraceCheckUtils]: 4: Hoare triple {1769#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} assume __getMemory_~size#1 > 0; {1769#(and (<= ~elem~0.offset 0) (<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset))} is VALID [2022-02-20 16:49:55,706 INFO L290 TraceCheckUtils]: 5: Hoare triple {1769#(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; {1779#(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,706 INFO L290 TraceCheckUtils]: 6: Hoare triple {1779#(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; {1783#(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,707 INFO L290 TraceCheckUtils]: 7: Hoare triple {1783#(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; {1787#(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,707 INFO L290 TraceCheckUtils]: 8: Hoare triple {1787#(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; {1787#(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,709 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1787#(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))} {1762#(and (<= ~elem~0.offset 0) (<= 0 ~guard_malloc_counter~0.offset))} #70#return; {1794#(and (<= 1 |ULTIMATE.start_main_#t~ret10#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,709 INFO L290 TraceCheckUtils]: 10: Hoare triple {1794#(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; {1798#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,710 INFO L272 TraceCheckUtils]: 11: Hoare triple {1798#(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); {1802#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,710 INFO L290 TraceCheckUtils]: 12: Hoare triple {1802#(<= ~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; {1802#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,711 INFO L290 TraceCheckUtils]: 13: Hoare triple {1802#(<= ~elem~0.offset 0)} assume __getMemory_~size#1 > 0; {1802#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,711 INFO L290 TraceCheckUtils]: 14: Hoare triple {1802#(<= ~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; {1802#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,712 INFO L290 TraceCheckUtils]: 15: Hoare triple {1802#(<= ~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; {1802#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,712 INFO L290 TraceCheckUtils]: 16: Hoare triple {1802#(<= ~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; {1802#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,712 INFO L290 TraceCheckUtils]: 17: Hoare triple {1802#(<= ~elem~0.offset 0)} assume true; {1802#(<= ~elem~0.offset 0)} is VALID [2022-02-20 16:49:55,713 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1802#(<= ~elem~0.offset 0)} {1798#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} #72#return; {1798#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,714 INFO L290 TraceCheckUtils]: 19: Hoare triple {1798#(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; {1798#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,714 INFO L290 TraceCheckUtils]: 20: Hoare triple {1798#(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); {1798#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,715 INFO L272 TraceCheckUtils]: 21: Hoare triple {1798#(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); {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,716 INFO L290 TraceCheckUtils]: 22: Hoare triple {1833#(<= ~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; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,716 INFO L290 TraceCheckUtils]: 23: Hoare triple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,717 INFO L290 TraceCheckUtils]: 24: Hoare triple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,717 INFO L290 TraceCheckUtils]: 25: Hoare triple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume !(0 != #t~nondet9);havoc #t~nondet9; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,717 INFO L290 TraceCheckUtils]: 26: Hoare triple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume true; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:55,719 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} {1798#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} #74#return; {1798#(and (<= 1 |ULTIMATE.start_main_~dev1~0#1.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,720 INFO L272 TraceCheckUtils]: 28: Hoare triple {1798#(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); {1855#(and (<= 1 |list_add_#in~new.offset|) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,721 INFO L290 TraceCheckUtils]: 29: Hoare triple {1855#(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; {1859#(and (<= 1 list_add_~new.offset) (<= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:55,721 INFO L290 TraceCheckUtils]: 30: Hoare triple {1859#(and (<= 1 list_add_~new.offset) (<= ~elem~0.offset 0))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1726#false} is VALID [2022-02-20 16:49:55,721 INFO L272 TraceCheckUtils]: 31: Hoare triple {1726#false} call __blast_assert(); {1726#false} is VALID [2022-02-20 16:49:55,721 INFO L290 TraceCheckUtils]: 32: Hoare triple {1726#false} assume !false; {1726#false} is VALID [2022-02-20 16:49:55,722 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,722 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:49:56,486 INFO L290 TraceCheckUtils]: 32: Hoare triple {1726#false} assume !false; {1726#false} is VALID [2022-02-20 16:49:56,486 INFO L272 TraceCheckUtils]: 31: Hoare triple {1726#false} call __blast_assert(); {1726#false} is VALID [2022-02-20 16:49:56,487 INFO L290 TraceCheckUtils]: 30: Hoare triple {1875#(not (<= list_add_~new.offset ~elem~0.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1726#false} is VALID [2022-02-20 16:49:56,487 INFO L290 TraceCheckUtils]: 29: Hoare triple {1879#(< ~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; {1875#(not (<= list_add_~new.offset ~elem~0.offset))} is VALID [2022-02-20 16:49:56,488 INFO L272 TraceCheckUtils]: 28: Hoare triple {1883#(< ~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); {1879#(< ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:56,490 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} {1883#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} #74#return; {1883#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,490 INFO L290 TraceCheckUtils]: 26: Hoare triple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume true; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,491 INFO L290 TraceCheckUtils]: 25: Hoare triple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume !(0 != #t~nondet9);havoc #t~nondet9; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,491 INFO L290 TraceCheckUtils]: 24: Hoare triple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,491 INFO L290 TraceCheckUtils]: 23: Hoare triple {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,492 INFO L290 TraceCheckUtils]: 22: Hoare triple {1833#(<= ~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; {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,493 INFO L272 TraceCheckUtils]: 21: Hoare triple {1883#(< ~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); {1833#(<= ~elem~0.offset |old(~elem~0.offset)|)} is VALID [2022-02-20 16:49:56,493 INFO L290 TraceCheckUtils]: 20: Hoare triple {1883#(< ~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); {1883#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,494 INFO L290 TraceCheckUtils]: 19: Hoare triple {1883#(< ~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; {1883#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,495 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1725#true} {1883#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} #72#return; {1883#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,495 INFO L290 TraceCheckUtils]: 17: Hoare triple {1725#true} assume true; {1725#true} is VALID [2022-02-20 16:49:56,496 INFO L290 TraceCheckUtils]: 16: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:56,496 INFO L290 TraceCheckUtils]: 15: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:56,496 INFO L290 TraceCheckUtils]: 14: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:56,496 INFO L290 TraceCheckUtils]: 13: Hoare triple {1725#true} assume __getMemory_~size#1 > 0; {1725#true} is VALID [2022-02-20 16:49:56,496 INFO L290 TraceCheckUtils]: 12: Hoare triple {1725#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; {1725#true} is VALID [2022-02-20 16:49:56,496 INFO L272 TraceCheckUtils]: 11: Hoare triple {1883#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {1725#true} is VALID [2022-02-20 16:49:56,497 INFO L290 TraceCheckUtils]: 10: Hoare triple {1938#(< ~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; {1883#(< ~elem~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|)} is VALID [2022-02-20 16:49:56,498 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1946#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset |my_malloc_#res#1.offset|))} {1942#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} #70#return; {1938#(< ~elem~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|)} is VALID [2022-02-20 16:49:56,499 INFO L290 TraceCheckUtils]: 8: Hoare triple {1946#(or (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~elem~0.offset) (< ~elem~0.offset |my_malloc_#res#1.offset|))} assume true; {1946#(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,499 INFO L290 TraceCheckUtils]: 7: Hoare triple {1953#(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; {1946#(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,501 INFO L290 TraceCheckUtils]: 6: Hoare triple {1957#(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; {1953#(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,502 INFO L290 TraceCheckUtils]: 5: Hoare triple {1961#(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; {1957#(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,503 INFO L290 TraceCheckUtils]: 4: Hoare triple {1961#(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; {1961#(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,503 INFO L290 TraceCheckUtils]: 3: Hoare triple {1961#(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; {1961#(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,504 INFO L272 TraceCheckUtils]: 2: Hoare triple {1942#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {1961#(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,504 INFO L290 TraceCheckUtils]: 1: Hoare triple {1942#(< ~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; {1942#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} is VALID [2022-02-20 16:49:56,505 INFO L290 TraceCheckUtils]: 0: Hoare triple {1725#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(19, 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); {1942#(< ~elem~0.offset (+ ~guard_malloc_counter~0.offset 1))} is VALID [2022-02-20 16:49:56,506 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,506 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [608193770] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:49:56,506 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:49:56,506 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 12, 12] total 34 [2022-02-20 16:49:56,506 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1756049903] [2022-02-20 16:49:56,507 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:49:56,508 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,509 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:49:56,510 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,580 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,580 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 34 states [2022-02-20 16:49:56,581 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:49:56,582 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 34 interpolants. [2022-02-20 16:49:56,583 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=125, Invalid=997, Unknown=0, NotChecked=0, Total=1122 [2022-02-20 16:49:56,584 INFO L87 Difference]: Start difference. First operand 60 states and 72 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:58,599 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:58,599 INFO L93 Difference]: Finished difference Result 78 states and 90 transitions. [2022-02-20 16:49:58,599 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-02-20 16:49:58,600 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:58,600 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:49:58,600 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:58,602 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 79 transitions. [2022-02-20 16:49:58,602 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:58,604 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 79 transitions. [2022-02-20 16:49:58,604 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states and 79 transitions. [2022-02-20 16:49:58,678 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:49:58,680 INFO L225 Difference]: With dead ends: 78 [2022-02-20 16:49:58,680 INFO L226 Difference]: Without dead ends: 68 [2022-02-20 16:49:58,681 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 93 GetRequests, 50 SyntacticMatches, 0 SemanticMatches, 43 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 302 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=285, Invalid=1695, Unknown=0, NotChecked=0, Total=1980 [2022-02-20 16:49:58,682 INFO L933 BasicCegarLoop]: 34 mSDtfsCounter, 143 mSDsluCounter, 123 mSDsCounter, 0 mSdLazyCounter, 830 mSolverCounterSat, 86 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 143 SdHoareTripleChecker+Valid, 157 SdHoareTripleChecker+Invalid, 916 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 86 IncrementalHoareTripleChecker+Valid, 830 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.8s IncrementalHoareTripleChecker+Time [2022-02-20 16:49:58,682 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [143 Valid, 157 Invalid, 916 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [86 Valid, 830 Invalid, 0 Unknown, 0 Unchecked, 0.8s Time] [2022-02-20 16:49:58,683 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2022-02-20 16:49:58,745 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 53. [2022-02-20 16:49:58,745 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:49:58,746 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand has 53 states, 38 states have (on average 1.1578947368421053) internal successors, (44), 39 states have internal predecessors, (44), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:49:58,746 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand has 53 states, 38 states have (on average 1.1578947368421053) internal successors, (44), 39 states have internal predecessors, (44), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:49:58,746 INFO L87 Difference]: Start difference. First operand 68 states. Second operand has 53 states, 38 states have (on average 1.1578947368421053) internal successors, (44), 39 states have internal predecessors, (44), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:49:58,748 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:58,749 INFO L93 Difference]: Finished difference Result 68 states and 77 transitions. [2022-02-20 16:49:58,749 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 77 transitions. [2022-02-20 16:49:58,749 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:58,749 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:58,750 INFO L74 IsIncluded]: Start isIncluded. First operand has 53 states, 38 states have (on average 1.1578947368421053) internal successors, (44), 39 states have internal predecessors, (44), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 68 states. [2022-02-20 16:49:58,750 INFO L87 Difference]: Start difference. First operand has 53 states, 38 states have (on average 1.1578947368421053) internal successors, (44), 39 states have internal predecessors, (44), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 68 states. [2022-02-20 16:49:58,752 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:49:58,753 INFO L93 Difference]: Finished difference Result 68 states and 77 transitions. [2022-02-20 16:49:58,753 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 77 transitions. [2022-02-20 16:49:58,753 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:49:58,753 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:49:58,754 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:49:58,754 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:49:58,754 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 53 states, 38 states have (on average 1.1578947368421053) internal successors, (44), 39 states have internal predecessors, (44), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:49:58,756 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 53 states to 53 states and 61 transitions. [2022-02-20 16:49:58,757 INFO L78 Accepts]: Start accepts. Automaton has 53 states and 61 transitions. Word has length 33 [2022-02-20 16:49:58,757 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:49:58,757 INFO L470 AbstractCegarLoop]: Abstraction has 53 states and 61 transitions. [2022-02-20 16:49:58,758 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:58,758 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 61 transitions. [2022-02-20 16:49:58,758 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2022-02-20 16:49:58,758 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:49:58,758 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:58,783 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:58,971 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:58,971 INFO L402 AbstractCegarLoop]: === Iteration 7 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:49:58,972 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:49:58,972 INFO L85 PathProgramCache]: Analyzing trace with hash 1975182920, now seen corresponding path program 1 times [2022-02-20 16:49:58,972 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:49:58,972 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [68770388] [2022-02-20 16:49:58,972 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:58,972 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:49:58,988 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:59,063 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:49:59,068 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:59,085 INFO L290 TraceCheckUtils]: 0: Hoare triple {2341#(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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,085 INFO L290 TraceCheckUtils]: 1: Hoare triple {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume __getMemory_~size#1 > 0; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,086 INFO L290 TraceCheckUtils]: 2: Hoare triple {2342#(= ~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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,086 INFO L290 TraceCheckUtils]: 3: Hoare triple {2342#(= ~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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,104 INFO L290 TraceCheckUtils]: 4: Hoare triple {2342#(= ~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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,104 INFO L290 TraceCheckUtils]: 5: Hoare triple {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume true; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,105 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} {2308#(= ~guard_malloc_counter~0.base 0)} #70#return; {2308#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:59,106 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:49:59,109 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:59,136 INFO L290 TraceCheckUtils]: 0: Hoare triple {2341#(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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,137 INFO L290 TraceCheckUtils]: 1: Hoare triple {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume __getMemory_~size#1 > 0; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,137 INFO L290 TraceCheckUtils]: 2: Hoare triple {2342#(= ~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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,138 INFO L290 TraceCheckUtils]: 3: Hoare triple {2342#(= ~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; {2343#(= |my_malloc___getMemory_#res#1.base| |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,138 INFO L290 TraceCheckUtils]: 4: Hoare triple {2343#(= |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; {2344#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} is VALID [2022-02-20 16:49:59,138 INFO L290 TraceCheckUtils]: 5: Hoare triple {2344#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} assume true; {2344#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} is VALID [2022-02-20 16:49:59,139 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2344#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} {2308#(= ~guard_malloc_counter~0.base 0)} #72#return; {2323#(= |ULTIMATE.start_main_#t~ret11#1.base| 0)} is VALID [2022-02-20 16:49:59,149 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 16:49:59,151 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:59,156 INFO L290 TraceCheckUtils]: 0: Hoare triple {2345#(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; {2306#true} is VALID [2022-02-20 16:49:59,157 INFO L290 TraceCheckUtils]: 1: Hoare triple {2306#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2306#true} is VALID [2022-02-20 16:49:59,157 INFO L290 TraceCheckUtils]: 2: Hoare triple {2306#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2306#true} is VALID [2022-02-20 16:49:59,157 INFO L290 TraceCheckUtils]: 3: Hoare triple {2306#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2306#true} is VALID [2022-02-20 16:49:59,157 INFO L290 TraceCheckUtils]: 4: Hoare triple {2306#true} assume true; {2306#true} is VALID [2022-02-20 16:49:59,158 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2306#true} {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} #74#return; {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:59,158 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 28 [2022-02-20 16:49:59,161 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:59,172 INFO L290 TraceCheckUtils]: 0: Hoare triple {2345#(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; {2306#true} is VALID [2022-02-20 16:49:59,172 INFO L290 TraceCheckUtils]: 1: Hoare triple {2306#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2306#true} is VALID [2022-02-20 16:49:59,172 INFO L290 TraceCheckUtils]: 2: Hoare triple {2306#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2306#true} is VALID [2022-02-20 16:49:59,172 INFO L290 TraceCheckUtils]: 3: Hoare triple {2306#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2306#true} is VALID [2022-02-20 16:49:59,172 INFO L290 TraceCheckUtils]: 4: Hoare triple {2306#true} assume true; {2306#true} is VALID [2022-02-20 16:49:59,173 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2306#true} {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} #76#return; {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:59,174 INFO L290 TraceCheckUtils]: 0: Hoare triple {2306#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(19, 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); {2308#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:59,174 INFO L290 TraceCheckUtils]: 1: Hoare triple {2308#(= ~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; {2308#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:59,175 INFO L272 TraceCheckUtils]: 2: Hoare triple {2308#(= ~guard_malloc_counter~0.base 0)} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2341#(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:59,175 INFO L290 TraceCheckUtils]: 3: Hoare triple {2341#(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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,175 INFO L290 TraceCheckUtils]: 4: Hoare triple {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume __getMemory_~size#1 > 0; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,176 INFO L290 TraceCheckUtils]: 5: Hoare triple {2342#(= ~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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,176 INFO L290 TraceCheckUtils]: 6: Hoare triple {2342#(= ~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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,177 INFO L290 TraceCheckUtils]: 7: Hoare triple {2342#(= ~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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,177 INFO L290 TraceCheckUtils]: 8: Hoare triple {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume true; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,178 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} {2308#(= ~guard_malloc_counter~0.base 0)} #70#return; {2308#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:59,178 INFO L290 TraceCheckUtils]: 10: Hoare triple {2308#(= ~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; {2308#(= ~guard_malloc_counter~0.base 0)} is VALID [2022-02-20 16:49:59,179 INFO L272 TraceCheckUtils]: 11: Hoare triple {2308#(= ~guard_malloc_counter~0.base 0)} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2341#(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:59,179 INFO L290 TraceCheckUtils]: 12: Hoare triple {2341#(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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,180 INFO L290 TraceCheckUtils]: 13: Hoare triple {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} assume __getMemory_~size#1 > 0; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,180 INFO L290 TraceCheckUtils]: 14: Hoare triple {2342#(= ~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; {2342#(= ~guard_malloc_counter~0.base |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,180 INFO L290 TraceCheckUtils]: 15: Hoare triple {2342#(= ~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; {2343#(= |my_malloc___getMemory_#res#1.base| |old(~guard_malloc_counter~0.base)|)} is VALID [2022-02-20 16:49:59,181 INFO L290 TraceCheckUtils]: 16: Hoare triple {2343#(= |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; {2344#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} is VALID [2022-02-20 16:49:59,181 INFO L290 TraceCheckUtils]: 17: Hoare triple {2344#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} assume true; {2344#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} is VALID [2022-02-20 16:49:59,182 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2344#(= |old(~guard_malloc_counter~0.base)| |my_malloc_#res#1.base|)} {2308#(= ~guard_malloc_counter~0.base 0)} #72#return; {2323#(= |ULTIMATE.start_main_#t~ret11#1.base| 0)} is VALID [2022-02-20 16:49:59,182 INFO L290 TraceCheckUtils]: 19: Hoare triple {2323#(= |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; {2324#(= |ULTIMATE.start_main_~dev2~0#1.base| 0)} is VALID [2022-02-20 16:49:59,183 INFO L290 TraceCheckUtils]: 20: Hoare triple {2324#(= |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); {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:59,184 INFO L272 TraceCheckUtils]: 21: Hoare triple {2325#(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); {2345#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:49:59,184 INFO L290 TraceCheckUtils]: 22: Hoare triple {2345#(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; {2306#true} is VALID [2022-02-20 16:49:59,184 INFO L290 TraceCheckUtils]: 23: Hoare triple {2306#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2306#true} is VALID [2022-02-20 16:49:59,184 INFO L290 TraceCheckUtils]: 24: Hoare triple {2306#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2306#true} is VALID [2022-02-20 16:49:59,184 INFO L290 TraceCheckUtils]: 25: Hoare triple {2306#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2306#true} is VALID [2022-02-20 16:49:59,185 INFO L290 TraceCheckUtils]: 26: Hoare triple {2306#true} assume true; {2306#true} is VALID [2022-02-20 16:49:59,185 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2306#true} {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} #74#return; {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:59,186 INFO L272 TraceCheckUtils]: 28: Hoare triple {2325#(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); {2345#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:49:59,186 INFO L290 TraceCheckUtils]: 29: Hoare triple {2345#(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; {2306#true} is VALID [2022-02-20 16:49:59,187 INFO L290 TraceCheckUtils]: 30: Hoare triple {2306#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2306#true} is VALID [2022-02-20 16:49:59,187 INFO L290 TraceCheckUtils]: 31: Hoare triple {2306#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2306#true} is VALID [2022-02-20 16:49:59,187 INFO L290 TraceCheckUtils]: 32: Hoare triple {2306#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2306#true} is VALID [2022-02-20 16:49:59,187 INFO L290 TraceCheckUtils]: 33: Hoare triple {2306#true} assume true; {2306#true} is VALID [2022-02-20 16:49:59,189 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2306#true} {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} #76#return; {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:59,189 INFO L290 TraceCheckUtils]: 35: Hoare triple {2325#(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; {2325#(not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:49:59,190 INFO L290 TraceCheckUtils]: 36: Hoare triple {2325#(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; {2338#(and (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|)) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:59,190 INFO L290 TraceCheckUtils]: 37: Hoare triple {2338#(and (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|)) (= ~elem~0.offset 0))} assume { :end_inline_list_del } true; {2338#(and (not (= 0 |ULTIMATE.start_main_~dev2~0#1.offset|)) (= ~elem~0.offset 0))} is VALID [2022-02-20 16:49:59,191 INFO L272 TraceCheckUtils]: 38: Hoare triple {2338#(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); {2339#(not (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:49:59,191 INFO L290 TraceCheckUtils]: 39: Hoare triple {2339#(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; {2340#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2022-02-20 16:49:59,192 INFO L290 TraceCheckUtils]: 40: Hoare triple {2340#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2307#false} is VALID [2022-02-20 16:49:59,192 INFO L272 TraceCheckUtils]: 41: Hoare triple {2307#false} call __blast_assert(); {2307#false} is VALID [2022-02-20 16:49:59,192 INFO L290 TraceCheckUtils]: 42: Hoare triple {2307#false} assume !false; {2307#false} is VALID [2022-02-20 16:49:59,192 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:59,192 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:49:59,192 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [68770388] [2022-02-20 16:49:59,193 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [68770388] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:49:59,193 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [472287994] [2022-02-20 16:49:59,193 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:49:59,193 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:49:59,193 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:49:59,194 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:59,197 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:59,258 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:59,259 INFO L263 TraceCheckSpWp]: Trace formula consists of 251 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:49:59,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:49:59,280 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:49:59,756 INFO L290 TraceCheckUtils]: 0: Hoare triple {2306#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(19, 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); {2306#true} is VALID [2022-02-20 16:49:59,756 INFO L290 TraceCheckUtils]: 1: Hoare triple {2306#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; {2306#true} is VALID [2022-02-20 16:49:59,757 INFO L272 TraceCheckUtils]: 2: Hoare triple {2306#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2306#true} is VALID [2022-02-20 16:49:59,757 INFO L290 TraceCheckUtils]: 3: Hoare triple {2306#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; {2306#true} is VALID [2022-02-20 16:49:59,757 INFO L290 TraceCheckUtils]: 4: Hoare triple {2306#true} assume __getMemory_~size#1 > 0; {2306#true} is VALID [2022-02-20 16:49:59,757 INFO L290 TraceCheckUtils]: 5: Hoare triple {2306#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; {2306#true} is VALID [2022-02-20 16:49:59,757 INFO L290 TraceCheckUtils]: 6: Hoare triple {2306#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; {2367#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,758 INFO L290 TraceCheckUtils]: 7: Hoare triple {2367#(<= |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; {2371#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,758 INFO L290 TraceCheckUtils]: 8: Hoare triple {2371#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {2371#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,759 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2371#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {2306#true} #70#return; {2378#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,760 INFO L290 TraceCheckUtils]: 10: Hoare triple {2378#(<= |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; {2382#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,760 INFO L272 TraceCheckUtils]: 11: Hoare triple {2382#(<= |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); {2386#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,761 INFO L290 TraceCheckUtils]: 12: Hoare triple {2386#(<= |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; {2386#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,761 INFO L290 TraceCheckUtils]: 13: Hoare triple {2386#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume __getMemory_~size#1 > 0; {2386#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,762 INFO L290 TraceCheckUtils]: 14: Hoare triple {2386#(<= |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; {2396#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:49:59,762 INFO L290 TraceCheckUtils]: 15: Hoare triple {2396#(<= (+ |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; {2400#(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:59,763 INFO L290 TraceCheckUtils]: 16: Hoare triple {2400#(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; {2404#(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:59,767 INFO L290 TraceCheckUtils]: 17: Hoare triple {2404#(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; {2404#(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:59,768 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2404#(and (<= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset))} {2382#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #72#return; {2411#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:49:59,769 INFO L290 TraceCheckUtils]: 19: Hoare triple {2411#(<= (+ |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; {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:59,769 INFO L290 TraceCheckUtils]: 20: Hoare triple {2415#(<= (+ |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); {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:59,769 INFO L272 TraceCheckUtils]: 21: Hoare triple {2415#(<= (+ |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); {2306#true} is VALID [2022-02-20 16:49:59,769 INFO L290 TraceCheckUtils]: 22: Hoare triple {2306#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2306#true} is VALID [2022-02-20 16:49:59,769 INFO L290 TraceCheckUtils]: 23: Hoare triple {2306#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2306#true} is VALID [2022-02-20 16:49:59,769 INFO L290 TraceCheckUtils]: 24: Hoare triple {2306#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2306#true} is VALID [2022-02-20 16:49:59,770 INFO L290 TraceCheckUtils]: 25: Hoare triple {2306#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2306#true} is VALID [2022-02-20 16:49:59,770 INFO L290 TraceCheckUtils]: 26: Hoare triple {2306#true} assume true; {2306#true} is VALID [2022-02-20 16:49:59,770 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2306#true} {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #74#return; {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:59,770 INFO L272 TraceCheckUtils]: 28: Hoare triple {2415#(<= (+ |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); {2306#true} is VALID [2022-02-20 16:49:59,771 INFO L290 TraceCheckUtils]: 29: Hoare triple {2306#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,771 INFO L290 TraceCheckUtils]: 30: Hoare triple {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,772 INFO L290 TraceCheckUtils]: 31: Hoare triple {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,772 INFO L290 TraceCheckUtils]: 32: Hoare triple {2446#(<= 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; {2456#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,772 INFO L290 TraceCheckUtils]: 33: Hoare triple {2456#(<= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2456#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:49:59,773 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2456#(<= ~elem~0.offset |list_add_#in~new.offset|)} {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #76#return; {2463#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:49:59,774 INFO L290 TraceCheckUtils]: 35: Hoare triple {2463#(<= (+ ~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; {2467#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_list_del_~entry#1.offset|)} is VALID [2022-02-20 16:49:59,774 INFO L290 TraceCheckUtils]: 36: Hoare triple {2467#(<= (+ ~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; {2307#false} is VALID [2022-02-20 16:49:59,774 INFO L290 TraceCheckUtils]: 37: Hoare triple {2307#false} assume { :end_inline_list_del } true; {2307#false} is VALID [2022-02-20 16:49:59,774 INFO L272 TraceCheckUtils]: 38: Hoare triple {2307#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2307#false} is VALID [2022-02-20 16:49:59,774 INFO L290 TraceCheckUtils]: 39: Hoare triple {2307#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2307#false} is VALID [2022-02-20 16:49:59,774 INFO L290 TraceCheckUtils]: 40: Hoare triple {2307#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2307#false} is VALID [2022-02-20 16:49:59,774 INFO L272 TraceCheckUtils]: 41: Hoare triple {2307#false} call __blast_assert(); {2307#false} is VALID [2022-02-20 16:49:59,775 INFO L290 TraceCheckUtils]: 42: Hoare triple {2307#false} assume !false; {2307#false} is VALID [2022-02-20 16:49:59,775 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,775 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:50:00,505 INFO L290 TraceCheckUtils]: 42: Hoare triple {2307#false} assume !false; {2307#false} is VALID [2022-02-20 16:50:00,506 INFO L272 TraceCheckUtils]: 41: Hoare triple {2307#false} call __blast_assert(); {2307#false} is VALID [2022-02-20 16:50:00,506 INFO L290 TraceCheckUtils]: 40: Hoare triple {2307#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2307#false} is VALID [2022-02-20 16:50:00,506 INFO L290 TraceCheckUtils]: 39: Hoare triple {2307#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2307#false} is VALID [2022-02-20 16:50:00,506 INFO L272 TraceCheckUtils]: 38: Hoare triple {2307#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2307#false} is VALID [2022-02-20 16:50:00,506 INFO L290 TraceCheckUtils]: 37: Hoare triple {2307#false} assume { :end_inline_list_del } true; {2307#false} is VALID [2022-02-20 16:50:00,507 INFO L290 TraceCheckUtils]: 36: Hoare triple {2467#(<= (+ ~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; {2307#false} is VALID [2022-02-20 16:50:00,508 INFO L290 TraceCheckUtils]: 35: Hoare triple {2463#(<= (+ ~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; {2467#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_list_del_~entry#1.offset|)} is VALID [2022-02-20 16:50:00,509 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2456#(<= ~elem~0.offset |list_add_#in~new.offset|)} {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #76#return; {2463#(<= (+ ~elem~0.offset 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:50:00,509 INFO L290 TraceCheckUtils]: 33: Hoare triple {2456#(<= ~elem~0.offset |list_add_#in~new.offset|)} assume true; {2456#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:00,510 INFO L290 TraceCheckUtils]: 32: Hoare triple {2446#(<= 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; {2456#(<= ~elem~0.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:00,510 INFO L290 TraceCheckUtils]: 31: Hoare triple {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:00,511 INFO L290 TraceCheckUtils]: 30: Hoare triple {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:00,511 INFO L290 TraceCheckUtils]: 29: Hoare triple {2306#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2446#(<= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:00,511 INFO L272 TraceCheckUtils]: 28: Hoare triple {2415#(<= (+ |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); {2306#true} is VALID [2022-02-20 16:50:00,512 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2306#true} {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} #74#return; {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:50:00,512 INFO L290 TraceCheckUtils]: 26: Hoare triple {2306#true} assume true; {2306#true} is VALID [2022-02-20 16:50:00,512 INFO L290 TraceCheckUtils]: 25: Hoare triple {2306#true} assume 0 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2306#true} is VALID [2022-02-20 16:50:00,513 INFO L290 TraceCheckUtils]: 24: Hoare triple {2306#true} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2306#true} is VALID [2022-02-20 16:50:00,513 INFO L290 TraceCheckUtils]: 23: Hoare triple {2306#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2306#true} is VALID [2022-02-20 16:50:00,513 INFO L290 TraceCheckUtils]: 22: Hoare triple {2306#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2306#true} is VALID [2022-02-20 16:50:00,513 INFO L272 TraceCheckUtils]: 21: Hoare triple {2415#(<= (+ |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); {2306#true} is VALID [2022-02-20 16:50:00,513 INFO L290 TraceCheckUtils]: 20: Hoare triple {2415#(<= (+ |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); {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:50:00,514 INFO L290 TraceCheckUtils]: 19: Hoare triple {2411#(<= (+ |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; {2415#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_~dev2~0#1.offset|)} is VALID [2022-02-20 16:50:00,515 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2564#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} {2382#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} #72#return; {2411#(<= (+ |ULTIMATE.start_main_~dev1~0#1.offset| 1) |ULTIMATE.start_main_#t~ret11#1.offset|)} is VALID [2022-02-20 16:50:00,515 INFO L290 TraceCheckUtils]: 17: Hoare triple {2564#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} assume true; {2564#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:50:00,516 INFO L290 TraceCheckUtils]: 16: Hoare triple {2571#(<= (+ |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; {2564#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:50:00,516 INFO L290 TraceCheckUtils]: 15: Hoare triple {2396#(<= (+ |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; {2571#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:50:00,517 INFO L290 TraceCheckUtils]: 14: Hoare triple {2386#(<= |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; {2396#(<= (+ |old(~guard_malloc_counter~0.offset)| 1) ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,517 INFO L290 TraceCheckUtils]: 13: Hoare triple {2386#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} assume __getMemory_~size#1 > 0; {2386#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,517 INFO L290 TraceCheckUtils]: 12: Hoare triple {2386#(<= |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; {2386#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,518 INFO L272 TraceCheckUtils]: 11: Hoare triple {2382#(<= |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); {2386#(<= |old(~guard_malloc_counter~0.offset)| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,518 INFO L290 TraceCheckUtils]: 10: Hoare triple {2378#(<= |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; {2382#(<= |ULTIMATE.start_main_~dev1~0#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,519 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2371#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} {2306#true} #70#return; {2378#(<= |ULTIMATE.start_main_#t~ret10#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,519 INFO L290 TraceCheckUtils]: 8: Hoare triple {2371#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} assume true; {2371#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,520 INFO L290 TraceCheckUtils]: 7: Hoare triple {2367#(<= |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; {2371#(<= |my_malloc_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,520 INFO L290 TraceCheckUtils]: 6: Hoare triple {2306#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; {2367#(<= |my_malloc___getMemory_#res#1.offset| ~guard_malloc_counter~0.offset)} is VALID [2022-02-20 16:50:00,520 INFO L290 TraceCheckUtils]: 5: Hoare triple {2306#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; {2306#true} is VALID [2022-02-20 16:50:00,521 INFO L290 TraceCheckUtils]: 4: Hoare triple {2306#true} assume __getMemory_~size#1 > 0; {2306#true} is VALID [2022-02-20 16:50:00,521 INFO L290 TraceCheckUtils]: 3: Hoare triple {2306#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; {2306#true} is VALID [2022-02-20 16:50:00,521 INFO L272 TraceCheckUtils]: 2: Hoare triple {2306#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2306#true} is VALID [2022-02-20 16:50:00,521 INFO L290 TraceCheckUtils]: 1: Hoare triple {2306#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; {2306#true} is VALID [2022-02-20 16:50:00,521 INFO L290 TraceCheckUtils]: 0: Hoare triple {2306#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(19, 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); {2306#true} is VALID [2022-02-20 16:50:00,521 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:50:00,522 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [472287994] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:50:00,522 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:50:00,522 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 16, 16] total 30 [2022-02-20 16:50:00,522 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1317650557] [2022-02-20 16:50:00,522 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:50:00,525 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:00,526 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:00,526 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:50:00,577 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:50:00,577 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 30 states [2022-02-20 16:50:00,577 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:50:00,578 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 30 interpolants. [2022-02-20 16:50:00,578 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=803, Unknown=0, NotChecked=0, Total=870 [2022-02-20 16:50:00,578 INFO L87 Difference]: Start difference. First operand 53 states and 61 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:02,987 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:02,987 INFO L93 Difference]: Finished difference Result 82 states and 93 transitions. [2022-02-20 16:50:02,987 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 22 states. [2022-02-20 16:50:02,988 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:02,988 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:02,988 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:02,990 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 74 transitions. [2022-02-20 16:50:02,991 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:02,993 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 74 transitions. [2022-02-20 16:50:02,993 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 22 states and 74 transitions. [2022-02-20 16:50:03,072 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:03,076 INFO L225 Difference]: With dead ends: 82 [2022-02-20 16:50:03,076 INFO L226 Difference]: Without dead ends: 64 [2022-02-20 16:50:03,077 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 128 GetRequests, 80 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:03,078 INFO L933 BasicCegarLoop]: 30 mSDtfsCounter, 103 mSDsluCounter, 155 mSDsCounter, 0 mSdLazyCounter, 1036 mSolverCounterSat, 72 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.9s Time, 0 mProtectedPredicate, 0 mProtectedAction, 103 SdHoareTripleChecker+Valid, 185 SdHoareTripleChecker+Invalid, 1108 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 72 IncrementalHoareTripleChecker+Valid, 1036 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:03,078 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [103 Valid, 185 Invalid, 1108 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [72 Valid, 1036 Invalid, 0 Unknown, 0 Unchecked, 1.0s Time] [2022-02-20 16:50:03,079 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 64 states. [2022-02-20 16:50:03,126 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 64 to 55. [2022-02-20 16:50:03,127 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:03,127 INFO L82 GeneralOperation]: Start isEquivalent. First operand 64 states. Second operand has 55 states, 40 states have (on average 1.1) internal successors, (44), 40 states have internal predecessors, (44), 9 states have call successors, (9), 7 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:03,127 INFO L74 IsIncluded]: Start isIncluded. First operand 64 states. Second operand has 55 states, 40 states have (on average 1.1) internal successors, (44), 40 states have internal predecessors, (44), 9 states have call successors, (9), 7 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:03,128 INFO L87 Difference]: Start difference. First operand 64 states. Second operand has 55 states, 40 states have (on average 1.1) internal successors, (44), 40 states have internal predecessors, (44), 9 states have call successors, (9), 7 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:03,130 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:03,130 INFO L93 Difference]: Finished difference Result 64 states and 71 transitions. [2022-02-20 16:50:03,130 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 71 transitions. [2022-02-20 16:50:03,131 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:03,131 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:03,131 INFO L74 IsIncluded]: Start isIncluded. First operand has 55 states, 40 states have (on average 1.1) internal successors, (44), 40 states have internal predecessors, (44), 9 states have call successors, (9), 7 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 64 states. [2022-02-20 16:50:03,132 INFO L87 Difference]: Start difference. First operand has 55 states, 40 states have (on average 1.1) internal successors, (44), 40 states have internal predecessors, (44), 9 states have call successors, (9), 7 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 64 states. [2022-02-20 16:50:03,134 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:03,134 INFO L93 Difference]: Finished difference Result 64 states and 71 transitions. [2022-02-20 16:50:03,134 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 71 transitions. [2022-02-20 16:50:03,134 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:03,134 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:03,135 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:03,135 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:03,135 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 55 states, 40 states have (on average 1.1) internal successors, (44), 40 states have internal predecessors, (44), 9 states have call successors, (9), 7 states have call predecessors, (9), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:03,137 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 61 transitions. [2022-02-20 16:50:03,137 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 61 transitions. Word has length 43 [2022-02-20 16:50:03,137 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:03,137 INFO L470 AbstractCegarLoop]: Abstraction has 55 states and 61 transitions. [2022-02-20 16:50:03,138 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:03,138 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 61 transitions. [2022-02-20 16:50:03,138 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2022-02-20 16:50:03,138 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:03,138 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:03,166 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:03,363 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:03,364 INFO L402 AbstractCegarLoop]: === Iteration 8 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:03,364 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:03,364 INFO L85 PathProgramCache]: Analyzing trace with hash 156287564, now seen corresponding path program 1 times [2022-02-20 16:50:03,364 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:50:03,364 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [615827316] [2022-02-20 16:50:03,364 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:03,364 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:50:03,377 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:03,418 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:50:03,421 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:03,428 INFO L290 TraceCheckUtils]: 0: Hoare triple {2998#(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; {2965#true} is VALID [2022-02-20 16:50:03,428 INFO L290 TraceCheckUtils]: 1: Hoare triple {2965#true} assume __getMemory_~size#1 > 0; {2965#true} is VALID [2022-02-20 16:50:03,428 INFO L290 TraceCheckUtils]: 2: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,429 INFO L290 TraceCheckUtils]: 3: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,429 INFO L290 TraceCheckUtils]: 4: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,429 INFO L290 TraceCheckUtils]: 5: Hoare triple {2965#true} assume true; {2965#true} is VALID [2022-02-20 16:50:03,429 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2965#true} {2965#true} #70#return; {2965#true} is VALID [2022-02-20 16:50:03,429 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:50:03,431 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:03,434 INFO L290 TraceCheckUtils]: 0: Hoare triple {2998#(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; {2965#true} is VALID [2022-02-20 16:50:03,435 INFO L290 TraceCheckUtils]: 1: Hoare triple {2965#true} assume __getMemory_~size#1 > 0; {2965#true} is VALID [2022-02-20 16:50:03,435 INFO L290 TraceCheckUtils]: 2: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,435 INFO L290 TraceCheckUtils]: 3: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,435 INFO L290 TraceCheckUtils]: 4: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,435 INFO L290 TraceCheckUtils]: 5: Hoare triple {2965#true} assume true; {2965#true} is VALID [2022-02-20 16:50:03,435 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2965#true} {2965#true} #72#return; {2965#true} is VALID [2022-02-20 16:50:03,442 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 21 [2022-02-20 16:50:03,445 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:03,468 INFO L290 TraceCheckUtils]: 0: Hoare triple {2999#(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; {3000#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,468 INFO L290 TraceCheckUtils]: 1: Hoare triple {3000#(= list_add_~new.base |list_add_#in~new.base|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3000#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,469 INFO L290 TraceCheckUtils]: 2: Hoare triple {3000#(= list_add_~new.base |list_add_#in~new.base|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {3000#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,469 INFO L290 TraceCheckUtils]: 3: Hoare triple {3000#(= 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; {3001#(= ~elem~0.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,469 INFO L290 TraceCheckUtils]: 4: Hoare triple {3001#(= ~elem~0.base |list_add_#in~new.base|)} assume true; {3001#(= ~elem~0.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,470 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3001#(= ~elem~0.base |list_add_#in~new.base|)} {2965#true} #74#return; {2987#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} is VALID [2022-02-20 16:50:03,471 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 28 [2022-02-20 16:50:03,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:03,485 INFO L290 TraceCheckUtils]: 0: Hoare triple {2999#(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; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,485 INFO L290 TraceCheckUtils]: 1: Hoare triple {3002#(= |old(~elem~0.base)| ~elem~0.base)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,486 INFO L290 TraceCheckUtils]: 2: Hoare triple {3002#(= |old(~elem~0.base)| ~elem~0.base)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,486 INFO L290 TraceCheckUtils]: 3: Hoare triple {3002#(= |old(~elem~0.base)| ~elem~0.base)} assume !(0 != #t~nondet9);havoc #t~nondet9; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,487 INFO L290 TraceCheckUtils]: 4: Hoare triple {3002#(= |old(~elem~0.base)| ~elem~0.base)} assume true; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,488 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3002#(= |old(~elem~0.base)| ~elem~0.base)} {2987#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} #76#return; {2987#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} is VALID [2022-02-20 16:50:03,488 INFO L290 TraceCheckUtils]: 0: Hoare triple {2965#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(19, 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); {2965#true} is VALID [2022-02-20 16:50:03,488 INFO L290 TraceCheckUtils]: 1: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,489 INFO L272 TraceCheckUtils]: 2: Hoare triple {2965#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2998#(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:03,489 INFO L290 TraceCheckUtils]: 3: Hoare triple {2998#(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; {2965#true} is VALID [2022-02-20 16:50:03,489 INFO L290 TraceCheckUtils]: 4: Hoare triple {2965#true} assume __getMemory_~size#1 > 0; {2965#true} is VALID [2022-02-20 16:50:03,489 INFO L290 TraceCheckUtils]: 5: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,490 INFO L290 TraceCheckUtils]: 6: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,490 INFO L290 TraceCheckUtils]: 7: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,490 INFO L290 TraceCheckUtils]: 8: Hoare triple {2965#true} assume true; {2965#true} is VALID [2022-02-20 16:50:03,490 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2965#true} {2965#true} #70#return; {2965#true} is VALID [2022-02-20 16:50:03,490 INFO L290 TraceCheckUtils]: 10: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,491 INFO L272 TraceCheckUtils]: 11: Hoare triple {2965#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2998#(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:03,491 INFO L290 TraceCheckUtils]: 12: Hoare triple {2998#(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; {2965#true} is VALID [2022-02-20 16:50:03,491 INFO L290 TraceCheckUtils]: 13: Hoare triple {2965#true} assume __getMemory_~size#1 > 0; {2965#true} is VALID [2022-02-20 16:50:03,491 INFO L290 TraceCheckUtils]: 14: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,492 INFO L290 TraceCheckUtils]: 15: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,492 INFO L290 TraceCheckUtils]: 16: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,492 INFO L290 TraceCheckUtils]: 17: Hoare triple {2965#true} assume true; {2965#true} is VALID [2022-02-20 16:50:03,492 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2965#true} {2965#true} #72#return; {2965#true} is VALID [2022-02-20 16:50:03,492 INFO L290 TraceCheckUtils]: 19: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,492 INFO L290 TraceCheckUtils]: 20: Hoare triple {2965#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); {2965#true} is VALID [2022-02-20 16:50:03,493 INFO L272 TraceCheckUtils]: 21: Hoare triple {2965#true} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:03,494 INFO L290 TraceCheckUtils]: 22: Hoare triple {2999#(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; {3000#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,494 INFO L290 TraceCheckUtils]: 23: Hoare triple {3000#(= list_add_~new.base |list_add_#in~new.base|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3000#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,494 INFO L290 TraceCheckUtils]: 24: Hoare triple {3000#(= list_add_~new.base |list_add_#in~new.base|)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {3000#(= list_add_~new.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,495 INFO L290 TraceCheckUtils]: 25: Hoare triple {3000#(= 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; {3001#(= ~elem~0.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,495 INFO L290 TraceCheckUtils]: 26: Hoare triple {3001#(= ~elem~0.base |list_add_#in~new.base|)} assume true; {3001#(= ~elem~0.base |list_add_#in~new.base|)} is VALID [2022-02-20 16:50:03,496 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3001#(= ~elem~0.base |list_add_#in~new.base|)} {2965#true} #74#return; {2987#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} is VALID [2022-02-20 16:50:03,497 INFO L272 TraceCheckUtils]: 28: Hoare triple {2987#(= ~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); {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:03,497 INFO L290 TraceCheckUtils]: 29: Hoare triple {2999#(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; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,498 INFO L290 TraceCheckUtils]: 30: Hoare triple {3002#(= |old(~elem~0.base)| ~elem~0.base)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,498 INFO L290 TraceCheckUtils]: 31: Hoare triple {3002#(= |old(~elem~0.base)| ~elem~0.base)} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,498 INFO L290 TraceCheckUtils]: 32: Hoare triple {3002#(= |old(~elem~0.base)| ~elem~0.base)} assume !(0 != #t~nondet9);havoc #t~nondet9; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,499 INFO L290 TraceCheckUtils]: 33: Hoare triple {3002#(= |old(~elem~0.base)| ~elem~0.base)} assume true; {3002#(= |old(~elem~0.base)| ~elem~0.base)} is VALID [2022-02-20 16:50:03,500 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {3002#(= |old(~elem~0.base)| ~elem~0.base)} {2987#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} #76#return; {2987#(= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|)} is VALID [2022-02-20 16:50:03,500 INFO L290 TraceCheckUtils]: 35: Hoare triple {2987#(= ~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; {2994#(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:03,501 INFO L290 TraceCheckUtils]: 36: Hoare triple {2994#(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); {2995#(not (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:50:03,501 INFO L290 TraceCheckUtils]: 37: Hoare triple {2995#(not (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|))} assume { :end_inline_list_del } true; {2995#(not (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|))} is VALID [2022-02-20 16:50:03,502 INFO L272 TraceCheckUtils]: 38: Hoare triple {2995#(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); {2996#(not (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:03,502 INFO L290 TraceCheckUtils]: 39: Hoare triple {2996#(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; {2997#(not (= ~elem~0.offset list_add_~new.offset))} is VALID [2022-02-20 16:50:03,503 INFO L290 TraceCheckUtils]: 40: Hoare triple {2997#(not (= ~elem~0.offset list_add_~new.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2966#false} is VALID [2022-02-20 16:50:03,503 INFO L272 TraceCheckUtils]: 41: Hoare triple {2966#false} call __blast_assert(); {2966#false} is VALID [2022-02-20 16:50:03,503 INFO L290 TraceCheckUtils]: 42: Hoare triple {2966#false} assume !false; {2966#false} is VALID [2022-02-20 16:50:03,503 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:03,503 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:50:03,504 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [615827316] [2022-02-20 16:50:03,504 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [615827316] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:50:03,504 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [473668495] [2022-02-20 16:50:03,504 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:03,504 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 16:50:03,504 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:50:03,505 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:03,512 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:03,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:03,600 INFO L263 TraceCheckSpWp]: Trace formula consists of 241 conjuncts, 29 conjunts are in the unsatisfiable core [2022-02-20 16:50:03,615 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:03,617 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:03,801 INFO L290 TraceCheckUtils]: 0: Hoare triple {2965#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(19, 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); {2965#true} is VALID [2022-02-20 16:50:03,801 INFO L290 TraceCheckUtils]: 1: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,801 INFO L272 TraceCheckUtils]: 2: Hoare triple {2965#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2965#true} is VALID [2022-02-20 16:50:03,801 INFO L290 TraceCheckUtils]: 3: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,801 INFO L290 TraceCheckUtils]: 4: Hoare triple {2965#true} assume __getMemory_~size#1 > 0; {2965#true} is VALID [2022-02-20 16:50:03,802 INFO L290 TraceCheckUtils]: 5: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,802 INFO L290 TraceCheckUtils]: 6: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,802 INFO L290 TraceCheckUtils]: 7: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,802 INFO L290 TraceCheckUtils]: 8: Hoare triple {2965#true} assume true; {2965#true} is VALID [2022-02-20 16:50:03,802 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2965#true} {2965#true} #70#return; {2965#true} is VALID [2022-02-20 16:50:03,802 INFO L290 TraceCheckUtils]: 10: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,802 INFO L272 TraceCheckUtils]: 11: Hoare triple {2965#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2965#true} is VALID [2022-02-20 16:50:03,803 INFO L290 TraceCheckUtils]: 12: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,803 INFO L290 TraceCheckUtils]: 13: Hoare triple {2965#true} assume __getMemory_~size#1 > 0; {2965#true} is VALID [2022-02-20 16:50:03,803 INFO L290 TraceCheckUtils]: 14: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,803 INFO L290 TraceCheckUtils]: 15: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,804 INFO L290 TraceCheckUtils]: 16: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,804 INFO L290 TraceCheckUtils]: 17: Hoare triple {2965#true} assume true; {2965#true} is VALID [2022-02-20 16:50:03,805 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2965#true} {2965#true} #72#return; {2965#true} is VALID [2022-02-20 16:50:03,805 INFO L290 TraceCheckUtils]: 19: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:03,805 INFO L290 TraceCheckUtils]: 20: Hoare triple {2965#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); {2965#true} is VALID [2022-02-20 16:50:03,805 INFO L272 TraceCheckUtils]: 21: Hoare triple {2965#true} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2965#true} is VALID [2022-02-20 16:50:03,806 INFO L290 TraceCheckUtils]: 22: Hoare triple {2965#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3072#(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:03,806 INFO L290 TraceCheckUtils]: 23: Hoare triple {3072#(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; {3072#(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:03,807 INFO L290 TraceCheckUtils]: 24: Hoare triple {3072#(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; {3072#(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:03,807 INFO L290 TraceCheckUtils]: 25: Hoare triple {3072#(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; {3082#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:03,807 INFO L290 TraceCheckUtils]: 26: Hoare triple {3082#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {3082#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:03,808 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3082#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {2965#true} #74#return; {3089#(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:03,809 INFO L272 TraceCheckUtils]: 28: Hoare triple {3089#(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); {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:03,810 INFO L290 TraceCheckUtils]: 29: Hoare triple {2999#(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; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:03,810 INFO L290 TraceCheckUtils]: 30: Hoare triple {2999#(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; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:03,810 INFO L290 TraceCheckUtils]: 31: Hoare triple {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:03,811 INFO L290 TraceCheckUtils]: 32: Hoare triple {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume !(0 != #t~nondet9);havoc #t~nondet9; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:03,811 INFO L290 TraceCheckUtils]: 33: Hoare triple {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume true; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:03,812 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} {3089#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} #76#return; {3089#(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:03,813 INFO L290 TraceCheckUtils]: 35: Hoare triple {3089#(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; {3114#(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:03,813 INFO L290 TraceCheckUtils]: 36: Hoare triple {3114#(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); {2966#false} is VALID [2022-02-20 16:50:03,813 INFO L290 TraceCheckUtils]: 37: Hoare triple {2966#false} assume { :end_inline_list_del } true; {2966#false} is VALID [2022-02-20 16:50:03,813 INFO L272 TraceCheckUtils]: 38: Hoare triple {2966#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2966#false} is VALID [2022-02-20 16:50:03,813 INFO L290 TraceCheckUtils]: 39: Hoare triple {2966#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2966#false} is VALID [2022-02-20 16:50:03,814 INFO L290 TraceCheckUtils]: 40: Hoare triple {2966#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2966#false} is VALID [2022-02-20 16:50:03,814 INFO L272 TraceCheckUtils]: 41: Hoare triple {2966#false} call __blast_assert(); {2966#false} is VALID [2022-02-20 16:50:03,814 INFO L290 TraceCheckUtils]: 42: Hoare triple {2966#false} assume !false; {2966#false} is VALID [2022-02-20 16:50:03,814 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:03,814 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:50:04,008 INFO L290 TraceCheckUtils]: 42: Hoare triple {2966#false} assume !false; {2966#false} is VALID [2022-02-20 16:50:04,008 INFO L272 TraceCheckUtils]: 41: Hoare triple {2966#false} call __blast_assert(); {2966#false} is VALID [2022-02-20 16:50:04,008 INFO L290 TraceCheckUtils]: 40: Hoare triple {2966#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2966#false} is VALID [2022-02-20 16:50:04,008 INFO L290 TraceCheckUtils]: 39: Hoare triple {2966#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2966#false} is VALID [2022-02-20 16:50:04,009 INFO L272 TraceCheckUtils]: 38: Hoare triple {2966#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2966#false} is VALID [2022-02-20 16:50:04,009 INFO L290 TraceCheckUtils]: 37: Hoare triple {2966#false} assume { :end_inline_list_del } true; {2966#false} is VALID [2022-02-20 16:50:04,009 INFO L290 TraceCheckUtils]: 36: Hoare triple {3114#(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); {2966#false} is VALID [2022-02-20 16:50:04,010 INFO L290 TraceCheckUtils]: 35: Hoare triple {3089#(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; {3114#(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:04,011 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} {3089#(and (= ~elem~0.offset |ULTIMATE.start_main_~dev2~0#1.offset|) (= ~elem~0.base |ULTIMATE.start_main_~dev2~0#1.base|))} #76#return; {3089#(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:04,012 INFO L290 TraceCheckUtils]: 33: Hoare triple {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume true; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:04,012 INFO L290 TraceCheckUtils]: 32: Hoare triple {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume !(0 != #t~nondet9);havoc #t~nondet9; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:04,013 INFO L290 TraceCheckUtils]: 31: Hoare triple {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} assume -2147483648 <= #t~nondet9 && #t~nondet9 <= 2147483647; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:04,013 INFO L290 TraceCheckUtils]: 30: Hoare triple {2999#(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; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:04,014 INFO L290 TraceCheckUtils]: 29: Hoare triple {2999#(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; {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:04,015 INFO L272 TraceCheckUtils]: 28: Hoare triple {3089#(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); {2999#(and (= |old(~elem~0.offset)| ~elem~0.offset) (= |old(~elem~0.base)| ~elem~0.base))} is VALID [2022-02-20 16:50:04,016 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3082#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} {2965#true} #74#return; {3089#(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:04,017 INFO L290 TraceCheckUtils]: 26: Hoare triple {3082#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} assume true; {3082#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:04,018 INFO L290 TraceCheckUtils]: 25: Hoare triple {3072#(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; {3082#(and (= ~elem~0.base |list_add_#in~new.base|) (= ~elem~0.offset |list_add_#in~new.offset|))} is VALID [2022-02-20 16:50:04,018 INFO L290 TraceCheckUtils]: 24: Hoare triple {3072#(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; {3072#(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:04,019 INFO L290 TraceCheckUtils]: 23: Hoare triple {3072#(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; {3072#(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:04,019 INFO L290 TraceCheckUtils]: 22: Hoare triple {2965#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3072#(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:04,019 INFO L272 TraceCheckUtils]: 21: Hoare triple {2965#true} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2965#true} is VALID [2022-02-20 16:50:04,019 INFO L290 TraceCheckUtils]: 20: Hoare triple {2965#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); {2965#true} is VALID [2022-02-20 16:50:04,020 INFO L290 TraceCheckUtils]: 19: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,020 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2965#true} {2965#true} #72#return; {2965#true} is VALID [2022-02-20 16:50:04,020 INFO L290 TraceCheckUtils]: 17: Hoare triple {2965#true} assume true; {2965#true} is VALID [2022-02-20 16:50:04,020 INFO L290 TraceCheckUtils]: 16: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,020 INFO L290 TraceCheckUtils]: 15: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,020 INFO L290 TraceCheckUtils]: 14: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,020 INFO L290 TraceCheckUtils]: 13: Hoare triple {2965#true} assume __getMemory_~size#1 > 0; {2965#true} is VALID [2022-02-20 16:50:04,021 INFO L290 TraceCheckUtils]: 12: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,021 INFO L272 TraceCheckUtils]: 11: Hoare triple {2965#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8); {2965#true} is VALID [2022-02-20 16:50:04,021 INFO L290 TraceCheckUtils]: 10: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,021 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2965#true} {2965#true} #70#return; {2965#true} is VALID [2022-02-20 16:50:04,021 INFO L290 TraceCheckUtils]: 8: Hoare triple {2965#true} assume true; {2965#true} is VALID [2022-02-20 16:50:04,021 INFO L290 TraceCheckUtils]: 7: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,021 INFO L290 TraceCheckUtils]: 6: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,022 INFO L290 TraceCheckUtils]: 5: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,022 INFO L290 TraceCheckUtils]: 4: Hoare triple {2965#true} assume __getMemory_~size#1 > 0; {2965#true} is VALID [2022-02-20 16:50:04,022 INFO L290 TraceCheckUtils]: 3: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,022 INFO L272 TraceCheckUtils]: 2: Hoare triple {2965#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8); {2965#true} is VALID [2022-02-20 16:50:04,022 INFO L290 TraceCheckUtils]: 1: Hoare triple {2965#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; {2965#true} is VALID [2022-02-20 16:50:04,022 INFO L290 TraceCheckUtils]: 0: Hoare triple {2965#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(19, 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); {2965#true} is VALID [2022-02-20 16:50:04,023 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:04,023 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [473668495] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:50:04,023 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 16:50:04,023 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 7, 7] total 16 [2022-02-20 16:50:04,023 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [364429869] [2022-02-20 16:50:04,023 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 16:50:04,024 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:04,025 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:04,025 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:04,074 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:04,074 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-02-20 16:50:04,075 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:50:04,075 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-02-20 16:50:04,075 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=207, Unknown=0, NotChecked=0, Total=240 [2022-02-20 16:50:04,076 INFO L87 Difference]: Start difference. First operand 55 states and 61 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:04,834 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:04,834 INFO L93 Difference]: Finished difference Result 60 states and 65 transitions. [2022-02-20 16:50:04,834 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-02-20 16:50:04,834 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:04,834 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:04,835 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:04,836 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 48 transitions. [2022-02-20 16:50:04,836 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:04,837 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 48 transitions. [2022-02-20 16:50:04,837 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 48 transitions. [2022-02-20 16:50:04,884 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:04,886 INFO L225 Difference]: With dead ends: 60 [2022-02-20 16:50:04,886 INFO L226 Difference]: Without dead ends: 53 [2022-02-20 16:50:04,886 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 107 GetRequests, 88 SyntacticMatches, 0 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=71, Invalid=349, Unknown=0, NotChecked=0, Total=420 [2022-02-20 16:50:04,887 INFO L933 BasicCegarLoop]: 27 mSDtfsCounter, 23 mSDsluCounter, 96 mSDsCounter, 0 mSdLazyCounter, 341 mSolverCounterSat, 18 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 23 SdHoareTripleChecker+Valid, 123 SdHoareTripleChecker+Invalid, 359 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 18 IncrementalHoareTripleChecker+Valid, 341 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:04,887 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [23 Valid, 123 Invalid, 359 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [18 Valid, 341 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-02-20 16:50:04,887 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2022-02-20 16:50:04,937 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 53. [2022-02-20 16:50:04,937 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:04,938 INFO L82 GeneralOperation]: Start isEquivalent. First operand 53 states. Second operand has 53 states, 39 states have (on average 1.0769230769230769) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 7 states have call predecessors, (8), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:04,938 INFO L74 IsIncluded]: Start isIncluded. First operand 53 states. Second operand has 53 states, 39 states have (on average 1.0769230769230769) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 7 states have call predecessors, (8), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:04,938 INFO L87 Difference]: Start difference. First operand 53 states. Second operand has 53 states, 39 states have (on average 1.0769230769230769) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 7 states have call predecessors, (8), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:04,940 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:04,940 INFO L93 Difference]: Finished difference Result 53 states and 58 transitions. [2022-02-20 16:50:04,940 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 58 transitions. [2022-02-20 16:50:04,940 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:04,941 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:04,941 INFO L74 IsIncluded]: Start isIncluded. First operand has 53 states, 39 states have (on average 1.0769230769230769) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 7 states have call predecessors, (8), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 53 states. [2022-02-20 16:50:04,941 INFO L87 Difference]: Start difference. First operand has 53 states, 39 states have (on average 1.0769230769230769) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 7 states have call predecessors, (8), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 53 states. [2022-02-20 16:50:04,943 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:04,943 INFO L93 Difference]: Finished difference Result 53 states and 58 transitions. [2022-02-20 16:50:04,943 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 58 transitions. [2022-02-20 16:50:04,944 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:04,944 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:04,944 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:04,944 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:04,951 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 53 states, 39 states have (on average 1.0769230769230769) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 7 states have call predecessors, (8), 5 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:04,953 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 53 states to 53 states and 58 transitions. [2022-02-20 16:50:04,953 INFO L78 Accepts]: Start accepts. Automaton has 53 states and 58 transitions. Word has length 43 [2022-02-20 16:50:04,953 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:04,954 INFO L470 AbstractCegarLoop]: Abstraction has 53 states and 58 transitions. [2022-02-20 16:50:04,958 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:04,958 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 58 transitions. [2022-02-20 16:50:04,960 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-02-20 16:50:04,960 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:04,960 INFO L514 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 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, 1] [2022-02-20 16:50:04,986 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:05,176 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:05,176 INFO L402 AbstractCegarLoop]: === Iteration 9 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:05,176 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:05,177 INFO L85 PathProgramCache]: Analyzing trace with hash -2126992523, now seen corresponding path program 1 times [2022-02-20 16:50:05,177 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:50:05,177 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1663012884] [2022-02-20 16:50:05,177 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:05,177 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:50:05,193 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 16:50:05,198 INFO L352 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2022-02-20 16:50:05,216 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 16:50:05,244 INFO L138 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2022-02-20 16:50:05,244 INFO L628 BasicCegarLoop]: Counterexample is feasible [2022-02-20 16:50:05,245 INFO L764 garLoopResultBuilder]: Registering result UNSAFE for location __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-02-20 16:50:05,247 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8 [2022-02-20 16:50:05,250 INFO L732 BasicCegarLoop]: Path program histogram: [1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:50:05,252 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 16:50:05,309 FATAL L489 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret10 := my_malloc(8); [2022-02-20 16:50:05,310 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: callstack broken after backtranslation by InlinerBacktranslator at de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:216) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:206) at de.uni_freiburg.informatik.ultimate.core.lib.results.CounterExampleResult.getProgramExecutionAsString(CounterExampleResult.java:155) at de.uni_freiburg.informatik.ultimate.core.lib.results.CounterExampleResult.getLongDescription(CounterExampleResult.java:134) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ResultService.reportResult(ResultService.java:86) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopResultReporter.reportResult(CegarLoopResultReporter.java:141) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportLocationResults(TraceAbstractionStarter.java:607) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:182) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:156) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-02-20 16:50:05,317 INFO L158 Benchmark]: Toolchain (without parser) took 20188.50ms. Allocated memory was 94.4MB in the beginning and 142.6MB in the end (delta: 48.2MB). Free memory was 70.9MB in the beginning and 39.3MB in the end (delta: 31.6MB). Peak memory consumption was 78.1MB. Max. memory is 16.1GB. [2022-02-20 16:50:05,317 INFO L158 Benchmark]: CDTParser took 0.19ms. Allocated memory is still 94.4MB. Free memory was 49.4MB in the beginning and 49.3MB in the end (delta: 134.2kB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:50:05,317 INFO L158 Benchmark]: CACSL2BoogieTranslator took 416.37ms. Allocated memory was 94.4MB in the beginning and 117.4MB in the end (delta: 23.1MB). Free memory was 70.6MB in the beginning and 85.0MB in the end (delta: -14.4MB). Peak memory consumption was 8.4MB. Max. memory is 16.1GB. [2022-02-20 16:50:05,318 INFO L158 Benchmark]: Boogie Procedure Inliner took 51.81ms. Allocated memory is still 117.4MB. Free memory was 85.0MB in the beginning and 82.9MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:50:05,318 INFO L158 Benchmark]: Boogie Preprocessor took 30.92ms. Allocated memory is still 117.4MB. Free memory was 82.9MB in the beginning and 81.7MB in the end (delta: 1.2MB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:50:05,318 INFO L158 Benchmark]: RCFGBuilder took 415.40ms. Allocated memory is still 117.4MB. Free memory was 81.7MB in the beginning and 69.1MB in the end (delta: 12.5MB). Peak memory consumption was 12.6MB. Max. memory is 16.1GB. [2022-02-20 16:50:05,318 INFO L158 Benchmark]: TraceAbstraction took 19269.16ms. Allocated memory was 117.4MB in the beginning and 142.6MB in the end (delta: 25.2MB). Free memory was 68.7MB in the beginning and 39.3MB in the end (delta: 29.4MB). Peak memory consumption was 55.0MB. Max. memory is 16.1GB. [2022-02-20 16:50:05,324 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.19ms. Allocated memory is still 94.4MB. Free memory was 49.4MB in the beginning and 49.3MB in the end (delta: 134.2kB). There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 416.37ms. Allocated memory was 94.4MB in the beginning and 117.4MB in the end (delta: 23.1MB). Free memory was 70.6MB in the beginning and 85.0MB in the end (delta: -14.4MB). Peak memory consumption was 8.4MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 51.81ms. Allocated memory is still 117.4MB. Free memory was 85.0MB in the beginning and 82.9MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 30.92ms. Allocated memory is still 117.4MB. Free memory was 82.9MB in the beginning and 81.7MB in the end (delta: 1.2MB). There was no memory consumed. Max. memory is 16.1GB. * RCFGBuilder took 415.40ms. Allocated memory is still 117.4MB. Free memory was 81.7MB in the beginning and 69.1MB in the end (delta: 12.5MB). Peak memory consumption was 12.6MB. Max. memory is 16.1GB. * TraceAbstraction took 19269.16ms. Allocated memory was 117.4MB in the beginning and 142.6MB in the end (delta: 25.2MB). Free memory was 68.7MB in the beginning and 39.3MB in the end (delta: 29.4MB). Peak memory consumption was 55.0MB. 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 - ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: callstack broken after backtranslation by InlinerBacktranslator: de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-02-20 16:50:05,362 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 Using bit-precise analysis Retrying with bit-precise analysis ### Bit-precise run ### 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.c_1.i -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.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 5dc0e184171498e703ccf08545f4f79d3c1c383c8c0fc13a1f35990befb669a4 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 16:50:07,213 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 16:50:07,215 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 16:50:07,239 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 16:50:07,239 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 16:50:07,240 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 16:50:07,242 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 16:50:07,243 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 16:50:07,245 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 16:50:07,246 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 16:50:07,246 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 16:50:07,248 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 16:50:07,248 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 16:50:07,249 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 16:50:07,250 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 16:50:07,251 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 16:50:07,251 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 16:50:07,252 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 16:50:07,254 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 16:50:07,257 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 16:50:07,260 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 16:50:07,261 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 16:50:07,263 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 16:50:07,264 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 16:50:07,267 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 16:50:07,271 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 16:50:07,271 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 16:50:07,272 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 16:50:07,273 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 16:50:07,273 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 16:50:07,274 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 16:50:07,274 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 16:50:07,275 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 16:50:07,276 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 16:50:07,276 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 16:50:07,277 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 16:50:07,277 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 16:50:07,278 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 16:50:07,278 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 16:50:07,279 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 16:50:07,279 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 16:50:07,281 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf [2022-02-20 16:50:07,312 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 16:50:07,313 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 16:50:07,314 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 16:50:07,314 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 16:50:07,315 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 16:50:07,315 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 16:50:07,316 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 16:50:07,317 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 16:50:07,317 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 16:50:07,317 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 16:50:07,318 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 16:50:07,318 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 16:50:07,318 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 16:50:07,318 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 16:50:07,318 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 16:50:07,319 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 16:50:07,319 INFO L138 SettingsManager]: * Adapt memory model on pointer casts if necessary=true [2022-02-20 16:50:07,319 INFO L138 SettingsManager]: * Use bitvectors instead of ints=true [2022-02-20 16:50:07,319 INFO L138 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2022-02-20 16:50:07,319 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 16:50:07,319 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 16:50:07,320 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 16:50:07,320 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 16:50:07,320 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 16:50:07,320 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 16:50:07,320 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 16:50:07,320 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:50:07,329 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 16:50:07,330 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 16:50:07,330 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 16:50:07,330 INFO L138 SettingsManager]: * Trace refinement strategy=WOLF [2022-02-20 16:50:07,330 INFO L138 SettingsManager]: * Command for external solver=cvc4 --incremental --print-success --lang smt [2022-02-20 16:50:07,331 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 16:50:07,331 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 16:50:07,331 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 16:50:07,331 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2022-02-20 16:50:07,331 INFO L138 SettingsManager]: * Logic for external solver=AUFBV 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 -> 5dc0e184171498e703ccf08545f4f79d3c1c383c8c0fc13a1f35990befb669a4 [2022-02-20 16:50:07,646 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 16:50:07,680 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 16:50:07,683 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 16:50:07,684 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 16:50:07,685 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 16:50:07,687 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/ldv-regression/rule60_list2.c_1.i [2022-02-20 16:50:07,741 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/56a9d8448/48299914fefb4f6a8e38a4797716f531/FLAG5f074a2f9 [2022-02-20 16:50:08,200 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 16:50:08,200 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/ldv-regression/rule60_list2.c_1.i [2022-02-20 16:50:08,213 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/56a9d8448/48299914fefb4f6a8e38a4797716f531/FLAG5f074a2f9 [2022-02-20 16:50:08,544 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/56a9d8448/48299914fefb4f6a8e38a4797716f531 [2022-02-20 16:50:08,546 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 16:50:08,547 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 16:50:08,548 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 16:50:08,548 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 16:50:08,553 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 16:50:08,554 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:08,555 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@6bcb65be and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08, skipping insertion in model container [2022-02-20 16:50:08,556 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:08,562 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 16:50:08,608 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 16:50:08,722 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.c_1.i[296,309] [2022-02-20 16:50:08,895 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:50:08,911 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 16:50:08,930 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.c_1.i[296,309] [2022-02-20 16:50:08,967 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:50:08,995 INFO L208 MainTranslator]: Completed translation [2022-02-20 16:50:08,995 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08 WrapperNode [2022-02-20 16:50:08,996 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 16:50:08,997 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 16:50:08,997 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 16:50:08,997 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 16:50:09,003 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:50:08" (1/1) ... [2022-02-20 16:50:09,017 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:50:08" (1/1) ... [2022-02-20 16:50:09,037 INFO L137 Inliner]: procedures = 127, calls = 20, calls flagged for inlining = 4, calls inlined = 4, statements flattened = 54 [2022-02-20 16:50:09,037 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 16:50:09,037 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 16:50:09,038 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 16:50:09,038 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 16:50:09,044 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:09,044 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:09,047 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:09,047 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:09,056 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:09,058 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:09,060 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:09,063 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 16:50:09,064 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 16:50:09,064 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 16:50:09,064 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 16:50:09,065 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (1/1) ... [2022-02-20 16:50:09,076 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:50:09,084 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:50:09,096 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:50:09,114 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:50:09,147 INFO L130 BoogieDeclarations]: Found specification of procedure my_malloc [2022-02-20 16:50:09,147 INFO L138 BoogieDeclarations]: Found implementation of procedure my_malloc [2022-02-20 16:50:09,148 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 16:50:09,148 INFO L130 BoogieDeclarations]: Found specification of procedure list_add [2022-02-20 16:50:09,148 INFO L138 BoogieDeclarations]: Found implementation of procedure list_add [2022-02-20 16:50:09,148 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2022-02-20 16:50:09,148 INFO L130 BoogieDeclarations]: Found specification of procedure __blast_assert [2022-02-20 16:50:09,149 INFO L138 BoogieDeclarations]: Found implementation of procedure __blast_assert [2022-02-20 16:50:09,149 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~intINTTYPE1 [2022-02-20 16:50:09,149 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 16:50:09,149 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 16:50:09,247 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 16:50:09,248 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 16:50:09,475 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 16:50:09,481 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 16:50:09,482 INFO L299 CfgBuilder]: Removed 0 assume(true) statements. [2022-02-20 16:50:09,483 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:50:09 BoogieIcfgContainer [2022-02-20 16:50:09,484 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 16:50:09,485 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 16:50:09,485 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 16:50:09,488 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 16:50:09,488 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 04:50:08" (1/3) ... [2022-02-20 16:50:09,489 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@44246418 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:50:09, skipping insertion in model container [2022-02-20 16:50:09,489 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:50:08" (2/3) ... [2022-02-20 16:50:09,489 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@44246418 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:50:09, skipping insertion in model container [2022-02-20 16:50:09,489 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:50:09" (3/3) ... [2022-02-20 16:50:09,490 INFO L111 eAbstractionObserver]: Analyzing ICFG rule60_list2.c_1.i [2022-02-20 16:50:09,494 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 16:50:09,495 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 16:50:09,550 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 16:50:09,560 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:50:09,560 INFO L340 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-02-20 16:50:09,577 INFO L276 IsEmpty]: Start isEmpty. Operand has 36 states, 23 states have (on average 1.3043478260869565) internal successors, (30), 27 states have internal predecessors, (30), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 16:50:09,580 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2022-02-20 16:50:09,580 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:09,581 INFO L514 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:50:09,582 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:09,588 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:09,589 INFO L85 PathProgramCache]: Analyzing trace with hash -432214362, now seen corresponding path program 1 times [2022-02-20 16:50:09,600 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:09,601 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1748974786] [2022-02-20 16:50:09,601 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:09,602 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:09,602 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:09,604 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:09,606 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Waiting until timeout for monitored process [2022-02-20 16:50:09,701 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:09,704 INFO L263 TraceCheckSpWp]: Trace formula consists of 41 conjuncts, 5 conjunts are in the unsatisfiable core [2022-02-20 16:50:09,717 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:09,720 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:09,837 INFO L290 TraceCheckUtils]: 0: Hoare triple {39#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {39#true} is VALID [2022-02-20 16:50:09,837 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:50:09,840 INFO L272 TraceCheckUtils]: 2: Hoare triple {39#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {50#(= |my_malloc_#in~size#1| (_ bv8 32))} is VALID [2022-02-20 16:50:09,841 INFO L290 TraceCheckUtils]: 3: Hoare triple {50#(= |my_malloc_#in~size#1| (_ bv8 32))} ~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; {54#(= (_ bv8 32) |my_malloc___getMemory_~size#1|)} is VALID [2022-02-20 16:50:09,841 INFO L290 TraceCheckUtils]: 4: Hoare triple {54#(= (_ bv8 32) |my_malloc___getMemory_~size#1|)} assume !~bvsgt32(__getMemory_~size#1, 0bv32); {40#false} is VALID [2022-02-20 16:50:09,842 INFO L272 TraceCheckUtils]: 5: Hoare triple {40#false} call __blast_assert(); {40#false} is VALID [2022-02-20 16:50:09,843 INFO L290 TraceCheckUtils]: 6: Hoare triple {40#false} assume !false; {40#false} is VALID [2022-02-20 16:50:09,844 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:50:09,844 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:50:09,845 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:09,845 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1748974786] [2022-02-20 16:50:09,846 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1748974786] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:50:09,846 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:50:09,846 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:50:09,849 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1792602503] [2022-02-20 16:50:09,850 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:50:09,856 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:50:09,857 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:09,860 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:50:09,873 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:50:09,873 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:50:09,874 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:09,899 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:50:09,901 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:50:09,904 INFO L87 Difference]: Start difference. First operand has 36 states, 23 states have (on average 1.3043478260869565) internal successors, (30), 27 states have internal predecessors, (30), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) 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:50:10,106 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:10,107 INFO L93 Difference]: Finished difference Result 66 states and 91 transitions. [2022-02-20 16:50:10,107 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:50:10,107 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:50:10,107 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:10,108 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:50:10,118 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 91 transitions. [2022-02-20 16:50:10,120 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:50:10,133 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 91 transitions. [2022-02-20 16:50:10,134 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 91 transitions. [2022-02-20 16:50:10,252 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 91 edges. 91 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:10,271 INFO L225 Difference]: With dead ends: 66 [2022-02-20 16:50:10,271 INFO L226 Difference]: Without dead ends: 29 [2022-02-20 16:50:10,274 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 4 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:50:10,276 INFO L933 BasicCegarLoop]: 36 mSDtfsCounter, 13 mSDsluCounter, 60 mSDsCounter, 0 mSdLazyCounter, 8 mSolverCounterSat, 1 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 13 SdHoareTripleChecker+Valid, 96 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:50:10,277 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [13 Valid, 96 Invalid, 9 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [1 Valid, 8 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:50:10,290 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 29 states. [2022-02-20 16:50:10,329 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 29 to 29. [2022-02-20 16:50:10,329 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:10,330 INFO L82 GeneralOperation]: Start isEquivalent. First operand 29 states. Second operand has 29 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:50:10,331 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand has 29 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:50:10,331 INFO L87 Difference]: Start difference. First operand 29 states. Second operand has 29 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:50:10,342 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:10,342 INFO L93 Difference]: Finished difference Result 29 states and 35 transitions. [2022-02-20 16:50:10,342 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 35 transitions. [2022-02-20 16:50:10,343 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:10,343 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:10,344 INFO L74 IsIncluded]: Start isIncluded. First operand has 29 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 29 states. [2022-02-20 16:50:10,344 INFO L87 Difference]: Start difference. First operand has 29 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 29 states. [2022-02-20 16:50:10,347 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:10,348 INFO L93 Difference]: Finished difference Result 29 states and 35 transitions. [2022-02-20 16:50:10,348 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 35 transitions. [2022-02-20 16:50:10,348 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:10,348 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:10,349 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:10,349 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:10,349 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 29 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:50:10,352 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 35 transitions. [2022-02-20 16:50:10,353 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 35 transitions. Word has length 7 [2022-02-20 16:50:10,354 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:10,354 INFO L470 AbstractCegarLoop]: Abstraction has 29 states and 35 transitions. [2022-02-20 16:50:10,354 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:50:10,354 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 35 transitions. [2022-02-20 16:50:10,360 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:50:10,361 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:10,361 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:50:10,374 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Ended with exit code 0 [2022-02-20 16:50:10,571 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:10,571 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:10,572 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:10,572 INFO L85 PathProgramCache]: Analyzing trace with hash 263813924, now seen corresponding path program 1 times [2022-02-20 16:50:10,573 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:10,573 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [830296158] [2022-02-20 16:50:10,573 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:10,573 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:10,573 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:10,575 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:10,578 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Waiting until timeout for monitored process [2022-02-20 16:50:10,662 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:10,667 INFO L263 TraceCheckSpWp]: Trace formula consists of 90 conjuncts, 9 conjunts are in the unsatisfiable core [2022-02-20 16:50:10,683 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:10,686 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:10,896 INFO L290 TraceCheckUtils]: 0: Hoare triple {253#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {253#true} is VALID [2022-02-20 16:50:10,896 INFO L290 TraceCheckUtils]: 1: Hoare triple {253#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; {253#true} is VALID [2022-02-20 16:50:10,896 INFO L272 TraceCheckUtils]: 2: Hoare triple {253#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {253#true} is VALID [2022-02-20 16:50:10,896 INFO L290 TraceCheckUtils]: 3: Hoare triple {253#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; {253#true} is VALID [2022-02-20 16:50:10,896 INFO L290 TraceCheckUtils]: 4: Hoare triple {253#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {253#true} is VALID [2022-02-20 16:50:10,897 INFO L290 TraceCheckUtils]: 5: Hoare triple {253#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {253#true} is VALID [2022-02-20 16:50:10,897 INFO L290 TraceCheckUtils]: 6: Hoare triple {253#true} assume 0bv32 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0bv32, 0bv32; {253#true} is VALID [2022-02-20 16:50:10,898 INFO L290 TraceCheckUtils]: 7: Hoare triple {253#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; {253#true} is VALID [2022-02-20 16:50:10,898 INFO L290 TraceCheckUtils]: 8: Hoare triple {253#true} assume true; {253#true} is VALID [2022-02-20 16:50:10,898 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {253#true} {253#true} #69#return; {253#true} is VALID [2022-02-20 16:50:10,899 INFO L290 TraceCheckUtils]: 10: Hoare triple {253#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; {253#true} is VALID [2022-02-20 16:50:10,899 INFO L272 TraceCheckUtils]: 11: Hoare triple {253#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {253#true} is VALID [2022-02-20 16:50:10,899 INFO L290 TraceCheckUtils]: 12: Hoare triple {253#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; {253#true} is VALID [2022-02-20 16:50:10,900 INFO L290 TraceCheckUtils]: 13: Hoare triple {253#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {253#true} is VALID [2022-02-20 16:50:10,900 INFO L290 TraceCheckUtils]: 14: Hoare triple {253#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {253#true} is VALID [2022-02-20 16:50:10,901 INFO L290 TraceCheckUtils]: 15: Hoare triple {253#true} assume 0bv32 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0bv32, 0bv32; {303#(and (= |my_malloc___getMemory_#res#1.offset| (_ bv0 32)) (= |my_malloc___getMemory_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:10,901 INFO L290 TraceCheckUtils]: 16: Hoare triple {303#(and (= |my_malloc___getMemory_#res#1.offset| (_ bv0 32)) (= |my_malloc___getMemory_#res#1.base| (_ bv0 32)))} #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; {307#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:10,903 INFO L290 TraceCheckUtils]: 17: Hoare triple {307#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} assume true; {307#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:10,904 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {307#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} {253#true} #71#return; {314#(and (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv0 32)) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret11#1.base|))} is VALID [2022-02-20 16:50:10,905 INFO L290 TraceCheckUtils]: 19: Hoare triple {314#(and (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv0 32)) (= (_ bv0 32) |ULTIMATE.start_main_#t~ret11#1.base|))} 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; {318#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:10,905 INFO L290 TraceCheckUtils]: 20: Hoare triple {318#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {254#false} is VALID [2022-02-20 16:50:10,906 INFO L272 TraceCheckUtils]: 21: Hoare triple {254#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {254#false} is VALID [2022-02-20 16:50:10,906 INFO L290 TraceCheckUtils]: 22: Hoare triple {254#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {254#false} is VALID [2022-02-20 16:50:10,906 INFO L290 TraceCheckUtils]: 23: Hoare triple {254#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {254#false} is VALID [2022-02-20 16:50:10,906 INFO L272 TraceCheckUtils]: 24: Hoare triple {254#false} call __blast_assert(); {254#false} is VALID [2022-02-20 16:50:10,907 INFO L290 TraceCheckUtils]: 25: Hoare triple {254#false} assume !false; {254#false} is VALID [2022-02-20 16:50:10,907 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:50:10,907 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:50:10,908 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:10,908 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [830296158] [2022-02-20 16:50:10,908 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [830296158] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:50:10,908 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:50:10,908 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-02-20 16:50:10,909 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1464712905] [2022-02-20 16:50:10,912 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:50:10,913 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 2.8333333333333335) 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:50:10,914 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:10,915 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 6 states, 6 states have (on average 2.8333333333333335) 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:50:10,939 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:50:10,939 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-02-20 16:50:10,940 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:10,941 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-02-20 16:50:10,941 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-02-20 16:50:10,942 INFO L87 Difference]: Start difference. First operand 29 states and 35 transitions. Second operand has 6 states, 6 states have (on average 2.8333333333333335) 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:50:11,173 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:11,174 INFO L93 Difference]: Finished difference Result 49 states and 60 transitions. [2022-02-20 16:50:11,174 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-02-20 16:50:11,174 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 2.8333333333333335) 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:50:11,174 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:11,175 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.8333333333333335) 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:50:11,177 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2022-02-20 16:50:11,178 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.8333333333333335) 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:50:11,187 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2022-02-20 16:50:11,187 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 60 transitions. [2022-02-20 16:50:11,257 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:11,259 INFO L225 Difference]: With dead ends: 49 [2022-02-20 16:50:11,259 INFO L226 Difference]: Without dead ends: 32 [2022-02-20 16:50:11,260 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 26 GetRequests, 21 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2022-02-20 16:50:11,261 INFO L933 BasicCegarLoop]: 33 mSDtfsCounter, 2 mSDsluCounter, 125 mSDsCounter, 0 mSdLazyCounter, 16 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 2 SdHoareTripleChecker+Valid, 158 SdHoareTripleChecker+Invalid, 16 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 16 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:11,261 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [2 Valid, 158 Invalid, 16 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 16 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:50:11,262 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2022-02-20 16:50:11,272 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 32. [2022-02-20 16:50:11,272 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:11,273 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand has 32 states, 21 states have (on average 1.1904761904761905) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 3 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:50:11,275 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand has 32 states, 21 states have (on average 1.1904761904761905) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 3 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:50:11,276 INFO L87 Difference]: Start difference. First operand 32 states. Second operand has 32 states, 21 states have (on average 1.1904761904761905) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 3 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:50:11,281 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:11,281 INFO L93 Difference]: Finished difference Result 32 states and 38 transitions. [2022-02-20 16:50:11,281 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 38 transitions. [2022-02-20 16:50:11,282 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:11,282 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:11,283 INFO L74 IsIncluded]: Start isIncluded. First operand has 32 states, 21 states have (on average 1.1904761904761905) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 3 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 32 states. [2022-02-20 16:50:11,283 INFO L87 Difference]: Start difference. First operand has 32 states, 21 states have (on average 1.1904761904761905) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 3 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 32 states. [2022-02-20 16:50:11,289 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:11,289 INFO L93 Difference]: Finished difference Result 32 states and 38 transitions. [2022-02-20 16:50:11,289 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 38 transitions. [2022-02-20 16:50:11,290 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:11,290 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:11,290 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:11,293 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:11,294 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 32 states, 21 states have (on average 1.1904761904761905) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 3 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:50:11,296 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 38 transitions. [2022-02-20 16:50:11,296 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 38 transitions. Word has length 26 [2022-02-20 16:50:11,297 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:11,297 INFO L470 AbstractCegarLoop]: Abstraction has 32 states and 38 transitions. [2022-02-20 16:50:11,297 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 6 states have (on average 2.8333333333333335) 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:50:11,297 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 38 transitions. [2022-02-20 16:50:11,298 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:50:11,298 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:11,298 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:50:11,312 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:11,509 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:11,510 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:11,510 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:11,510 INFO L85 PathProgramCache]: Analyzing trace with hash 964878502, now seen corresponding path program 1 times [2022-02-20 16:50:11,511 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:11,511 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [648387537] [2022-02-20 16:50:11,511 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:11,511 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:11,511 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:11,512 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:11,519 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Waiting until timeout for monitored process [2022-02-20 16:50:11,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:11,588 INFO L263 TraceCheckSpWp]: Trace formula consists of 90 conjuncts, 9 conjunts are in the unsatisfiable core [2022-02-20 16:50:11,604 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:11,607 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:11,771 INFO L290 TraceCheckUtils]: 0: Hoare triple {514#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {514#true} is VALID [2022-02-20 16:50:11,771 INFO L290 TraceCheckUtils]: 1: Hoare triple {514#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; {514#true} is VALID [2022-02-20 16:50:11,771 INFO L272 TraceCheckUtils]: 2: Hoare triple {514#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {514#true} is VALID [2022-02-20 16:50:11,772 INFO L290 TraceCheckUtils]: 3: Hoare triple {514#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; {514#true} is VALID [2022-02-20 16:50:11,772 INFO L290 TraceCheckUtils]: 4: Hoare triple {514#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {514#true} is VALID [2022-02-20 16:50:11,772 INFO L290 TraceCheckUtils]: 5: Hoare triple {514#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {514#true} is VALID [2022-02-20 16:50:11,773 INFO L290 TraceCheckUtils]: 6: Hoare triple {514#true} assume 0bv32 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0bv32, 0bv32; {537#(and (= |my_malloc___getMemory_#res#1.offset| (_ bv0 32)) (= |my_malloc___getMemory_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,774 INFO L290 TraceCheckUtils]: 7: Hoare triple {537#(and (= |my_malloc___getMemory_#res#1.offset| (_ bv0 32)) (= |my_malloc___getMemory_#res#1.base| (_ bv0 32)))} #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; {541#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,778 INFO L290 TraceCheckUtils]: 8: Hoare triple {541#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} assume true; {541#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,779 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {541#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} {514#true} #69#return; {548#(and (= |ULTIMATE.start_main_#t~ret10#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_#t~ret10#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,780 INFO L290 TraceCheckUtils]: 10: Hoare triple {548#(and (= |ULTIMATE.start_main_#t~ret10#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_#t~ret10#1.base| (_ bv0 32)))} 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; {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,780 INFO L272 TraceCheckUtils]: 11: Hoare triple {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {514#true} is VALID [2022-02-20 16:50:11,780 INFO L290 TraceCheckUtils]: 12: Hoare triple {514#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; {514#true} is VALID [2022-02-20 16:50:11,781 INFO L290 TraceCheckUtils]: 13: Hoare triple {514#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {514#true} is VALID [2022-02-20 16:50:11,781 INFO L290 TraceCheckUtils]: 14: Hoare triple {514#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {514#true} is VALID [2022-02-20 16:50:11,781 INFO L290 TraceCheckUtils]: 15: Hoare triple {514#true} assume !(0bv32 == __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; {514#true} is VALID [2022-02-20 16:50:11,784 INFO L290 TraceCheckUtils]: 16: Hoare triple {514#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; {514#true} is VALID [2022-02-20 16:50:11,784 INFO L290 TraceCheckUtils]: 17: Hoare triple {514#true} assume true; {514#true} is VALID [2022-02-20 16:50:11,785 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {514#true} {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} #71#return; {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,786 INFO L290 TraceCheckUtils]: 19: Hoare triple {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} 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; {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,786 INFO L290 TraceCheckUtils]: 20: Hoare triple {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {515#false} is VALID [2022-02-20 16:50:11,787 INFO L272 TraceCheckUtils]: 21: Hoare triple {515#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {515#false} is VALID [2022-02-20 16:50:11,789 INFO L290 TraceCheckUtils]: 22: Hoare triple {515#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {515#false} is VALID [2022-02-20 16:50:11,789 INFO L290 TraceCheckUtils]: 23: Hoare triple {515#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {515#false} is VALID [2022-02-20 16:50:11,790 INFO L272 TraceCheckUtils]: 24: Hoare triple {515#false} call __blast_assert(); {515#false} is VALID [2022-02-20 16:50:11,790 INFO L290 TraceCheckUtils]: 25: Hoare triple {515#false} assume !false; {515#false} is VALID [2022-02-20 16:50:11,790 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:50:11,790 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:50:11,983 INFO L290 TraceCheckUtils]: 25: Hoare triple {515#false} assume !false; {515#false} is VALID [2022-02-20 16:50:11,984 INFO L272 TraceCheckUtils]: 24: Hoare triple {515#false} call __blast_assert(); {515#false} is VALID [2022-02-20 16:50:11,984 INFO L290 TraceCheckUtils]: 23: Hoare triple {515#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {515#false} is VALID [2022-02-20 16:50:11,984 INFO L290 TraceCheckUtils]: 22: Hoare triple {515#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {515#false} is VALID [2022-02-20 16:50:11,984 INFO L272 TraceCheckUtils]: 21: Hoare triple {515#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {515#false} is VALID [2022-02-20 16:50:11,985 INFO L290 TraceCheckUtils]: 20: Hoare triple {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {515#false} is VALID [2022-02-20 16:50:11,986 INFO L290 TraceCheckUtils]: 19: Hoare triple {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} 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; {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,987 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {514#true} {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} #71#return; {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,987 INFO L290 TraceCheckUtils]: 17: Hoare triple {514#true} assume true; {514#true} is VALID [2022-02-20 16:50:11,987 INFO L290 TraceCheckUtils]: 16: Hoare triple {514#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; {514#true} is VALID [2022-02-20 16:50:11,987 INFO L290 TraceCheckUtils]: 15: Hoare triple {514#true} assume !(0bv32 == __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; {514#true} is VALID [2022-02-20 16:50:11,987 INFO L290 TraceCheckUtils]: 14: Hoare triple {514#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {514#true} is VALID [2022-02-20 16:50:11,988 INFO L290 TraceCheckUtils]: 13: Hoare triple {514#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {514#true} is VALID [2022-02-20 16:50:11,988 INFO L290 TraceCheckUtils]: 12: Hoare triple {514#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; {514#true} is VALID [2022-02-20 16:50:11,988 INFO L272 TraceCheckUtils]: 11: Hoare triple {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {514#true} is VALID [2022-02-20 16:50:11,989 INFO L290 TraceCheckUtils]: 10: Hoare triple {548#(and (= |ULTIMATE.start_main_#t~ret10#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_#t~ret10#1.base| (_ bv0 32)))} 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; {552#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_~dev1~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,991 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {541#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} {514#true} #69#return; {548#(and (= |ULTIMATE.start_main_#t~ret10#1.offset| (_ bv0 32)) (= |ULTIMATE.start_main_#t~ret10#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,992 INFO L290 TraceCheckUtils]: 8: Hoare triple {541#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} assume true; {541#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,992 INFO L290 TraceCheckUtils]: 7: Hoare triple {537#(and (= |my_malloc___getMemory_#res#1.offset| (_ bv0 32)) (= |my_malloc___getMemory_#res#1.base| (_ bv0 32)))} #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; {541#(and (= |my_malloc_#res#1.offset| (_ bv0 32)) (= |my_malloc_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,993 INFO L290 TraceCheckUtils]: 6: Hoare triple {514#true} assume 0bv32 == __getMemory_#t~nondet7#1;havoc __getMemory_#t~nondet7#1;__getMemory_#res#1.base, __getMemory_#res#1.offset := 0bv32, 0bv32; {537#(and (= |my_malloc___getMemory_#res#1.offset| (_ bv0 32)) (= |my_malloc___getMemory_#res#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:11,993 INFO L290 TraceCheckUtils]: 5: Hoare triple {514#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {514#true} is VALID [2022-02-20 16:50:11,994 INFO L290 TraceCheckUtils]: 4: Hoare triple {514#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {514#true} is VALID [2022-02-20 16:50:11,994 INFO L290 TraceCheckUtils]: 3: Hoare triple {514#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; {514#true} is VALID [2022-02-20 16:50:11,994 INFO L272 TraceCheckUtils]: 2: Hoare triple {514#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {514#true} is VALID [2022-02-20 16:50:11,994 INFO L290 TraceCheckUtils]: 1: Hoare triple {514#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; {514#true} is VALID [2022-02-20 16:50:11,994 INFO L290 TraceCheckUtils]: 0: Hoare triple {514#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {514#true} is VALID [2022-02-20 16:50:11,995 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:50:11,995 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:11,995 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [648387537] [2022-02-20 16:50:11,996 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [648387537] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:50:11,997 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:50:11,998 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 6 [2022-02-20 16:50:11,998 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1367818632] [2022-02-20 16:50:11,998 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:50:11,999 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 2.8333333333333335) internal successors, (17), 5 states have internal predecessors, (17), 3 states have call successors, (4), 2 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:50:11,999 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:11,999 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 6 states, 6 states have (on average 2.8333333333333335) internal successors, (17), 5 states have internal predecessors, (17), 3 states have call successors, (4), 2 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:50:12,024 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:50:12,025 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-02-20 16:50:12,028 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:12,029 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-02-20 16:50:12,029 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-02-20 16:50:12,030 INFO L87 Difference]: Start difference. First operand 32 states and 38 transitions. Second operand has 6 states, 6 states have (on average 2.8333333333333335) internal successors, (17), 5 states have internal predecessors, (17), 3 states have call successors, (4), 2 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:50:12,258 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:12,258 INFO L93 Difference]: Finished difference Result 51 states and 62 transitions. [2022-02-20 16:50:12,258 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-02-20 16:50:12,259 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 2.8333333333333335) internal successors, (17), 5 states have internal predecessors, (17), 3 states have call successors, (4), 2 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:50:12,259 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:12,259 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.8333333333333335) internal successors, (17), 5 states have internal predecessors, (17), 3 states have call successors, (4), 2 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:50:12,261 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 62 transitions. [2022-02-20 16:50:12,261 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.8333333333333335) internal successors, (17), 5 states have internal predecessors, (17), 3 states have call successors, (4), 2 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:50:12,263 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 62 transitions. [2022-02-20 16:50:12,263 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 62 transitions. [2022-02-20 16:50:12,331 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:50:12,333 INFO L225 Difference]: With dead ends: 51 [2022-02-20 16:50:12,333 INFO L226 Difference]: Without dead ends: 29 [2022-02-20 16:50:12,334 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 51 GetRequests, 46 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2022-02-20 16:50:12,335 INFO L933 BasicCegarLoop]: 35 mSDtfsCounter, 2 mSDsluCounter, 132 mSDsCounter, 0 mSdLazyCounter, 15 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 2 SdHoareTripleChecker+Valid, 167 SdHoareTripleChecker+Invalid, 15 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 15 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:12,335 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [2 Valid, 167 Invalid, 15 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 15 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:50:12,336 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 29 states. [2022-02-20 16:50:12,338 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 29 to 29. [2022-02-20 16:50:12,339 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:12,339 INFO L82 GeneralOperation]: Start isEquivalent. First operand 29 states. Second operand has 29 states, 19 states have (on average 1.1578947368421053) internal successors, (22), 20 states have internal predecessors, (22), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:50:12,339 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand has 29 states, 19 states have (on average 1.1578947368421053) internal successors, (22), 20 states have internal predecessors, (22), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:50:12,340 INFO L87 Difference]: Start difference. First operand 29 states. Second operand has 29 states, 19 states have (on average 1.1578947368421053) internal successors, (22), 20 states have internal predecessors, (22), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:50:12,342 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:12,342 INFO L93 Difference]: Finished difference Result 29 states and 34 transitions. [2022-02-20 16:50:12,342 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2022-02-20 16:50:12,343 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:12,343 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:12,343 INFO L74 IsIncluded]: Start isIncluded. First operand has 29 states, 19 states have (on average 1.1578947368421053) internal successors, (22), 20 states have internal predecessors, (22), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 29 states. [2022-02-20 16:50:12,343 INFO L87 Difference]: Start difference. First operand has 29 states, 19 states have (on average 1.1578947368421053) internal successors, (22), 20 states have internal predecessors, (22), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 29 states. [2022-02-20 16:50:12,345 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:12,345 INFO L93 Difference]: Finished difference Result 29 states and 34 transitions. [2022-02-20 16:50:12,346 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2022-02-20 16:50:12,346 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:12,346 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:12,346 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:12,347 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:12,347 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 29 states, 19 states have (on average 1.1578947368421053) internal successors, (22), 20 states have internal predecessors, (22), 7 states have call successors, (7), 3 states have call predecessors, (7), 2 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-02-20 16:50:12,348 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 34 transitions. [2022-02-20 16:50:12,349 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 34 transitions. Word has length 26 [2022-02-20 16:50:12,349 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:12,349 INFO L470 AbstractCegarLoop]: Abstraction has 29 states and 34 transitions. [2022-02-20 16:50:12,349 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 6 states have (on average 2.8333333333333335) internal successors, (17), 5 states have internal predecessors, (17), 3 states have call successors, (4), 2 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:50:12,349 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2022-02-20 16:50:12,350 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2022-02-20 16:50:12,350 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:12,350 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:50:12,363 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:12,560 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:12,561 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:12,561 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:12,562 INFO L85 PathProgramCache]: Analyzing trace with hash 147230052, now seen corresponding path program 1 times [2022-02-20 16:50:12,562 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:12,562 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1144288508] [2022-02-20 16:50:12,562 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:12,562 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:12,562 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:12,564 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:12,592 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Waiting until timeout for monitored process [2022-02-20 16:50:12,622 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:12,625 INFO L263 TraceCheckSpWp]: Trace formula consists of 90 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:50:12,638 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:12,640 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:13,064 INFO L290 TraceCheckUtils]: 0: Hoare triple {843#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {848#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,067 INFO L290 TraceCheckUtils]: 1: Hoare triple {848#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} 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; {848#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,069 INFO L272 TraceCheckUtils]: 2: Hoare triple {848#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,069 INFO L290 TraceCheckUtils]: 3: Hoare triple {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} ~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; {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,070 INFO L290 TraceCheckUtils]: 4: Hoare triple {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,070 INFO L290 TraceCheckUtils]: 5: Hoare triple {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} __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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,081 INFO L290 TraceCheckUtils]: 6: Hoare triple {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} assume !(0bv32 == __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; {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,094 INFO L290 TraceCheckUtils]: 7: Hoare triple {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} #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; {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,106 INFO L290 TraceCheckUtils]: 8: Hoare triple {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} assume true; {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,107 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} {848#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} #69#return; {878#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,108 INFO L290 TraceCheckUtils]: 10: Hoare triple {878#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} 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; {878#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,109 INFO L272 TraceCheckUtils]: 11: Hoare triple {878#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,109 INFO L290 TraceCheckUtils]: 12: Hoare triple {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} ~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; {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,110 INFO L290 TraceCheckUtils]: 13: Hoare triple {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,110 INFO L290 TraceCheckUtils]: 14: Hoare triple {855#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} __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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,123 INFO L290 TraceCheckUtils]: 15: Hoare triple {865#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} assume !(0bv32 == __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; {897#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,139 INFO L290 TraceCheckUtils]: 16: Hoare triple {897#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~elem~0.offset (_ bv0 32)))} #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; {901#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,149 INFO L290 TraceCheckUtils]: 17: Hoare triple {901#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (= ~elem~0.offset (_ bv0 32)))} assume true; {901#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,151 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {901#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (= ~elem~0.offset (_ bv0 32)))} {878#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} #71#return; {908#(and (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,155 INFO L290 TraceCheckUtils]: 19: Hoare triple {908#(and (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} 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; {912#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,156 INFO L290 TraceCheckUtils]: 20: Hoare triple {912#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {912#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,157 INFO L272 TraceCheckUtils]: 21: Hoare triple {912#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {919#(and (= |list_add_#in~new.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,161 INFO L290 TraceCheckUtils]: 22: Hoare triple {919#(and (= |list_add_#in~new.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {923#(and (= list_add_~new.offset (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:13,161 INFO L290 TraceCheckUtils]: 23: Hoare triple {923#(and (= list_add_~new.offset (_ bv2 32)) (= ~elem~0.offset (_ bv0 32)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {844#false} is VALID [2022-02-20 16:50:13,162 INFO L272 TraceCheckUtils]: 24: Hoare triple {844#false} call __blast_assert(); {844#false} is VALID [2022-02-20 16:50:13,162 INFO L290 TraceCheckUtils]: 25: Hoare triple {844#false} assume !false; {844#false} is VALID [2022-02-20 16:50:13,162 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:50:13,162 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:50:13,162 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:13,162 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1144288508] [2022-02-20 16:50:13,163 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1144288508] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:50:13,163 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:50:13,163 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-02-20 16:50:13,163 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [770115783] [2022-02-20 16:50:13,163 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:50:13,164 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:50:13,169 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:13,169 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:50:13,273 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:50:13,273 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-02-20 16:50:13,274 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:13,274 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-02-20 16:50:13,274 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=23, Invalid=109, Unknown=0, NotChecked=0, Total=132 [2022-02-20 16:50:13,274 INFO L87 Difference]: Start difference. First operand 29 states and 34 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:50:14,261 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:14,261 INFO L93 Difference]: Finished difference Result 58 states and 68 transitions. [2022-02-20 16:50:14,261 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-02-20 16:50:14,262 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:50:14,262 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:14,262 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:50:14,264 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 68 transitions. [2022-02-20 16:50:14,264 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:50:14,266 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 68 transitions. [2022-02-20 16:50:14,266 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states and 68 transitions. [2022-02-20 16:50:14,378 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:14,380 INFO L225 Difference]: With dead ends: 58 [2022-02-20 16:50:14,380 INFO L226 Difference]: Without dead ends: 55 [2022-02-20 16:50:14,380 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 33 GetRequests, 14 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 40 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=65, Invalid=315, Unknown=0, NotChecked=0, Total=380 [2022-02-20 16:50:14,381 INFO L933 BasicCegarLoop]: 30 mSDtfsCounter, 33 mSDsluCounter, 111 mSDsCounter, 0 mSdLazyCounter, 258 mSolverCounterSat, 11 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 33 SdHoareTripleChecker+Valid, 141 SdHoareTripleChecker+Invalid, 269 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 11 IncrementalHoareTripleChecker+Valid, 258 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:14,381 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [33 Valid, 141 Invalid, 269 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [11 Valid, 258 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-02-20 16:50:14,382 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2022-02-20 16:50:14,387 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 52. [2022-02-20 16:50:14,387 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:14,388 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand has 52 states, 36 states have (on average 1.1944444444444444) internal successors, (43), 37 states have internal predecessors, (43), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:50:14,388 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand has 52 states, 36 states have (on average 1.1944444444444444) internal successors, (43), 37 states have internal predecessors, (43), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:50:14,388 INFO L87 Difference]: Start difference. First operand 55 states. Second operand has 52 states, 36 states have (on average 1.1944444444444444) internal successors, (43), 37 states have internal predecessors, (43), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:50:14,391 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:14,391 INFO L93 Difference]: Finished difference Result 55 states and 65 transitions. [2022-02-20 16:50:14,391 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 65 transitions. [2022-02-20 16:50:14,392 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:14,392 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:14,392 INFO L74 IsIncluded]: Start isIncluded. First operand has 52 states, 36 states have (on average 1.1944444444444444) internal successors, (43), 37 states have internal predecessors, (43), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) Second operand 55 states. [2022-02-20 16:50:14,393 INFO L87 Difference]: Start difference. First operand has 52 states, 36 states have (on average 1.1944444444444444) internal successors, (43), 37 states have internal predecessors, (43), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) Second operand 55 states. [2022-02-20 16:50:14,395 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:14,395 INFO L93 Difference]: Finished difference Result 55 states and 65 transitions. [2022-02-20 16:50:14,396 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 65 transitions. [2022-02-20 16:50:14,396 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:14,396 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:14,396 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:14,396 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:14,397 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 52 states, 36 states have (on average 1.1944444444444444) internal successors, (43), 37 states have internal predecessors, (43), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (10), 8 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:50:14,399 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 52 states to 52 states and 63 transitions. [2022-02-20 16:50:14,399 INFO L78 Accepts]: Start accepts. Automaton has 52 states and 63 transitions. Word has length 26 [2022-02-20 16:50:14,399 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:14,400 INFO L470 AbstractCegarLoop]: Abstraction has 52 states and 63 transitions. [2022-02-20 16:50:14,400 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:50:14,400 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 63 transitions. [2022-02-20 16:50:14,401 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-02-20 16:50:14,401 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:14,401 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] [2022-02-20 16:50:14,412 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:14,611 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:14,612 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:14,612 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:14,612 INFO L85 PathProgramCache]: Analyzing trace with hash -1530418996, now seen corresponding path program 1 times [2022-02-20 16:50:14,613 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:14,613 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [618966213] [2022-02-20 16:50:14,613 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:14,613 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:14,613 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:14,615 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:14,617 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (6)] Waiting until timeout for monitored process [2022-02-20 16:50:14,674 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:14,677 INFO L263 TraceCheckSpWp]: Trace formula consists of 108 conjuncts, 23 conjunts are in the unsatisfiable core [2022-02-20 16:50:14,696 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:14,698 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:15,167 INFO L290 TraceCheckUtils]: 0: Hoare triple {1208#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {1213#(= ~guard_malloc_counter~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:15,171 INFO L290 TraceCheckUtils]: 1: Hoare triple {1213#(= ~guard_malloc_counter~0.offset (_ bv0 32))} 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; {1213#(= ~guard_malloc_counter~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:15,172 INFO L272 TraceCheckUtils]: 2: Hoare triple {1213#(= ~guard_malloc_counter~0.offset (_ bv0 32))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:15,173 INFO L290 TraceCheckUtils]: 3: Hoare triple {1220#(= ~guard_malloc_counter~0.offset |old(~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; {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:15,174 INFO L290 TraceCheckUtils]: 4: Hoare triple {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:15,184 INFO L290 TraceCheckUtils]: 5: Hoare triple {1220#(= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {1230#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} is VALID [2022-02-20 16:50:15,197 INFO L290 TraceCheckUtils]: 6: Hoare triple {1230#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} assume !(0bv32 == __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; {1234#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:15,214 INFO L290 TraceCheckUtils]: 7: Hoare triple {1234#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} #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; {1238#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:15,225 INFO L290 TraceCheckUtils]: 8: Hoare triple {1238#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} assume true; {1238#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:15,238 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1238#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} {1213#(= ~guard_malloc_counter~0.offset (_ bv0 32))} #69#return; {1245#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:15,239 INFO L290 TraceCheckUtils]: 10: Hoare triple {1245#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} 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; {1249#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:15,240 INFO L272 TraceCheckUtils]: 11: Hoare triple {1249#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:15,240 INFO L290 TraceCheckUtils]: 12: Hoare triple {1220#(= ~guard_malloc_counter~0.offset |old(~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; {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:15,241 INFO L290 TraceCheckUtils]: 13: Hoare triple {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:15,249 INFO L290 TraceCheckUtils]: 14: Hoare triple {1220#(= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {1230#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} is VALID [2022-02-20 16:50:15,259 INFO L290 TraceCheckUtils]: 15: Hoare triple {1230#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} assume !(0bv32 == __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; {1234#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:15,270 INFO L290 TraceCheckUtils]: 16: Hoare triple {1234#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} #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; {1238#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:15,278 INFO L290 TraceCheckUtils]: 17: Hoare triple {1238#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} assume true; {1238#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:15,279 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1238#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} {1249#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} #71#return; {1274#(and (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} is VALID [2022-02-20 16:50:15,280 INFO L290 TraceCheckUtils]: 19: Hoare triple {1274#(and (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} 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; {1278#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} is VALID [2022-02-20 16:50:15,280 INFO L290 TraceCheckUtils]: 20: Hoare triple {1278#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {1278#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} is VALID [2022-02-20 16:50:15,281 INFO L272 TraceCheckUtils]: 21: Hoare triple {1278#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1208#true} is VALID [2022-02-20 16:50:15,281 INFO L290 TraceCheckUtils]: 22: Hoare triple {1208#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1288#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:15,281 INFO L290 TraceCheckUtils]: 23: Hoare triple {1288#(= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1288#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:15,282 INFO L290 TraceCheckUtils]: 24: Hoare triple {1288#(= list_add_~new.offset |list_add_#in~new.offset|)} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1295#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:15,282 INFO L290 TraceCheckUtils]: 25: Hoare triple {1295#(= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {1295#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:15,283 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {1295#(= |list_add_#in~new.offset| ~elem~0.offset)} {1278#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} #73#return; {1302#(and (= (_ bv2 32) ~elem~0.offset) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} is VALID [2022-02-20 16:50:15,285 INFO L272 TraceCheckUtils]: 27: Hoare triple {1302#(and (= (_ bv2 32) ~elem~0.offset) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1306#(and (= |list_add_#in~new.offset| (_ bv1 32)) (= (_ bv2 32) ~elem~0.offset))} is VALID [2022-02-20 16:50:15,285 INFO L290 TraceCheckUtils]: 28: Hoare triple {1306#(and (= |list_add_#in~new.offset| (_ bv1 32)) (= (_ bv2 32) ~elem~0.offset))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1310#(and (= (_ bv2 32) ~elem~0.offset) (= list_add_~new.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:15,292 INFO L290 TraceCheckUtils]: 29: Hoare triple {1310#(and (= (_ bv2 32) ~elem~0.offset) (= list_add_~new.offset (_ bv1 32)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1209#false} is VALID [2022-02-20 16:50:15,292 INFO L272 TraceCheckUtils]: 30: Hoare triple {1209#false} call __blast_assert(); {1209#false} is VALID [2022-02-20 16:50:15,292 INFO L290 TraceCheckUtils]: 31: Hoare triple {1209#false} assume !false; {1209#false} is VALID [2022-02-20 16:50:15,292 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 16:50:15,292 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:50:16,149 INFO L290 TraceCheckUtils]: 31: Hoare triple {1209#false} assume !false; {1209#false} is VALID [2022-02-20 16:50:16,149 INFO L272 TraceCheckUtils]: 30: Hoare triple {1209#false} call __blast_assert(); {1209#false} is VALID [2022-02-20 16:50:16,163 INFO L290 TraceCheckUtils]: 29: Hoare triple {1326#(not (= list_add_~new.offset ~elem~0.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1209#false} is VALID [2022-02-20 16:50:16,164 INFO L290 TraceCheckUtils]: 28: Hoare triple {1330#(not (= |list_add_#in~new.offset| ~elem~0.offset))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1326#(not (= list_add_~new.offset ~elem~0.offset))} is VALID [2022-02-20 16:50:16,166 INFO L272 TraceCheckUtils]: 27: Hoare triple {1334#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1330#(not (= |list_add_#in~new.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:16,167 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {1295#(= |list_add_#in~new.offset| ~elem~0.offset)} {1338#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} #73#return; {1334#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:16,167 INFO L290 TraceCheckUtils]: 25: Hoare triple {1295#(= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {1295#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:16,168 INFO L290 TraceCheckUtils]: 24: Hoare triple {1288#(= list_add_~new.offset |list_add_#in~new.offset|)} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {1295#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:16,168 INFO L290 TraceCheckUtils]: 23: Hoare triple {1288#(= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1288#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:16,169 INFO L290 TraceCheckUtils]: 22: Hoare triple {1208#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1288#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:16,169 INFO L272 TraceCheckUtils]: 21: Hoare triple {1338#(not (= |ULTIMATE.start_main_~dev2~0#1.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); {1208#true} is VALID [2022-02-20 16:50:16,170 INFO L290 TraceCheckUtils]: 20: Hoare triple {1338#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {1338#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:50:16,170 INFO L290 TraceCheckUtils]: 19: Hoare triple {1360#(not (= |ULTIMATE.start_main_#t~ret11#1.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; {1338#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:50:16,172 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1368#(= |old(~guard_malloc_counter~0.offset)| (bvadd (_ bv4294967295 32) |my_malloc_#res#1.offset|))} {1364#(not (= ~guard_malloc_counter~0.offset (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|)))} #71#return; {1360#(not (= |ULTIMATE.start_main_#t~ret11#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:50:16,184 INFO L290 TraceCheckUtils]: 17: Hoare triple {1368#(= |old(~guard_malloc_counter~0.offset)| (bvadd (_ bv4294967295 32) |my_malloc_#res#1.offset|))} assume true; {1368#(= |old(~guard_malloc_counter~0.offset)| (bvadd (_ bv4294967295 32) |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:16,185 INFO L290 TraceCheckUtils]: 16: Hoare triple {1375#(= |old(~guard_malloc_counter~0.offset)| (bvadd (_ bv4294967295 32) |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; {1368#(= |old(~guard_malloc_counter~0.offset)| (bvadd (_ bv4294967295 32) |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:16,199 INFO L290 TraceCheckUtils]: 15: Hoare triple {1230#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} assume !(0bv32 == __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; {1375#(= |old(~guard_malloc_counter~0.offset)| (bvadd (_ bv4294967295 32) |my_malloc___getMemory_#res#1.offset|))} is VALID [2022-02-20 16:50:16,209 INFO L290 TraceCheckUtils]: 14: Hoare triple {1220#(= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {1230#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} is VALID [2022-02-20 16:50:16,210 INFO L290 TraceCheckUtils]: 13: Hoare triple {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:16,210 INFO L290 TraceCheckUtils]: 12: Hoare triple {1220#(= ~guard_malloc_counter~0.offset |old(~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; {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:16,211 INFO L272 TraceCheckUtils]: 11: Hoare triple {1364#(not (= ~guard_malloc_counter~0.offset (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|)))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {1220#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:16,211 INFO L290 TraceCheckUtils]: 10: Hoare triple {1391#(not (= ~guard_malloc_counter~0.offset (bvadd (_ bv4294967295 32) |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; {1364#(not (= ~guard_malloc_counter~0.offset (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|)))} is VALID [2022-02-20 16:50:16,212 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1398#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc_#res#1.offset|))} {1208#true} #69#return; {1391#(not (= ~guard_malloc_counter~0.offset (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_#t~ret10#1.offset|)))} is VALID [2022-02-20 16:50:16,213 INFO L290 TraceCheckUtils]: 8: Hoare triple {1398#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc_#res#1.offset|))} assume true; {1398#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:16,225 INFO L290 TraceCheckUtils]: 7: Hoare triple {1405#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |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; {1398#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:16,225 INFO L290 TraceCheckUtils]: 6: Hoare triple {1208#true} assume !(0bv32 == __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; {1405#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc___getMemory_#res#1.offset|))} is VALID [2022-02-20 16:50:16,226 INFO L290 TraceCheckUtils]: 5: Hoare triple {1208#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {1208#true} is VALID [2022-02-20 16:50:16,226 INFO L290 TraceCheckUtils]: 4: Hoare triple {1208#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {1208#true} is VALID [2022-02-20 16:50:16,226 INFO L290 TraceCheckUtils]: 3: Hoare triple {1208#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; {1208#true} is VALID [2022-02-20 16:50:16,226 INFO L272 TraceCheckUtils]: 2: Hoare triple {1208#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {1208#true} is VALID [2022-02-20 16:50:16,226 INFO L290 TraceCheckUtils]: 1: Hoare triple {1208#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; {1208#true} is VALID [2022-02-20 16:50:16,226 INFO L290 TraceCheckUtils]: 0: Hoare triple {1208#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {1208#true} is VALID [2022-02-20 16:50:16,227 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:50:16,227 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:16,227 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [618966213] [2022-02-20 16:50:16,227 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [618966213] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:50:16,227 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:50:16,227 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 17] total 27 [2022-02-20 16:50:16,227 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2129004097] [2022-02-20 16:50:16,227 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:50:16,229 INFO L78 Accepts]: Start accepts. Automaton has has 27 states, 23 states have (on average 1.4782608695652173) internal successors, (34), 19 states have internal predecessors, (34), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Word has length 32 [2022-02-20 16:50:16,229 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:16,229 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 27 states, 23 states have (on average 1.4782608695652173) internal successors, (34), 19 states have internal predecessors, (34), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-02-20 16:50:16,340 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:16,340 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 27 states [2022-02-20 16:50:16,340 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:16,340 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2022-02-20 16:50:16,341 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=638, Unknown=0, NotChecked=0, Total=702 [2022-02-20 16:50:16,341 INFO L87 Difference]: Start difference. First operand 52 states and 63 transitions. Second operand has 27 states, 23 states have (on average 1.4782608695652173) internal successors, (34), 19 states have internal predecessors, (34), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-02-20 16:50:19,335 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:19,336 INFO L93 Difference]: Finished difference Result 74 states and 94 transitions. [2022-02-20 16:50:19,336 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2022-02-20 16:50:19,336 INFO L78 Accepts]: Start accepts. Automaton has has 27 states, 23 states have (on average 1.4782608695652173) internal successors, (34), 19 states have internal predecessors, (34), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Word has length 32 [2022-02-20 16:50:19,337 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:19,337 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 23 states have (on average 1.4782608695652173) internal successors, (34), 19 states have internal predecessors, (34), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-02-20 16:50:19,341 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 68 transitions. [2022-02-20 16:50:19,342 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 23 states have (on average 1.4782608695652173) internal successors, (34), 19 states have internal predecessors, (34), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-02-20 16:50:19,344 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 68 transitions. [2022-02-20 16:50:19,344 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 68 transitions. [2022-02-20 16:50:19,444 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:19,447 INFO L225 Difference]: With dead ends: 74 [2022-02-20 16:50:19,447 INFO L226 Difference]: Without dead ends: 69 [2022-02-20 16:50:19,448 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 73 GetRequests, 37 SyntacticMatches, 0 SemanticMatches, 36 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 163 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=133, Invalid=1273, Unknown=0, NotChecked=0, Total=1406 [2022-02-20 16:50:19,448 INFO L933 BasicCegarLoop]: 23 mSDtfsCounter, 56 mSDsluCounter, 144 mSDsCounter, 0 mSdLazyCounter, 767 mSolverCounterSat, 42 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 56 SdHoareTripleChecker+Valid, 167 SdHoareTripleChecker+Invalid, 809 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 42 IncrementalHoareTripleChecker+Valid, 767 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.2s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:19,449 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [56 Valid, 167 Invalid, 809 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [42 Valid, 767 Invalid, 0 Unknown, 0 Unchecked, 1.2s Time] [2022-02-20 16:50:19,449 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 69 states. [2022-02-20 16:50:19,455 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 69 to 65. [2022-02-20 16:50:19,456 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:19,456 INFO L82 GeneralOperation]: Start isEquivalent. First operand 69 states. Second operand has 65 states, 46 states have (on average 1.1956521739130435) internal successors, (55), 47 states have internal predecessors, (55), 11 states have call successors, (11), 8 states have call predecessors, (11), 7 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:50:19,456 INFO L74 IsIncluded]: Start isIncluded. First operand 69 states. Second operand has 65 states, 46 states have (on average 1.1956521739130435) internal successors, (55), 47 states have internal predecessors, (55), 11 states have call successors, (11), 8 states have call predecessors, (11), 7 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:50:19,457 INFO L87 Difference]: Start difference. First operand 69 states. Second operand has 65 states, 46 states have (on average 1.1956521739130435) internal successors, (55), 47 states have internal predecessors, (55), 11 states have call successors, (11), 8 states have call predecessors, (11), 7 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:50:19,459 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:19,460 INFO L93 Difference]: Finished difference Result 69 states and 82 transitions. [2022-02-20 16:50:19,460 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 82 transitions. [2022-02-20 16:50:19,460 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:19,460 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:19,461 INFO L74 IsIncluded]: Start isIncluded. First operand has 65 states, 46 states have (on average 1.1956521739130435) internal successors, (55), 47 states have internal predecessors, (55), 11 states have call successors, (11), 8 states have call predecessors, (11), 7 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) Second operand 69 states. [2022-02-20 16:50:19,461 INFO L87 Difference]: Start difference. First operand has 65 states, 46 states have (on average 1.1956521739130435) internal successors, (55), 47 states have internal predecessors, (55), 11 states have call successors, (11), 8 states have call predecessors, (11), 7 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) Second operand 69 states. [2022-02-20 16:50:19,464 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:19,464 INFO L93 Difference]: Finished difference Result 69 states and 82 transitions. [2022-02-20 16:50:19,464 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 82 transitions. [2022-02-20 16:50:19,464 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:19,465 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:19,465 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:19,465 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:19,465 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 65 states, 46 states have (on average 1.1956521739130435) internal successors, (55), 47 states have internal predecessors, (55), 11 states have call successors, (11), 8 states have call predecessors, (11), 7 states have return successors, (10), 9 states have call predecessors, (10), 7 states have call successors, (10) [2022-02-20 16:50:19,467 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 65 states to 65 states and 76 transitions. [2022-02-20 16:50:19,468 INFO L78 Accepts]: Start accepts. Automaton has 65 states and 76 transitions. Word has length 32 [2022-02-20 16:50:19,468 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:19,468 INFO L470 AbstractCegarLoop]: Abstraction has 65 states and 76 transitions. [2022-02-20 16:50:19,468 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 27 states, 23 states have (on average 1.4782608695652173) internal successors, (34), 19 states have internal predecessors, (34), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-02-20 16:50:19,469 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 76 transitions. [2022-02-20 16:50:19,469 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-02-20 16:50:19,469 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:19,470 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] [2022-02-20 16:50:19,487 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (6)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:19,681 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:19,681 INFO L402 AbstractCegarLoop]: === Iteration 6 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:19,682 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:19,682 INFO L85 PathProgramCache]: Analyzing trace with hash 1955201674, now seen corresponding path program 1 times [2022-02-20 16:50:19,682 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:19,682 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [2065727150] [2022-02-20 16:50:19,682 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:19,682 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:19,683 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:19,684 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:19,685 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (7)] Waiting until timeout for monitored process [2022-02-20 16:50:19,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:19,738 INFO L263 TraceCheckSpWp]: Trace formula consists of 106 conjuncts, 16 conjunts are in the unsatisfiable core [2022-02-20 16:50:19,756 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:19,758 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:20,120 INFO L290 TraceCheckUtils]: 0: Hoare triple {1769#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {1774#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,121 INFO L290 TraceCheckUtils]: 1: Hoare triple {1774#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} 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; {1774#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,121 INFO L272 TraceCheckUtils]: 2: Hoare triple {1774#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {1781#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,122 INFO L290 TraceCheckUtils]: 3: Hoare triple {1781#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} ~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; {1781#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,122 INFO L290 TraceCheckUtils]: 4: Hoare triple {1781#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {1781#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,135 INFO L290 TraceCheckUtils]: 5: Hoare triple {1781#(and (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|) (= ~elem~0.offset (_ bv0 32)))} __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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {1791#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,148 INFO L290 TraceCheckUtils]: 6: Hoare triple {1791#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~elem~0.offset (_ bv0 32)))} assume !(0bv32 == __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; {1795#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,158 INFO L290 TraceCheckUtils]: 7: Hoare triple {1795#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~elem~0.offset (_ bv0 32)))} #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; {1799#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,168 INFO L290 TraceCheckUtils]: 8: Hoare triple {1799#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (= ~elem~0.offset (_ bv0 32)))} assume true; {1799#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,169 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1799#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|) (= ~elem~0.offset (_ bv0 32)))} {1774#(and (= ~guard_malloc_counter~0.offset (_ bv0 32)) (= ~elem~0.offset (_ bv0 32)))} #69#return; {1806#(and (= (_ bv0 32) (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_#t~ret10#1.offset|)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,171 INFO L290 TraceCheckUtils]: 10: Hoare triple {1806#(and (= (_ bv0 32) (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_#t~ret10#1.offset|)) (= ~elem~0.offset (_ bv0 32)))} 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; {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,173 INFO L272 TraceCheckUtils]: 11: Hoare triple {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {1814#(= ~elem~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:20,173 INFO L290 TraceCheckUtils]: 12: Hoare triple {1814#(= ~elem~0.offset (_ bv0 32))} ~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; {1814#(= ~elem~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:20,173 INFO L290 TraceCheckUtils]: 13: Hoare triple {1814#(= ~elem~0.offset (_ bv0 32))} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {1814#(= ~elem~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:20,174 INFO L290 TraceCheckUtils]: 14: Hoare triple {1814#(= ~elem~0.offset (_ bv0 32))} __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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {1814#(= ~elem~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:20,174 INFO L290 TraceCheckUtils]: 15: Hoare triple {1814#(= ~elem~0.offset (_ bv0 32))} assume !(0bv32 == __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; {1814#(= ~elem~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:20,174 INFO L290 TraceCheckUtils]: 16: Hoare triple {1814#(= ~elem~0.offset (_ bv0 32))} #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; {1814#(= ~elem~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:20,175 INFO L290 TraceCheckUtils]: 17: Hoare triple {1814#(= ~elem~0.offset (_ bv0 32))} assume true; {1814#(= ~elem~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:20,175 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1814#(= ~elem~0.offset (_ bv0 32))} {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} #71#return; {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,176 INFO L290 TraceCheckUtils]: 19: Hoare triple {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} 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; {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,176 INFO L290 TraceCheckUtils]: 20: Hoare triple {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,177 INFO L272 TraceCheckUtils]: 21: Hoare triple {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,177 INFO L290 TraceCheckUtils]: 22: Hoare triple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,177 INFO L290 TraceCheckUtils]: 23: Hoare triple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,178 INFO L290 TraceCheckUtils]: 24: Hoare triple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0bv32 != #t~nondet9);havoc #t~nondet9; {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,178 INFO L290 TraceCheckUtils]: 25: Hoare triple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,182 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} #73#return; {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,183 INFO L272 TraceCheckUtils]: 27: Hoare triple {1810#(and (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1864#(and (= |list_add_#in~new.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,184 INFO L290 TraceCheckUtils]: 28: Hoare triple {1864#(and (= |list_add_#in~new.offset| (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1868#(and (= list_add_~new.offset (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:20,184 INFO L290 TraceCheckUtils]: 29: Hoare triple {1868#(and (= list_add_~new.offset (_ bv1 32)) (= ~elem~0.offset (_ bv0 32)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1770#false} is VALID [2022-02-20 16:50:20,184 INFO L272 TraceCheckUtils]: 30: Hoare triple {1770#false} call __blast_assert(); {1770#false} is VALID [2022-02-20 16:50:20,184 INFO L290 TraceCheckUtils]: 31: Hoare triple {1770#false} assume !false; {1770#false} is VALID [2022-02-20 16:50:20,185 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:50:20,185 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:50:20,683 INFO L290 TraceCheckUtils]: 31: Hoare triple {1770#false} assume !false; {1770#false} is VALID [2022-02-20 16:50:20,683 INFO L272 TraceCheckUtils]: 30: Hoare triple {1770#false} call __blast_assert(); {1770#false} is VALID [2022-02-20 16:50:20,684 INFO L290 TraceCheckUtils]: 29: Hoare triple {1884#(not (= list_add_~new.offset ~elem~0.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {1770#false} is VALID [2022-02-20 16:50:20,684 INFO L290 TraceCheckUtils]: 28: Hoare triple {1888#(not (= |list_add_#in~new.offset| ~elem~0.offset))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1884#(not (= list_add_~new.offset ~elem~0.offset))} is VALID [2022-02-20 16:50:20,685 INFO L272 TraceCheckUtils]: 27: Hoare triple {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {1888#(not (= |list_add_#in~new.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:20,686 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} #73#return; {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:20,686 INFO L290 TraceCheckUtils]: 25: Hoare triple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} assume true; {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,686 INFO L290 TraceCheckUtils]: 24: Hoare triple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} assume !(0bv32 != #t~nondet9);havoc #t~nondet9; {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,686 INFO L290 TraceCheckUtils]: 23: Hoare triple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,687 INFO L290 TraceCheckUtils]: 22: Hoare triple {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,688 INFO L272 TraceCheckUtils]: 21: Hoare triple {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {1845#(= |old(~elem~0.offset)| ~elem~0.offset)} is VALID [2022-02-20 16:50:20,688 INFO L290 TraceCheckUtils]: 20: Hoare triple {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:20,688 INFO L290 TraceCheckUtils]: 19: Hoare triple {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.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; {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:20,689 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1769#true} {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} #71#return; {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:20,689 INFO L290 TraceCheckUtils]: 17: Hoare triple {1769#true} assume true; {1769#true} is VALID [2022-02-20 16:50:20,689 INFO L290 TraceCheckUtils]: 16: Hoare triple {1769#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; {1769#true} is VALID [2022-02-20 16:50:20,689 INFO L290 TraceCheckUtils]: 15: Hoare triple {1769#true} assume !(0bv32 == __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; {1769#true} is VALID [2022-02-20 16:50:20,689 INFO L290 TraceCheckUtils]: 14: Hoare triple {1769#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {1769#true} is VALID [2022-02-20 16:50:20,689 INFO L290 TraceCheckUtils]: 13: Hoare triple {1769#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {1769#true} is VALID [2022-02-20 16:50:20,689 INFO L290 TraceCheckUtils]: 12: Hoare triple {1769#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; {1769#true} is VALID [2022-02-20 16:50:20,689 INFO L272 TraceCheckUtils]: 11: Hoare triple {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {1769#true} is VALID [2022-02-20 16:50:20,690 INFO L290 TraceCheckUtils]: 10: Hoare triple {1944#(not (= |ULTIMATE.start_main_#t~ret10#1.offset| ~elem~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; {1892#(not (= |ULTIMATE.start_main_~dev1~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:20,691 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {1952#(or (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset) (not (= |my_malloc_#res#1.offset| ~elem~0.offset)))} {1948#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset))} #69#return; {1944#(not (= |ULTIMATE.start_main_#t~ret10#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:20,699 INFO L290 TraceCheckUtils]: 8: Hoare triple {1952#(or (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset) (not (= |my_malloc_#res#1.offset| ~elem~0.offset)))} assume true; {1952#(or (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset) (not (= |my_malloc_#res#1.offset| ~elem~0.offset)))} is VALID [2022-02-20 16:50:20,706 INFO L290 TraceCheckUtils]: 7: Hoare triple {1959#(or (not (= |my_malloc___getMemory_#res#1.offset| ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~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; {1952#(or (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset) (not (= |my_malloc_#res#1.offset| ~elem~0.offset)))} is VALID [2022-02-20 16:50:20,717 INFO L290 TraceCheckUtils]: 6: Hoare triple {1963#(or (not (= ~guard_malloc_counter~0.offset ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset))} assume !(0bv32 == __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; {1959#(or (not (= |my_malloc___getMemory_#res#1.offset| ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset))} is VALID [2022-02-20 16:50:20,726 INFO L290 TraceCheckUtils]: 5: Hoare triple {1967#(or (not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {1963#(or (not (= ~guard_malloc_counter~0.offset ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset))} is VALID [2022-02-20 16:50:20,748 INFO L290 TraceCheckUtils]: 4: Hoare triple {1967#(or (not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset))} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {1967#(or (not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset))} is VALID [2022-02-20 16:50:20,771 INFO L290 TraceCheckUtils]: 3: Hoare triple {1967#(or (not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~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; {1967#(or (not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset))} is VALID [2022-02-20 16:50:20,772 INFO L272 TraceCheckUtils]: 2: Hoare triple {1948#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {1967#(or (not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset)) (= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) ~elem~0.offset))} is VALID [2022-02-20 16:50:20,780 INFO L290 TraceCheckUtils]: 1: Hoare triple {1948#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~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; {1948#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset))} is VALID [2022-02-20 16:50:20,781 INFO L290 TraceCheckUtils]: 0: Hoare triple {1769#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {1948#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) ~elem~0.offset))} is VALID [2022-02-20 16:50:20,781 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:50:20,781 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:20,781 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [2065727150] [2022-02-20 16:50:20,781 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [2065727150] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:50:20,781 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:50:20,781 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 12] total 22 [2022-02-20 16:50:20,782 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1810087358] [2022-02-20 16:50:20,782 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:50:20,783 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 22 states have (on average 1.9545454545454546) internal successors, (43), 18 states have internal predecessors, (43), 5 states have call successors, (9), 8 states have call predecessors, (9), 5 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 32 [2022-02-20 16:50:20,783 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:20,784 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 22 states, 22 states have (on average 1.9545454545454546) internal successors, (43), 18 states have internal predecessors, (43), 5 states have call successors, (9), 8 states have call predecessors, (9), 5 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:50:20,944 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:20,944 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 22 states [2022-02-20 16:50:20,944 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:20,945 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2022-02-20 16:50:20,945 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=397, Unknown=0, NotChecked=0, Total=462 [2022-02-20 16:50:20,945 INFO L87 Difference]: Start difference. First operand 65 states and 76 transitions. Second operand has 22 states, 22 states have (on average 1.9545454545454546) internal successors, (43), 18 states have internal predecessors, (43), 5 states have call successors, (9), 8 states have call predecessors, (9), 5 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:50:22,825 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:22,825 INFO L93 Difference]: Finished difference Result 79 states and 90 transitions. [2022-02-20 16:50:22,825 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2022-02-20 16:50:22,826 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 22 states have (on average 1.9545454545454546) internal successors, (43), 18 states have internal predecessors, (43), 5 states have call successors, (9), 8 states have call predecessors, (9), 5 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 32 [2022-02-20 16:50:22,826 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:22,826 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 22 states have (on average 1.9545454545454546) internal successors, (43), 18 states have internal predecessors, (43), 5 states have call successors, (9), 8 states have call predecessors, (9), 5 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:50:22,827 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 73 transitions. [2022-02-20 16:50:22,828 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 22 states have (on average 1.9545454545454546) internal successors, (43), 18 states have internal predecessors, (43), 5 states have call successors, (9), 8 states have call predecessors, (9), 5 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:50:22,829 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 73 transitions. [2022-02-20 16:50:22,829 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 73 transitions. [2022-02-20 16:50:22,970 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:22,972 INFO L225 Difference]: With dead ends: 79 [2022-02-20 16:50:22,972 INFO L226 Difference]: Without dead ends: 69 [2022-02-20 16:50:22,973 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 78 GetRequests, 43 SyntacticMatches, 0 SemanticMatches, 35 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 218 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=211, Invalid=1121, Unknown=0, NotChecked=0, Total=1332 [2022-02-20 16:50:22,974 INFO L933 BasicCegarLoop]: 32 mSDtfsCounter, 83 mSDsluCounter, 72 mSDsCounter, 0 mSdLazyCounter, 544 mSolverCounterSat, 59 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 83 SdHoareTripleChecker+Valid, 104 SdHoareTripleChecker+Invalid, 603 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 59 IncrementalHoareTripleChecker+Valid, 544 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.7s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:22,974 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [83 Valid, 104 Invalid, 603 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [59 Valid, 544 Invalid, 0 Unknown, 0 Unchecked, 0.7s Time] [2022-02-20 16:50:22,975 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 69 states. [2022-02-20 16:50:22,980 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 69 to 58. [2022-02-20 16:50:22,980 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:22,981 INFO L82 GeneralOperation]: Start isEquivalent. First operand 69 states. Second operand has 58 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 42 states have internal predecessors, (48), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:22,981 INFO L74 IsIncluded]: Start isIncluded. First operand 69 states. Second operand has 58 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 42 states have internal predecessors, (48), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:22,981 INFO L87 Difference]: Start difference. First operand 69 states. Second operand has 58 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 42 states have internal predecessors, (48), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:22,984 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:22,984 INFO L93 Difference]: Finished difference Result 69 states and 77 transitions. [2022-02-20 16:50:22,984 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 77 transitions. [2022-02-20 16:50:22,984 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:22,984 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:22,985 INFO L74 IsIncluded]: Start isIncluded. First operand has 58 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 42 states have internal predecessors, (48), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 69 states. [2022-02-20 16:50:22,985 INFO L87 Difference]: Start difference. First operand has 58 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 42 states have internal predecessors, (48), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 69 states. [2022-02-20 16:50:22,987 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:22,987 INFO L93 Difference]: Finished difference Result 69 states and 77 transitions. [2022-02-20 16:50:22,987 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 77 transitions. [2022-02-20 16:50:22,988 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:22,988 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:22,988 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:22,988 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:22,989 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 58 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 42 states have internal predecessors, (48), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:22,990 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 65 transitions. [2022-02-20 16:50:22,990 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 65 transitions. Word has length 32 [2022-02-20 16:50:22,991 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:22,991 INFO L470 AbstractCegarLoop]: Abstraction has 58 states and 65 transitions. [2022-02-20 16:50:22,991 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 22 states, 22 states have (on average 1.9545454545454546) internal successors, (43), 18 states have internal predecessors, (43), 5 states have call successors, (9), 8 states have call predecessors, (9), 5 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:50:22,991 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 65 transitions. [2022-02-20 16:50:22,992 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-02-20 16:50:22,992 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:22,992 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] [2022-02-20 16:50:23,002 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (7)] Ended with exit code 0 [2022-02-20 16:50:23,202 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:23,202 INFO L402 AbstractCegarLoop]: === Iteration 7 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:23,202 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:23,203 INFO L85 PathProgramCache]: Analyzing trace with hash 755997495, now seen corresponding path program 1 times [2022-02-20 16:50:23,203 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:23,203 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [823704396] [2022-02-20 16:50:23,203 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:23,203 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:23,203 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:23,204 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:23,205 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (8)] Waiting until timeout for monitored process [2022-02-20 16:50:23,261 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:23,264 INFO L263 TraceCheckSpWp]: Trace formula consists of 135 conjuncts, 21 conjunts are in the unsatisfiable core [2022-02-20 16:50:23,277 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:23,278 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:23,660 INFO L290 TraceCheckUtils]: 0: Hoare triple {2332#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {2337#(= ~guard_malloc_counter~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:23,660 INFO L290 TraceCheckUtils]: 1: Hoare triple {2337#(= ~guard_malloc_counter~0.offset (_ bv0 32))} 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; {2337#(= ~guard_malloc_counter~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:23,661 INFO L272 TraceCheckUtils]: 2: Hoare triple {2337#(= ~guard_malloc_counter~0.offset (_ bv0 32))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {2344#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:23,661 INFO L290 TraceCheckUtils]: 3: Hoare triple {2344#(= ~guard_malloc_counter~0.offset |old(~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; {2344#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:23,663 INFO L290 TraceCheckUtils]: 4: Hoare triple {2344#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {2344#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:23,674 INFO L290 TraceCheckUtils]: 5: Hoare triple {2344#(= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {2354#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} is VALID [2022-02-20 16:50:23,687 INFO L290 TraceCheckUtils]: 6: Hoare triple {2354#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} assume !(0bv32 == __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; {2358#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:23,702 INFO L290 TraceCheckUtils]: 7: Hoare triple {2358#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} #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; {2362#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:23,715 INFO L290 TraceCheckUtils]: 8: Hoare triple {2362#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} assume true; {2362#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:23,716 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2362#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} {2337#(= ~guard_malloc_counter~0.offset (_ bv0 32))} #69#return; {2369#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:23,717 INFO L290 TraceCheckUtils]: 10: Hoare triple {2369#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} 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; {2373#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:23,718 INFO L272 TraceCheckUtils]: 11: Hoare triple {2373#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {2344#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:23,719 INFO L290 TraceCheckUtils]: 12: Hoare triple {2344#(= ~guard_malloc_counter~0.offset |old(~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; {2344#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:23,719 INFO L290 TraceCheckUtils]: 13: Hoare triple {2344#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {2344#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:23,731 INFO L290 TraceCheckUtils]: 14: Hoare triple {2344#(= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {2354#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} is VALID [2022-02-20 16:50:23,741 INFO L290 TraceCheckUtils]: 15: Hoare triple {2354#(= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32)))} assume !(0bv32 == __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; {2358#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:23,756 INFO L290 TraceCheckUtils]: 16: Hoare triple {2358#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} #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; {2362#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:23,764 INFO L290 TraceCheckUtils]: 17: Hoare triple {2362#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} assume true; {2362#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:23,765 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2362#(and (= |old(~guard_malloc_counter~0.offset)| (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} {2373#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} #71#return; {2398#(and (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} is VALID [2022-02-20 16:50:23,766 INFO L290 TraceCheckUtils]: 19: Hoare triple {2398#(and (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} 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; {2402#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} is VALID [2022-02-20 16:50:23,766 INFO L290 TraceCheckUtils]: 20: Hoare triple {2402#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {2402#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} is VALID [2022-02-20 16:50:23,766 INFO L272 TraceCheckUtils]: 21: Hoare triple {2402#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2332#true} is VALID [2022-02-20 16:50:23,767 INFO L290 TraceCheckUtils]: 22: Hoare triple {2332#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2332#true} is VALID [2022-02-20 16:50:23,767 INFO L290 TraceCheckUtils]: 23: Hoare triple {2332#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2332#true} is VALID [2022-02-20 16:50:23,767 INFO L290 TraceCheckUtils]: 24: Hoare triple {2332#true} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2332#true} is VALID [2022-02-20 16:50:23,767 INFO L290 TraceCheckUtils]: 25: Hoare triple {2332#true} assume true; {2332#true} is VALID [2022-02-20 16:50:23,768 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {2332#true} {2402#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} #73#return; {2402#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} is VALID [2022-02-20 16:50:23,768 INFO L272 TraceCheckUtils]: 27: Hoare triple {2402#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {2332#true} is VALID [2022-02-20 16:50:23,768 INFO L290 TraceCheckUtils]: 28: Hoare triple {2332#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2430#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:23,769 INFO L290 TraceCheckUtils]: 29: Hoare triple {2430#(= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2430#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:23,769 INFO L290 TraceCheckUtils]: 30: Hoare triple {2430#(= list_add_~new.offset |list_add_#in~new.offset|)} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2437#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:23,769 INFO L290 TraceCheckUtils]: 31: Hoare triple {2437#(= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {2437#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:23,770 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2437#(= |list_add_#in~new.offset| ~elem~0.offset)} {2402#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32)))} #75#return; {2444#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:23,771 INFO L290 TraceCheckUtils]: 33: Hoare triple {2444#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} 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; {2448#(and (= |ULTIMATE.start_list_del_~entry#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:23,771 INFO L290 TraceCheckUtils]: 34: Hoare triple {2448#(and (= |ULTIMATE.start_list_del_~entry#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} assume list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32; {2333#false} is VALID [2022-02-20 16:50:23,771 INFO L290 TraceCheckUtils]: 35: Hoare triple {2333#false} assume { :end_inline_list_del } true; {2333#false} is VALID [2022-02-20 16:50:23,771 INFO L272 TraceCheckUtils]: 36: Hoare triple {2333#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2333#false} is VALID [2022-02-20 16:50:23,771 INFO L290 TraceCheckUtils]: 37: Hoare triple {2333#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2333#false} is VALID [2022-02-20 16:50:23,771 INFO L290 TraceCheckUtils]: 38: Hoare triple {2333#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2333#false} is VALID [2022-02-20 16:50:23,772 INFO L272 TraceCheckUtils]: 39: Hoare triple {2333#false} call __blast_assert(); {2333#false} is VALID [2022-02-20 16:50:23,772 INFO L290 TraceCheckUtils]: 40: Hoare triple {2333#false} assume !false; {2333#false} is VALID [2022-02-20 16:50:23,772 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-02-20 16:50:23,772 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:50:23,772 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:23,772 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [823704396] [2022-02-20 16:50:23,773 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [823704396] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:50:23,773 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:50:23,773 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [] total 15 [2022-02-20 16:50:23,773 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [92396018] [2022-02-20 16:50:23,773 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:50:23,774 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 14 states have (on average 1.7857142857142858) internal successors, (25), 12 states have internal predecessors, (25), 4 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 3 states have call successors, (4) Word has length 41 [2022-02-20 16:50:23,774 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:23,774 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 15 states, 14 states have (on average 1.7857142857142858) internal successors, (25), 12 states have internal predecessors, (25), 4 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:50:23,832 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:23,832 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-02-20 16:50:23,832 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:23,833 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-02-20 16:50:23,833 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=29, Invalid=181, Unknown=0, NotChecked=0, Total=210 [2022-02-20 16:50:23,833 INFO L87 Difference]: Start difference. First operand 58 states and 65 transitions. Second operand has 15 states, 14 states have (on average 1.7857142857142858) internal successors, (25), 12 states have internal predecessors, (25), 4 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:50:24,739 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:24,739 INFO L93 Difference]: Finished difference Result 73 states and 81 transitions. [2022-02-20 16:50:24,739 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-02-20 16:50:24,739 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 14 states have (on average 1.7857142857142858) internal successors, (25), 12 states have internal predecessors, (25), 4 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 3 states have call successors, (4) Word has length 41 [2022-02-20 16:50:24,740 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:24,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 1.7857142857142858) internal successors, (25), 12 states have internal predecessors, (25), 4 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:50:24,741 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 58 transitions. [2022-02-20 16:50:24,742 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 1.7857142857142858) internal successors, (25), 12 states have internal predecessors, (25), 4 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:50:24,743 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 58 transitions. [2022-02-20 16:50:24,743 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states and 58 transitions. [2022-02-20 16:50:24,825 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:24,827 INFO L225 Difference]: With dead ends: 73 [2022-02-20 16:50:24,827 INFO L226 Difference]: Without dead ends: 60 [2022-02-20 16:50:24,827 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 48 GetRequests, 28 SyntacticMatches, 1 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=58, Invalid=362, Unknown=0, NotChecked=0, Total=420 [2022-02-20 16:50:24,828 INFO L933 BasicCegarLoop]: 21 mSDtfsCounter, 30 mSDsluCounter, 115 mSDsCounter, 0 mSdLazyCounter, 291 mSolverCounterSat, 7 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 32 SdHoareTripleChecker+Valid, 136 SdHoareTripleChecker+Invalid, 298 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 7 IncrementalHoareTripleChecker+Valid, 291 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:24,828 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [32 Valid, 136 Invalid, 298 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [7 Valid, 291 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-02-20 16:50:24,829 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2022-02-20 16:50:24,834 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 58. [2022-02-20 16:50:24,834 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:24,834 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand has 58 states, 42 states have (on average 1.119047619047619) internal successors, (47), 42 states have internal predecessors, (47), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:24,835 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand has 58 states, 42 states have (on average 1.119047619047619) internal successors, (47), 42 states have internal predecessors, (47), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:24,835 INFO L87 Difference]: Start difference. First operand 60 states. Second operand has 58 states, 42 states have (on average 1.119047619047619) internal successors, (47), 42 states have internal predecessors, (47), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:24,837 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:24,837 INFO L93 Difference]: Finished difference Result 60 states and 67 transitions. [2022-02-20 16:50:24,837 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2022-02-20 16:50:24,838 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:24,838 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:24,838 INFO L74 IsIncluded]: Start isIncluded. First operand has 58 states, 42 states have (on average 1.119047619047619) internal successors, (47), 42 states have internal predecessors, (47), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 60 states. [2022-02-20 16:50:24,838 INFO L87 Difference]: Start difference. First operand has 58 states, 42 states have (on average 1.119047619047619) internal successors, (47), 42 states have internal predecessors, (47), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 60 states. [2022-02-20 16:50:24,840 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:24,840 INFO L93 Difference]: Finished difference Result 60 states and 67 transitions. [2022-02-20 16:50:24,840 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2022-02-20 16:50:24,841 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:24,841 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:24,841 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:24,841 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:24,842 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 58 states, 42 states have (on average 1.119047619047619) internal successors, (47), 42 states have internal predecessors, (47), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:24,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 64 transitions. [2022-02-20 16:50:24,843 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 64 transitions. Word has length 41 [2022-02-20 16:50:24,844 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:24,844 INFO L470 AbstractCegarLoop]: Abstraction has 58 states and 64 transitions. [2022-02-20 16:50:24,844 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 14 states have (on average 1.7857142857142858) internal successors, (25), 12 states have internal predecessors, (25), 4 states have call successors, (6), 3 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:50:24,844 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 64 transitions. [2022-02-20 16:50:24,845 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-02-20 16:50:24,845 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:24,845 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] [2022-02-20 16:50:24,856 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (8)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:25,056 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:25,056 INFO L402 AbstractCegarLoop]: === Iteration 8 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:25,057 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:25,057 INFO L85 PathProgramCache]: Analyzing trace with hash -1763962439, now seen corresponding path program 1 times [2022-02-20 16:50:25,057 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:25,057 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [597552447] [2022-02-20 16:50:25,057 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:25,057 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:25,057 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:25,058 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:25,059 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (9)] Waiting until timeout for monitored process [2022-02-20 16:50:25,124 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:25,127 INFO L263 TraceCheckSpWp]: Trace formula consists of 132 conjuncts, 23 conjunts are in the unsatisfiable core [2022-02-20 16:50:25,144 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:25,145 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:25,569 INFO L290 TraceCheckUtils]: 0: Hoare triple {2778#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {2783#(= ~guard_malloc_counter~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:25,570 INFO L290 TraceCheckUtils]: 1: Hoare triple {2783#(= ~guard_malloc_counter~0.offset (_ bv0 32))} 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; {2783#(= ~guard_malloc_counter~0.offset (_ bv0 32))} is VALID [2022-02-20 16:50:25,571 INFO L272 TraceCheckUtils]: 2: Hoare triple {2783#(= ~guard_malloc_counter~0.offset (_ bv0 32))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:25,571 INFO L290 TraceCheckUtils]: 3: Hoare triple {2790#(= ~guard_malloc_counter~0.offset |old(~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; {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:25,572 INFO L290 TraceCheckUtils]: 4: Hoare triple {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:25,572 INFO L290 TraceCheckUtils]: 5: Hoare triple {2790#(= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {2800#(= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)))} is VALID [2022-02-20 16:50:25,584 INFO L290 TraceCheckUtils]: 6: Hoare triple {2800#(= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)))} assume !(0bv32 == __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; {2804#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} is VALID [2022-02-20 16:50:25,597 INFO L290 TraceCheckUtils]: 7: Hoare triple {2804#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} #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; {2808#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:25,609 INFO L290 TraceCheckUtils]: 8: Hoare triple {2808#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} assume true; {2808#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:25,610 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {2808#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} {2783#(= ~guard_malloc_counter~0.offset (_ bv0 32))} #69#return; {2815#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:25,610 INFO L290 TraceCheckUtils]: 10: Hoare triple {2815#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_#t~ret10#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} 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; {2819#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} is VALID [2022-02-20 16:50:25,611 INFO L272 TraceCheckUtils]: 11: Hoare triple {2819#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:25,611 INFO L290 TraceCheckUtils]: 12: Hoare triple {2790#(= ~guard_malloc_counter~0.offset |old(~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; {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:25,612 INFO L290 TraceCheckUtils]: 13: Hoare triple {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:25,612 INFO L290 TraceCheckUtils]: 14: Hoare triple {2790#(= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {2800#(= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)))} is VALID [2022-02-20 16:50:25,625 INFO L290 TraceCheckUtils]: 15: Hoare triple {2800#(= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)))} assume !(0bv32 == __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; {2804#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} is VALID [2022-02-20 16:50:25,639 INFO L290 TraceCheckUtils]: 16: Hoare triple {2804#(and (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} #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; {2808#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:25,649 INFO L290 TraceCheckUtils]: 17: Hoare triple {2808#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} assume true; {2808#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:25,650 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2808#(and (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} {2819#(and (= ~guard_malloc_counter~0.offset |ULTIMATE.start_main_~dev1~0#1.offset|) (= (_ bv0 32) (bvadd ~guard_malloc_counter~0.offset (_ bv4294967295 32))))} #71#return; {2844#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_#t~ret11#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} is VALID [2022-02-20 16:50:25,651 INFO L290 TraceCheckUtils]: 19: Hoare triple {2844#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_#t~ret11#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} 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; {2848#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} is VALID [2022-02-20 16:50:25,651 INFO L290 TraceCheckUtils]: 20: Hoare triple {2848#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {2848#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} is VALID [2022-02-20 16:50:25,651 INFO L272 TraceCheckUtils]: 21: Hoare triple {2848#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2778#true} is VALID [2022-02-20 16:50:25,651 INFO L290 TraceCheckUtils]: 22: Hoare triple {2778#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2778#true} is VALID [2022-02-20 16:50:25,651 INFO L290 TraceCheckUtils]: 23: Hoare triple {2778#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2778#true} is VALID [2022-02-20 16:50:25,651 INFO L290 TraceCheckUtils]: 24: Hoare triple {2778#true} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2778#true} is VALID [2022-02-20 16:50:25,652 INFO L290 TraceCheckUtils]: 25: Hoare triple {2778#true} assume true; {2778#true} is VALID [2022-02-20 16:50:25,653 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {2778#true} {2848#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} #73#return; {2848#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} is VALID [2022-02-20 16:50:25,653 INFO L272 TraceCheckUtils]: 27: Hoare triple {2848#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {2778#true} is VALID [2022-02-20 16:50:25,653 INFO L290 TraceCheckUtils]: 28: Hoare triple {2778#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2876#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:25,654 INFO L290 TraceCheckUtils]: 29: Hoare triple {2876#(= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2876#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:25,654 INFO L290 TraceCheckUtils]: 30: Hoare triple {2876#(= list_add_~new.offset |list_add_#in~new.offset|)} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2883#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:25,654 INFO L290 TraceCheckUtils]: 31: Hoare triple {2883#(= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {2883#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:25,655 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2883#(= |list_add_#in~new.offset| ~elem~0.offset)} {2848#(and (= (bvadd (_ bv4294967295 32) |ULTIMATE.start_main_~dev1~0#1.offset|) (_ bv0 32)) (= |ULTIMATE.start_main_~dev2~0#1.offset| (bvadd |ULTIMATE.start_main_~dev1~0#1.offset| (_ bv1 32))))} #75#return; {2890#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:25,656 INFO L290 TraceCheckUtils]: 33: Hoare triple {2890#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} 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; {2890#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:25,656 INFO L290 TraceCheckUtils]: 34: Hoare triple {2890#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} assume !(list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset); {2890#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:25,657 INFO L290 TraceCheckUtils]: 35: Hoare triple {2890#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} assume { :end_inline_list_del } true; {2890#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:25,657 INFO L272 TraceCheckUtils]: 36: Hoare triple {2890#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2903#(and (= |list_add_#in~new.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:25,658 INFO L290 TraceCheckUtils]: 37: Hoare triple {2903#(and (= |list_add_#in~new.offset| (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2907#(and (= list_add_~new.offset (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} is VALID [2022-02-20 16:50:25,658 INFO L290 TraceCheckUtils]: 38: Hoare triple {2907#(and (= list_add_~new.offset (_ bv2 32)) (= ~elem~0.offset (_ bv1 32)))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2779#false} is VALID [2022-02-20 16:50:25,658 INFO L272 TraceCheckUtils]: 39: Hoare triple {2779#false} call __blast_assert(); {2779#false} is VALID [2022-02-20 16:50:25,658 INFO L290 TraceCheckUtils]: 40: Hoare triple {2779#false} assume !false; {2779#false} is VALID [2022-02-20 16:50:25,659 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-02-20 16:50:25,659 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:50:26,349 INFO L290 TraceCheckUtils]: 40: Hoare triple {2779#false} assume !false; {2779#false} is VALID [2022-02-20 16:50:26,349 INFO L272 TraceCheckUtils]: 39: Hoare triple {2779#false} call __blast_assert(); {2779#false} is VALID [2022-02-20 16:50:26,349 INFO L290 TraceCheckUtils]: 38: Hoare triple {2923#(not (= list_add_~new.offset ~elem~0.offset))} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {2779#false} is VALID [2022-02-20 16:50:26,349 INFO L290 TraceCheckUtils]: 37: Hoare triple {2927#(not (= |list_add_#in~new.offset| ~elem~0.offset))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2923#(not (= list_add_~new.offset ~elem~0.offset))} is VALID [2022-02-20 16:50:26,350 INFO L272 TraceCheckUtils]: 36: Hoare triple {2931#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {2927#(not (= |list_add_#in~new.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:26,351 INFO L290 TraceCheckUtils]: 35: Hoare triple {2931#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset))} assume { :end_inline_list_del } true; {2931#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:26,351 INFO L290 TraceCheckUtils]: 34: Hoare triple {2931#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset))} assume !(list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset); {2931#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:26,351 INFO L290 TraceCheckUtils]: 33: Hoare triple {2931#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.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; {2931#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:26,352 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2883#(= |list_add_#in~new.offset| ~elem~0.offset)} {2944#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} #75#return; {2931#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:26,352 INFO L290 TraceCheckUtils]: 31: Hoare triple {2883#(= |list_add_#in~new.offset| ~elem~0.offset)} assume true; {2883#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:26,353 INFO L290 TraceCheckUtils]: 30: Hoare triple {2876#(= list_add_~new.offset |list_add_#in~new.offset|)} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2883#(= |list_add_#in~new.offset| ~elem~0.offset)} is VALID [2022-02-20 16:50:26,353 INFO L290 TraceCheckUtils]: 29: Hoare triple {2876#(= list_add_~new.offset |list_add_#in~new.offset|)} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2876#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:26,353 INFO L290 TraceCheckUtils]: 28: Hoare triple {2778#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2876#(= list_add_~new.offset |list_add_#in~new.offset|)} is VALID [2022-02-20 16:50:26,354 INFO L272 TraceCheckUtils]: 27: Hoare triple {2944#(not (= |ULTIMATE.start_main_~dev2~0#1.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); {2778#true} is VALID [2022-02-20 16:50:26,354 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {2778#true} {2944#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} #73#return; {2944#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:50:26,354 INFO L290 TraceCheckUtils]: 25: Hoare triple {2778#true} assume true; {2778#true} is VALID [2022-02-20 16:50:26,354 INFO L290 TraceCheckUtils]: 24: Hoare triple {2778#true} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {2778#true} is VALID [2022-02-20 16:50:26,355 INFO L290 TraceCheckUtils]: 23: Hoare triple {2778#true} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {2778#true} is VALID [2022-02-20 16:50:26,355 INFO L290 TraceCheckUtils]: 22: Hoare triple {2778#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {2778#true} is VALID [2022-02-20 16:50:26,355 INFO L272 TraceCheckUtils]: 21: Hoare triple {2944#(not (= |ULTIMATE.start_main_~dev2~0#1.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); {2778#true} is VALID [2022-02-20 16:50:26,356 INFO L290 TraceCheckUtils]: 20: Hoare triple {2944#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {2944#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:50:26,356 INFO L290 TraceCheckUtils]: 19: Hoare triple {2984#(not (= |ULTIMATE.start_main_#t~ret11#1.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; {2944#(not (= |ULTIMATE.start_main_~dev2~0#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:50:26,357 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2992#(= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) |my_malloc_#res#1.offset|)} {2988#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |ULTIMATE.start_main_~dev1~0#1.offset|))} #71#return; {2984#(not (= |ULTIMATE.start_main_#t~ret11#1.offset| |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:50:26,357 INFO L290 TraceCheckUtils]: 17: Hoare triple {2992#(= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) |my_malloc_#res#1.offset|)} assume true; {2992#(= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:50:26,367 INFO L290 TraceCheckUtils]: 16: Hoare triple {2999#(= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) |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; {2992#(= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) |my_malloc_#res#1.offset|)} is VALID [2022-02-20 16:50:26,367 INFO L290 TraceCheckUtils]: 15: Hoare triple {2800#(= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)))} assume !(0bv32 == __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; {2999#(= (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)) |my_malloc___getMemory_#res#1.offset|)} is VALID [2022-02-20 16:50:26,368 INFO L290 TraceCheckUtils]: 14: Hoare triple {2790#(= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {2800#(= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32)))} is VALID [2022-02-20 16:50:26,368 INFO L290 TraceCheckUtils]: 13: Hoare triple {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:26,368 INFO L290 TraceCheckUtils]: 12: Hoare triple {2790#(= ~guard_malloc_counter~0.offset |old(~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; {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:26,369 INFO L272 TraceCheckUtils]: 11: Hoare triple {2988#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |ULTIMATE.start_main_~dev1~0#1.offset|))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {2790#(= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|)} is VALID [2022-02-20 16:50:26,376 INFO L290 TraceCheckUtils]: 10: Hoare triple {3015#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |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; {2988#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |ULTIMATE.start_main_~dev1~0#1.offset|))} is VALID [2022-02-20 16:50:26,377 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {3022#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc_#res#1.offset|))} {2778#true} #69#return; {3015#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |ULTIMATE.start_main_#t~ret10#1.offset|))} is VALID [2022-02-20 16:50:26,378 INFO L290 TraceCheckUtils]: 8: Hoare triple {3022#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc_#res#1.offset|))} assume true; {3022#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:26,387 INFO L290 TraceCheckUtils]: 7: Hoare triple {3029#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |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; {3022#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:26,387 INFO L290 TraceCheckUtils]: 6: Hoare triple {2778#true} assume !(0bv32 == __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; {3029#(not (= (bvadd ~guard_malloc_counter~0.offset (_ bv1 32)) |my_malloc___getMemory_#res#1.offset|))} is VALID [2022-02-20 16:50:26,387 INFO L290 TraceCheckUtils]: 5: Hoare triple {2778#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {2778#true} is VALID [2022-02-20 16:50:26,388 INFO L290 TraceCheckUtils]: 4: Hoare triple {2778#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {2778#true} is VALID [2022-02-20 16:50:26,388 INFO L290 TraceCheckUtils]: 3: Hoare triple {2778#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; {2778#true} is VALID [2022-02-20 16:50:26,388 INFO L272 TraceCheckUtils]: 2: Hoare triple {2778#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {2778#true} is VALID [2022-02-20 16:50:26,388 INFO L290 TraceCheckUtils]: 1: Hoare triple {2778#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; {2778#true} is VALID [2022-02-20 16:50:26,388 INFO L290 TraceCheckUtils]: 0: Hoare triple {2778#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {2778#true} is VALID [2022-02-20 16:50:26,388 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 11 proven. 4 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-02-20 16:50:26,388 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:26,388 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [597552447] [2022-02-20 16:50:26,388 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [597552447] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:50:26,389 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:50:26,389 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 17] total 27 [2022-02-20 16:50:26,389 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [570687864] [2022-02-20 16:50:26,389 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:50:26,390 INFO L78 Accepts]: Start accepts. Automaton has has 27 states, 25 states have (on average 1.76) internal successors, (44), 21 states have internal predecessors, (44), 9 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) Word has length 41 [2022-02-20 16:50:26,390 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:26,391 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 27 states, 25 states have (on average 1.76) internal successors, (44), 21 states have internal predecessors, (44), 9 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:26,512 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:50:26,513 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 27 states [2022-02-20 16:50:26,513 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:26,513 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2022-02-20 16:50:26,514 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=638, Unknown=0, NotChecked=0, Total=702 [2022-02-20 16:50:26,514 INFO L87 Difference]: Start difference. First operand 58 states and 64 transitions. Second operand has 27 states, 25 states have (on average 1.76) internal successors, (44), 21 states have internal predecessors, (44), 9 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:28,820 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:28,821 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-02-20 16:50:28,821 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2022-02-20 16:50:28,821 INFO L78 Accepts]: Start accepts. Automaton has has 27 states, 25 states have (on average 1.76) internal successors, (44), 21 states have internal predecessors, (44), 9 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) Word has length 41 [2022-02-20 16:50:28,822 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:28,822 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 25 states have (on average 1.76) internal successors, (44), 21 states have internal predecessors, (44), 9 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:28,824 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 67 transitions. [2022-02-20 16:50:28,824 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 25 states have (on average 1.76) internal successors, (44), 21 states have internal predecessors, (44), 9 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:28,826 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 67 transitions. [2022-02-20 16:50:28,826 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states and 67 transitions. [2022-02-20 16:50:28,938 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:28,940 INFO L225 Difference]: With dead ends: 79 [2022-02-20 16:50:28,940 INFO L226 Difference]: Without dead ends: 70 [2022-02-20 16:50:28,941 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 97 GetRequests, 58 SyntacticMatches, 1 SemanticMatches, 38 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 184 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=148, Invalid=1412, Unknown=0, NotChecked=0, Total=1560 [2022-02-20 16:50:28,941 INFO L933 BasicCegarLoop]: 27 mSDtfsCounter, 56 mSDsluCounter, 146 mSDsCounter, 0 mSdLazyCounter, 763 mSolverCounterSat, 25 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.9s Time, 0 mProtectedPredicate, 0 mProtectedAction, 56 SdHoareTripleChecker+Valid, 173 SdHoareTripleChecker+Invalid, 788 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 25 IncrementalHoareTripleChecker+Valid, 763 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.9s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:28,941 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [56 Valid, 173 Invalid, 788 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [25 Valid, 763 Invalid, 0 Unknown, 0 Unchecked, 0.9s Time] [2022-02-20 16:50:28,942 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2022-02-20 16:50:28,947 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 58. [2022-02-20 16:50:28,947 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:28,948 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand has 58 states, 42 states have (on average 1.0952380952380953) internal successors, (46), 42 states have internal predecessors, (46), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:28,948 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand has 58 states, 42 states have (on average 1.0952380952380953) internal successors, (46), 42 states have internal predecessors, (46), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:28,948 INFO L87 Difference]: Start difference. First operand 70 states. Second operand has 58 states, 42 states have (on average 1.0952380952380953) internal successors, (46), 42 states have internal predecessors, (46), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:28,956 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:28,956 INFO L93 Difference]: Finished difference Result 70 states and 76 transitions. [2022-02-20 16:50:28,957 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 76 transitions. [2022-02-20 16:50:28,957 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:28,957 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:28,957 INFO L74 IsIncluded]: Start isIncluded. First operand has 58 states, 42 states have (on average 1.0952380952380953) internal successors, (46), 42 states have internal predecessors, (46), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 70 states. [2022-02-20 16:50:28,958 INFO L87 Difference]: Start difference. First operand has 58 states, 42 states have (on average 1.0952380952380953) internal successors, (46), 42 states have internal predecessors, (46), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 70 states. [2022-02-20 16:50:28,959 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:28,959 INFO L93 Difference]: Finished difference Result 70 states and 76 transitions. [2022-02-20 16:50:28,959 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 76 transitions. [2022-02-20 16:50:28,960 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:28,960 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:28,960 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:28,960 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:28,960 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 58 states, 42 states have (on average 1.0952380952380953) internal successors, (46), 42 states have internal predecessors, (46), 9 states have call successors, (9), 8 states have call predecessors, (9), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:28,962 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 63 transitions. [2022-02-20 16:50:28,962 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 63 transitions. Word has length 41 [2022-02-20 16:50:28,962 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:28,962 INFO L470 AbstractCegarLoop]: Abstraction has 58 states and 63 transitions. [2022-02-20 16:50:28,963 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 27 states, 25 states have (on average 1.76) internal successors, (44), 21 states have internal predecessors, (44), 9 states have call successors, (11), 5 states have call predecessors, (11), 5 states have return successors, (8), 8 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:28,963 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 63 transitions. [2022-02-20 16:50:28,963 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-02-20 16:50:28,963 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:28,964 INFO L514 BasicCegarLoop]: trace histogram [3, 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:28,979 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (9)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:29,164 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:29,164 INFO L402 AbstractCegarLoop]: === Iteration 9 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:29,165 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:29,165 INFO L85 PathProgramCache]: Analyzing trace with hash -1062897861, now seen corresponding path program 1 times [2022-02-20 16:50:29,165 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:29,165 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [841447193] [2022-02-20 16:50:29,165 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:29,166 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:29,166 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:29,167 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:29,167 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (10)] Waiting until timeout for monitored process [2022-02-20 16:50:29,231 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:29,236 INFO L263 TraceCheckSpWp]: Trace formula consists of 130 conjuncts, 37 conjunts are in the unsatisfiable core [2022-02-20 16:50:29,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:50:29,252 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:50:29,824 INFO L290 TraceCheckUtils]: 0: Hoare triple {3399#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {3404#(and (= ~guard_malloc_counter~0.base (_ bv0 32)) (= ~guard_malloc_counter~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:29,824 INFO L290 TraceCheckUtils]: 1: Hoare triple {3404#(and (= ~guard_malloc_counter~0.base (_ bv0 32)) (= ~guard_malloc_counter~0.offset (_ bv0 32)))} 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; {3404#(and (= ~guard_malloc_counter~0.base (_ bv0 32)) (= ~guard_malloc_counter~0.offset (_ bv0 32)))} is VALID [2022-02-20 16:50:29,825 INFO L272 TraceCheckUtils]: 2: Hoare triple {3404#(and (= ~guard_malloc_counter~0.base (_ bv0 32)) (= ~guard_malloc_counter~0.offset (_ bv0 32)))} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|))} is VALID [2022-02-20 16:50:29,825 INFO L290 TraceCheckUtils]: 3: Hoare triple {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~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; {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|))} is VALID [2022-02-20 16:50:29,826 INFO L290 TraceCheckUtils]: 4: Hoare triple {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|))} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|))} is VALID [2022-02-20 16:50:29,826 INFO L290 TraceCheckUtils]: 5: Hoare triple {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} is VALID [2022-02-20 16:50:29,840 INFO L290 TraceCheckUtils]: 6: Hoare triple {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} assume !(0bv32 == __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; {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} is VALID [2022-02-20 16:50:29,853 INFO L290 TraceCheckUtils]: 7: Hoare triple {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} #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; {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} is VALID [2022-02-20 16:50:29,868 INFO L290 TraceCheckUtils]: 8: Hoare triple {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} assume true; {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} is VALID [2022-02-20 16:50:29,869 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} {3404#(and (= ~guard_malloc_counter~0.base (_ bv0 32)) (= ~guard_malloc_counter~0.offset (_ bv0 32)))} #69#return; {3434#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~guard_malloc_counter~0.base (_ bv0 32)))} is VALID [2022-02-20 16:50:29,870 INFO L290 TraceCheckUtils]: 10: Hoare triple {3434#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~guard_malloc_counter~0.base (_ bv0 32)))} 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; {3434#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~guard_malloc_counter~0.base (_ bv0 32)))} is VALID [2022-02-20 16:50:29,870 INFO L272 TraceCheckUtils]: 11: Hoare triple {3434#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~guard_malloc_counter~0.base (_ bv0 32)))} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|))} is VALID [2022-02-20 16:50:29,871 INFO L290 TraceCheckUtils]: 12: Hoare triple {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~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; {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|))} is VALID [2022-02-20 16:50:29,871 INFO L290 TraceCheckUtils]: 13: Hoare triple {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|))} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset |old(~guard_malloc_counter~0.offset)|))} is VALID [2022-02-20 16:50:29,872 INFO L290 TraceCheckUtils]: 14: Hoare triple {3411#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} is VALID [2022-02-20 16:50:29,884 INFO L290 TraceCheckUtils]: 15: Hoare triple {3421#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} assume !(0bv32 == __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; {3453#(and (= ~guard_malloc_counter~0.base |my_malloc___getMemory_#res#1.base|) (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} is VALID [2022-02-20 16:50:29,898 INFO L290 TraceCheckUtils]: 16: Hoare triple {3453#(and (= ~guard_malloc_counter~0.base |my_malloc___getMemory_#res#1.base|) (= ~guard_malloc_counter~0.offset |my_malloc___getMemory_#res#1.offset|) (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))))} #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; {3457#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.base |my_malloc_#res#1.base|) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:29,912 INFO L290 TraceCheckUtils]: 17: Hoare triple {3457#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.base |my_malloc_#res#1.base|) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} assume true; {3457#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.base |my_malloc_#res#1.base|) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} is VALID [2022-02-20 16:50:29,913 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {3457#(and (= |old(~guard_malloc_counter~0.base)| ~guard_malloc_counter~0.base) (= ~guard_malloc_counter~0.offset (bvadd |old(~guard_malloc_counter~0.offset)| (_ bv1 32))) (= ~guard_malloc_counter~0.base |my_malloc_#res#1.base|) (= ~guard_malloc_counter~0.offset |my_malloc_#res#1.offset|))} {3434#(and (= ~guard_malloc_counter~0.offset (_ bv1 32)) (= ~guard_malloc_counter~0.base (_ bv0 32)))} #71#return; {3464#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret11#1.base|) (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv2 32)))} is VALID [2022-02-20 16:50:29,914 INFO L290 TraceCheckUtils]: 19: Hoare triple {3464#(and (= (_ bv0 32) |ULTIMATE.start_main_#t~ret11#1.base|) (= |ULTIMATE.start_main_#t~ret11#1.offset| (_ bv2 32)))} 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; {3468#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:29,914 INFO L290 TraceCheckUtils]: 20: Hoare triple {3468#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {3468#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:29,915 INFO L272 TraceCheckUtils]: 21: Hoare triple {3468#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {3399#true} is VALID [2022-02-20 16:50:29,915 INFO L290 TraceCheckUtils]: 22: Hoare triple {3399#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3478#(and (= list_add_~new.offset |list_add_#in~new.offset|) (= |list_add_#in~new.base| list_add_~new.base))} is VALID [2022-02-20 16:50:29,916 INFO L290 TraceCheckUtils]: 23: Hoare triple {3478#(and (= list_add_~new.offset |list_add_#in~new.offset|) (= |list_add_#in~new.base| list_add_~new.base))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3478#(and (= list_add_~new.offset |list_add_#in~new.offset|) (= |list_add_#in~new.base| list_add_~new.base))} is VALID [2022-02-20 16:50:29,916 INFO L290 TraceCheckUtils]: 24: Hoare triple {3478#(and (= list_add_~new.offset |list_add_#in~new.offset|) (= |list_add_#in~new.base| list_add_~new.base))} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3485#(and (= |list_add_#in~new.base| ~elem~0.base) (= |list_add_#in~new.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:29,917 INFO L290 TraceCheckUtils]: 25: Hoare triple {3485#(and (= |list_add_#in~new.base| ~elem~0.base) (= |list_add_#in~new.offset| ~elem~0.offset))} assume true; {3485#(and (= |list_add_#in~new.base| ~elem~0.base) (= |list_add_#in~new.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:29,918 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {3485#(and (= |list_add_#in~new.base| ~elem~0.base) (= |list_add_#in~new.offset| ~elem~0.offset))} {3468#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} #73#return; {3492#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:29,919 INFO L272 TraceCheckUtils]: 27: Hoare triple {3492#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:29,919 INFO L290 TraceCheckUtils]: 28: Hoare triple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:29,920 INFO L290 TraceCheckUtils]: 29: Hoare triple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:29,920 INFO L290 TraceCheckUtils]: 30: Hoare triple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} assume !(0bv32 != #t~nondet9);havoc #t~nondet9; {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:29,921 INFO L290 TraceCheckUtils]: 31: Hoare triple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} assume true; {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:29,922 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} {3492#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} #75#return; {3492#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} is VALID [2022-02-20 16:50:29,923 INFO L290 TraceCheckUtils]: 33: Hoare triple {3492#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.offset| (_ bv2 32)) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base) (= |ULTIMATE.start_main_~dev2~0#1.base| (_ bv0 32)))} 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; {3515#(and (= |ULTIMATE.start_list_del_~entry#1.offset| ~elem~0.offset) (= (_ bv2 32) ~elem~0.offset) (= |ULTIMATE.start_list_del_~entry#1.base| ~elem~0.base) (= ~elem~0.base (_ bv0 32)))} is VALID [2022-02-20 16:50:29,923 INFO L290 TraceCheckUtils]: 34: Hoare triple {3515#(and (= |ULTIMATE.start_list_del_~entry#1.offset| ~elem~0.offset) (= (_ bv2 32) ~elem~0.offset) (= |ULTIMATE.start_list_del_~entry#1.base| ~elem~0.base) (= ~elem~0.base (_ bv0 32)))} assume !(list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset); {3400#false} is VALID [2022-02-20 16:50:29,923 INFO L290 TraceCheckUtils]: 35: Hoare triple {3400#false} assume { :end_inline_list_del } true; {3400#false} is VALID [2022-02-20 16:50:29,923 INFO L272 TraceCheckUtils]: 36: Hoare triple {3400#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {3400#false} is VALID [2022-02-20 16:50:29,923 INFO L290 TraceCheckUtils]: 37: Hoare triple {3400#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3400#false} is VALID [2022-02-20 16:50:29,923 INFO L290 TraceCheckUtils]: 38: Hoare triple {3400#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {3400#false} is VALID [2022-02-20 16:50:29,924 INFO L272 TraceCheckUtils]: 39: Hoare triple {3400#false} call __blast_assert(); {3400#false} is VALID [2022-02-20 16:50:29,924 INFO L290 TraceCheckUtils]: 40: Hoare triple {3400#false} assume !false; {3400#false} is VALID [2022-02-20 16:50:29,924 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 4 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 16:50:29,924 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:50:30,504 INFO L290 TraceCheckUtils]: 40: Hoare triple {3400#false} assume !false; {3400#false} is VALID [2022-02-20 16:50:30,505 INFO L272 TraceCheckUtils]: 39: Hoare triple {3400#false} call __blast_assert(); {3400#false} is VALID [2022-02-20 16:50:30,505 INFO L290 TraceCheckUtils]: 38: Hoare triple {3400#false} assume !(~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset); {3400#false} is VALID [2022-02-20 16:50:30,505 INFO L290 TraceCheckUtils]: 37: Hoare triple {3400#false} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3400#false} is VALID [2022-02-20 16:50:30,505 INFO L272 TraceCheckUtils]: 36: Hoare triple {3400#false} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {3400#false} is VALID [2022-02-20 16:50:30,505 INFO L290 TraceCheckUtils]: 35: Hoare triple {3400#false} assume { :end_inline_list_del } true; {3400#false} is VALID [2022-02-20 16:50:30,506 INFO L290 TraceCheckUtils]: 34: Hoare triple {3555#(and (= |ULTIMATE.start_list_del_~entry#1.offset| ~elem~0.offset) (= |ULTIMATE.start_list_del_~entry#1.base| ~elem~0.base))} assume !(list_del_~entry#1.base == ~elem~0.base && list_del_~entry#1.offset == ~elem~0.offset); {3400#false} is VALID [2022-02-20 16:50:30,506 INFO L290 TraceCheckUtils]: 33: Hoare triple {3559#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.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; {3555#(and (= |ULTIMATE.start_list_del_~entry#1.offset| ~elem~0.offset) (= |ULTIMATE.start_list_del_~entry#1.base| ~elem~0.base))} is VALID [2022-02-20 16:50:30,507 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} {3559#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base))} #75#return; {3559#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base))} is VALID [2022-02-20 16:50:30,508 INFO L290 TraceCheckUtils]: 31: Hoare triple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} assume true; {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:30,508 INFO L290 TraceCheckUtils]: 30: Hoare triple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} assume !(0bv32 != #t~nondet9);havoc #t~nondet9; {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:30,509 INFO L290 TraceCheckUtils]: 29: Hoare triple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:30,510 INFO L290 TraceCheckUtils]: 28: Hoare triple {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:30,511 INFO L272 TraceCheckUtils]: 27: Hoare triple {3559#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base))} call list_add(main_~dev1~0#1.base, main_~dev1~0#1.offset, ~#head~0.base, ~#head~0.offset); {3496#(and (= ~elem~0.base |old(~elem~0.base)|) (= |old(~elem~0.offset)| ~elem~0.offset))} is VALID [2022-02-20 16:50:30,512 INFO L284 TraceCheckUtils]: 26: Hoare quadruple {3485#(and (= |list_add_#in~new.base| ~elem~0.base) (= |list_add_#in~new.offset| ~elem~0.offset))} {3399#true} #73#return; {3559#(and (= |ULTIMATE.start_main_~dev2~0#1.offset| ~elem~0.offset) (= |ULTIMATE.start_main_~dev2~0#1.base| ~elem~0.base))} is VALID [2022-02-20 16:50:30,512 INFO L290 TraceCheckUtils]: 25: Hoare triple {3485#(and (= |list_add_#in~new.base| ~elem~0.base) (= |list_add_#in~new.offset| ~elem~0.offset))} assume true; {3485#(and (= |list_add_#in~new.base| ~elem~0.base) (= |list_add_#in~new.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:30,513 INFO L290 TraceCheckUtils]: 24: Hoare triple {3478#(and (= list_add_~new.offset |list_add_#in~new.offset|) (= |list_add_#in~new.base| list_add_~new.base))} assume 0bv32 != #t~nondet9;havoc #t~nondet9;~elem~0.base, ~elem~0.offset := ~new.base, ~new.offset; {3485#(and (= |list_add_#in~new.base| ~elem~0.base) (= |list_add_#in~new.offset| ~elem~0.offset))} is VALID [2022-02-20 16:50:30,513 INFO L290 TraceCheckUtils]: 23: Hoare triple {3478#(and (= list_add_~new.offset |list_add_#in~new.offset|) (= |list_add_#in~new.base| list_add_~new.base))} assume ~new.base != ~elem~0.base || ~new.offset != ~elem~0.offset; {3478#(and (= list_add_~new.offset |list_add_#in~new.offset|) (= |list_add_#in~new.base| list_add_~new.base))} is VALID [2022-02-20 16:50:30,514 INFO L290 TraceCheckUtils]: 22: Hoare triple {3399#true} ~new.base, ~new.offset := #in~new.base, #in~new.offset;~head.base, ~head.offset := #in~head.base, #in~head.offset; {3478#(and (= list_add_~new.offset |list_add_#in~new.offset|) (= |list_add_#in~new.base| list_add_~new.base))} is VALID [2022-02-20 16:50:30,514 INFO L272 TraceCheckUtils]: 21: Hoare triple {3399#true} call list_add(main_~dev2~0#1.base, main_~dev2~0#1.offset, ~#head~0.base, ~#head~0.offset); {3399#true} is VALID [2022-02-20 16:50:30,514 INFO L290 TraceCheckUtils]: 20: Hoare triple {3399#true} assume (main_~dev1~0#1.base != 0bv32 || main_~dev1~0#1.offset != 0bv32) && (main_~dev2~0#1.base != 0bv32 || main_~dev2~0#1.offset != 0bv32); {3399#true} is VALID [2022-02-20 16:50:30,514 INFO L290 TraceCheckUtils]: 19: Hoare triple {3399#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; {3399#true} is VALID [2022-02-20 16:50:30,514 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {3399#true} {3399#true} #71#return; {3399#true} is VALID [2022-02-20 16:50:30,514 INFO L290 TraceCheckUtils]: 17: Hoare triple {3399#true} assume true; {3399#true} is VALID [2022-02-20 16:50:30,514 INFO L290 TraceCheckUtils]: 16: Hoare triple {3399#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; {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L290 TraceCheckUtils]: 15: Hoare triple {3399#true} assume !(0bv32 == __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; {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L290 TraceCheckUtils]: 14: Hoare triple {3399#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L290 TraceCheckUtils]: 13: Hoare triple {3399#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L290 TraceCheckUtils]: 12: Hoare triple {3399#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; {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L272 TraceCheckUtils]: 11: Hoare triple {3399#true} call main_#t~ret11#1.base, main_#t~ret11#1.offset := my_malloc(8bv32); {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L290 TraceCheckUtils]: 10: Hoare triple {3399#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; {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L284 TraceCheckUtils]: 9: Hoare quadruple {3399#true} {3399#true} #69#return; {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L290 TraceCheckUtils]: 8: Hoare triple {3399#true} assume true; {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L290 TraceCheckUtils]: 7: Hoare triple {3399#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; {3399#true} is VALID [2022-02-20 16:50:30,515 INFO L290 TraceCheckUtils]: 6: Hoare triple {3399#true} assume !(0bv32 == __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; {3399#true} is VALID [2022-02-20 16:50:30,516 INFO L290 TraceCheckUtils]: 5: Hoare triple {3399#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, ~bvadd32(1bv32, __getMemory_#t~post6#1.offset);havoc __getMemory_#t~post6#1.base, __getMemory_#t~post6#1.offset; {3399#true} is VALID [2022-02-20 16:50:30,516 INFO L290 TraceCheckUtils]: 4: Hoare triple {3399#true} assume ~bvsgt32(__getMemory_~size#1, 0bv32); {3399#true} is VALID [2022-02-20 16:50:30,516 INFO L290 TraceCheckUtils]: 3: Hoare triple {3399#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; {3399#true} is VALID [2022-02-20 16:50:30,516 INFO L272 TraceCheckUtils]: 2: Hoare triple {3399#true} call main_#t~ret10#1.base, main_#t~ret10#1.offset := my_malloc(8bv32); {3399#true} is VALID [2022-02-20 16:50:30,516 INFO L290 TraceCheckUtils]: 1: Hoare triple {3399#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; {3399#true} is VALID [2022-02-20 16:50:30,517 INFO L290 TraceCheckUtils]: 0: Hoare triple {3399#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(19bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32);~guard_malloc_counter~0.base, ~guard_malloc_counter~0.offset := 0bv32, 0bv32;~elem~0.base, ~elem~0.offset := 0bv32, 0bv32;~#head~0.base, ~#head~0.offset := 4bv32, 0bv32;call #Ultimate.allocInit(8bv32, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~#head~0.offset, 4bv32);call write~init~$Pointer$(0bv32, 0bv32, ~#head~0.base, ~bvadd32(4bv32, ~#head~0.offset), 4bv32); {3399#true} is VALID [2022-02-20 16:50:30,517 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 5 proven. 4 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2022-02-20 16:50:30,517 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:50:30,517 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [841447193] [2022-02-20 16:50:30,517 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [841447193] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:50:30,518 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:50:30,518 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 7] total 17 [2022-02-20 16:50:30,518 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [968336389] [2022-02-20 16:50:30,518 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:50:30,519 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 17 states have (on average 2.411764705882353) internal successors, (41), 14 states have internal predecessors, (41), 7 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 5 states have call predecessors, (8), 6 states have call successors, (8) Word has length 41 [2022-02-20 16:50:30,520 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:50:30,520 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 17 states, 17 states have (on average 2.411764705882353) internal successors, (41), 14 states have internal predecessors, (41), 7 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 5 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:30,640 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:50:30,641 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 17 states [2022-02-20 16:50:30,641 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:50:30,641 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2022-02-20 16:50:30,641 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=236, Unknown=0, NotChecked=0, Total=272 [2022-02-20 16:50:30,642 INFO L87 Difference]: Start difference. First operand 58 states and 63 transitions. Second operand has 17 states, 17 states have (on average 2.411764705882353) internal successors, (41), 14 states have internal predecessors, (41), 7 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 5 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:32,145 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:32,145 INFO L93 Difference]: Finished difference Result 63 states and 67 transitions. [2022-02-20 16:50:32,145 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2022-02-20 16:50:32,146 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 17 states have (on average 2.411764705882353) internal successors, (41), 14 states have internal predecessors, (41), 7 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 5 states have call predecessors, (8), 6 states have call successors, (8) Word has length 41 [2022-02-20 16:50:32,147 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:50:32,147 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 17 states have (on average 2.411764705882353) internal successors, (41), 14 states have internal predecessors, (41), 7 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 5 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:32,148 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 53 transitions. [2022-02-20 16:50:32,148 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 17 states have (on average 2.411764705882353) internal successors, (41), 14 states have internal predecessors, (41), 7 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 5 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:32,150 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 53 transitions. [2022-02-20 16:50:32,150 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 53 transitions. [2022-02-20 16:50:32,237 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:32,239 INFO L225 Difference]: With dead ends: 63 [2022-02-20 16:50:32,239 INFO L226 Difference]: Without dead ends: 56 [2022-02-20 16:50:32,239 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 94 GetRequests, 65 SyntacticMatches, 1 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 120 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=124, Invalid=746, Unknown=0, NotChecked=0, Total=870 [2022-02-20 16:50:32,240 INFO L933 BasicCegarLoop]: 22 mSDtfsCounter, 40 mSDsluCounter, 85 mSDsCounter, 0 mSdLazyCounter, 388 mSolverCounterSat, 22 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 44 SdHoareTripleChecker+Valid, 107 SdHoareTripleChecker+Invalid, 410 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 22 IncrementalHoareTripleChecker+Valid, 388 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-02-20 16:50:32,240 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [44 Valid, 107 Invalid, 410 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [22 Valid, 388 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-02-20 16:50:32,241 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2022-02-20 16:50:32,246 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 56. [2022-02-20 16:50:32,246 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:50:32,246 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand has 56 states, 41 states have (on average 1.0731707317073171) internal successors, (44), 40 states have internal predecessors, (44), 8 states have call successors, (8), 8 states have call predecessors, (8), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:32,246 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand has 56 states, 41 states have (on average 1.0731707317073171) internal successors, (44), 40 states have internal predecessors, (44), 8 states have call successors, (8), 8 states have call predecessors, (8), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:32,247 INFO L87 Difference]: Start difference. First operand 56 states. Second operand has 56 states, 41 states have (on average 1.0731707317073171) internal successors, (44), 40 states have internal predecessors, (44), 8 states have call successors, (8), 8 states have call predecessors, (8), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:32,248 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:32,249 INFO L93 Difference]: Finished difference Result 56 states and 60 transitions. [2022-02-20 16:50:32,249 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 60 transitions. [2022-02-20 16:50:32,249 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:32,249 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:32,249 INFO L74 IsIncluded]: Start isIncluded. First operand has 56 states, 41 states have (on average 1.0731707317073171) internal successors, (44), 40 states have internal predecessors, (44), 8 states have call successors, (8), 8 states have call predecessors, (8), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 56 states. [2022-02-20 16:50:32,250 INFO L87 Difference]: Start difference. First operand has 56 states, 41 states have (on average 1.0731707317073171) internal successors, (44), 40 states have internal predecessors, (44), 8 states have call successors, (8), 8 states have call predecessors, (8), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) Second operand 56 states. [2022-02-20 16:50:32,251 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:50:32,251 INFO L93 Difference]: Finished difference Result 56 states and 60 transitions. [2022-02-20 16:50:32,251 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 60 transitions. [2022-02-20 16:50:32,252 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:50:32,252 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:50:32,252 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:50:32,252 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:50:32,252 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 56 states, 41 states have (on average 1.0731707317073171) internal successors, (44), 40 states have internal predecessors, (44), 8 states have call successors, (8), 8 states have call predecessors, (8), 6 states have return successors, (8), 7 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:32,254 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 60 transitions. [2022-02-20 16:50:32,254 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 60 transitions. Word has length 41 [2022-02-20 16:50:32,257 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:50:32,257 INFO L470 AbstractCegarLoop]: Abstraction has 56 states and 60 transitions. [2022-02-20 16:50:32,258 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 17 states, 17 states have (on average 2.411764705882353) internal successors, (41), 14 states have internal predecessors, (41), 7 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 5 states have call predecessors, (8), 6 states have call successors, (8) [2022-02-20 16:50:32,258 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 60 transitions. [2022-02-20 16:50:32,259 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 48 [2022-02-20 16:50:32,259 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:50:32,259 INFO L514 BasicCegarLoop]: trace histogram [4, 3, 3, 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, 1] [2022-02-20 16:50:32,271 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (10)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:32,467 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 10 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:32,467 INFO L402 AbstractCegarLoop]: === Iteration 10 === Targeting __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:50:32,468 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:50:32,468 INFO L85 PathProgramCache]: Analyzing trace with hash -1393953889, now seen corresponding path program 1 times [2022-02-20 16:50:32,468 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:50:32,468 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1527860326] [2022-02-20 16:50:32,468 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:50:32,469 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:50:32,469 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:50:32,469 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:50:32,470 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (11)] Waiting until timeout for monitored process [2022-02-20 16:50:32,543 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 16:50:32,543 INFO L352 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2022-02-20 16:50:32,587 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 16:50:32,630 INFO L138 FreeRefinementEngine]: Strategy WOLF found a feasible trace [2022-02-20 16:50:32,630 INFO L628 BasicCegarLoop]: Counterexample is feasible [2022-02-20 16:50:32,631 INFO L764 garLoopResultBuilder]: Registering result UNSAFE for location __blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-02-20 16:50:32,645 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (11)] Forceful destruction successful, exit code 0 [2022-02-20 16:50:32,845 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 11 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:50:32,848 INFO L732 BasicCegarLoop]: Path program histogram: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:50:32,850 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 16:50:32,905 FATAL L489 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret10 := my_malloc(8bv32); [2022-02-20 16:50:32,908 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: callstack broken after backtranslation by InlinerBacktranslator at de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:216) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:206) at de.uni_freiburg.informatik.ultimate.core.lib.results.CounterExampleResult.getProgramExecutionAsString(CounterExampleResult.java:155) at de.uni_freiburg.informatik.ultimate.core.lib.results.CounterExampleResult.getLongDescription(CounterExampleResult.java:134) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ResultService.reportResult(ResultService.java:86) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopResultReporter.reportResult(CegarLoopResultReporter.java:141) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportLocationResults(TraceAbstractionStarter.java:607) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:182) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:156) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-02-20 16:50:32,913 INFO L158 Benchmark]: Toolchain (without parser) took 24365.83ms. Allocated memory was 56.6MB in the beginning and 83.9MB in the end (delta: 27.3MB). Free memory was 34.6MB in the beginning and 45.0MB in the end (delta: -10.4MB). Peak memory consumption was 16.2MB. Max. memory is 16.1GB. [2022-02-20 16:50:32,913 INFO L158 Benchmark]: CDTParser took 0.23ms. Allocated memory is still 56.6MB. Free memory is still 38.9MB. There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:50:32,913 INFO L158 Benchmark]: CACSL2BoogieTranslator took 447.81ms. Allocated memory was 56.6MB in the beginning and 69.2MB in the end (delta: 12.6MB). Free memory was 34.3MB in the beginning and 45.0MB in the end (delta: -10.7MB). Peak memory consumption was 14.4MB. Max. memory is 16.1GB. [2022-02-20 16:50:32,914 INFO L158 Benchmark]: Boogie Procedure Inliner took 40.33ms. Allocated memory is still 69.2MB. Free memory was 44.8MB in the beginning and 42.9MB in the end (delta: 2.0MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:50:32,914 INFO L158 Benchmark]: Boogie Preprocessor took 25.49ms. Allocated memory is still 69.2MB. Free memory was 42.9MB in the beginning and 41.1MB in the end (delta: 1.7MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:50:32,914 INFO L158 Benchmark]: RCFGBuilder took 420.16ms. Allocated memory is still 69.2MB. Free memory was 41.1MB in the beginning and 44.4MB in the end (delta: -3.3MB). Peak memory consumption was 8.4MB. Max. memory is 16.1GB. [2022-02-20 16:50:32,915 INFO L158 Benchmark]: TraceAbstraction took 23426.85ms. Allocated memory was 69.2MB in the beginning and 83.9MB in the end (delta: 14.7MB). Free memory was 43.9MB in the beginning and 45.0MB in the end (delta: -1.1MB). Peak memory consumption was 13.0MB. Max. memory is 16.1GB. [2022-02-20 16:50:32,916 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.23ms. Allocated memory is still 56.6MB. Free memory is still 38.9MB. There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 447.81ms. Allocated memory was 56.6MB in the beginning and 69.2MB in the end (delta: 12.6MB). Free memory was 34.3MB in the beginning and 45.0MB in the end (delta: -10.7MB). Peak memory consumption was 14.4MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 40.33ms. Allocated memory is still 69.2MB. Free memory was 44.8MB in the beginning and 42.9MB in the end (delta: 2.0MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 25.49ms. Allocated memory is still 69.2MB. Free memory was 42.9MB in the beginning and 41.1MB in the end (delta: 1.7MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * RCFGBuilder took 420.16ms. Allocated memory is still 69.2MB. Free memory was 41.1MB in the beginning and 44.4MB in the end (delta: -3.3MB). Peak memory consumption was 8.4MB. Max. memory is 16.1GB. * TraceAbstraction took 23426.85ms. Allocated memory was 69.2MB in the beginning and 83.9MB in the end (delta: 14.7MB). Free memory was 43.9MB in the beginning and 45.0MB in the end (delta: -1.1MB). Peak memory consumption was 13.0MB. 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 - ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: callstack broken after backtranslation by InlinerBacktranslator: de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-02-20 16:50:32,951 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Ended with exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Writing output log to file Ultimate.log Result: ERROR: ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator