java -ea -Xmx8000000000 -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc ../../../trunk/examples/toolchains/AutomizerCInline_WitnessPrinter.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf -i ../../../trunk/examples/svcomp/ldv-regression/ex3_forlist_true-termination.c_true-unreach-call.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 12:53:48,328 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 12:53:48,330 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 12:53:48,342 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 12:53:48,342 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 12:53:48,343 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 12:53:48,344 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 12:53:48,346 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 12:53:48,348 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 12:53:48,349 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 12:53:48,350 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 12:53:48,350 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 12:53:48,351 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 12:53:48,352 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 12:53:48,354 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 12:53:48,355 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 12:53:48,355 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 12:53:48,357 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 12:53:48,360 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 12:53:48,361 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 12:53:48,363 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 12:53:48,364 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 12:53:48,366 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 12:53:48,367 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 12:53:48,367 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 12:53:48,368 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 12:53:48,369 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 12:53:48,370 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 12:53:48,371 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 12:53:48,372 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 12:53:48,372 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 12:53:48,373 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 12:53:48,373 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 12:53:48,373 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 12:53:48,374 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 12:53:48,375 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 12:53:48,376 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf [2018-11-23 12:53:48,398 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 12:53:48,399 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 12:53:48,400 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 12:53:48,400 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 12:53:48,400 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 12:53:48,401 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 12:53:48,401 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 12:53:48,401 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 12:53:48,401 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 12:53:48,406 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 12:53:48,406 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 12:53:48,406 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 12:53:48,406 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 12:53:48,407 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 12:53:48,407 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 12:53:48,407 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 12:53:48,407 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 12:53:48,407 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 12:53:48,408 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 12:53:48,408 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 12:53:48,408 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 12:53:48,408 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 12:53:48,408 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 12:53:48,408 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:53:48,411 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 12:53:48,411 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 12:53:48,411 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 12:53:48,411 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-23 12:53:48,412 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 12:53:48,412 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 12:53:48,412 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 12:53:48,475 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 12:53:48,488 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 12:53:48,492 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 12:53:48,493 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 12:53:48,494 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 12:53:48,495 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/ldv-regression/ex3_forlist_true-termination.c_true-unreach-call.i [2018-11-23 12:53:48,556 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/726ef84d6/65f287a32d244dabaaf0c04378055bb8/FLAGee90fe3fa [2018-11-23 12:53:48,994 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 12:53:48,994 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/ldv-regression/ex3_forlist_true-termination.c_true-unreach-call.i [2018-11-23 12:53:49,001 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/726ef84d6/65f287a32d244dabaaf0c04378055bb8/FLAGee90fe3fa [2018-11-23 12:53:49,365 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/726ef84d6/65f287a32d244dabaaf0c04378055bb8 [2018-11-23 12:53:49,375 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 12:53:49,377 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 12:53:49,378 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 12:53:49,378 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 12:53:49,382 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 12:53:49,384 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,387 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@1989b889 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49, skipping insertion in model container [2018-11-23 12:53:49,387 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,398 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 12:53:49,424 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 12:53:49,695 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:53:49,706 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 12:53:49,746 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:53:49,778 INFO L195 MainTranslator]: Completed translation [2018-11-23 12:53:49,778 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49 WrapperNode [2018-11-23 12:53:49,779 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 12:53:49,780 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 12:53:49,780 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 12:53:49,780 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 12:53:49,790 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,802 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,811 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 12:53:49,811 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 12:53:49,812 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 12:53:49,812 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 12:53:49,823 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,823 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,827 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,827 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,858 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,869 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,871 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... [2018-11-23 12:53:49,874 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 12:53:49,875 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 12:53:49,875 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 12:53:49,875 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 12:53:49,876 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:53:50,017 INFO L130 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-11-23 12:53:50,017 INFO L130 BoogieDeclarations]: Found specification of procedure malloc [2018-11-23 12:53:50,018 INFO L138 BoogieDeclarations]: Found implementation of procedure malloc [2018-11-23 12:53:50,018 INFO L130 BoogieDeclarations]: Found specification of procedure init [2018-11-23 12:53:50,018 INFO L138 BoogieDeclarations]: Found implementation of procedure init [2018-11-23 12:53:50,018 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~$Pointer$ [2018-11-23 12:53:50,018 INFO L130 BoogieDeclarations]: Found specification of procedure f [2018-11-23 12:53:50,018 INFO L138 BoogieDeclarations]: Found implementation of procedure f [2018-11-23 12:53:50,019 INFO L130 BoogieDeclarations]: Found specification of procedure g [2018-11-23 12:53:50,019 INFO L138 BoogieDeclarations]: Found implementation of procedure g [2018-11-23 12:53:50,019 INFO L130 BoogieDeclarations]: Found specification of procedure __blast_assert [2018-11-23 12:53:50,019 INFO L138 BoogieDeclarations]: Found implementation of procedure __blast_assert [2018-11-23 12:53:50,019 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 12:53:50,020 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 12:53:50,020 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2018-11-23 12:53:50,020 INFO L130 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-11-23 12:53:50,020 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-23 12:53:50,020 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 12:53:50,021 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 12:53:50,021 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 12:53:50,021 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 12:53:50,021 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 12:53:50,021 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-23 12:53:51,107 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 12:53:51,107 INFO L280 CfgBuilder]: Removed 3 assue(true) statements. [2018-11-23 12:53:51,108 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:53:51 BoogieIcfgContainer [2018-11-23 12:53:51,108 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 12:53:51,109 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 12:53:51,109 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 12:53:51,113 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 12:53:51,113 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 12:53:49" (1/3) ... [2018-11-23 12:53:51,114 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@62b803d3 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:53:51, skipping insertion in model container [2018-11-23 12:53:51,114 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:53:49" (2/3) ... [2018-11-23 12:53:51,115 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@62b803d3 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:53:51, skipping insertion in model container [2018-11-23 12:53:51,115 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:53:51" (3/3) ... [2018-11-23 12:53:51,117 INFO L112 eAbstractionObserver]: Analyzing ICFG ex3_forlist_true-termination.c_true-unreach-call.i [2018-11-23 12:53:51,128 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 12:53:51,137 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 12:53:51,157 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 12:53:51,191 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 12:53:51,191 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 12:53:51,192 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 12:53:51,192 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 12:53:51,192 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 12:53:51,192 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 12:53:51,192 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 12:53:51,193 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 12:53:51,193 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 12:53:51,213 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states. [2018-11-23 12:53:51,221 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 12:53:51,221 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:51,222 INFO L402 BasicCegarLoop]: trace histogram [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, 1, 1, 1, 1, 1, 1] [2018-11-23 12:53:51,224 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:51,230 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:51,230 INFO L82 PathProgramCache]: Analyzing trace with hash 2077048382, now seen corresponding path program 1 times [2018-11-23 12:53:51,232 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:51,232 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:51,277 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:51,277 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:51,277 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:51,352 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:51,506 INFO L256 TraceCheckUtils]: 0: Hoare triple {51#true} call ULTIMATE.init(); {51#true} is VALID [2018-11-23 12:53:51,511 INFO L273 TraceCheckUtils]: 1: Hoare triple {51#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {51#true} is VALID [2018-11-23 12:53:51,511 INFO L273 TraceCheckUtils]: 2: Hoare triple {51#true} assume true; {51#true} is VALID [2018-11-23 12:53:51,512 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {51#true} {51#true} #106#return; {51#true} is VALID [2018-11-23 12:53:51,512 INFO L256 TraceCheckUtils]: 4: Hoare triple {51#true} call #t~ret9 := main(); {51#true} is VALID [2018-11-23 12:53:51,513 INFO L273 TraceCheckUtils]: 5: Hoare triple {51#true} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {51#true} is VALID [2018-11-23 12:53:51,513 INFO L256 TraceCheckUtils]: 6: Hoare triple {51#true} call init(); {51#true} is VALID [2018-11-23 12:53:51,526 INFO L273 TraceCheckUtils]: 7: Hoare triple {51#true} havoc ~i~0;~i~0 := 0; {53#(= init_~i~0 0)} is VALID [2018-11-23 12:53:51,540 INFO L273 TraceCheckUtils]: 8: Hoare triple {53#(= init_~i~0 0)} assume !(~i~0 < 2); {52#false} is VALID [2018-11-23 12:53:51,541 INFO L273 TraceCheckUtils]: 9: Hoare triple {52#false} assume true; {52#false} is VALID [2018-11-23 12:53:51,541 INFO L268 TraceCheckUtils]: 10: Hoare quadruple {52#false} {51#true} #92#return; {52#false} is VALID [2018-11-23 12:53:51,541 INFO L256 TraceCheckUtils]: 11: Hoare triple {52#false} call #t~ret7.base, #t~ret7.offset := malloc(4); {51#true} is VALID [2018-11-23 12:53:51,542 INFO L273 TraceCheckUtils]: 12: Hoare triple {51#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {51#true} is VALID [2018-11-23 12:53:51,542 INFO L273 TraceCheckUtils]: 13: Hoare triple {51#true} assume true; {51#true} is VALID [2018-11-23 12:53:51,542 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {51#true} {52#false} #94#return; {52#false} is VALID [2018-11-23 12:53:51,543 INFO L273 TraceCheckUtils]: 15: Hoare triple {52#false} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {52#false} is VALID [2018-11-23 12:53:51,543 INFO L256 TraceCheckUtils]: 16: Hoare triple {52#false} call #t~ret8.base, #t~ret8.offset := malloc(4); {51#true} is VALID [2018-11-23 12:53:51,543 INFO L273 TraceCheckUtils]: 17: Hoare triple {51#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {51#true} is VALID [2018-11-23 12:53:51,544 INFO L273 TraceCheckUtils]: 18: Hoare triple {51#true} assume true; {51#true} is VALID [2018-11-23 12:53:51,544 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {51#true} {52#false} #96#return; {52#false} is VALID [2018-11-23 12:53:51,545 INFO L273 TraceCheckUtils]: 20: Hoare triple {52#false} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {52#false} is VALID [2018-11-23 12:53:51,545 INFO L273 TraceCheckUtils]: 21: Hoare triple {52#false} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {52#false} is VALID [2018-11-23 12:53:51,545 INFO L256 TraceCheckUtils]: 22: Hoare triple {52#false} call f(~a~0.base, ~a~0.offset); {51#true} is VALID [2018-11-23 12:53:51,546 INFO L273 TraceCheckUtils]: 23: Hoare triple {51#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {51#true} is VALID [2018-11-23 12:53:51,546 INFO L273 TraceCheckUtils]: 24: Hoare triple {51#true} assume !true; {51#true} is VALID [2018-11-23 12:53:51,546 INFO L273 TraceCheckUtils]: 25: Hoare triple {51#true} assume true; {51#true} is VALID [2018-11-23 12:53:51,547 INFO L268 TraceCheckUtils]: 26: Hoare quadruple {51#true} {52#false} #98#return; {52#false} is VALID [2018-11-23 12:53:51,547 INFO L256 TraceCheckUtils]: 27: Hoare triple {52#false} call f(~b~0.base, ~b~0.offset); {51#true} is VALID [2018-11-23 12:53:51,547 INFO L273 TraceCheckUtils]: 28: Hoare triple {51#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {51#true} is VALID [2018-11-23 12:53:51,548 INFO L273 TraceCheckUtils]: 29: Hoare triple {51#true} assume !true; {51#true} is VALID [2018-11-23 12:53:51,548 INFO L273 TraceCheckUtils]: 30: Hoare triple {51#true} assume true; {51#true} is VALID [2018-11-23 12:53:51,548 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {51#true} {52#false} #100#return; {52#false} is VALID [2018-11-23 12:53:51,549 INFO L256 TraceCheckUtils]: 32: Hoare triple {52#false} call g(~a~0.base, ~a~0.offset); {52#false} is VALID [2018-11-23 12:53:51,549 INFO L273 TraceCheckUtils]: 33: Hoare triple {52#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {52#false} is VALID [2018-11-23 12:53:51,549 INFO L273 TraceCheckUtils]: 34: Hoare triple {52#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {52#false} is VALID [2018-11-23 12:53:51,550 INFO L273 TraceCheckUtils]: 35: Hoare triple {52#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {52#false} is VALID [2018-11-23 12:53:51,550 INFO L273 TraceCheckUtils]: 36: Hoare triple {52#false} assume !(1 == #t~mem5); {52#false} is VALID [2018-11-23 12:53:51,551 INFO L256 TraceCheckUtils]: 37: Hoare triple {52#false} call __blast_assert(); {52#false} is VALID [2018-11-23 12:53:51,551 INFO L273 TraceCheckUtils]: 38: Hoare triple {52#false} assume !false; {52#false} is VALID [2018-11-23 12:53:51,559 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 7 trivial. 0 not checked. [2018-11-23 12:53:51,561 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:53:51,562 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2018-11-23 12:53:51,568 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 39 [2018-11-23 12:53:51,571 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:51,575 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2018-11-23 12:53:51,789 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:51,789 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2018-11-23 12:53:51,799 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2018-11-23 12:53:51,800 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:53:51,803 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 3 states. [2018-11-23 12:53:52,537 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:52,538 INFO L93 Difference]: Finished difference Result 86 states and 115 transitions. [2018-11-23 12:53:52,538 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 12:53:52,538 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 39 [2018-11-23 12:53:52,538 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:53:52,540 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 12:53:52,554 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 115 transitions. [2018-11-23 12:53:52,554 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2018-11-23 12:53:52,563 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 115 transitions. [2018-11-23 12:53:52,563 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 115 transitions. [2018-11-23 12:53:53,165 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 115 edges. 115 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:53,181 INFO L225 Difference]: With dead ends: 86 [2018-11-23 12:53:53,181 INFO L226 Difference]: Without dead ends: 43 [2018-11-23 12:53:53,185 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2018-11-23 12:53:53,204 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2018-11-23 12:53:53,248 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 42. [2018-11-23 12:53:53,248 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:53:53,249 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 42 states. [2018-11-23 12:53:53,250 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 42 states. [2018-11-23 12:53:53,250 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 42 states. [2018-11-23 12:53:53,258 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:53,258 INFO L93 Difference]: Finished difference Result 43 states and 50 transitions. [2018-11-23 12:53:53,258 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 50 transitions. [2018-11-23 12:53:53,259 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:53,260 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:53,260 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 43 states. [2018-11-23 12:53:53,260 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 43 states. [2018-11-23 12:53:53,268 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:53,268 INFO L93 Difference]: Finished difference Result 43 states and 50 transitions. [2018-11-23 12:53:53,268 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 50 transitions. [2018-11-23 12:53:53,271 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:53,272 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:53,272 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:53:53,272 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:53:53,272 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 42 states. [2018-11-23 12:53:53,277 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 49 transitions. [2018-11-23 12:53:53,279 INFO L78 Accepts]: Start accepts. Automaton has 42 states and 49 transitions. Word has length 39 [2018-11-23 12:53:53,279 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:53:53,280 INFO L480 AbstractCegarLoop]: Abstraction has 42 states and 49 transitions. [2018-11-23 12:53:53,280 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2018-11-23 12:53:53,280 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 49 transitions. [2018-11-23 12:53:53,282 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2018-11-23 12:53:53,282 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:53,283 INFO L402 BasicCegarLoop]: trace histogram [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, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:53:53,283 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:53,283 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:53,284 INFO L82 PathProgramCache]: Analyzing trace with hash 2096573404, now seen corresponding path program 1 times [2018-11-23 12:53:53,284 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:53,284 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:53,285 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:53,286 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:53,286 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:53,327 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:53,409 INFO L256 TraceCheckUtils]: 0: Hoare triple {325#true} call ULTIMATE.init(); {325#true} is VALID [2018-11-23 12:53:53,409 INFO L273 TraceCheckUtils]: 1: Hoare triple {325#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {325#true} is VALID [2018-11-23 12:53:53,410 INFO L273 TraceCheckUtils]: 2: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,410 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {325#true} {325#true} #106#return; {325#true} is VALID [2018-11-23 12:53:53,410 INFO L256 TraceCheckUtils]: 4: Hoare triple {325#true} call #t~ret9 := main(); {325#true} is VALID [2018-11-23 12:53:53,410 INFO L273 TraceCheckUtils]: 5: Hoare triple {325#true} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {325#true} is VALID [2018-11-23 12:53:53,411 INFO L256 TraceCheckUtils]: 6: Hoare triple {325#true} call init(); {325#true} is VALID [2018-11-23 12:53:53,411 INFO L273 TraceCheckUtils]: 7: Hoare triple {325#true} havoc ~i~0;~i~0 := 0; {325#true} is VALID [2018-11-23 12:53:53,411 INFO L273 TraceCheckUtils]: 8: Hoare triple {325#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {325#true} is VALID [2018-11-23 12:53:53,412 INFO L273 TraceCheckUtils]: 9: Hoare triple {325#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {325#true} is VALID [2018-11-23 12:53:53,412 INFO L273 TraceCheckUtils]: 10: Hoare triple {325#true} assume !(~i~0 < 2); {325#true} is VALID [2018-11-23 12:53:53,412 INFO L273 TraceCheckUtils]: 11: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,413 INFO L268 TraceCheckUtils]: 12: Hoare quadruple {325#true} {325#true} #92#return; {325#true} is VALID [2018-11-23 12:53:53,413 INFO L256 TraceCheckUtils]: 13: Hoare triple {325#true} call #t~ret7.base, #t~ret7.offset := malloc(4); {325#true} is VALID [2018-11-23 12:53:53,414 INFO L273 TraceCheckUtils]: 14: Hoare triple {325#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {325#true} is VALID [2018-11-23 12:53:53,414 INFO L273 TraceCheckUtils]: 15: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,414 INFO L268 TraceCheckUtils]: 16: Hoare quadruple {325#true} {325#true} #94#return; {325#true} is VALID [2018-11-23 12:53:53,415 INFO L273 TraceCheckUtils]: 17: Hoare triple {325#true} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {325#true} is VALID [2018-11-23 12:53:53,415 INFO L256 TraceCheckUtils]: 18: Hoare triple {325#true} call #t~ret8.base, #t~ret8.offset := malloc(4); {325#true} is VALID [2018-11-23 12:53:53,415 INFO L273 TraceCheckUtils]: 19: Hoare triple {325#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {325#true} is VALID [2018-11-23 12:53:53,416 INFO L273 TraceCheckUtils]: 20: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,416 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {325#true} {325#true} #96#return; {325#true} is VALID [2018-11-23 12:53:53,416 INFO L273 TraceCheckUtils]: 22: Hoare triple {325#true} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {325#true} is VALID [2018-11-23 12:53:53,417 INFO L273 TraceCheckUtils]: 23: Hoare triple {325#true} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {325#true} is VALID [2018-11-23 12:53:53,417 INFO L256 TraceCheckUtils]: 24: Hoare triple {325#true} call f(~a~0.base, ~a~0.offset); {325#true} is VALID [2018-11-23 12:53:53,419 INFO L273 TraceCheckUtils]: 25: Hoare triple {325#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {327#(= f_~i~1 0)} is VALID [2018-11-23 12:53:53,420 INFO L273 TraceCheckUtils]: 26: Hoare triple {327#(= f_~i~1 0)} assume !(~i~1 < 2); {326#false} is VALID [2018-11-23 12:53:53,420 INFO L273 TraceCheckUtils]: 27: Hoare triple {326#false} assume true; {326#false} is VALID [2018-11-23 12:53:53,420 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {326#false} {325#true} #98#return; {326#false} is VALID [2018-11-23 12:53:53,421 INFO L256 TraceCheckUtils]: 29: Hoare triple {326#false} call f(~b~0.base, ~b~0.offset); {325#true} is VALID [2018-11-23 12:53:53,421 INFO L273 TraceCheckUtils]: 30: Hoare triple {325#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {325#true} is VALID [2018-11-23 12:53:53,421 INFO L273 TraceCheckUtils]: 31: Hoare triple {325#true} assume !(~i~1 < 2); {325#true} is VALID [2018-11-23 12:53:53,421 INFO L273 TraceCheckUtils]: 32: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,422 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {325#true} {326#false} #100#return; {326#false} is VALID [2018-11-23 12:53:53,422 INFO L256 TraceCheckUtils]: 34: Hoare triple {326#false} call g(~a~0.base, ~a~0.offset); {326#false} is VALID [2018-11-23 12:53:53,422 INFO L273 TraceCheckUtils]: 35: Hoare triple {326#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {326#false} is VALID [2018-11-23 12:53:53,422 INFO L273 TraceCheckUtils]: 36: Hoare triple {326#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {326#false} is VALID [2018-11-23 12:53:53,423 INFO L273 TraceCheckUtils]: 37: Hoare triple {326#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {326#false} is VALID [2018-11-23 12:53:53,423 INFO L273 TraceCheckUtils]: 38: Hoare triple {326#false} assume !(1 == #t~mem5); {326#false} is VALID [2018-11-23 12:53:53,423 INFO L256 TraceCheckUtils]: 39: Hoare triple {326#false} call __blast_assert(); {326#false} is VALID [2018-11-23 12:53:53,424 INFO L273 TraceCheckUtils]: 40: Hoare triple {326#false} assume !false; {326#false} is VALID [2018-11-23 12:53:53,427 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 12:53:53,427 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:53:53,427 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:53:53,445 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:53,515 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:53,556 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:53,564 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:53:53,727 INFO L256 TraceCheckUtils]: 0: Hoare triple {325#true} call ULTIMATE.init(); {325#true} is VALID [2018-11-23 12:53:53,727 INFO L273 TraceCheckUtils]: 1: Hoare triple {325#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {325#true} is VALID [2018-11-23 12:53:53,728 INFO L273 TraceCheckUtils]: 2: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,728 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {325#true} {325#true} #106#return; {325#true} is VALID [2018-11-23 12:53:53,728 INFO L256 TraceCheckUtils]: 4: Hoare triple {325#true} call #t~ret9 := main(); {325#true} is VALID [2018-11-23 12:53:53,729 INFO L273 TraceCheckUtils]: 5: Hoare triple {325#true} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {325#true} is VALID [2018-11-23 12:53:53,729 INFO L256 TraceCheckUtils]: 6: Hoare triple {325#true} call init(); {325#true} is VALID [2018-11-23 12:53:53,729 INFO L273 TraceCheckUtils]: 7: Hoare triple {325#true} havoc ~i~0;~i~0 := 0; {325#true} is VALID [2018-11-23 12:53:53,729 INFO L273 TraceCheckUtils]: 8: Hoare triple {325#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {325#true} is VALID [2018-11-23 12:53:53,730 INFO L273 TraceCheckUtils]: 9: Hoare triple {325#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {325#true} is VALID [2018-11-23 12:53:53,730 INFO L273 TraceCheckUtils]: 10: Hoare triple {325#true} assume !(~i~0 < 2); {325#true} is VALID [2018-11-23 12:53:53,730 INFO L273 TraceCheckUtils]: 11: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,730 INFO L268 TraceCheckUtils]: 12: Hoare quadruple {325#true} {325#true} #92#return; {325#true} is VALID [2018-11-23 12:53:53,731 INFO L256 TraceCheckUtils]: 13: Hoare triple {325#true} call #t~ret7.base, #t~ret7.offset := malloc(4); {325#true} is VALID [2018-11-23 12:53:53,731 INFO L273 TraceCheckUtils]: 14: Hoare triple {325#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {325#true} is VALID [2018-11-23 12:53:53,731 INFO L273 TraceCheckUtils]: 15: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,732 INFO L268 TraceCheckUtils]: 16: Hoare quadruple {325#true} {325#true} #94#return; {325#true} is VALID [2018-11-23 12:53:53,732 INFO L273 TraceCheckUtils]: 17: Hoare triple {325#true} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {325#true} is VALID [2018-11-23 12:53:53,732 INFO L256 TraceCheckUtils]: 18: Hoare triple {325#true} call #t~ret8.base, #t~ret8.offset := malloc(4); {325#true} is VALID [2018-11-23 12:53:53,733 INFO L273 TraceCheckUtils]: 19: Hoare triple {325#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {325#true} is VALID [2018-11-23 12:53:53,733 INFO L273 TraceCheckUtils]: 20: Hoare triple {325#true} assume true; {325#true} is VALID [2018-11-23 12:53:53,733 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {325#true} {325#true} #96#return; {325#true} is VALID [2018-11-23 12:53:53,733 INFO L273 TraceCheckUtils]: 22: Hoare triple {325#true} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {325#true} is VALID [2018-11-23 12:53:53,734 INFO L273 TraceCheckUtils]: 23: Hoare triple {325#true} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {325#true} is VALID [2018-11-23 12:53:53,734 INFO L256 TraceCheckUtils]: 24: Hoare triple {325#true} call f(~a~0.base, ~a~0.offset); {325#true} is VALID [2018-11-23 12:53:53,738 INFO L273 TraceCheckUtils]: 25: Hoare triple {325#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {406#(<= f_~i~1 0)} is VALID [2018-11-23 12:53:53,740 INFO L273 TraceCheckUtils]: 26: Hoare triple {406#(<= f_~i~1 0)} assume !(~i~1 < 2); {326#false} is VALID [2018-11-23 12:53:53,741 INFO L273 TraceCheckUtils]: 27: Hoare triple {326#false} assume true; {326#false} is VALID [2018-11-23 12:53:53,741 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {326#false} {325#true} #98#return; {326#false} is VALID [2018-11-23 12:53:53,741 INFO L256 TraceCheckUtils]: 29: Hoare triple {326#false} call f(~b~0.base, ~b~0.offset); {326#false} is VALID [2018-11-23 12:53:53,741 INFO L273 TraceCheckUtils]: 30: Hoare triple {326#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {326#false} is VALID [2018-11-23 12:53:53,742 INFO L273 TraceCheckUtils]: 31: Hoare triple {326#false} assume !(~i~1 < 2); {326#false} is VALID [2018-11-23 12:53:53,742 INFO L273 TraceCheckUtils]: 32: Hoare triple {326#false} assume true; {326#false} is VALID [2018-11-23 12:53:53,742 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {326#false} {326#false} #100#return; {326#false} is VALID [2018-11-23 12:53:53,742 INFO L256 TraceCheckUtils]: 34: Hoare triple {326#false} call g(~a~0.base, ~a~0.offset); {326#false} is VALID [2018-11-23 12:53:53,743 INFO L273 TraceCheckUtils]: 35: Hoare triple {326#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {326#false} is VALID [2018-11-23 12:53:53,743 INFO L273 TraceCheckUtils]: 36: Hoare triple {326#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {326#false} is VALID [2018-11-23 12:53:53,743 INFO L273 TraceCheckUtils]: 37: Hoare triple {326#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {326#false} is VALID [2018-11-23 12:53:53,744 INFO L273 TraceCheckUtils]: 38: Hoare triple {326#false} assume !(1 == #t~mem5); {326#false} is VALID [2018-11-23 12:53:53,744 INFO L256 TraceCheckUtils]: 39: Hoare triple {326#false} call __blast_assert(); {326#false} is VALID [2018-11-23 12:53:53,744 INFO L273 TraceCheckUtils]: 40: Hoare triple {326#false} assume !false; {326#false} is VALID [2018-11-23 12:53:53,748 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2018-11-23 12:53:53,774 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 12:53:53,774 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [3] total 4 [2018-11-23 12:53:53,775 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 41 [2018-11-23 12:53:53,776 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:53,776 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2018-11-23 12:53:53,943 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:53,943 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:53:53,943 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:53:53,943 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:53:53,944 INFO L87 Difference]: Start difference. First operand 42 states and 49 transitions. Second operand 4 states. [2018-11-23 12:53:54,222 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:54,222 INFO L93 Difference]: Finished difference Result 67 states and 83 transitions. [2018-11-23 12:53:54,222 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2018-11-23 12:53:54,223 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 41 [2018-11-23 12:53:54,223 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:53:54,223 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 12:53:54,229 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 82 transitions. [2018-11-23 12:53:54,232 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 12:53:54,240 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 82 transitions. [2018-11-23 12:53:54,240 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 82 transitions. [2018-11-23 12:53:54,395 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 82 edges. 82 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:54,398 INFO L225 Difference]: With dead ends: 67 [2018-11-23 12:53:54,398 INFO L226 Difference]: Without dead ends: 47 [2018-11-23 12:53:54,400 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 43 GetRequests, 41 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:53:54,400 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2018-11-23 12:53:54,433 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 43. [2018-11-23 12:53:54,433 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:53:54,433 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 43 states. [2018-11-23 12:53:54,433 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 43 states. [2018-11-23 12:53:54,434 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 43 states. [2018-11-23 12:53:54,439 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:54,439 INFO L93 Difference]: Finished difference Result 47 states and 56 transitions. [2018-11-23 12:53:54,440 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 56 transitions. [2018-11-23 12:53:54,441 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:54,441 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:54,441 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 47 states. [2018-11-23 12:53:54,441 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 47 states. [2018-11-23 12:53:54,446 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:54,446 INFO L93 Difference]: Finished difference Result 47 states and 56 transitions. [2018-11-23 12:53:54,446 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 56 transitions. [2018-11-23 12:53:54,447 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:54,448 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:54,448 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:53:54,448 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:53:54,448 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 43 states. [2018-11-23 12:53:54,451 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 50 transitions. [2018-11-23 12:53:54,451 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 50 transitions. Word has length 41 [2018-11-23 12:53:54,452 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:53:54,452 INFO L480 AbstractCegarLoop]: Abstraction has 43 states and 50 transitions. [2018-11-23 12:53:54,452 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:53:54,452 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 50 transitions. [2018-11-23 12:53:54,454 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2018-11-23 12:53:54,454 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:54,454 INFO L402 BasicCegarLoop]: trace histogram [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, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:53:54,455 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:54,455 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:54,455 INFO L82 PathProgramCache]: Analyzing trace with hash -1827691426, now seen corresponding path program 1 times [2018-11-23 12:53:54,455 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:54,456 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:54,457 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:54,457 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:54,457 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:54,496 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:54,599 INFO L256 TraceCheckUtils]: 0: Hoare triple {708#true} call ULTIMATE.init(); {708#true} is VALID [2018-11-23 12:53:54,600 INFO L273 TraceCheckUtils]: 1: Hoare triple {708#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {708#true} is VALID [2018-11-23 12:53:54,600 INFO L273 TraceCheckUtils]: 2: Hoare triple {708#true} assume true; {708#true} is VALID [2018-11-23 12:53:54,600 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {708#true} {708#true} #106#return; {708#true} is VALID [2018-11-23 12:53:54,601 INFO L256 TraceCheckUtils]: 4: Hoare triple {708#true} call #t~ret9 := main(); {708#true} is VALID [2018-11-23 12:53:54,601 INFO L273 TraceCheckUtils]: 5: Hoare triple {708#true} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {708#true} is VALID [2018-11-23 12:53:54,601 INFO L256 TraceCheckUtils]: 6: Hoare triple {708#true} call init(); {708#true} is VALID [2018-11-23 12:53:54,603 INFO L273 TraceCheckUtils]: 7: Hoare triple {708#true} havoc ~i~0;~i~0 := 0; {710#(= init_~i~0 0)} is VALID [2018-11-23 12:53:54,603 INFO L273 TraceCheckUtils]: 8: Hoare triple {710#(= init_~i~0 0)} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {710#(= init_~i~0 0)} is VALID [2018-11-23 12:53:54,604 INFO L273 TraceCheckUtils]: 9: Hoare triple {710#(= init_~i~0 0)} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {711#(<= init_~i~0 1)} is VALID [2018-11-23 12:53:54,605 INFO L273 TraceCheckUtils]: 10: Hoare triple {711#(<= init_~i~0 1)} assume !(~i~0 < 2); {709#false} is VALID [2018-11-23 12:53:54,605 INFO L273 TraceCheckUtils]: 11: Hoare triple {709#false} assume true; {709#false} is VALID [2018-11-23 12:53:54,605 INFO L268 TraceCheckUtils]: 12: Hoare quadruple {709#false} {708#true} #92#return; {709#false} is VALID [2018-11-23 12:53:54,606 INFO L256 TraceCheckUtils]: 13: Hoare triple {709#false} call #t~ret7.base, #t~ret7.offset := malloc(4); {708#true} is VALID [2018-11-23 12:53:54,606 INFO L273 TraceCheckUtils]: 14: Hoare triple {708#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {708#true} is VALID [2018-11-23 12:53:54,606 INFO L273 TraceCheckUtils]: 15: Hoare triple {708#true} assume true; {708#true} is VALID [2018-11-23 12:53:54,607 INFO L268 TraceCheckUtils]: 16: Hoare quadruple {708#true} {709#false} #94#return; {709#false} is VALID [2018-11-23 12:53:54,607 INFO L273 TraceCheckUtils]: 17: Hoare triple {709#false} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {709#false} is VALID [2018-11-23 12:53:54,607 INFO L256 TraceCheckUtils]: 18: Hoare triple {709#false} call #t~ret8.base, #t~ret8.offset := malloc(4); {708#true} is VALID [2018-11-23 12:53:54,608 INFO L273 TraceCheckUtils]: 19: Hoare triple {708#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {708#true} is VALID [2018-11-23 12:53:54,608 INFO L273 TraceCheckUtils]: 20: Hoare triple {708#true} assume true; {708#true} is VALID [2018-11-23 12:53:54,609 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {708#true} {709#false} #96#return; {709#false} is VALID [2018-11-23 12:53:54,609 INFO L273 TraceCheckUtils]: 22: Hoare triple {709#false} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {709#false} is VALID [2018-11-23 12:53:54,609 INFO L273 TraceCheckUtils]: 23: Hoare triple {709#false} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {709#false} is VALID [2018-11-23 12:53:54,610 INFO L256 TraceCheckUtils]: 24: Hoare triple {709#false} call f(~a~0.base, ~a~0.offset); {708#true} is VALID [2018-11-23 12:53:54,610 INFO L273 TraceCheckUtils]: 25: Hoare triple {708#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {708#true} is VALID [2018-11-23 12:53:54,610 INFO L273 TraceCheckUtils]: 26: Hoare triple {708#true} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {708#true} is VALID [2018-11-23 12:53:54,610 INFO L273 TraceCheckUtils]: 27: Hoare triple {708#true} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {708#true} is VALID [2018-11-23 12:53:54,611 INFO L273 TraceCheckUtils]: 28: Hoare triple {708#true} assume true; {708#true} is VALID [2018-11-23 12:53:54,611 INFO L268 TraceCheckUtils]: 29: Hoare quadruple {708#true} {709#false} #98#return; {709#false} is VALID [2018-11-23 12:53:54,611 INFO L256 TraceCheckUtils]: 30: Hoare triple {709#false} call f(~b~0.base, ~b~0.offset); {708#true} is VALID [2018-11-23 12:53:54,611 INFO L273 TraceCheckUtils]: 31: Hoare triple {708#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {708#true} is VALID [2018-11-23 12:53:54,611 INFO L273 TraceCheckUtils]: 32: Hoare triple {708#true} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {708#true} is VALID [2018-11-23 12:53:54,612 INFO L273 TraceCheckUtils]: 33: Hoare triple {708#true} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {708#true} is VALID [2018-11-23 12:53:54,612 INFO L273 TraceCheckUtils]: 34: Hoare triple {708#true} assume true; {708#true} is VALID [2018-11-23 12:53:54,612 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {708#true} {709#false} #100#return; {709#false} is VALID [2018-11-23 12:53:54,612 INFO L256 TraceCheckUtils]: 36: Hoare triple {709#false} call g(~a~0.base, ~a~0.offset); {709#false} is VALID [2018-11-23 12:53:54,613 INFO L273 TraceCheckUtils]: 37: Hoare triple {709#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {709#false} is VALID [2018-11-23 12:53:54,613 INFO L273 TraceCheckUtils]: 38: Hoare triple {709#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {709#false} is VALID [2018-11-23 12:53:54,613 INFO L273 TraceCheckUtils]: 39: Hoare triple {709#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {709#false} is VALID [2018-11-23 12:53:54,613 INFO L273 TraceCheckUtils]: 40: Hoare triple {709#false} assume !(1 == #t~mem5); {709#false} is VALID [2018-11-23 12:53:54,613 INFO L256 TraceCheckUtils]: 41: Hoare triple {709#false} call __blast_assert(); {709#false} is VALID [2018-11-23 12:53:54,614 INFO L273 TraceCheckUtils]: 42: Hoare triple {709#false} assume !false; {709#false} is VALID [2018-11-23 12:53:54,617 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2018-11-23 12:53:54,617 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:53:54,617 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:53:54,636 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:54,699 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:54,731 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:54,734 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:53:55,098 INFO L256 TraceCheckUtils]: 0: Hoare triple {708#true} call ULTIMATE.init(); {708#true} is VALID [2018-11-23 12:53:55,098 INFO L273 TraceCheckUtils]: 1: Hoare triple {708#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {708#true} is VALID [2018-11-23 12:53:55,098 INFO L273 TraceCheckUtils]: 2: Hoare triple {708#true} assume true; {708#true} is VALID [2018-11-23 12:53:55,099 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {708#true} {708#true} #106#return; {708#true} is VALID [2018-11-23 12:53:55,099 INFO L256 TraceCheckUtils]: 4: Hoare triple {708#true} call #t~ret9 := main(); {708#true} is VALID [2018-11-23 12:53:55,099 INFO L273 TraceCheckUtils]: 5: Hoare triple {708#true} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {708#true} is VALID [2018-11-23 12:53:55,099 INFO L256 TraceCheckUtils]: 6: Hoare triple {708#true} call init(); {708#true} is VALID [2018-11-23 12:53:55,100 INFO L273 TraceCheckUtils]: 7: Hoare triple {708#true} havoc ~i~0;~i~0 := 0; {736#(<= init_~i~0 0)} is VALID [2018-11-23 12:53:55,104 INFO L273 TraceCheckUtils]: 8: Hoare triple {736#(<= init_~i~0 0)} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {736#(<= init_~i~0 0)} is VALID [2018-11-23 12:53:55,105 INFO L273 TraceCheckUtils]: 9: Hoare triple {736#(<= init_~i~0 0)} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {711#(<= init_~i~0 1)} is VALID [2018-11-23 12:53:55,110 INFO L273 TraceCheckUtils]: 10: Hoare triple {711#(<= init_~i~0 1)} assume !(~i~0 < 2); {709#false} is VALID [2018-11-23 12:53:55,111 INFO L273 TraceCheckUtils]: 11: Hoare triple {709#false} assume true; {709#false} is VALID [2018-11-23 12:53:55,111 INFO L268 TraceCheckUtils]: 12: Hoare quadruple {709#false} {708#true} #92#return; {709#false} is VALID [2018-11-23 12:53:55,111 INFO L256 TraceCheckUtils]: 13: Hoare triple {709#false} call #t~ret7.base, #t~ret7.offset := malloc(4); {709#false} is VALID [2018-11-23 12:53:55,111 INFO L273 TraceCheckUtils]: 14: Hoare triple {709#false} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {709#false} is VALID [2018-11-23 12:53:55,111 INFO L273 TraceCheckUtils]: 15: Hoare triple {709#false} assume true; {709#false} is VALID [2018-11-23 12:53:55,112 INFO L268 TraceCheckUtils]: 16: Hoare quadruple {709#false} {709#false} #94#return; {709#false} is VALID [2018-11-23 12:53:55,112 INFO L273 TraceCheckUtils]: 17: Hoare triple {709#false} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {709#false} is VALID [2018-11-23 12:53:55,112 INFO L256 TraceCheckUtils]: 18: Hoare triple {709#false} call #t~ret8.base, #t~ret8.offset := malloc(4); {709#false} is VALID [2018-11-23 12:53:55,112 INFO L273 TraceCheckUtils]: 19: Hoare triple {709#false} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {709#false} is VALID [2018-11-23 12:53:55,113 INFO L273 TraceCheckUtils]: 20: Hoare triple {709#false} assume true; {709#false} is VALID [2018-11-23 12:53:55,113 INFO L268 TraceCheckUtils]: 21: Hoare quadruple {709#false} {709#false} #96#return; {709#false} is VALID [2018-11-23 12:53:55,113 INFO L273 TraceCheckUtils]: 22: Hoare triple {709#false} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {709#false} is VALID [2018-11-23 12:53:55,113 INFO L273 TraceCheckUtils]: 23: Hoare triple {709#false} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {709#false} is VALID [2018-11-23 12:53:55,114 INFO L256 TraceCheckUtils]: 24: Hoare triple {709#false} call f(~a~0.base, ~a~0.offset); {709#false} is VALID [2018-11-23 12:53:55,114 INFO L273 TraceCheckUtils]: 25: Hoare triple {709#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {709#false} is VALID [2018-11-23 12:53:55,114 INFO L273 TraceCheckUtils]: 26: Hoare triple {709#false} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {709#false} is VALID [2018-11-23 12:53:55,115 INFO L273 TraceCheckUtils]: 27: Hoare triple {709#false} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {709#false} is VALID [2018-11-23 12:53:55,115 INFO L273 TraceCheckUtils]: 28: Hoare triple {709#false} assume true; {709#false} is VALID [2018-11-23 12:53:55,115 INFO L268 TraceCheckUtils]: 29: Hoare quadruple {709#false} {709#false} #98#return; {709#false} is VALID [2018-11-23 12:53:55,116 INFO L256 TraceCheckUtils]: 30: Hoare triple {709#false} call f(~b~0.base, ~b~0.offset); {709#false} is VALID [2018-11-23 12:53:55,116 INFO L273 TraceCheckUtils]: 31: Hoare triple {709#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {709#false} is VALID [2018-11-23 12:53:55,116 INFO L273 TraceCheckUtils]: 32: Hoare triple {709#false} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {709#false} is VALID [2018-11-23 12:53:55,117 INFO L273 TraceCheckUtils]: 33: Hoare triple {709#false} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {709#false} is VALID [2018-11-23 12:53:55,117 INFO L273 TraceCheckUtils]: 34: Hoare triple {709#false} assume true; {709#false} is VALID [2018-11-23 12:53:55,117 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {709#false} {709#false} #100#return; {709#false} is VALID [2018-11-23 12:53:55,118 INFO L256 TraceCheckUtils]: 36: Hoare triple {709#false} call g(~a~0.base, ~a~0.offset); {709#false} is VALID [2018-11-23 12:53:55,118 INFO L273 TraceCheckUtils]: 37: Hoare triple {709#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {709#false} is VALID [2018-11-23 12:53:55,118 INFO L273 TraceCheckUtils]: 38: Hoare triple {709#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {709#false} is VALID [2018-11-23 12:53:55,119 INFO L273 TraceCheckUtils]: 39: Hoare triple {709#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {709#false} is VALID [2018-11-23 12:53:55,119 INFO L273 TraceCheckUtils]: 40: Hoare triple {709#false} assume !(1 == #t~mem5); {709#false} is VALID [2018-11-23 12:53:55,119 INFO L256 TraceCheckUtils]: 41: Hoare triple {709#false} call __blast_assert(); {709#false} is VALID [2018-11-23 12:53:55,119 INFO L273 TraceCheckUtils]: 42: Hoare triple {709#false} assume !false; {709#false} is VALID [2018-11-23 12:53:55,122 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2018-11-23 12:53:55,145 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:53:55,145 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4] total 5 [2018-11-23 12:53:55,146 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 43 [2018-11-23 12:53:55,148 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:55,149 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-23 12:53:55,257 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:55,257 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:53:55,257 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:53:55,257 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=10, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:53:55,258 INFO L87 Difference]: Start difference. First operand 43 states and 50 transitions. Second operand 5 states. [2018-11-23 12:53:55,567 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:55,567 INFO L93 Difference]: Finished difference Result 77 states and 91 transitions. [2018-11-23 12:53:55,567 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 12:53:55,568 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 43 [2018-11-23 12:53:55,568 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:53:55,568 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:53:55,572 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 89 transitions. [2018-11-23 12:53:55,572 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:53:55,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 89 transitions. [2018-11-23 12:53:55,575 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 89 transitions. [2018-11-23 12:53:55,777 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 89 edges. 89 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:55,780 INFO L225 Difference]: With dead ends: 77 [2018-11-23 12:53:55,780 INFO L226 Difference]: Without dead ends: 45 [2018-11-23 12:53:55,781 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 46 GetRequests, 43 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=10, Invalid=10, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:53:55,782 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2018-11-23 12:53:55,821 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 45. [2018-11-23 12:53:55,821 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:53:55,821 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand 45 states. [2018-11-23 12:53:55,821 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 45 states. [2018-11-23 12:53:55,822 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 45 states. [2018-11-23 12:53:55,825 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:55,825 INFO L93 Difference]: Finished difference Result 45 states and 52 transitions. [2018-11-23 12:53:55,825 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 52 transitions. [2018-11-23 12:53:55,826 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:55,826 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:55,827 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 45 states. [2018-11-23 12:53:55,827 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 45 states. [2018-11-23 12:53:55,830 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:53:55,830 INFO L93 Difference]: Finished difference Result 45 states and 52 transitions. [2018-11-23 12:53:55,830 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 52 transitions. [2018-11-23 12:53:55,831 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:53:55,831 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:53:55,832 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:53:55,832 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:53:55,832 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2018-11-23 12:53:55,835 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 52 transitions. [2018-11-23 12:53:55,835 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 52 transitions. Word has length 43 [2018-11-23 12:53:55,835 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:53:55,835 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 52 transitions. [2018-11-23 12:53:55,836 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:53:55,836 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 52 transitions. [2018-11-23 12:53:55,837 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2018-11-23 12:53:55,837 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:53:55,838 INFO L402 BasicCegarLoop]: trace histogram [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, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:53:55,838 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:53:55,838 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:53:55,838 INFO L82 PathProgramCache]: Analyzing trace with hash 1996976156, now seen corresponding path program 2 times [2018-11-23 12:53:55,839 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:53:55,839 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:53:55,840 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:55,840 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:53:55,840 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:53:55,983 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:56,728 INFO L256 TraceCheckUtils]: 0: Hoare triple {1113#true} call ULTIMATE.init(); {1113#true} is VALID [2018-11-23 12:53:56,730 INFO L273 TraceCheckUtils]: 1: Hoare triple {1113#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:53:56,731 INFO L273 TraceCheckUtils]: 2: Hoare triple {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} assume true; {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:53:56,733 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} {1113#true} #106#return; {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:53:56,734 INFO L256 TraceCheckUtils]: 4: Hoare triple {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} call #t~ret9 := main(); {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:53:56,735 INFO L273 TraceCheckUtils]: 5: Hoare triple {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:53:56,735 INFO L256 TraceCheckUtils]: 6: Hoare triple {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} call init(); {1113#true} is VALID [2018-11-23 12:53:56,736 INFO L273 TraceCheckUtils]: 7: Hoare triple {1113#true} havoc ~i~0;~i~0 := 0; {1113#true} is VALID [2018-11-23 12:53:56,736 INFO L273 TraceCheckUtils]: 8: Hoare triple {1113#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {1113#true} is VALID [2018-11-23 12:53:56,737 INFO L273 TraceCheckUtils]: 9: Hoare triple {1113#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {1113#true} is VALID [2018-11-23 12:53:56,737 INFO L273 TraceCheckUtils]: 10: Hoare triple {1113#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {1113#true} is VALID [2018-11-23 12:53:56,738 INFO L273 TraceCheckUtils]: 11: Hoare triple {1113#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {1113#true} is VALID [2018-11-23 12:53:56,738 INFO L273 TraceCheckUtils]: 12: Hoare triple {1113#true} assume !(~i~0 < 2); {1113#true} is VALID [2018-11-23 12:53:56,739 INFO L273 TraceCheckUtils]: 13: Hoare triple {1113#true} assume true; {1113#true} is VALID [2018-11-23 12:53:56,743 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {1113#true} {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} #92#return; {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:53:56,744 INFO L256 TraceCheckUtils]: 15: Hoare triple {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} call #t~ret7.base, #t~ret7.offset := malloc(4); {1116#(= ~counter~0 |old(~counter~0)|)} is VALID [2018-11-23 12:53:56,744 INFO L273 TraceCheckUtils]: 16: Hoare triple {1116#(= ~counter~0 |old(~counter~0)|)} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {1117#(and (= |malloc_#res.offset| |old(~counter~0)|) (= 0 |malloc_#res.base|))} is VALID [2018-11-23 12:53:56,745 INFO L273 TraceCheckUtils]: 17: Hoare triple {1117#(and (= |malloc_#res.offset| |old(~counter~0)|) (= 0 |malloc_#res.base|))} assume true; {1117#(and (= |malloc_#res.offset| |old(~counter~0)|) (= 0 |malloc_#res.base|))} is VALID [2018-11-23 12:53:56,746 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {1117#(and (= |malloc_#res.offset| |old(~counter~0)|) (= 0 |malloc_#res.base|))} {1115#(and (or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= |~#pp~0.offset| 0))} #94#return; {1118#(and (or (= 0 |main_#t~ret7.offset|) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= 0 |main_#t~ret7.base|) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:53:56,747 INFO L273 TraceCheckUtils]: 19: Hoare triple {1118#(and (or (= 0 |main_#t~ret7.offset|) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= 0 |main_#t~ret7.base|) (= |~#pp~0.offset| 0))} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1119#(and (= 0 main_~a~0.base) (= |~#pp~0.offset| 0) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} is VALID [2018-11-23 12:53:56,748 INFO L256 TraceCheckUtils]: 20: Hoare triple {1119#(and (= 0 main_~a~0.base) (= |~#pp~0.offset| 0) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} call #t~ret8.base, #t~ret8.offset := malloc(4); {1113#true} is VALID [2018-11-23 12:53:56,748 INFO L273 TraceCheckUtils]: 21: Hoare triple {1113#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {1113#true} is VALID [2018-11-23 12:53:56,749 INFO L273 TraceCheckUtils]: 22: Hoare triple {1113#true} assume true; {1113#true} is VALID [2018-11-23 12:53:56,750 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {1113#true} {1119#(and (= 0 main_~a~0.base) (= |~#pp~0.offset| 0) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} #96#return; {1119#(and (= 0 main_~a~0.base) (= |~#pp~0.offset| 0) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} is VALID [2018-11-23 12:53:56,752 INFO L273 TraceCheckUtils]: 24: Hoare triple {1119#(and (= 0 main_~a~0.base) (= |~#pp~0.offset| 0) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1119#(and (= 0 main_~a~0.base) (= |~#pp~0.offset| 0) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} is VALID [2018-11-23 12:53:56,752 INFO L273 TraceCheckUtils]: 25: Hoare triple {1119#(and (= 0 main_~a~0.base) (= |~#pp~0.offset| 0) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {1120#(and (= |~#pp~0.offset| 0) (not (= 0 main_~a~0.offset)) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:53:56,753 INFO L256 TraceCheckUtils]: 26: Hoare triple {1120#(and (= |~#pp~0.offset| 0) (not (= 0 main_~a~0.offset)) (not (= |~#pp~0.base| |~#pstate~0.base|)))} call f(~a~0.base, ~a~0.offset); {1113#true} is VALID [2018-11-23 12:53:56,755 INFO L273 TraceCheckUtils]: 27: Hoare triple {1113#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {1121#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0))} is VALID [2018-11-23 12:53:56,756 INFO L273 TraceCheckUtils]: 28: Hoare triple {1121#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {1122#(or (not (= |~#pp~0.offset| 0)) (and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0)))} is VALID [2018-11-23 12:53:56,758 INFO L273 TraceCheckUtils]: 29: Hoare triple {1122#(or (not (= |~#pp~0.offset| 0)) (and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0)))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {1123#(or (= |~#pp~0.base| |~#pstate~0.base|) (not (= |~#pp~0.offset| 0)) (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) 0)))} is VALID [2018-11-23 12:53:56,762 INFO L273 TraceCheckUtils]: 30: Hoare triple {1123#(or (= |~#pp~0.base| |~#pstate~0.base|) (not (= |~#pp~0.offset| 0)) (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) 0)))} assume true; {1123#(or (= |~#pp~0.base| |~#pstate~0.base|) (not (= |~#pp~0.offset| 0)) (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) 0)))} is VALID [2018-11-23 12:53:56,763 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1123#(or (= |~#pp~0.base| |~#pstate~0.base|) (not (= |~#pp~0.offset| 0)) (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) 0)))} {1120#(and (= |~#pp~0.offset| 0) (not (= 0 main_~a~0.offset)) (not (= |~#pp~0.base| |~#pstate~0.base|)))} #98#return; {1124#(and (not (= 0 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) 0))) (= |~#pp~0.offset| 0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:53:56,764 INFO L256 TraceCheckUtils]: 32: Hoare triple {1124#(and (not (= 0 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) 0))) (= |~#pp~0.offset| 0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} call f(~b~0.base, ~b~0.offset); {1125#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} is VALID [2018-11-23 12:53:56,765 INFO L273 TraceCheckUtils]: 33: Hoare triple {1125#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {1126#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:53:56,766 INFO L273 TraceCheckUtils]: 34: Hoare triple {1126#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {1127#(and (or (and (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (= (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| (* 4 f_~i~1))) |f_#t~mem2.offset|)) (not (= |~#pp~0.offset| 0))) (= f_~i~1 0))} is VALID [2018-11-23 12:53:56,769 INFO L273 TraceCheckUtils]: 35: Hoare triple {1127#(and (or (and (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (= (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| (* 4 f_~i~1))) |f_#t~mem2.offset|)) (not (= |~#pp~0.offset| 0))) (= f_~i~1 0))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {1128#(or (= |~#pp~0.base| |~#pstate~0.base|) (not (= |~#pp~0.offset| 0)) (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) 0)))} is VALID [2018-11-23 12:53:56,770 INFO L273 TraceCheckUtils]: 36: Hoare triple {1128#(or (= |~#pp~0.base| |~#pstate~0.base|) (not (= |~#pp~0.offset| 0)) (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) 0)))} assume true; {1128#(or (= |~#pp~0.base| |~#pstate~0.base|) (not (= |~#pp~0.offset| 0)) (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) 0)))} is VALID [2018-11-23 12:53:56,771 INFO L268 TraceCheckUtils]: 37: Hoare quadruple {1128#(or (= |~#pp~0.base| |~#pstate~0.base|) (not (= |~#pp~0.offset| 0)) (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) 0)))} {1124#(and (not (= 0 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) 0))) (= |~#pp~0.offset| 0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} #100#return; {1114#false} is VALID [2018-11-23 12:53:56,772 INFO L256 TraceCheckUtils]: 38: Hoare triple {1114#false} call g(~a~0.base, ~a~0.offset); {1114#false} is VALID [2018-11-23 12:53:56,772 INFO L273 TraceCheckUtils]: 39: Hoare triple {1114#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {1114#false} is VALID [2018-11-23 12:53:56,772 INFO L273 TraceCheckUtils]: 40: Hoare triple {1114#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {1114#false} is VALID [2018-11-23 12:53:56,773 INFO L273 TraceCheckUtils]: 41: Hoare triple {1114#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {1114#false} is VALID [2018-11-23 12:53:56,773 INFO L273 TraceCheckUtils]: 42: Hoare triple {1114#false} assume !(1 == #t~mem5); {1114#false} is VALID [2018-11-23 12:53:56,773 INFO L256 TraceCheckUtils]: 43: Hoare triple {1114#false} call __blast_assert(); {1114#false} is VALID [2018-11-23 12:53:56,774 INFO L273 TraceCheckUtils]: 44: Hoare triple {1114#false} assume !false; {1114#false} is VALID [2018-11-23 12:53:56,783 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 1 proven. 7 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:53:56,783 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:53:56,783 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:53:56,804 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-23 12:53:56,855 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2018-11-23 12:53:56,855 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:53:56,880 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:53:56,883 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:53:57,030 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 8 [2018-11-23 12:53:57,039 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 8 treesize of output 7 [2018-11-23 12:53:57,044 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:53:57,048 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:53:57,055 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:53:57,056 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:15, output treesize:11 [2018-11-23 12:53:57,164 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 11 [2018-11-23 12:53:57,205 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 3 [2018-11-23 12:53:57,216 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:53:57,221 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:53:57,223 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:53:57,224 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:15, output treesize:3 [2018-11-23 12:53:57,227 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:53:57,227 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |~#pstate~0.base|]. (let ((.cse0 (select (select |#memory_int| |~#pstate~0.base|) 0))) (and (= .cse0 |g_#t~mem5|) (= 1 .cse0))) [2018-11-23 12:53:57,228 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (= 1 |g_#t~mem5|) [2018-11-23 12:53:57,250 INFO L256 TraceCheckUtils]: 0: Hoare triple {1113#true} call ULTIMATE.init(); {1113#true} is VALID [2018-11-23 12:53:57,252 INFO L273 TraceCheckUtils]: 1: Hoare triple {1113#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,256 INFO L273 TraceCheckUtils]: 2: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume true; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,260 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1135#(= |~#pstate~0.offset| 0)} {1113#true} #106#return; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,266 INFO L256 TraceCheckUtils]: 4: Hoare triple {1135#(= |~#pstate~0.offset| 0)} call #t~ret9 := main(); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,267 INFO L273 TraceCheckUtils]: 5: Hoare triple {1135#(= |~#pstate~0.offset| 0)} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,268 INFO L256 TraceCheckUtils]: 6: Hoare triple {1135#(= |~#pstate~0.offset| 0)} call init(); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,285 INFO L273 TraceCheckUtils]: 7: Hoare triple {1135#(= |~#pstate~0.offset| 0)} havoc ~i~0;~i~0 := 0; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,285 INFO L273 TraceCheckUtils]: 8: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,286 INFO L273 TraceCheckUtils]: 9: Hoare triple {1135#(= |~#pstate~0.offset| 0)} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,286 INFO L273 TraceCheckUtils]: 10: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,287 INFO L273 TraceCheckUtils]: 11: Hoare triple {1135#(= |~#pstate~0.offset| 0)} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,287 INFO L273 TraceCheckUtils]: 12: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume !(~i~0 < 2); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,287 INFO L273 TraceCheckUtils]: 13: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume true; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,288 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {1135#(= |~#pstate~0.offset| 0)} {1135#(= |~#pstate~0.offset| 0)} #92#return; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,288 INFO L256 TraceCheckUtils]: 15: Hoare triple {1135#(= |~#pstate~0.offset| 0)} call #t~ret7.base, #t~ret7.offset := malloc(4); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,289 INFO L273 TraceCheckUtils]: 16: Hoare triple {1135#(= |~#pstate~0.offset| 0)} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,289 INFO L273 TraceCheckUtils]: 17: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume true; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,290 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {1135#(= |~#pstate~0.offset| 0)} {1135#(= |~#pstate~0.offset| 0)} #94#return; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,291 INFO L273 TraceCheckUtils]: 19: Hoare triple {1135#(= |~#pstate~0.offset| 0)} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,292 INFO L256 TraceCheckUtils]: 20: Hoare triple {1135#(= |~#pstate~0.offset| 0)} call #t~ret8.base, #t~ret8.offset := malloc(4); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,293 INFO L273 TraceCheckUtils]: 21: Hoare triple {1135#(= |~#pstate~0.offset| 0)} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,293 INFO L273 TraceCheckUtils]: 22: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume true; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,294 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {1135#(= |~#pstate~0.offset| 0)} {1135#(= |~#pstate~0.offset| 0)} #96#return; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,295 INFO L273 TraceCheckUtils]: 24: Hoare triple {1135#(= |~#pstate~0.offset| 0)} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,296 INFO L273 TraceCheckUtils]: 25: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,297 INFO L256 TraceCheckUtils]: 26: Hoare triple {1135#(= |~#pstate~0.offset| 0)} call f(~a~0.base, ~a~0.offset); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,304 INFO L273 TraceCheckUtils]: 27: Hoare triple {1135#(= |~#pstate~0.offset| 0)} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,305 INFO L273 TraceCheckUtils]: 28: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,306 INFO L273 TraceCheckUtils]: 29: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,309 INFO L273 TraceCheckUtils]: 30: Hoare triple {1135#(= |~#pstate~0.offset| 0)} assume true; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,328 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {1135#(= |~#pstate~0.offset| 0)} {1135#(= |~#pstate~0.offset| 0)} #98#return; {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,343 INFO L256 TraceCheckUtils]: 32: Hoare triple {1135#(= |~#pstate~0.offset| 0)} call f(~b~0.base, ~b~0.offset); {1135#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:53:57,350 INFO L273 TraceCheckUtils]: 33: Hoare triple {1135#(= |~#pstate~0.offset| 0)} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {1232#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} is VALID [2018-11-23 12:53:57,351 INFO L273 TraceCheckUtils]: 34: Hoare triple {1232#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {1232#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} is VALID [2018-11-23 12:53:57,353 INFO L273 TraceCheckUtils]: 35: Hoare triple {1232#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {1239#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1))} is VALID [2018-11-23 12:53:57,353 INFO L273 TraceCheckUtils]: 36: Hoare triple {1239#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1))} assume true; {1239#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1))} is VALID [2018-11-23 12:53:57,354 INFO L268 TraceCheckUtils]: 37: Hoare quadruple {1239#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1))} {1135#(= |~#pstate~0.offset| 0)} #100#return; {1239#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1))} is VALID [2018-11-23 12:53:57,355 INFO L256 TraceCheckUtils]: 38: Hoare triple {1239#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1))} call g(~a~0.base, ~a~0.offset); {1239#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1))} is VALID [2018-11-23 12:53:57,357 INFO L273 TraceCheckUtils]: 39: Hoare triple {1239#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1))} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {1252#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1) (= g_~i~2 0))} is VALID [2018-11-23 12:53:57,358 INFO L273 TraceCheckUtils]: 40: Hoare triple {1252#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1) (= g_~i~2 0))} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {1252#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1) (= g_~i~2 0))} is VALID [2018-11-23 12:53:57,359 INFO L273 TraceCheckUtils]: 41: Hoare triple {1252#(and (= |~#pstate~0.offset| 0) (= (select (select |#memory_int| |~#pstate~0.base|) |~#pstate~0.offset|) 1) (= g_~i~2 0))} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {1259#(= 1 |g_#t~mem5|)} is VALID [2018-11-23 12:53:57,360 INFO L273 TraceCheckUtils]: 42: Hoare triple {1259#(= 1 |g_#t~mem5|)} assume !(1 == #t~mem5); {1114#false} is VALID [2018-11-23 12:53:57,360 INFO L256 TraceCheckUtils]: 43: Hoare triple {1114#false} call __blast_assert(); {1114#false} is VALID [2018-11-23 12:53:57,360 INFO L273 TraceCheckUtils]: 44: Hoare triple {1114#false} assume !false; {1114#false} is VALID [2018-11-23 12:53:57,366 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2018-11-23 12:53:57,386 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 1 imperfect interpolant sequences. [2018-11-23 12:53:57,386 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [7] imperfect sequences [16] total 21 [2018-11-23 12:53:57,387 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 45 [2018-11-23 12:53:57,387 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:53:57,387 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states. [2018-11-23 12:53:57,563 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 81 edges. 81 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:53:57,563 INFO L459 AbstractCegarLoop]: Interpolant automaton has 21 states [2018-11-23 12:53:57,564 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2018-11-23 12:53:57,564 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=47, Invalid=373, Unknown=0, NotChecked=0, Total=420 [2018-11-23 12:53:57,565 INFO L87 Difference]: Start difference. First operand 45 states and 52 transitions. Second operand 21 states. [2018-11-23 12:54:00,234 WARN L180 SmtUtils]: Spent 110.00 ms on a formula simplification. DAG size of input: 36 DAG size of output: 35 [2018-11-23 12:54:04,561 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:04,561 INFO L93 Difference]: Finished difference Result 143 states and 178 transitions. [2018-11-23 12:54:04,561 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 35 states. [2018-11-23 12:54:04,561 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 45 [2018-11-23 12:54:04,562 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:54:04,562 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 12:54:04,569 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 35 states and 176 transitions. [2018-11-23 12:54:04,569 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 12:54:04,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 35 states and 176 transitions. [2018-11-23 12:54:04,576 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 35 states and 176 transitions. [2018-11-23 12:54:04,931 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 176 edges. 176 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:04,937 INFO L225 Difference]: With dead ends: 143 [2018-11-23 12:54:04,937 INFO L226 Difference]: Without dead ends: 126 [2018-11-23 12:54:04,940 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 97 GetRequests, 44 SyntacticMatches, 1 SemanticMatches, 52 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 533 ImplicationChecksByTransitivity, 2.1s TimeCoverageRelationStatistics Valid=467, Invalid=2395, Unknown=0, NotChecked=0, Total=2862 [2018-11-23 12:54:04,940 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 126 states. [2018-11-23 12:54:05,369 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 126 to 98. [2018-11-23 12:54:05,369 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:54:05,369 INFO L82 GeneralOperation]: Start isEquivalent. First operand 126 states. Second operand 98 states. [2018-11-23 12:54:05,369 INFO L74 IsIncluded]: Start isIncluded. First operand 126 states. Second operand 98 states. [2018-11-23 12:54:05,370 INFO L87 Difference]: Start difference. First operand 126 states. Second operand 98 states. [2018-11-23 12:54:05,377 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:05,377 INFO L93 Difference]: Finished difference Result 126 states and 152 transitions. [2018-11-23 12:54:05,377 INFO L276 IsEmpty]: Start isEmpty. Operand 126 states and 152 transitions. [2018-11-23 12:54:05,379 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:05,379 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:05,379 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 126 states. [2018-11-23 12:54:05,380 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 126 states. [2018-11-23 12:54:05,386 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:05,387 INFO L93 Difference]: Finished difference Result 126 states and 152 transitions. [2018-11-23 12:54:05,387 INFO L276 IsEmpty]: Start isEmpty. Operand 126 states and 152 transitions. [2018-11-23 12:54:05,389 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:05,389 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:05,389 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:54:05,389 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:54:05,389 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 98 states. [2018-11-23 12:54:05,394 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 122 transitions. [2018-11-23 12:54:05,395 INFO L78 Accepts]: Start accepts. Automaton has 98 states and 122 transitions. Word has length 45 [2018-11-23 12:54:05,395 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:54:05,395 INFO L480 AbstractCegarLoop]: Abstraction has 98 states and 122 transitions. [2018-11-23 12:54:05,395 INFO L481 AbstractCegarLoop]: Interpolant automaton has 21 states. [2018-11-23 12:54:05,395 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 122 transitions. [2018-11-23 12:54:05,397 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2018-11-23 12:54:05,397 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:54:05,397 INFO L402 BasicCegarLoop]: trace histogram [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, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:54:05,397 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:54:05,398 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:54:05,398 INFO L82 PathProgramCache]: Analyzing trace with hash 811190698, now seen corresponding path program 1 times [2018-11-23 12:54:05,398 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:54:05,398 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:54:05,399 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:05,399 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:54:05,399 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:05,415 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:05,531 INFO L256 TraceCheckUtils]: 0: Hoare triple {1928#true} call ULTIMATE.init(); {1928#true} is VALID [2018-11-23 12:54:05,531 INFO L273 TraceCheckUtils]: 1: Hoare triple {1928#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {1928#true} is VALID [2018-11-23 12:54:05,532 INFO L273 TraceCheckUtils]: 2: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:05,532 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1928#true} {1928#true} #106#return; {1928#true} is VALID [2018-11-23 12:54:05,532 INFO L256 TraceCheckUtils]: 4: Hoare triple {1928#true} call #t~ret9 := main(); {1928#true} is VALID [2018-11-23 12:54:05,532 INFO L273 TraceCheckUtils]: 5: Hoare triple {1928#true} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {1928#true} is VALID [2018-11-23 12:54:05,533 INFO L256 TraceCheckUtils]: 6: Hoare triple {1928#true} call init(); {1928#true} is VALID [2018-11-23 12:54:05,533 INFO L273 TraceCheckUtils]: 7: Hoare triple {1928#true} havoc ~i~0;~i~0 := 0; {1928#true} is VALID [2018-11-23 12:54:05,533 INFO L273 TraceCheckUtils]: 8: Hoare triple {1928#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {1928#true} is VALID [2018-11-23 12:54:05,533 INFO L273 TraceCheckUtils]: 9: Hoare triple {1928#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {1928#true} is VALID [2018-11-23 12:54:05,533 INFO L273 TraceCheckUtils]: 10: Hoare triple {1928#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {1928#true} is VALID [2018-11-23 12:54:05,533 INFO L273 TraceCheckUtils]: 11: Hoare triple {1928#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {1928#true} is VALID [2018-11-23 12:54:05,534 INFO L273 TraceCheckUtils]: 12: Hoare triple {1928#true} assume !(~i~0 < 2); {1928#true} is VALID [2018-11-23 12:54:05,534 INFO L273 TraceCheckUtils]: 13: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:05,534 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {1928#true} {1928#true} #92#return; {1928#true} is VALID [2018-11-23 12:54:05,534 INFO L256 TraceCheckUtils]: 15: Hoare triple {1928#true} call #t~ret7.base, #t~ret7.offset := malloc(4); {1928#true} is VALID [2018-11-23 12:54:05,535 INFO L273 TraceCheckUtils]: 16: Hoare triple {1928#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {1928#true} is VALID [2018-11-23 12:54:05,535 INFO L273 TraceCheckUtils]: 17: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:05,535 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {1928#true} {1928#true} #94#return; {1928#true} is VALID [2018-11-23 12:54:05,535 INFO L273 TraceCheckUtils]: 19: Hoare triple {1928#true} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1928#true} is VALID [2018-11-23 12:54:05,535 INFO L256 TraceCheckUtils]: 20: Hoare triple {1928#true} call #t~ret8.base, #t~ret8.offset := malloc(4); {1928#true} is VALID [2018-11-23 12:54:05,535 INFO L273 TraceCheckUtils]: 21: Hoare triple {1928#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {1928#true} is VALID [2018-11-23 12:54:05,536 INFO L273 TraceCheckUtils]: 22: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:05,536 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {1928#true} {1928#true} #96#return; {1928#true} is VALID [2018-11-23 12:54:05,536 INFO L273 TraceCheckUtils]: 24: Hoare triple {1928#true} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1928#true} is VALID [2018-11-23 12:54:05,536 INFO L273 TraceCheckUtils]: 25: Hoare triple {1928#true} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {1928#true} is VALID [2018-11-23 12:54:05,536 INFO L256 TraceCheckUtils]: 26: Hoare triple {1928#true} call f(~a~0.base, ~a~0.offset); {1928#true} is VALID [2018-11-23 12:54:05,537 INFO L273 TraceCheckUtils]: 27: Hoare triple {1928#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {1930#(= f_~i~1 0)} is VALID [2018-11-23 12:54:05,537 INFO L273 TraceCheckUtils]: 28: Hoare triple {1930#(= f_~i~1 0)} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {1930#(= f_~i~1 0)} is VALID [2018-11-23 12:54:05,540 INFO L273 TraceCheckUtils]: 29: Hoare triple {1930#(= f_~i~1 0)} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {1930#(= f_~i~1 0)} is VALID [2018-11-23 12:54:05,540 INFO L273 TraceCheckUtils]: 30: Hoare triple {1930#(= f_~i~1 0)} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {1931#(<= f_~i~1 1)} is VALID [2018-11-23 12:54:05,543 INFO L273 TraceCheckUtils]: 31: Hoare triple {1931#(<= f_~i~1 1)} assume !(~i~1 < 2); {1929#false} is VALID [2018-11-23 12:54:05,543 INFO L273 TraceCheckUtils]: 32: Hoare triple {1929#false} assume true; {1929#false} is VALID [2018-11-23 12:54:05,543 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {1929#false} {1928#true} #98#return; {1929#false} is VALID [2018-11-23 12:54:05,543 INFO L256 TraceCheckUtils]: 34: Hoare triple {1929#false} call f(~b~0.base, ~b~0.offset); {1928#true} is VALID [2018-11-23 12:54:05,543 INFO L273 TraceCheckUtils]: 35: Hoare triple {1928#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {1928#true} is VALID [2018-11-23 12:54:05,544 INFO L273 TraceCheckUtils]: 36: Hoare triple {1928#true} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {1928#true} is VALID [2018-11-23 12:54:05,544 INFO L273 TraceCheckUtils]: 37: Hoare triple {1928#true} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {1928#true} is VALID [2018-11-23 12:54:05,544 INFO L273 TraceCheckUtils]: 38: Hoare triple {1928#true} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {1928#true} is VALID [2018-11-23 12:54:05,544 INFO L273 TraceCheckUtils]: 39: Hoare triple {1928#true} assume !(~i~1 < 2); {1928#true} is VALID [2018-11-23 12:54:05,544 INFO L273 TraceCheckUtils]: 40: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:05,545 INFO L268 TraceCheckUtils]: 41: Hoare quadruple {1928#true} {1929#false} #100#return; {1929#false} is VALID [2018-11-23 12:54:05,545 INFO L256 TraceCheckUtils]: 42: Hoare triple {1929#false} call g(~a~0.base, ~a~0.offset); {1929#false} is VALID [2018-11-23 12:54:05,545 INFO L273 TraceCheckUtils]: 43: Hoare triple {1929#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {1929#false} is VALID [2018-11-23 12:54:05,545 INFO L273 TraceCheckUtils]: 44: Hoare triple {1929#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {1929#false} is VALID [2018-11-23 12:54:05,545 INFO L273 TraceCheckUtils]: 45: Hoare triple {1929#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {1929#false} is VALID [2018-11-23 12:54:05,546 INFO L273 TraceCheckUtils]: 46: Hoare triple {1929#false} assume !(1 == #t~mem5); {1929#false} is VALID [2018-11-23 12:54:05,546 INFO L256 TraceCheckUtils]: 47: Hoare triple {1929#false} call __blast_assert(); {1929#false} is VALID [2018-11-23 12:54:05,546 INFO L273 TraceCheckUtils]: 48: Hoare triple {1929#false} assume !false; {1929#false} is VALID [2018-11-23 12:54:05,549 INFO L134 CoverageAnalysis]: Checked inductivity of 18 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2018-11-23 12:54:05,549 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:54:05,549 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:54:05,560 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:54:05,610 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:05,650 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:05,652 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:54:06,016 INFO L256 TraceCheckUtils]: 0: Hoare triple {1928#true} call ULTIMATE.init(); {1928#true} is VALID [2018-11-23 12:54:06,016 INFO L273 TraceCheckUtils]: 1: Hoare triple {1928#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {1928#true} is VALID [2018-11-23 12:54:06,017 INFO L273 TraceCheckUtils]: 2: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:06,017 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1928#true} {1928#true} #106#return; {1928#true} is VALID [2018-11-23 12:54:06,017 INFO L256 TraceCheckUtils]: 4: Hoare triple {1928#true} call #t~ret9 := main(); {1928#true} is VALID [2018-11-23 12:54:06,017 INFO L273 TraceCheckUtils]: 5: Hoare triple {1928#true} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {1928#true} is VALID [2018-11-23 12:54:06,017 INFO L256 TraceCheckUtils]: 6: Hoare triple {1928#true} call init(); {1928#true} is VALID [2018-11-23 12:54:06,017 INFO L273 TraceCheckUtils]: 7: Hoare triple {1928#true} havoc ~i~0;~i~0 := 0; {1928#true} is VALID [2018-11-23 12:54:06,017 INFO L273 TraceCheckUtils]: 8: Hoare triple {1928#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {1928#true} is VALID [2018-11-23 12:54:06,017 INFO L273 TraceCheckUtils]: 9: Hoare triple {1928#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {1928#true} is VALID [2018-11-23 12:54:06,018 INFO L273 TraceCheckUtils]: 10: Hoare triple {1928#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {1928#true} is VALID [2018-11-23 12:54:06,018 INFO L273 TraceCheckUtils]: 11: Hoare triple {1928#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {1928#true} is VALID [2018-11-23 12:54:06,018 INFO L273 TraceCheckUtils]: 12: Hoare triple {1928#true} assume !(~i~0 < 2); {1928#true} is VALID [2018-11-23 12:54:06,018 INFO L273 TraceCheckUtils]: 13: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:06,018 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {1928#true} {1928#true} #92#return; {1928#true} is VALID [2018-11-23 12:54:06,018 INFO L256 TraceCheckUtils]: 15: Hoare triple {1928#true} call #t~ret7.base, #t~ret7.offset := malloc(4); {1928#true} is VALID [2018-11-23 12:54:06,018 INFO L273 TraceCheckUtils]: 16: Hoare triple {1928#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {1928#true} is VALID [2018-11-23 12:54:06,019 INFO L273 TraceCheckUtils]: 17: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:06,019 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {1928#true} {1928#true} #94#return; {1928#true} is VALID [2018-11-23 12:54:06,019 INFO L273 TraceCheckUtils]: 19: Hoare triple {1928#true} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1928#true} is VALID [2018-11-23 12:54:06,019 INFO L256 TraceCheckUtils]: 20: Hoare triple {1928#true} call #t~ret8.base, #t~ret8.offset := malloc(4); {1928#true} is VALID [2018-11-23 12:54:06,019 INFO L273 TraceCheckUtils]: 21: Hoare triple {1928#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {1928#true} is VALID [2018-11-23 12:54:06,019 INFO L273 TraceCheckUtils]: 22: Hoare triple {1928#true} assume true; {1928#true} is VALID [2018-11-23 12:54:06,019 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {1928#true} {1928#true} #96#return; {1928#true} is VALID [2018-11-23 12:54:06,020 INFO L273 TraceCheckUtils]: 24: Hoare triple {1928#true} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1928#true} is VALID [2018-11-23 12:54:06,020 INFO L273 TraceCheckUtils]: 25: Hoare triple {1928#true} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {1928#true} is VALID [2018-11-23 12:54:06,020 INFO L256 TraceCheckUtils]: 26: Hoare triple {1928#true} call f(~a~0.base, ~a~0.offset); {1928#true} is VALID [2018-11-23 12:54:06,020 INFO L273 TraceCheckUtils]: 27: Hoare triple {1928#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {2016#(<= f_~i~1 0)} is VALID [2018-11-23 12:54:06,021 INFO L273 TraceCheckUtils]: 28: Hoare triple {2016#(<= f_~i~1 0)} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {2016#(<= f_~i~1 0)} is VALID [2018-11-23 12:54:06,021 INFO L273 TraceCheckUtils]: 29: Hoare triple {2016#(<= f_~i~1 0)} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {2016#(<= f_~i~1 0)} is VALID [2018-11-23 12:54:06,022 INFO L273 TraceCheckUtils]: 30: Hoare triple {2016#(<= f_~i~1 0)} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {1931#(<= f_~i~1 1)} is VALID [2018-11-23 12:54:06,023 INFO L273 TraceCheckUtils]: 31: Hoare triple {1931#(<= f_~i~1 1)} assume !(~i~1 < 2); {1929#false} is VALID [2018-11-23 12:54:06,024 INFO L273 TraceCheckUtils]: 32: Hoare triple {1929#false} assume true; {1929#false} is VALID [2018-11-23 12:54:06,024 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {1929#false} {1928#true} #98#return; {1929#false} is VALID [2018-11-23 12:54:06,024 INFO L256 TraceCheckUtils]: 34: Hoare triple {1929#false} call f(~b~0.base, ~b~0.offset); {1929#false} is VALID [2018-11-23 12:54:06,024 INFO L273 TraceCheckUtils]: 35: Hoare triple {1929#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {1929#false} is VALID [2018-11-23 12:54:06,024 INFO L273 TraceCheckUtils]: 36: Hoare triple {1929#false} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {1929#false} is VALID [2018-11-23 12:54:06,024 INFO L273 TraceCheckUtils]: 37: Hoare triple {1929#false} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {1929#false} is VALID [2018-11-23 12:54:06,025 INFO L273 TraceCheckUtils]: 38: Hoare triple {1929#false} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {1929#false} is VALID [2018-11-23 12:54:06,025 INFO L273 TraceCheckUtils]: 39: Hoare triple {1929#false} assume !(~i~1 < 2); {1929#false} is VALID [2018-11-23 12:54:06,025 INFO L273 TraceCheckUtils]: 40: Hoare triple {1929#false} assume true; {1929#false} is VALID [2018-11-23 12:54:06,026 INFO L268 TraceCheckUtils]: 41: Hoare quadruple {1929#false} {1929#false} #100#return; {1929#false} is VALID [2018-11-23 12:54:06,026 INFO L256 TraceCheckUtils]: 42: Hoare triple {1929#false} call g(~a~0.base, ~a~0.offset); {1929#false} is VALID [2018-11-23 12:54:06,026 INFO L273 TraceCheckUtils]: 43: Hoare triple {1929#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {1929#false} is VALID [2018-11-23 12:54:06,027 INFO L273 TraceCheckUtils]: 44: Hoare triple {1929#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {1929#false} is VALID [2018-11-23 12:54:06,027 INFO L273 TraceCheckUtils]: 45: Hoare triple {1929#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {1929#false} is VALID [2018-11-23 12:54:06,027 INFO L273 TraceCheckUtils]: 46: Hoare triple {1929#false} assume !(1 == #t~mem5); {1929#false} is VALID [2018-11-23 12:54:06,027 INFO L256 TraceCheckUtils]: 47: Hoare triple {1929#false} call __blast_assert(); {1929#false} is VALID [2018-11-23 12:54:06,027 INFO L273 TraceCheckUtils]: 48: Hoare triple {1929#false} assume !false; {1929#false} is VALID [2018-11-23 12:54:06,029 INFO L134 CoverageAnalysis]: Checked inductivity of 18 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2018-11-23 12:54:06,048 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:54:06,048 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4] total 5 [2018-11-23 12:54:06,048 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 49 [2018-11-23 12:54:06,049 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:54:06,049 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2018-11-23 12:54:06,133 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:06,133 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2018-11-23 12:54:06,134 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2018-11-23 12:54:06,134 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=10, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:54:06,134 INFO L87 Difference]: Start difference. First operand 98 states and 122 transitions. Second operand 5 states. [2018-11-23 12:54:06,734 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:06,735 INFO L93 Difference]: Finished difference Result 169 states and 216 transitions. [2018-11-23 12:54:06,735 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 12:54:06,735 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 49 [2018-11-23 12:54:06,735 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:54:06,735 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:54:06,737 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 86 transitions. [2018-11-23 12:54:06,738 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2018-11-23 12:54:06,739 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 86 transitions. [2018-11-23 12:54:06,740 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 86 transitions. [2018-11-23 12:54:06,873 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 86 edges. 86 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:06,877 INFO L225 Difference]: With dead ends: 169 [2018-11-23 12:54:06,877 INFO L226 Difference]: Without dead ends: 104 [2018-11-23 12:54:06,878 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 52 GetRequests, 49 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=10, Invalid=10, Unknown=0, NotChecked=0, Total=20 [2018-11-23 12:54:06,879 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2018-11-23 12:54:07,072 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 102. [2018-11-23 12:54:07,073 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:54:07,073 INFO L82 GeneralOperation]: Start isEquivalent. First operand 104 states. Second operand 102 states. [2018-11-23 12:54:07,073 INFO L74 IsIncluded]: Start isIncluded. First operand 104 states. Second operand 102 states. [2018-11-23 12:54:07,073 INFO L87 Difference]: Start difference. First operand 104 states. Second operand 102 states. [2018-11-23 12:54:07,079 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:07,079 INFO L93 Difference]: Finished difference Result 104 states and 129 transitions. [2018-11-23 12:54:07,079 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 129 transitions. [2018-11-23 12:54:07,080 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:07,080 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:07,080 INFO L74 IsIncluded]: Start isIncluded. First operand 102 states. Second operand 104 states. [2018-11-23 12:54:07,080 INFO L87 Difference]: Start difference. First operand 102 states. Second operand 104 states. [2018-11-23 12:54:07,085 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:07,085 INFO L93 Difference]: Finished difference Result 104 states and 129 transitions. [2018-11-23 12:54:07,085 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 129 transitions. [2018-11-23 12:54:07,086 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:07,086 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:07,086 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:54:07,086 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:54:07,087 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 102 states. [2018-11-23 12:54:07,091 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 102 states to 102 states and 126 transitions. [2018-11-23 12:54:07,091 INFO L78 Accepts]: Start accepts. Automaton has 102 states and 126 transitions. Word has length 49 [2018-11-23 12:54:07,092 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:54:07,092 INFO L480 AbstractCegarLoop]: Abstraction has 102 states and 126 transitions. [2018-11-23 12:54:07,092 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2018-11-23 12:54:07,092 INFO L276 IsEmpty]: Start isEmpty. Operand 102 states and 126 transitions. [2018-11-23 12:54:07,093 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 52 [2018-11-23 12:54:07,093 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:54:07,093 INFO L402 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:54:07,093 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:54:07,093 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:54:07,094 INFO L82 PathProgramCache]: Analyzing trace with hash -443317106, now seen corresponding path program 1 times [2018-11-23 12:54:07,094 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:54:07,094 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:54:07,095 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:07,095 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:54:07,095 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:07,139 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:07,823 INFO L256 TraceCheckUtils]: 0: Hoare triple {2671#true} call ULTIMATE.init(); {2671#true} is VALID [2018-11-23 12:54:07,825 INFO L273 TraceCheckUtils]: 1: Hoare triple {2671#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,825 INFO L273 TraceCheckUtils]: 2: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} assume true; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,826 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} {2671#true} #106#return; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,827 INFO L256 TraceCheckUtils]: 4: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} call #t~ret9 := main(); {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,828 INFO L273 TraceCheckUtils]: 5: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,828 INFO L256 TraceCheckUtils]: 6: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} call init(); {2671#true} is VALID [2018-11-23 12:54:07,828 INFO L273 TraceCheckUtils]: 7: Hoare triple {2671#true} havoc ~i~0;~i~0 := 0; {2671#true} is VALID [2018-11-23 12:54:07,828 INFO L273 TraceCheckUtils]: 8: Hoare triple {2671#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {2671#true} is VALID [2018-11-23 12:54:07,829 INFO L273 TraceCheckUtils]: 9: Hoare triple {2671#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {2671#true} is VALID [2018-11-23 12:54:07,829 INFO L273 TraceCheckUtils]: 10: Hoare triple {2671#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {2671#true} is VALID [2018-11-23 12:54:07,829 INFO L273 TraceCheckUtils]: 11: Hoare triple {2671#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {2671#true} is VALID [2018-11-23 12:54:07,829 INFO L273 TraceCheckUtils]: 12: Hoare triple {2671#true} assume !(~i~0 < 2); {2671#true} is VALID [2018-11-23 12:54:07,829 INFO L273 TraceCheckUtils]: 13: Hoare triple {2671#true} assume true; {2671#true} is VALID [2018-11-23 12:54:07,830 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {2671#true} {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} #92#return; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,830 INFO L256 TraceCheckUtils]: 15: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} call #t~ret7.base, #t~ret7.offset := malloc(4); {2671#true} is VALID [2018-11-23 12:54:07,831 INFO L273 TraceCheckUtils]: 16: Hoare triple {2671#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {2671#true} is VALID [2018-11-23 12:54:07,831 INFO L273 TraceCheckUtils]: 17: Hoare triple {2671#true} assume true; {2671#true} is VALID [2018-11-23 12:54:07,832 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {2671#true} {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} #94#return; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,832 INFO L273 TraceCheckUtils]: 19: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,832 INFO L256 TraceCheckUtils]: 20: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} call #t~ret8.base, #t~ret8.offset := malloc(4); {2671#true} is VALID [2018-11-23 12:54:07,832 INFO L273 TraceCheckUtils]: 21: Hoare triple {2671#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {2671#true} is VALID [2018-11-23 12:54:07,832 INFO L273 TraceCheckUtils]: 22: Hoare triple {2671#true} assume true; {2671#true} is VALID [2018-11-23 12:54:07,833 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {2671#true} {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} #96#return; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,833 INFO L273 TraceCheckUtils]: 24: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,834 INFO L273 TraceCheckUtils]: 25: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,834 INFO L256 TraceCheckUtils]: 26: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} call f(~a~0.base, ~a~0.offset); {2671#true} is VALID [2018-11-23 12:54:07,834 INFO L273 TraceCheckUtils]: 27: Hoare triple {2671#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {2671#true} is VALID [2018-11-23 12:54:07,835 INFO L273 TraceCheckUtils]: 28: Hoare triple {2671#true} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {2671#true} is VALID [2018-11-23 12:54:07,835 INFO L273 TraceCheckUtils]: 29: Hoare triple {2671#true} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {2671#true} is VALID [2018-11-23 12:54:07,835 INFO L273 TraceCheckUtils]: 30: Hoare triple {2671#true} assume true; {2671#true} is VALID [2018-11-23 12:54:07,836 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {2671#true} {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} #98#return; {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} is VALID [2018-11-23 12:54:07,836 INFO L256 TraceCheckUtils]: 32: Hoare triple {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} call f(~b~0.base, ~b~0.offset); {2671#true} is VALID [2018-11-23 12:54:07,837 INFO L273 TraceCheckUtils]: 33: Hoare triple {2671#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {2674#(= f_~i~1 0)} is VALID [2018-11-23 12:54:07,837 INFO L273 TraceCheckUtils]: 34: Hoare triple {2674#(= f_~i~1 0)} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {2675#(or (not (= |~#pp~0.offset| 0)) (= f_~i~1 0))} is VALID [2018-11-23 12:54:07,838 INFO L273 TraceCheckUtils]: 35: Hoare triple {2675#(or (not (= |~#pp~0.offset| 0)) (= f_~i~1 0))} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {2675#(or (not (= |~#pp~0.offset| 0)) (= f_~i~1 0))} is VALID [2018-11-23 12:54:07,838 INFO L273 TraceCheckUtils]: 36: Hoare triple {2675#(or (not (= |~#pp~0.offset| 0)) (= f_~i~1 0))} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {2676#(or (not (= |~#pp~0.offset| 0)) (<= 1 f_~i~1))} is VALID [2018-11-23 12:54:07,839 INFO L273 TraceCheckUtils]: 37: Hoare triple {2676#(or (not (= |~#pp~0.offset| 0)) (<= 1 f_~i~1))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {2677#(or (and (<= f_~i~1 1) (<= 1 f_~i~1)) (not (= |~#pp~0.offset| 0)))} is VALID [2018-11-23 12:54:07,841 INFO L273 TraceCheckUtils]: 38: Hoare triple {2677#(or (and (<= f_~i~1 1) (<= 1 f_~i~1)) (not (= |~#pp~0.offset| 0)))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {2678#(or (not (= |~#pp~0.offset| 0)) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (<= (+ |~#pp~0.offset| 1) |~#pstate~0.offset|) (<= (+ |~#pstate~0.offset| 1) |~#pp~0.offset|))} is VALID [2018-11-23 12:54:07,842 INFO L273 TraceCheckUtils]: 39: Hoare triple {2678#(or (not (= |~#pp~0.offset| 0)) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (<= (+ |~#pp~0.offset| 1) |~#pstate~0.offset|) (<= (+ |~#pstate~0.offset| 1) |~#pp~0.offset|))} assume true; {2678#(or (not (= |~#pp~0.offset| 0)) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (<= (+ |~#pp~0.offset| 1) |~#pstate~0.offset|) (<= (+ |~#pstate~0.offset| 1) |~#pp~0.offset|))} is VALID [2018-11-23 12:54:07,843 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {2678#(or (not (= |~#pp~0.offset| 0)) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (<= (+ |~#pp~0.offset| 1) |~#pstate~0.offset|) (<= (+ |~#pstate~0.offset| 1) |~#pp~0.offset|))} {2673#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0))} #100#return; {2679#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))))} is VALID [2018-11-23 12:54:07,844 INFO L256 TraceCheckUtils]: 41: Hoare triple {2679#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))))} call g(~a~0.base, ~a~0.offset); {2679#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))))} is VALID [2018-11-23 12:54:07,845 INFO L273 TraceCheckUtils]: 42: Hoare triple {2679#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))))} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {2680#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (= g_~i~2 0))} is VALID [2018-11-23 12:54:07,846 INFO L273 TraceCheckUtils]: 43: Hoare triple {2680#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (= g_~i~2 0))} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {2680#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (= g_~i~2 0))} is VALID [2018-11-23 12:54:07,847 INFO L273 TraceCheckUtils]: 44: Hoare triple {2680#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (= g_~i~2 0))} assume !(#t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset);havoc #t~mem4.base, #t~mem4.offset; {2680#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (= g_~i~2 0))} is VALID [2018-11-23 12:54:07,848 INFO L273 TraceCheckUtils]: 45: Hoare triple {2680#(and (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pp~0.offset| 4))) (= g_~i~2 0))} #t~post3 := ~i~2;~i~2 := 1 + #t~post3;havoc #t~post3; {2681#(and (or (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ (* 4 g_~i~2) |~#pstate~0.offset|))) (not (= (+ |~#pp~0.offset| 4) (+ (* 4 g_~i~2) |~#pstate~0.offset|)))) (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (<= 1 g_~i~2))} is VALID [2018-11-23 12:54:07,850 INFO L273 TraceCheckUtils]: 46: Hoare triple {2681#(and (or (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ (* 4 g_~i~2) |~#pstate~0.offset|))) (not (= (+ |~#pp~0.offset| 4) (+ (* 4 g_~i~2) |~#pstate~0.offset|)))) (= |~#pstate~0.offset| 0) (= |~#pp~0.offset| 0) (<= 1 g_~i~2))} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {2682#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ (* 4 g_~i~2) |~#pstate~0.offset|))))} is VALID [2018-11-23 12:54:07,851 INFO L273 TraceCheckUtils]: 47: Hoare triple {2682#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ (* 4 g_~i~2) |~#pstate~0.offset|))))} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {2683#(= 1 |g_#t~mem5|)} is VALID [2018-11-23 12:54:07,851 INFO L273 TraceCheckUtils]: 48: Hoare triple {2683#(= 1 |g_#t~mem5|)} assume !(1 == #t~mem5); {2672#false} is VALID [2018-11-23 12:54:07,851 INFO L256 TraceCheckUtils]: 49: Hoare triple {2672#false} call __blast_assert(); {2672#false} is VALID [2018-11-23 12:54:07,852 INFO L273 TraceCheckUtils]: 50: Hoare triple {2672#false} assume !false; {2672#false} is VALID [2018-11-23 12:54:07,858 INFO L134 CoverageAnalysis]: Checked inductivity of 18 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2018-11-23 12:54:07,858 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:54:07,859 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:54:07,875 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:54:07,914 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:07,936 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:07,938 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:54:08,072 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 10 [2018-11-23 12:54:08,076 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 10 treesize of output 9 [2018-11-23 12:54:08,078 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:08,079 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:08,084 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:08,084 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:17, output treesize:13 [2018-11-23 12:54:08,241 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 11 [2018-11-23 12:54:08,245 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 3 [2018-11-23 12:54:08,246 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:08,247 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:08,249 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:08,249 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:15, output treesize:3 [2018-11-23 12:54:08,252 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:54:08,252 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |~#pstate~0.base|]. (let ((.cse0 (select (select |#memory_int| |~#pstate~0.base|) 4))) (and (= 1 .cse0) (= .cse0 |g_#t~mem5|))) [2018-11-23 12:54:08,252 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (= 1 |g_#t~mem5|) [2018-11-23 12:54:08,253 INFO L256 TraceCheckUtils]: 0: Hoare triple {2671#true} call ULTIMATE.init(); {2671#true} is VALID [2018-11-23 12:54:08,254 INFO L273 TraceCheckUtils]: 1: Hoare triple {2671#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,254 INFO L273 TraceCheckUtils]: 2: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume true; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,255 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2690#(= |~#pstate~0.offset| 0)} {2671#true} #106#return; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,255 INFO L256 TraceCheckUtils]: 4: Hoare triple {2690#(= |~#pstate~0.offset| 0)} call #t~ret9 := main(); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,255 INFO L273 TraceCheckUtils]: 5: Hoare triple {2690#(= |~#pstate~0.offset| 0)} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,256 INFO L256 TraceCheckUtils]: 6: Hoare triple {2690#(= |~#pstate~0.offset| 0)} call init(); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,256 INFO L273 TraceCheckUtils]: 7: Hoare triple {2690#(= |~#pstate~0.offset| 0)} havoc ~i~0;~i~0 := 0; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,257 INFO L273 TraceCheckUtils]: 8: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,257 INFO L273 TraceCheckUtils]: 9: Hoare triple {2690#(= |~#pstate~0.offset| 0)} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,258 INFO L273 TraceCheckUtils]: 10: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,258 INFO L273 TraceCheckUtils]: 11: Hoare triple {2690#(= |~#pstate~0.offset| 0)} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,259 INFO L273 TraceCheckUtils]: 12: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume !(~i~0 < 2); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,260 INFO L273 TraceCheckUtils]: 13: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume true; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,260 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {2690#(= |~#pstate~0.offset| 0)} {2690#(= |~#pstate~0.offset| 0)} #92#return; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,261 INFO L256 TraceCheckUtils]: 15: Hoare triple {2690#(= |~#pstate~0.offset| 0)} call #t~ret7.base, #t~ret7.offset := malloc(4); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,261 INFO L273 TraceCheckUtils]: 16: Hoare triple {2690#(= |~#pstate~0.offset| 0)} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,262 INFO L273 TraceCheckUtils]: 17: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume true; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,263 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {2690#(= |~#pstate~0.offset| 0)} {2690#(= |~#pstate~0.offset| 0)} #94#return; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,263 INFO L273 TraceCheckUtils]: 19: Hoare triple {2690#(= |~#pstate~0.offset| 0)} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,264 INFO L256 TraceCheckUtils]: 20: Hoare triple {2690#(= |~#pstate~0.offset| 0)} call #t~ret8.base, #t~ret8.offset := malloc(4); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,265 INFO L273 TraceCheckUtils]: 21: Hoare triple {2690#(= |~#pstate~0.offset| 0)} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,265 INFO L273 TraceCheckUtils]: 22: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume true; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,266 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {2690#(= |~#pstate~0.offset| 0)} {2690#(= |~#pstate~0.offset| 0)} #96#return; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,267 INFO L273 TraceCheckUtils]: 24: Hoare triple {2690#(= |~#pstate~0.offset| 0)} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,267 INFO L273 TraceCheckUtils]: 25: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,268 INFO L256 TraceCheckUtils]: 26: Hoare triple {2690#(= |~#pstate~0.offset| 0)} call f(~a~0.base, ~a~0.offset); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,269 INFO L273 TraceCheckUtils]: 27: Hoare triple {2690#(= |~#pstate~0.offset| 0)} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,269 INFO L273 TraceCheckUtils]: 28: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,270 INFO L273 TraceCheckUtils]: 29: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,270 INFO L273 TraceCheckUtils]: 30: Hoare triple {2690#(= |~#pstate~0.offset| 0)} assume true; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,271 INFO L268 TraceCheckUtils]: 31: Hoare quadruple {2690#(= |~#pstate~0.offset| 0)} {2690#(= |~#pstate~0.offset| 0)} #98#return; {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,272 INFO L256 TraceCheckUtils]: 32: Hoare triple {2690#(= |~#pstate~0.offset| 0)} call f(~b~0.base, ~b~0.offset); {2690#(= |~#pstate~0.offset| 0)} is VALID [2018-11-23 12:54:08,273 INFO L273 TraceCheckUtils]: 33: Hoare triple {2690#(= |~#pstate~0.offset| 0)} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {2787#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} is VALID [2018-11-23 12:54:08,273 INFO L273 TraceCheckUtils]: 34: Hoare triple {2787#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {2787#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} is VALID [2018-11-23 12:54:08,274 INFO L273 TraceCheckUtils]: 35: Hoare triple {2787#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {2787#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} is VALID [2018-11-23 12:54:08,274 INFO L273 TraceCheckUtils]: 36: Hoare triple {2787#(and (= |~#pstate~0.offset| 0) (= f_~i~1 0))} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {2797#(and (= |~#pstate~0.offset| 0) (= f_~i~1 1))} is VALID [2018-11-23 12:54:08,275 INFO L273 TraceCheckUtils]: 37: Hoare triple {2797#(and (= |~#pstate~0.offset| 0) (= f_~i~1 1))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {2797#(and (= |~#pstate~0.offset| 0) (= f_~i~1 1))} is VALID [2018-11-23 12:54:08,276 INFO L273 TraceCheckUtils]: 38: Hoare triple {2797#(and (= |~#pstate~0.offset| 0) (= f_~i~1 1))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {2804#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} is VALID [2018-11-23 12:54:08,277 INFO L273 TraceCheckUtils]: 39: Hoare triple {2804#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} assume true; {2804#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} is VALID [2018-11-23 12:54:08,278 INFO L268 TraceCheckUtils]: 40: Hoare quadruple {2804#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} {2690#(= |~#pstate~0.offset| 0)} #100#return; {2804#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} is VALID [2018-11-23 12:54:08,279 INFO L256 TraceCheckUtils]: 41: Hoare triple {2804#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} call g(~a~0.base, ~a~0.offset); {2804#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} is VALID [2018-11-23 12:54:08,280 INFO L273 TraceCheckUtils]: 42: Hoare triple {2804#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {2817#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))) (= g_~i~2 0))} is VALID [2018-11-23 12:54:08,281 INFO L273 TraceCheckUtils]: 43: Hoare triple {2817#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))) (= g_~i~2 0))} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {2817#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))) (= g_~i~2 0))} is VALID [2018-11-23 12:54:08,282 INFO L273 TraceCheckUtils]: 44: Hoare triple {2817#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))) (= g_~i~2 0))} assume !(#t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset);havoc #t~mem4.base, #t~mem4.offset; {2817#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))) (= g_~i~2 0))} is VALID [2018-11-23 12:54:08,283 INFO L273 TraceCheckUtils]: 45: Hoare triple {2817#(and (= |~#pstate~0.offset| 0) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))) (= g_~i~2 0))} #t~post3 := ~i~2;~i~2 := 1 + #t~post3;havoc #t~post3; {2827#(and (= |~#pstate~0.offset| 0) (= g_~i~2 1) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} is VALID [2018-11-23 12:54:08,284 INFO L273 TraceCheckUtils]: 46: Hoare triple {2827#(and (= |~#pstate~0.offset| 0) (= g_~i~2 1) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {2827#(and (= |~#pstate~0.offset| 0) (= g_~i~2 1) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} is VALID [2018-11-23 12:54:08,285 INFO L273 TraceCheckUtils]: 47: Hoare triple {2827#(and (= |~#pstate~0.offset| 0) (= g_~i~2 1) (= 1 (select (select |#memory_int| |~#pstate~0.base|) (+ |~#pstate~0.offset| 4))))} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {2683#(= 1 |g_#t~mem5|)} is VALID [2018-11-23 12:54:08,285 INFO L273 TraceCheckUtils]: 48: Hoare triple {2683#(= 1 |g_#t~mem5|)} assume !(1 == #t~mem5); {2672#false} is VALID [2018-11-23 12:54:08,285 INFO L256 TraceCheckUtils]: 49: Hoare triple {2672#false} call __blast_assert(); {2672#false} is VALID [2018-11-23 12:54:08,286 INFO L273 TraceCheckUtils]: 50: Hoare triple {2672#false} assume !false; {2672#false} is VALID [2018-11-23 12:54:08,291 INFO L134 CoverageAnalysis]: Checked inductivity of 18 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2018-11-23 12:54:08,311 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:54:08,311 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 9] total 19 [2018-11-23 12:54:08,311 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 51 [2018-11-23 12:54:08,312 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:54:08,313 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states. [2018-11-23 12:54:08,437 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 90 edges. 90 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:08,437 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2018-11-23 12:54:08,438 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2018-11-23 12:54:08,438 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=276, Unknown=0, NotChecked=0, Total=342 [2018-11-23 12:54:08,438 INFO L87 Difference]: Start difference. First operand 102 states and 126 transitions. Second operand 19 states. [2018-11-23 12:54:11,854 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:11,854 INFO L93 Difference]: Finished difference Result 183 states and 236 transitions. [2018-11-23 12:54:11,854 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2018-11-23 12:54:11,854 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 51 [2018-11-23 12:54:11,855 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:54:11,855 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-23 12:54:11,858 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 116 transitions. [2018-11-23 12:54:11,859 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-23 12:54:11,862 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 116 transitions. [2018-11-23 12:54:11,862 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states and 116 transitions. [2018-11-23 12:54:12,043 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 116 edges. 116 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:12,049 INFO L225 Difference]: With dead ends: 183 [2018-11-23 12:54:12,049 INFO L226 Difference]: Without dead ends: 156 [2018-11-23 12:54:12,050 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 81 GetRequests, 52 SyntacticMatches, 1 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 177 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=168, Invalid=702, Unknown=0, NotChecked=0, Total=870 [2018-11-23 12:54:12,051 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 156 states. [2018-11-23 12:54:12,794 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 156 to 151. [2018-11-23 12:54:12,795 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:54:12,795 INFO L82 GeneralOperation]: Start isEquivalent. First operand 156 states. Second operand 151 states. [2018-11-23 12:54:12,795 INFO L74 IsIncluded]: Start isIncluded. First operand 156 states. Second operand 151 states. [2018-11-23 12:54:12,795 INFO L87 Difference]: Start difference. First operand 156 states. Second operand 151 states. [2018-11-23 12:54:12,804 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:12,805 INFO L93 Difference]: Finished difference Result 156 states and 196 transitions. [2018-11-23 12:54:12,805 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 196 transitions. [2018-11-23 12:54:12,806 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:12,806 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:12,806 INFO L74 IsIncluded]: Start isIncluded. First operand 151 states. Second operand 156 states. [2018-11-23 12:54:12,806 INFO L87 Difference]: Start difference. First operand 151 states. Second operand 156 states. [2018-11-23 12:54:12,814 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:12,814 INFO L93 Difference]: Finished difference Result 156 states and 196 transitions. [2018-11-23 12:54:12,814 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 196 transitions. [2018-11-23 12:54:12,816 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:12,816 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:12,816 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:54:12,816 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:54:12,816 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 151 states. [2018-11-23 12:54:12,823 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 151 states to 151 states and 192 transitions. [2018-11-23 12:54:12,823 INFO L78 Accepts]: Start accepts. Automaton has 151 states and 192 transitions. Word has length 51 [2018-11-23 12:54:12,824 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:54:12,824 INFO L480 AbstractCegarLoop]: Abstraction has 151 states and 192 transitions. [2018-11-23 12:54:12,824 INFO L481 AbstractCegarLoop]: Interpolant automaton has 19 states. [2018-11-23 12:54:12,824 INFO L276 IsEmpty]: Start isEmpty. Operand 151 states and 192 transitions. [2018-11-23 12:54:12,825 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 52 [2018-11-23 12:54:12,825 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:54:12,825 INFO L402 BasicCegarLoop]: trace histogram [4, 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, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:54:12,825 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:54:12,826 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:54:12,826 INFO L82 PathProgramCache]: Analyzing trace with hash -1218176582, now seen corresponding path program 1 times [2018-11-23 12:54:12,826 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:54:12,826 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:54:12,827 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:12,827 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:54:12,827 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:12,884 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:13,535 INFO L256 TraceCheckUtils]: 0: Hoare triple {3654#true} call ULTIMATE.init(); {3654#true} is VALID [2018-11-23 12:54:13,537 INFO L273 TraceCheckUtils]: 1: Hoare triple {3654#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:54:13,538 INFO L273 TraceCheckUtils]: 2: Hoare triple {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} assume true; {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:54:13,539 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} {3654#true} #106#return; {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:54:13,539 INFO L256 TraceCheckUtils]: 4: Hoare triple {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} call #t~ret9 := main(); {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:54:13,540 INFO L273 TraceCheckUtils]: 5: Hoare triple {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:54:13,540 INFO L256 TraceCheckUtils]: 6: Hoare triple {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} call init(); {3654#true} is VALID [2018-11-23 12:54:13,540 INFO L273 TraceCheckUtils]: 7: Hoare triple {3654#true} havoc ~i~0;~i~0 := 0; {3654#true} is VALID [2018-11-23 12:54:13,541 INFO L273 TraceCheckUtils]: 8: Hoare triple {3654#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {3654#true} is VALID [2018-11-23 12:54:13,541 INFO L273 TraceCheckUtils]: 9: Hoare triple {3654#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {3654#true} is VALID [2018-11-23 12:54:13,541 INFO L273 TraceCheckUtils]: 10: Hoare triple {3654#true} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {3654#true} is VALID [2018-11-23 12:54:13,541 INFO L273 TraceCheckUtils]: 11: Hoare triple {3654#true} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {3654#true} is VALID [2018-11-23 12:54:13,542 INFO L273 TraceCheckUtils]: 12: Hoare triple {3654#true} assume !(~i~0 < 2); {3654#true} is VALID [2018-11-23 12:54:13,542 INFO L273 TraceCheckUtils]: 13: Hoare triple {3654#true} assume true; {3654#true} is VALID [2018-11-23 12:54:13,542 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {3654#true} {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} #92#return; {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:54:13,557 INFO L256 TraceCheckUtils]: 15: Hoare triple {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} call #t~ret7.base, #t~ret7.offset := malloc(4); {3657#(= ~counter~0 |old(~counter~0)|)} is VALID [2018-11-23 12:54:13,558 INFO L273 TraceCheckUtils]: 16: Hoare triple {3657#(= ~counter~0 |old(~counter~0)|)} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {3658#(and (= |malloc_#res.offset| |old(~counter~0)|) (= 0 |malloc_#res.base|))} is VALID [2018-11-23 12:54:13,559 INFO L273 TraceCheckUtils]: 17: Hoare triple {3658#(and (= |malloc_#res.offset| |old(~counter~0)|) (= 0 |malloc_#res.base|))} assume true; {3658#(and (= |malloc_#res.offset| |old(~counter~0)|) (= 0 |malloc_#res.base|))} is VALID [2018-11-23 12:54:13,564 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {3658#(and (= |malloc_#res.offset| |old(~counter~0)|) (= 0 |malloc_#res.base|))} {3656#(or (= 0 ~counter~0) (not (= |~#pp~0.base| |~#pstate~0.base|)))} #94#return; {3659#(and (or (= 0 |main_#t~ret7.offset|) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= 0 |main_#t~ret7.base|))} is VALID [2018-11-23 12:54:13,565 INFO L273 TraceCheckUtils]: 19: Hoare triple {3659#(and (or (= 0 |main_#t~ret7.offset|) (not (= |~#pp~0.base| |~#pstate~0.base|))) (= 0 |main_#t~ret7.base|))} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {3660#(and (= 0 main_~a~0.base) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} is VALID [2018-11-23 12:54:13,565 INFO L256 TraceCheckUtils]: 20: Hoare triple {3660#(and (= 0 main_~a~0.base) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} call #t~ret8.base, #t~ret8.offset := malloc(4); {3654#true} is VALID [2018-11-23 12:54:13,565 INFO L273 TraceCheckUtils]: 21: Hoare triple {3654#true} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {3654#true} is VALID [2018-11-23 12:54:13,565 INFO L273 TraceCheckUtils]: 22: Hoare triple {3654#true} assume true; {3654#true} is VALID [2018-11-23 12:54:13,566 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {3654#true} {3660#(and (= 0 main_~a~0.base) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} #96#return; {3660#(and (= 0 main_~a~0.base) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} is VALID [2018-11-23 12:54:13,566 INFO L273 TraceCheckUtils]: 24: Hoare triple {3660#(and (= 0 main_~a~0.base) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {3660#(and (= 0 main_~a~0.base) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} is VALID [2018-11-23 12:54:13,567 INFO L273 TraceCheckUtils]: 25: Hoare triple {3660#(and (= 0 main_~a~0.base) (or (= 0 main_~a~0.offset) (not (= |~#pp~0.base| |~#pstate~0.base|))))} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {3661#(and (not (= 0 main_~a~0.offset)) (not (= |~#pp~0.base| |~#pstate~0.base|)))} is VALID [2018-11-23 12:54:13,567 INFO L256 TraceCheckUtils]: 26: Hoare triple {3661#(and (not (= 0 main_~a~0.offset)) (not (= |~#pp~0.base| |~#pstate~0.base|)))} call f(~a~0.base, ~a~0.offset); {3654#true} is VALID [2018-11-23 12:54:13,568 INFO L273 TraceCheckUtils]: 27: Hoare triple {3654#true} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {3662#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0))} is VALID [2018-11-23 12:54:13,568 INFO L273 TraceCheckUtils]: 28: Hoare triple {3662#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {3662#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0))} is VALID [2018-11-23 12:54:13,569 INFO L273 TraceCheckUtils]: 29: Hoare triple {3662#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0))} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {3662#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0))} is VALID [2018-11-23 12:54:13,570 INFO L273 TraceCheckUtils]: 30: Hoare triple {3662#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0))} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {3663#(and (= |f_#in~pointer.offset| f_~pointer.offset) (<= 1 f_~i~1))} is VALID [2018-11-23 12:54:13,571 INFO L273 TraceCheckUtils]: 31: Hoare triple {3663#(and (= |f_#in~pointer.offset| f_~pointer.offset) (<= 1 f_~i~1))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {3664#(and (<= f_~i~1 1) (= |f_#in~pointer.offset| f_~pointer.offset) (<= 1 f_~i~1))} is VALID [2018-11-23 12:54:13,573 INFO L273 TraceCheckUtils]: 32: Hoare triple {3664#(and (<= f_~i~1 1) (= |f_#in~pointer.offset| f_~pointer.offset) (<= 1 f_~i~1))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {3665#(or (= |~#pp~0.base| |~#pstate~0.base|) (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ (* 4 1) |~#pp~0.offset|))))} is VALID [2018-11-23 12:54:13,574 INFO L273 TraceCheckUtils]: 33: Hoare triple {3665#(or (= |~#pp~0.base| |~#pstate~0.base|) (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ (* 4 1) |~#pp~0.offset|))))} assume true; {3665#(or (= |~#pp~0.base| |~#pstate~0.base|) (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ (* 4 1) |~#pp~0.offset|))))} is VALID [2018-11-23 12:54:13,575 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {3665#(or (= |~#pp~0.base| |~#pstate~0.base|) (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ (* 4 1) |~#pp~0.offset|))))} {3661#(and (not (= 0 main_~a~0.offset)) (not (= |~#pp~0.base| |~#pstate~0.base|)))} #98#return; {3666#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ (* 4 1) |~#pp~0.offset|)))))} is VALID [2018-11-23 12:54:13,576 INFO L256 TraceCheckUtils]: 35: Hoare triple {3666#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ (* 4 1) |~#pp~0.offset|)))))} call f(~b~0.base, ~b~0.offset); {3667#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} is VALID [2018-11-23 12:54:13,577 INFO L273 TraceCheckUtils]: 36: Hoare triple {3667#(= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|)} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {3668#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} is VALID [2018-11-23 12:54:13,578 INFO L273 TraceCheckUtils]: 37: Hoare triple {3668#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {3669#(and (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (= f_~i~1 0))} is VALID [2018-11-23 12:54:13,579 INFO L273 TraceCheckUtils]: 38: Hoare triple {3669#(and (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (= f_~i~1 0))} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {3669#(and (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (= f_~i~1 0))} is VALID [2018-11-23 12:54:13,579 INFO L273 TraceCheckUtils]: 39: Hoare triple {3669#(and (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (= f_~i~1 0))} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {3670#(and (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (<= 1 f_~i~1))} is VALID [2018-11-23 12:54:13,580 INFO L273 TraceCheckUtils]: 40: Hoare triple {3670#(and (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (<= 1 f_~i~1))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {3671#(and (<= f_~i~1 1) (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (<= 1 f_~i~1) (= (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| (* 4 f_~i~1))) |f_#t~mem2.offset|))} is VALID [2018-11-23 12:54:13,582 INFO L273 TraceCheckUtils]: 41: Hoare triple {3671#(and (<= f_~i~1 1) (= (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (select |#memory_$Pointer$.offset| |~#pp~0.base|)) (<= 1 f_~i~1) (= (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| (* 4 f_~i~1))) |f_#t~mem2.offset|))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {3672#(or (= |~#pp~0.base| |~#pstate~0.base|) (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ (* (- 4) (- 1)) |~#pp~0.offset|))))} is VALID [2018-11-23 12:54:13,583 INFO L273 TraceCheckUtils]: 42: Hoare triple {3672#(or (= |~#pp~0.base| |~#pstate~0.base|) (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ (* (- 4) (- 1)) |~#pp~0.offset|))))} assume true; {3672#(or (= |~#pp~0.base| |~#pstate~0.base|) (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ (* (- 4) (- 1)) |~#pp~0.offset|))))} is VALID [2018-11-23 12:54:13,584 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {3672#(or (= |~#pp~0.base| |~#pstate~0.base|) (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ (* (- 4) (- 1)) |~#pp~0.offset|))))} {3666#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (not (= 0 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ (* 4 1) |~#pp~0.offset|)))))} #100#return; {3655#false} is VALID [2018-11-23 12:54:13,584 INFO L256 TraceCheckUtils]: 44: Hoare triple {3655#false} call g(~a~0.base, ~a~0.offset); {3655#false} is VALID [2018-11-23 12:54:13,584 INFO L273 TraceCheckUtils]: 45: Hoare triple {3655#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {3655#false} is VALID [2018-11-23 12:54:13,585 INFO L273 TraceCheckUtils]: 46: Hoare triple {3655#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {3655#false} is VALID [2018-11-23 12:54:13,585 INFO L273 TraceCheckUtils]: 47: Hoare triple {3655#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {3655#false} is VALID [2018-11-23 12:54:13,585 INFO L273 TraceCheckUtils]: 48: Hoare triple {3655#false} assume !(1 == #t~mem5); {3655#false} is VALID [2018-11-23 12:54:13,585 INFO L256 TraceCheckUtils]: 49: Hoare triple {3655#false} call __blast_assert(); {3655#false} is VALID [2018-11-23 12:54:13,586 INFO L273 TraceCheckUtils]: 50: Hoare triple {3655#false} assume !false; {3655#false} is VALID [2018-11-23 12:54:13,591 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 1 proven. 18 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:54:13,591 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:54:13,591 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:54:13,601 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:54:13,640 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:13,661 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:13,664 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:54:13,687 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 14 [2018-11-23 12:54:13,778 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 1 [2018-11-23 12:54:13,789 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:13,827 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:13,923 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:13,923 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:18, output treesize:11 [2018-11-23 12:54:14,269 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 39 treesize of output 30 [2018-11-23 12:54:14,274 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 10 treesize of output 9 [2018-11-23 12:54:14,275 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:14,289 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 30 [2018-11-23 12:54:14,293 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 1 [2018-11-23 12:54:14,294 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:14,298 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:14,300 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:14,307 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:14,307 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:47, output treesize:17 [2018-11-23 12:54:14,384 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 9 treesize of output 7 [2018-11-23 12:54:14,388 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 1 [2018-11-23 12:54:14,388 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:54:14,389 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:14,392 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:54:14,393 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:16, output treesize:7 [2018-11-23 12:54:14,395 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:54:14,395 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_$Pointer$.offset_BEFORE_CALL_1|]. (and (= (select (select |v_#memory_$Pointer$.offset_BEFORE_CALL_1| |~#pp~0.base|) (+ |~#pp~0.offset| 4)) 1) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|)) [2018-11-23 12:54:14,395 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|)) [2018-11-23 12:54:14,568 INFO L256 TraceCheckUtils]: 0: Hoare triple {3654#true} call ULTIMATE.init(); {3654#true} is VALID [2018-11-23 12:54:14,570 INFO L273 TraceCheckUtils]: 1: Hoare triple {3654#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];call ~#pp~0.base, ~#pp~0.offset := #Ultimate.alloc(8);call write~init~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset, 4);call write~init~$Pointer$(0, 0, ~#pp~0.base, 4 + ~#pp~0.offset, 4);call ~#pstate~0.base, ~#pstate~0.offset := #Ultimate.alloc(8);call write~init~int(0, ~#pstate~0.base, ~#pstate~0.offset, 4);call write~init~int(0, ~#pstate~0.base, 4 + ~#pstate~0.offset, 4);~counter~0 := 1; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,570 INFO L273 TraceCheckUtils]: 2: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume true; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,571 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} {3654#true} #106#return; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,572 INFO L256 TraceCheckUtils]: 4: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} call #t~ret9 := main(); {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,573 INFO L273 TraceCheckUtils]: 5: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} havoc ~a~0.base, ~a~0.offset;havoc ~b~0.base, ~b~0.offset; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,573 INFO L256 TraceCheckUtils]: 6: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} call init(); {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,574 INFO L273 TraceCheckUtils]: 7: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} havoc ~i~0;~i~0 := 0; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,575 INFO L273 TraceCheckUtils]: 8: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,576 INFO L273 TraceCheckUtils]: 9: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,577 INFO L273 TraceCheckUtils]: 10: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume !!(~i~0 < 2);call write~$Pointer$(0, 0, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~0, 4);call write~int(0, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~0, 4); {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,578 INFO L273 TraceCheckUtils]: 11: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} #t~post0 := ~i~0;~i~0 := 1 + #t~post0;havoc #t~post0; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,579 INFO L273 TraceCheckUtils]: 12: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume !(~i~0 < 2); {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,579 INFO L273 TraceCheckUtils]: 13: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume true; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,580 INFO L268 TraceCheckUtils]: 14: Hoare quadruple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} #92#return; {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,581 INFO L256 TraceCheckUtils]: 15: Hoare triple {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} call #t~ret7.base, #t~ret7.offset := malloc(4); {3722#(and (= ~counter~0 |old(~counter~0)|) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,582 INFO L273 TraceCheckUtils]: 16: Hoare triple {3722#(and (= ~counter~0 |old(~counter~0)|) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {3726#(and (= |old(~counter~0)| |malloc_#res.offset|) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,583 INFO L273 TraceCheckUtils]: 17: Hoare triple {3726#(and (= |old(~counter~0)| |malloc_#res.offset|) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume true; {3726#(and (= |old(~counter~0)| |malloc_#res.offset|) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,584 INFO L268 TraceCheckUtils]: 18: Hoare quadruple {3726#(and (= |old(~counter~0)| |malloc_#res.offset|) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} {3679#(and (= ~counter~0 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} #94#return; {3733#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= |main_#t~ret7.offset| 1) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,585 INFO L273 TraceCheckUtils]: 19: Hoare triple {3733#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= |main_#t~ret7.offset| 1) (= 0 |~#pp~0.offset|))} ~a~0.base, ~a~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,586 INFO L256 TraceCheckUtils]: 20: Hoare triple {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} call #t~ret8.base, #t~ret8.offset := malloc(4); {3741#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,587 INFO L273 TraceCheckUtils]: 21: Hoare triple {3741#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} ~size := #in~size;#t~post6 := ~counter~0;~counter~0 := 1 + #t~post6;#res.base, #res.offset := 0, #t~post6;havoc #t~post6; {3741#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,587 INFO L273 TraceCheckUtils]: 22: Hoare triple {3741#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume true; {3741#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,588 INFO L268 TraceCheckUtils]: 23: Hoare quadruple {3741#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} #96#return; {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,589 INFO L273 TraceCheckUtils]: 24: Hoare triple {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} ~b~0.base, ~b~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,592 INFO L273 TraceCheckUtils]: 25: Hoare triple {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume !((~a~0.base == 0 && ~a~0.offset == 0) || (~b~0.base == 0 && ~b~0.offset == 0)); {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,593 INFO L256 TraceCheckUtils]: 26: Hoare triple {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} call f(~a~0.base, ~a~0.offset); {3741#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,594 INFO L273 TraceCheckUtils]: 27: Hoare triple {3741#(and (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {3763#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,594 INFO L273 TraceCheckUtils]: 28: Hoare triple {3763#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {3763#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,595 INFO L273 TraceCheckUtils]: 29: Hoare triple {3763#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {3763#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,595 INFO L273 TraceCheckUtils]: 30: Hoare triple {3763#(and (= |f_#in~pointer.offset| f_~pointer.offset) (= f_~i~1 0) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {3773#(and (= f_~i~1 1) (= |f_#in~pointer.offset| f_~pointer.offset) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,596 INFO L273 TraceCheckUtils]: 31: Hoare triple {3773#(and (= f_~i~1 1) (= |f_#in~pointer.offset| f_~pointer.offset) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {3773#(and (= f_~i~1 1) (= |f_#in~pointer.offset| f_~pointer.offset) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,598 INFO L273 TraceCheckUtils]: 32: Hoare triple {3773#(and (= f_~i~1 1) (= |f_#in~pointer.offset| f_~pointer.offset) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {3780#(and (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,599 INFO L273 TraceCheckUtils]: 33: Hoare triple {3780#(and (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} assume true; {3780#(and (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,600 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {3780#(and (= |f_#in~pointer.offset| (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} {3737#(and (= main_~a~0.offset 1) (not (= |~#pp~0.base| |~#pstate~0.base|)) (= 0 |~#pp~0.offset|))} #98#return; {3787#(and (= 1 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,601 INFO L256 TraceCheckUtils]: 35: Hoare triple {3787#(and (= 1 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (= 0 |~#pp~0.offset|))} call f(~b~0.base, ~b~0.offset); {3791#(and (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,602 INFO L273 TraceCheckUtils]: 36: Hoare triple {3791#(and (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~1;~i~1 := 0; {3795#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,603 INFO L273 TraceCheckUtils]: 37: Hoare triple {3795#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {3795#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,604 INFO L273 TraceCheckUtils]: 38: Hoare triple {3795#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} assume !(#t~mem2.base == 0 && #t~mem2.offset == 0);havoc #t~mem2.base, #t~mem2.offset; {3795#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,604 INFO L273 TraceCheckUtils]: 39: Hoare triple {3795#(and (= f_~i~1 0) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} #t~post1 := ~i~1;~i~1 := 1 + #t~post1;havoc #t~post1; {3805#(and (= f_~i~1 1) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,605 INFO L273 TraceCheckUtils]: 40: Hoare triple {3805#(and (= f_~i~1 1) (= |#memory_$Pointer$.offset| |old(#memory_$Pointer$.offset)|) (= 0 |~#pp~0.offset|))} assume !!(~i~1 < 2);call #t~mem2.base, #t~mem2.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4); {3809#(and (= (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ |~#pp~0.offset| 4)) |f_#t~mem2.offset|) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,607 INFO L273 TraceCheckUtils]: 41: Hoare triple {3809#(and (= (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ |~#pp~0.offset| 4)) |f_#t~mem2.offset|) (= 0 |~#pp~0.offset|))} assume #t~mem2.base == 0 && #t~mem2.offset == 0;havoc #t~mem2.base, #t~mem2.offset;call write~$Pointer$(~pointer.base, ~pointer.offset, ~#pp~0.base, ~#pp~0.offset + 4 * ~i~1, 4);call write~int(1, ~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~1, 4); {3813#(and (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,608 INFO L273 TraceCheckUtils]: 42: Hoare triple {3813#(and (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (= 0 |~#pp~0.offset|))} assume true; {3813#(and (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (= 0 |~#pp~0.offset|))} is VALID [2018-11-23 12:54:14,609 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {3813#(and (= 0 (select (select |old(#memory_$Pointer$.offset)| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (= 0 |~#pp~0.offset|))} {3787#(and (= 1 (select (select |#memory_$Pointer$.offset| |~#pp~0.base|) (+ |~#pp~0.offset| 4))) (= 0 |~#pp~0.offset|))} #100#return; {3655#false} is VALID [2018-11-23 12:54:14,609 INFO L256 TraceCheckUtils]: 44: Hoare triple {3655#false} call g(~a~0.base, ~a~0.offset); {3655#false} is VALID [2018-11-23 12:54:14,609 INFO L273 TraceCheckUtils]: 45: Hoare triple {3655#false} ~pointer.base, ~pointer.offset := #in~pointer.base, #in~pointer.offset;havoc ~i~2;~i~2 := 0; {3655#false} is VALID [2018-11-23 12:54:14,609 INFO L273 TraceCheckUtils]: 46: Hoare triple {3655#false} assume !!(~i~2 < 2);call #t~mem4.base, #t~mem4.offset := read~$Pointer$(~#pp~0.base, ~#pp~0.offset + 4 * ~i~2, 4); {3655#false} is VALID [2018-11-23 12:54:14,610 INFO L273 TraceCheckUtils]: 47: Hoare triple {3655#false} assume #t~mem4.base == ~pointer.base && #t~mem4.offset == ~pointer.offset;havoc #t~mem4.base, #t~mem4.offset;call #t~mem5 := read~int(~#pstate~0.base, ~#pstate~0.offset + 4 * ~i~2, 4); {3655#false} is VALID [2018-11-23 12:54:14,610 INFO L273 TraceCheckUtils]: 48: Hoare triple {3655#false} assume !(1 == #t~mem5); {3655#false} is VALID [2018-11-23 12:54:14,610 INFO L256 TraceCheckUtils]: 49: Hoare triple {3655#false} call __blast_assert(); {3655#false} is VALID [2018-11-23 12:54:14,611 INFO L273 TraceCheckUtils]: 50: Hoare triple {3655#false} assume !false; {3655#false} is VALID [2018-11-23 12:54:14,618 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 0 proven. 19 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:54:14,638 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:54:14,638 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 17] total 34 [2018-11-23 12:54:14,639 INFO L78 Accepts]: Start accepts. Automaton has 34 states. Word has length 51 [2018-11-23 12:54:14,639 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:54:14,639 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 34 states. [2018-11-23 12:54:14,747 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 90 edges. 90 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:14,747 INFO L459 AbstractCegarLoop]: Interpolant automaton has 34 states [2018-11-23 12:54:14,747 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 34 interpolants. [2018-11-23 12:54:14,748 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=103, Invalid=1019, Unknown=0, NotChecked=0, Total=1122 [2018-11-23 12:54:14,748 INFO L87 Difference]: Start difference. First operand 151 states and 192 transitions. Second operand 34 states. [2018-11-23 12:54:23,224 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:23,224 INFO L93 Difference]: Finished difference Result 255 states and 321 transitions. [2018-11-23 12:54:23,225 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2018-11-23 12:54:23,225 INFO L78 Accepts]: Start accepts. Automaton has 34 states. Word has length 51 [2018-11-23 12:54:23,225 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:54:23,225 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2018-11-23 12:54:23,228 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 131 transitions. [2018-11-23 12:54:23,229 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2018-11-23 12:54:23,232 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 131 transitions. [2018-11-23 12:54:23,232 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 26 states and 131 transitions. [2018-11-23 12:54:23,431 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 131 edges. 131 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:54:23,438 INFO L225 Difference]: With dead ends: 255 [2018-11-23 12:54:23,438 INFO L226 Difference]: Without dead ends: 212 [2018-11-23 12:54:23,440 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 95 GetRequests, 41 SyntacticMatches, 0 SemanticMatches, 54 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 579 ImplicationChecksByTransitivity, 1.7s TimeCoverageRelationStatistics Valid=379, Invalid=2701, Unknown=0, NotChecked=0, Total=3080 [2018-11-23 12:54:23,440 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 212 states. [2018-11-23 12:54:24,468 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 212 to 198. [2018-11-23 12:54:24,469 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:54:24,469 INFO L82 GeneralOperation]: Start isEquivalent. First operand 212 states. Second operand 198 states. [2018-11-23 12:54:24,469 INFO L74 IsIncluded]: Start isIncluded. First operand 212 states. Second operand 198 states. [2018-11-23 12:54:24,469 INFO L87 Difference]: Start difference. First operand 212 states. Second operand 198 states. [2018-11-23 12:54:24,482 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:24,482 INFO L93 Difference]: Finished difference Result 212 states and 268 transitions. [2018-11-23 12:54:24,483 INFO L276 IsEmpty]: Start isEmpty. Operand 212 states and 268 transitions. [2018-11-23 12:54:24,484 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:24,484 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:24,484 INFO L74 IsIncluded]: Start isIncluded. First operand 198 states. Second operand 212 states. [2018-11-23 12:54:24,484 INFO L87 Difference]: Start difference. First operand 198 states. Second operand 212 states. [2018-11-23 12:54:24,494 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:54:24,494 INFO L93 Difference]: Finished difference Result 212 states and 268 transitions. [2018-11-23 12:54:24,494 INFO L276 IsEmpty]: Start isEmpty. Operand 212 states and 268 transitions. [2018-11-23 12:54:24,496 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:54:24,496 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:54:24,496 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:54:24,496 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:54:24,496 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 198 states. [2018-11-23 12:54:24,505 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 198 states to 198 states and 252 transitions. [2018-11-23 12:54:24,505 INFO L78 Accepts]: Start accepts. Automaton has 198 states and 252 transitions. Word has length 51 [2018-11-23 12:54:24,505 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:54:24,505 INFO L480 AbstractCegarLoop]: Abstraction has 198 states and 252 transitions. [2018-11-23 12:54:24,505 INFO L481 AbstractCegarLoop]: Interpolant automaton has 34 states. [2018-11-23 12:54:24,506 INFO L276 IsEmpty]: Start isEmpty. Operand 198 states and 252 transitions. [2018-11-23 12:54:24,506 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2018-11-23 12:54:24,507 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:54:24,507 INFO L402 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:54:24,507 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__blast_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:54:24,507 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:54:24,508 INFO L82 PathProgramCache]: Analyzing trace with hash -508428857, now seen corresponding path program 1 times [2018-11-23 12:54:24,508 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:54:24,508 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:54:24,508 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:24,509 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:54:24,509 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:54:24,541 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:54:26,063 WARN L180 SmtUtils]: Spent 675.00 ms on a formula simplification. DAG size of input: 31 DAG size of output: 25 [2018-11-23 12:54:26,729 FATAL L292 ToolchainWalker]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: select-over-store with same index should have been removed at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.rootRespectsUltimateNormalForm(UltimateNormalFormUtils.java:72) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.rootRespectsUltimateNormalForm(UltimateNormalFormUtils.java:131) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.lambda$0(UltimateNormalFormUtils.java:154) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.SubtermPropertyChecker$MyWalker.walk(SubtermPropertyChecker.java:63) at de.uni_freiburg.informatik.ultimate.logic.NonRecursive.run(NonRecursive.java:122) at de.uni_freiburg.informatik.ultimate.logic.NonRecursive.run(NonRecursive.java:113) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.SubtermPropertyChecker.isPropertySatisfied(SubtermPropertyChecker.java:121) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.respectsUltimateNormalForm(UltimateNormalFormUtils.java:155) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.BasicPredicateFactory.newPredicate(BasicPredicateFactory.java:103) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.PredicateUnifier.constructNewPredicate(PredicateUnifier.java:375) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate(PredicateUnifier.java:361) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate(PredicateUnifier.java:299) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.NestedInterpolantsBuilder.computePredicates(NestedInterpolantsBuilder.java:592) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.NestedInterpolantsBuilder.(NestedInterpolantsBuilder.java:170) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.InterpolatingTraceCheckCraig.computeInterpolantsTree(InterpolatingTraceCheckCraig.java:271) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.InterpolatingTraceCheckCraig.computeInterpolants(InterpolatingTraceCheckCraig.java:207) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.InterpolatingTraceCheckCraig.(InterpolatingTraceCheckCraig.java:109) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructCraig(TraceCheckConstructor.java:211) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructTraceCheck(TraceCheckConstructor.java:183) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.get(TraceCheckConstructor.java:165) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.MultiTrackRefinementStrategy.getTraceCheck(MultiTrackRefinementStrategy.java:232) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.checkFeasibility(BaseRefinementStrategy.java:223) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.executeStrategy(BaseRefinementStrategy.java:197) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:70) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:456) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterateInternal(AbstractCegarLoop.java:434) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:376) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.iterate(TraceAbstractionStarter.java:334) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:174) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:126) 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:316) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) [2018-11-23 12:54:26,733 INFO L168 Benchmark]: Toolchain (without parser) took 37357.56 ms. Allocated memory was 1.5 GB in the beginning and 2.7 GB in the end (delta: 1.2 GB). Free memory was 1.4 GB in the beginning and 2.0 GB in the end (delta: -559.5 MB). Peak memory consumption was 592.9 MB. Max. memory is 7.1 GB. [2018-11-23 12:54:26,735 INFO L168 Benchmark]: CDTParser took 0.27 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 12:54:26,735 INFO L168 Benchmark]: CACSL2BoogieTranslator took 401.39 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 10.6 MB). Peak memory consumption was 10.6 MB. Max. memory is 7.1 GB. [2018-11-23 12:54:26,735 INFO L168 Benchmark]: Boogie Procedure Inliner took 31.56 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 12:54:26,736 INFO L168 Benchmark]: Boogie Preprocessor took 62.73 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 12:54:26,736 INFO L168 Benchmark]: RCFGBuilder took 1233.70 ms. Allocated memory was 1.5 GB in the beginning and 2.2 GB in the end (delta: 708.3 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -727.3 MB). Peak memory consumption was 14.9 MB. Max. memory is 7.1 GB. [2018-11-23 12:54:26,737 INFO L168 Benchmark]: TraceAbstraction took 35622.91 ms. Allocated memory was 2.2 GB in the beginning and 2.7 GB in the end (delta: 444.1 MB). Free memory was 2.1 GB in the beginning and 2.0 GB in the end (delta: 157.3 MB). Peak memory consumption was 601.3 MB. Max. memory is 7.1 GB. [2018-11-23 12:54:26,740 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.27 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 401.39 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 10.6 MB). Peak memory consumption was 10.6 MB. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 31.56 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Preprocessor took 62.73 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 1233.70 ms. Allocated memory was 1.5 GB in the beginning and 2.2 GB in the end (delta: 708.3 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -727.3 MB). Peak memory consumption was 14.9 MB. Max. memory is 7.1 GB. * TraceAbstraction took 35622.91 ms. Allocated memory was 2.2 GB in the beginning and 2.7 GB in the end (delta: 444.1 MB). Free memory was 2.1 GB in the beginning and 2.0 GB in the end (delta: 157.3 MB). Peak memory consumption was 601.3 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: AssertionError: select-over-store with same index should have been removed de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: select-over-store with same index should have been removed: de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.UltimateNormalFormUtils.rootRespectsUltimateNormalForm(UltimateNormalFormUtils.java:72) RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request...