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/array-tiling/skipped_true-unreach-call.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 12:23:27,443 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 12:23:27,447 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 12:23:27,464 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 12:23:27,464 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 12:23:27,465 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 12:23:27,466 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 12:23:27,468 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 12:23:27,470 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 12:23:27,471 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 12:23:27,472 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 12:23:27,472 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 12:23:27,473 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 12:23:27,474 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 12:23:27,475 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 12:23:27,476 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 12:23:27,477 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 12:23:27,479 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 12:23:27,481 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 12:23:27,482 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 12:23:27,483 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 12:23:27,484 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 12:23:27,487 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 12:23:27,487 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 12:23:27,487 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 12:23:27,488 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 12:23:27,489 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 12:23:27,490 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 12:23:27,491 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 12:23:27,492 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 12:23:27,492 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 12:23:27,493 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 12:23:27,493 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 12:23:27,493 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 12:23:27,494 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 12:23:27,495 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 12:23:27,496 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:23:27,524 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 12:23:27,524 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 12:23:27,525 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 12:23:27,526 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 12:23:27,527 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 12:23:27,527 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 12:23:27,527 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 12:23:27,527 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 12:23:27,528 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 12:23:27,528 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 12:23:27,528 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 12:23:27,528 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 12:23:27,528 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 12:23:27,529 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 12:23:27,529 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 12:23:27,529 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 12:23:27,529 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 12:23:27,530 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 12:23:27,530 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 12:23:27,530 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 12:23:27,530 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 12:23:27,530 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 12:23:27,531 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 12:23:27,532 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 12:23:27,532 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 12:23:27,532 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 12:23:27,532 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 12:23:27,533 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-23 12:23:27,533 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 12:23:27,533 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 12:23:27,533 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 12:23:27,601 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 12:23:27,620 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 12:23:27,626 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 12:23:27,628 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 12:23:27,628 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 12:23:27,629 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/array-tiling/skipped_true-unreach-call.i [2018-11-23 12:23:27,704 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/be4233ac4/f670090e2073417989102bc06a474ced/FLAG0761bd2b6 [2018-11-23 12:23:28,182 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 12:23:28,182 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/array-tiling/skipped_true-unreach-call.i [2018-11-23 12:23:28,192 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/be4233ac4/f670090e2073417989102bc06a474ced/FLAG0761bd2b6 [2018-11-23 12:23:28,496 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/be4233ac4/f670090e2073417989102bc06a474ced [2018-11-23 12:23:28,506 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 12:23:28,508 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 12:23:28,509 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 12:23:28,509 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 12:23:28,513 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 12:23:28,514 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,517 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@645c9af8 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28, skipping insertion in model container [2018-11-23 12:23:28,518 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,528 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 12:23:28,547 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 12:23:28,773 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:23:28,779 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 12:23:28,815 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 12:23:28,855 INFO L195 MainTranslator]: Completed translation [2018-11-23 12:23:28,856 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28 WrapperNode [2018-11-23 12:23:28,856 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 12:23:28,857 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 12:23:28,857 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 12:23:28,858 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 12:23:28,868 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:23:28" (1/1) ... [2018-11-23 12:23:28,880 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:23:28" (1/1) ... [2018-11-23 12:23:28,889 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 12:23:28,890 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 12:23:28,890 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 12:23:28,890 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 12:23:28,902 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,903 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,904 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,911 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,922 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,931 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,933 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (1/1) ... [2018-11-23 12:23:28,943 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 12:23:28,943 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 12:23:28,946 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 12:23:28,946 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 12:23:28,947 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (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:23:29,095 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-23 12:23:29,095 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 12:23:29,095 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 12:23:29,096 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 12:23:29,096 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 12:23:29,096 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 12:23:29,096 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-23 12:23:29,096 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 12:23:29,096 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 12:23:29,097 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-23 12:23:29,098 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-23 12:23:29,098 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 12:23:29,780 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 12:23:29,781 INFO L280 CfgBuilder]: Removed 2 assue(true) statements. [2018-11-23 12:23:29,781 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:23:29 BoogieIcfgContainer [2018-11-23 12:23:29,781 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 12:23:29,782 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 12:23:29,783 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 12:23:29,786 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 12:23:29,786 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 12:23:28" (1/3) ... [2018-11-23 12:23:29,787 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@23fb8c91 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:23:29, skipping insertion in model container [2018-11-23 12:23:29,787 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 12:23:28" (2/3) ... [2018-11-23 12:23:29,788 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@23fb8c91 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 12:23:29, skipping insertion in model container [2018-11-23 12:23:29,788 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 12:23:29" (3/3) ... [2018-11-23 12:23:29,790 INFO L112 eAbstractionObserver]: Analyzing ICFG skipped_true-unreach-call.i [2018-11-23 12:23:29,801 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 12:23:29,810 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 12:23:29,829 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 12:23:29,862 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 12:23:29,863 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 12:23:29,863 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 12:23:29,864 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 12:23:29,864 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 12:23:29,864 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 12:23:29,864 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 12:23:29,865 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 12:23:29,865 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 12:23:29,885 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states. [2018-11-23 12:23:29,891 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 16 [2018-11-23 12:23:29,891 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:29,892 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:29,895 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:29,900 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:29,900 INFO L82 PathProgramCache]: Analyzing trace with hash -1661916020, now seen corresponding path program 1 times [2018-11-23 12:23:29,902 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:29,902 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:29,954 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:29,955 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:29,955 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:30,021 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:30,531 WARN L180 SmtUtils]: Spent 226.00 ms on a formula simplification. DAG size of input: 21 DAG size of output: 10 [2018-11-23 12:23:30,548 INFO L256 TraceCheckUtils]: 0: Hoare triple {33#true} call ULTIMATE.init(); {33#true} is VALID [2018-11-23 12:23:30,552 INFO L273 TraceCheckUtils]: 1: Hoare triple {33#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {33#true} is VALID [2018-11-23 12:23:30,552 INFO L273 TraceCheckUtils]: 2: Hoare triple {33#true} assume true; {33#true} is VALID [2018-11-23 12:23:30,553 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {33#true} {33#true} #72#return; {33#true} is VALID [2018-11-23 12:23:30,553 INFO L256 TraceCheckUtils]: 4: Hoare triple {33#true} call #t~ret7 := main(); {33#true} is VALID [2018-11-23 12:23:30,553 INFO L273 TraceCheckUtils]: 5: Hoare triple {33#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {33#true} is VALID [2018-11-23 12:23:30,554 INFO L273 TraceCheckUtils]: 6: Hoare triple {33#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {35#(<= 2 ~SIZE~0)} is VALID [2018-11-23 12:23:30,564 INFO L273 TraceCheckUtils]: 7: Hoare triple {35#(<= 2 ~SIZE~0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {36#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:30,568 INFO L273 TraceCheckUtils]: 8: Hoare triple {36#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))) (<= 2 ~SIZE~0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {34#false} is VALID [2018-11-23 12:23:30,568 INFO L273 TraceCheckUtils]: 9: Hoare triple {34#false} ~i~0 := 0; {34#false} is VALID [2018-11-23 12:23:30,569 INFO L273 TraceCheckUtils]: 10: Hoare triple {34#false} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {34#false} is VALID [2018-11-23 12:23:30,569 INFO L256 TraceCheckUtils]: 11: Hoare triple {34#false} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {34#false} is VALID [2018-11-23 12:23:30,569 INFO L273 TraceCheckUtils]: 12: Hoare triple {34#false} ~cond := #in~cond; {34#false} is VALID [2018-11-23 12:23:30,570 INFO L273 TraceCheckUtils]: 13: Hoare triple {34#false} assume 0 == ~cond; {34#false} is VALID [2018-11-23 12:23:30,570 INFO L273 TraceCheckUtils]: 14: Hoare triple {34#false} assume !false; {34#false} is VALID [2018-11-23 12:23:30,573 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:23:30,575 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 12:23:30,576 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-23 12:23:30,581 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 15 [2018-11-23 12:23:30,584 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:30,588 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2018-11-23 12:23:30,649 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 15 edges. 15 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:30,649 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-23 12:23:30,657 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-23 12:23:30,658 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:23:30,660 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 4 states. [2018-11-23 12:23:31,198 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:31,198 INFO L93 Difference]: Finished difference Result 57 states and 71 transitions. [2018-11-23 12:23:31,199 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-23 12:23:31,199 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 15 [2018-11-23 12:23:31,199 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:31,201 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 12:23:31,213 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 71 transitions. [2018-11-23 12:23:31,214 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-23 12:23:31,220 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 71 transitions. [2018-11-23 12:23:31,220 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 71 transitions. [2018-11-23 12:23:31,686 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 71 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:31,697 INFO L225 Difference]: With dead ends: 57 [2018-11-23 12:23:31,698 INFO L226 Difference]: Without dead ends: 29 [2018-11-23 12:23:31,702 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 4 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-23 12:23:31,716 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 29 states. [2018-11-23 12:23:31,755 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 29 to 25. [2018-11-23 12:23:31,756 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:23:31,756 INFO L82 GeneralOperation]: Start isEquivalent. First operand 29 states. Second operand 25 states. [2018-11-23 12:23:31,757 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 25 states. [2018-11-23 12:23:31,757 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 25 states. [2018-11-23 12:23:31,763 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:31,763 INFO L93 Difference]: Finished difference Result 29 states and 34 transitions. [2018-11-23 12:23:31,763 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2018-11-23 12:23:31,764 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:31,764 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:31,764 INFO L74 IsIncluded]: Start isIncluded. First operand 25 states. Second operand 29 states. [2018-11-23 12:23:31,765 INFO L87 Difference]: Start difference. First operand 25 states. Second operand 29 states. [2018-11-23 12:23:31,768 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:31,769 INFO L93 Difference]: Finished difference Result 29 states and 34 transitions. [2018-11-23 12:23:31,769 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 34 transitions. [2018-11-23 12:23:31,770 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:31,770 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:31,770 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:23:31,770 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:23:31,771 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2018-11-23 12:23:31,773 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 28 transitions. [2018-11-23 12:23:31,775 INFO L78 Accepts]: Start accepts. Automaton has 25 states and 28 transitions. Word has length 15 [2018-11-23 12:23:31,775 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:31,776 INFO L480 AbstractCegarLoop]: Abstraction has 25 states and 28 transitions. [2018-11-23 12:23:31,776 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-23 12:23:31,776 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 28 transitions. [2018-11-23 12:23:31,777 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2018-11-23 12:23:31,777 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:31,777 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:31,778 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:31,778 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:31,778 INFO L82 PathProgramCache]: Analyzing trace with hash 505215540, now seen corresponding path program 1 times [2018-11-23 12:23:31,778 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:31,779 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:31,780 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:31,780 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:31,780 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:31,822 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:32,438 INFO L256 TraceCheckUtils]: 0: Hoare triple {200#true} call ULTIMATE.init(); {200#true} is VALID [2018-11-23 12:23:32,438 INFO L273 TraceCheckUtils]: 1: Hoare triple {200#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {200#true} is VALID [2018-11-23 12:23:32,439 INFO L273 TraceCheckUtils]: 2: Hoare triple {200#true} assume true; {200#true} is VALID [2018-11-23 12:23:32,439 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {200#true} {200#true} #72#return; {200#true} is VALID [2018-11-23 12:23:32,439 INFO L256 TraceCheckUtils]: 4: Hoare triple {200#true} call #t~ret7 := main(); {200#true} is VALID [2018-11-23 12:23:32,439 INFO L273 TraceCheckUtils]: 5: Hoare triple {200#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {200#true} is VALID [2018-11-23 12:23:32,441 INFO L273 TraceCheckUtils]: 6: Hoare triple {200#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {202#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:23:32,444 INFO L273 TraceCheckUtils]: 7: Hoare triple {202#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {203#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,445 INFO L273 TraceCheckUtils]: 8: Hoare triple {203#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {203#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,446 INFO L273 TraceCheckUtils]: 9: Hoare triple {203#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {204#(and (= main_~i~0 1) (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,449 INFO L273 TraceCheckUtils]: 10: Hoare triple {204#(and (= main_~i~0 1) (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {204#(and (= main_~i~0 1) (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,458 INFO L273 TraceCheckUtils]: 11: Hoare triple {204#(and (= main_~i~0 1) (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {204#(and (= main_~i~0 1) (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,460 INFO L273 TraceCheckUtils]: 12: Hoare triple {204#(and (= main_~i~0 1) (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} is VALID [2018-11-23 12:23:32,461 INFO L273 TraceCheckUtils]: 13: Hoare triple {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} is VALID [2018-11-23 12:23:32,462 INFO L273 TraceCheckUtils]: 14: Hoare triple {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} ~i~0 := 0; {206#(and (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,463 INFO L273 TraceCheckUtils]: 15: Hoare triple {206#(and (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {207#(and (= |main_#t~mem6| 0) (= main_~i~0 0))} is VALID [2018-11-23 12:23:32,467 INFO L256 TraceCheckUtils]: 16: Hoare triple {207#(and (= |main_#t~mem6| 0) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {208#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:23:32,467 INFO L273 TraceCheckUtils]: 17: Hoare triple {208#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {209#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:23:32,469 INFO L273 TraceCheckUtils]: 18: Hoare triple {209#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {201#false} is VALID [2018-11-23 12:23:32,469 INFO L273 TraceCheckUtils]: 19: Hoare triple {201#false} assume !false; {201#false} is VALID [2018-11-23 12:23:32,472 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:23:32,472 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:23:32,472 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:23:32,485 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:32,507 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:32,521 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:32,527 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:32,688 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:23:32,696 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:23:32,699 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:23:32,703 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:32,711 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:32,711 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:15, output treesize:11 [2018-11-23 12:23:32,875 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 19 treesize of output 15 [2018-11-23 12:23:32,884 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 15 treesize of output 3 [2018-11-23 12:23:32,885 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:23:32,887 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:32,892 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:23:32,892 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:22, output treesize:7 [2018-11-23 12:23:32,901 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:23:32,902 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select (select |#memory_int| |main_~#a~0.base|) (* 4 main_~i~0)))) (and (<= |main_#t~mem6| .cse0) (= 0 .cse0) (= main_~i~0 0))) [2018-11-23 12:23:32,902 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= |main_#t~mem6| 0) (= main_~i~0 0)) [2018-11-23 12:23:32,962 INFO L256 TraceCheckUtils]: 0: Hoare triple {200#true} call ULTIMATE.init(); {200#true} is VALID [2018-11-23 12:23:32,962 INFO L273 TraceCheckUtils]: 1: Hoare triple {200#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {200#true} is VALID [2018-11-23 12:23:32,963 INFO L273 TraceCheckUtils]: 2: Hoare triple {200#true} assume true; {200#true} is VALID [2018-11-23 12:23:32,963 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {200#true} {200#true} #72#return; {200#true} is VALID [2018-11-23 12:23:32,964 INFO L256 TraceCheckUtils]: 4: Hoare triple {200#true} call #t~ret7 := main(); {200#true} is VALID [2018-11-23 12:23:32,964 INFO L273 TraceCheckUtils]: 5: Hoare triple {200#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {200#true} is VALID [2018-11-23 12:23:32,965 INFO L273 TraceCheckUtils]: 6: Hoare triple {200#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {202#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:23:32,966 INFO L273 TraceCheckUtils]: 7: Hoare triple {202#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {203#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,966 INFO L273 TraceCheckUtils]: 8: Hoare triple {203#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {203#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,967 INFO L273 TraceCheckUtils]: 9: Hoare triple {203#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} is VALID [2018-11-23 12:23:32,968 INFO L273 TraceCheckUtils]: 10: Hoare triple {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} is VALID [2018-11-23 12:23:32,968 INFO L273 TraceCheckUtils]: 11: Hoare triple {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} is VALID [2018-11-23 12:23:32,969 INFO L273 TraceCheckUtils]: 12: Hoare triple {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} is VALID [2018-11-23 12:23:32,971 INFO L273 TraceCheckUtils]: 13: Hoare triple {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} is VALID [2018-11-23 12:23:32,972 INFO L273 TraceCheckUtils]: 14: Hoare triple {205#(and (= |main_~#a~0.offset| 0) (= 0 (select (select |#memory_int| |main_~#a~0.base|) 0)))} ~i~0 := 0; {206#(and (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:32,973 INFO L273 TraceCheckUtils]: 15: Hoare triple {206#(and (= 0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {258#(and (<= |main_#t~mem6| 0) (= main_~i~0 0))} is VALID [2018-11-23 12:23:32,979 INFO L256 TraceCheckUtils]: 16: Hoare triple {258#(and (<= |main_#t~mem6| 0) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {262#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:23:32,980 INFO L273 TraceCheckUtils]: 17: Hoare triple {262#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {266#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:23:32,981 INFO L273 TraceCheckUtils]: 18: Hoare triple {266#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {201#false} is VALID [2018-11-23 12:23:32,981 INFO L273 TraceCheckUtils]: 19: Hoare triple {201#false} assume !false; {201#false} is VALID [2018-11-23 12:23:32,983 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:23:33,004 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:33,004 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 9] total 13 [2018-11-23 12:23:33,005 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 20 [2018-11-23 12:23:33,006 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:33,006 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2018-11-23 12:23:33,086 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 28 edges. 28 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:33,086 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2018-11-23 12:23:33,086 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2018-11-23 12:23:33,086 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=123, Unknown=0, NotChecked=0, Total=156 [2018-11-23 12:23:33,087 INFO L87 Difference]: Start difference. First operand 25 states and 28 transitions. Second operand 13 states. [2018-11-23 12:23:34,055 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:34,055 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2018-11-23 12:23:34,056 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-23 12:23:34,056 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 20 [2018-11-23 12:23:34,056 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:34,056 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2018-11-23 12:23:34,061 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 67 transitions. [2018-11-23 12:23:34,061 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2018-11-23 12:23:34,065 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 67 transitions. [2018-11-23 12:23:34,066 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 67 transitions. [2018-11-23 12:23:34,164 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:34,168 INFO L225 Difference]: With dead ends: 56 [2018-11-23 12:23:34,168 INFO L226 Difference]: Without dead ends: 54 [2018-11-23 12:23:34,169 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 31 GetRequests, 16 SyntacticMatches, 2 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 48 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=46, Invalid=164, Unknown=0, NotChecked=0, Total=210 [2018-11-23 12:23:34,169 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2018-11-23 12:23:34,277 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 38. [2018-11-23 12:23:34,277 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:23:34,277 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 38 states. [2018-11-23 12:23:34,278 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 38 states. [2018-11-23 12:23:34,278 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 38 states. [2018-11-23 12:23:34,284 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:34,285 INFO L93 Difference]: Finished difference Result 54 states and 65 transitions. [2018-11-23 12:23:34,285 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 65 transitions. [2018-11-23 12:23:34,286 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:34,286 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:34,287 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 54 states. [2018-11-23 12:23:34,287 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 54 states. [2018-11-23 12:23:34,292 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:34,292 INFO L93 Difference]: Finished difference Result 54 states and 65 transitions. [2018-11-23 12:23:34,292 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 65 transitions. [2018-11-23 12:23:34,293 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:34,293 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:34,294 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:23:34,294 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:23:34,294 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 38 states. [2018-11-23 12:23:34,297 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 45 transitions. [2018-11-23 12:23:34,297 INFO L78 Accepts]: Start accepts. Automaton has 38 states and 45 transitions. Word has length 20 [2018-11-23 12:23:34,297 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:34,297 INFO L480 AbstractCegarLoop]: Abstraction has 38 states and 45 transitions. [2018-11-23 12:23:34,298 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2018-11-23 12:23:34,298 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 45 transitions. [2018-11-23 12:23:34,299 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2018-11-23 12:23:34,299 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:34,299 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:34,299 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:34,300 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:34,300 INFO L82 PathProgramCache]: Analyzing trace with hash 1206280118, now seen corresponding path program 1 times [2018-11-23 12:23:34,300 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:34,300 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:34,301 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:34,301 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:34,301 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:34,327 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:34,756 INFO L256 TraceCheckUtils]: 0: Hoare triple {508#true} call ULTIMATE.init(); {508#true} is VALID [2018-11-23 12:23:34,757 INFO L273 TraceCheckUtils]: 1: Hoare triple {508#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {508#true} is VALID [2018-11-23 12:23:34,757 INFO L273 TraceCheckUtils]: 2: Hoare triple {508#true} assume true; {508#true} is VALID [2018-11-23 12:23:34,757 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {508#true} {508#true} #72#return; {508#true} is VALID [2018-11-23 12:23:34,758 INFO L256 TraceCheckUtils]: 4: Hoare triple {508#true} call #t~ret7 := main(); {508#true} is VALID [2018-11-23 12:23:34,758 INFO L273 TraceCheckUtils]: 5: Hoare triple {508#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {508#true} is VALID [2018-11-23 12:23:34,763 INFO L273 TraceCheckUtils]: 6: Hoare triple {508#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {510#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:23:34,765 INFO L273 TraceCheckUtils]: 7: Hoare triple {510#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {511#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:34,771 INFO L273 TraceCheckUtils]: 8: Hoare triple {511#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {512#(and (= |main_#t~mem3| (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:34,772 INFO L273 TraceCheckUtils]: 9: Hoare triple {512#(and (= |main_#t~mem3| (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem3 > 2 * ~i~0 - 2);havoc #t~mem3; {513#(and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (* 2 main_~i~0)) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:34,773 INFO L273 TraceCheckUtils]: 10: Hoare triple {513#(and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (* 2 main_~i~0)) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {513#(and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (* 2 main_~i~0)) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:34,774 INFO L273 TraceCheckUtils]: 11: Hoare triple {513#(and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (* 2 main_~i~0)) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {513#(and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (* 2 main_~i~0)) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:34,774 INFO L273 TraceCheckUtils]: 12: Hoare triple {513#(and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (* 2 main_~i~0)) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:34,777 INFO L273 TraceCheckUtils]: 13: Hoare triple {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:34,778 INFO L273 TraceCheckUtils]: 14: Hoare triple {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {515#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) 0) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:34,779 INFO L273 TraceCheckUtils]: 15: Hoare triple {515#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) 0) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {516#(and (<= |main_#t~mem6| 0) (= main_~i~0 0))} is VALID [2018-11-23 12:23:34,780 INFO L256 TraceCheckUtils]: 16: Hoare triple {516#(and (<= |main_#t~mem6| 0) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {517#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:23:34,781 INFO L273 TraceCheckUtils]: 17: Hoare triple {517#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {518#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:23:34,782 INFO L273 TraceCheckUtils]: 18: Hoare triple {518#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {509#false} is VALID [2018-11-23 12:23:34,783 INFO L273 TraceCheckUtils]: 19: Hoare triple {509#false} assume !false; {509#false} is VALID [2018-11-23 12:23:34,786 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:23:34,787 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:23:34,787 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:23:34,805 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:34,826 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:34,838 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:34,839 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:35,058 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 19 treesize of output 15 [2018-11-23 12:23:35,069 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 7 [2018-11-23 12:23:35,074 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:23:35,076 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:35,082 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:23:35,083 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:22, output treesize:7 [2018-11-23 12:23:35,086 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:23:35,086 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select (select |#memory_int| |main_~#a~0.base|) (* 4 main_~i~0)))) (and (<= |main_#t~mem6| .cse0) (<= .cse0 0) (= main_~i~0 0))) [2018-11-23 12:23:35,086 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= |main_#t~mem6| 0) (= main_~i~0 0)) [2018-11-23 12:23:35,491 INFO L256 TraceCheckUtils]: 0: Hoare triple {508#true} call ULTIMATE.init(); {508#true} is VALID [2018-11-23 12:23:35,492 INFO L273 TraceCheckUtils]: 1: Hoare triple {508#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {508#true} is VALID [2018-11-23 12:23:35,492 INFO L273 TraceCheckUtils]: 2: Hoare triple {508#true} assume true; {508#true} is VALID [2018-11-23 12:23:35,492 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {508#true} {508#true} #72#return; {508#true} is VALID [2018-11-23 12:23:35,493 INFO L256 TraceCheckUtils]: 4: Hoare triple {508#true} call #t~ret7 := main(); {508#true} is VALID [2018-11-23 12:23:35,493 INFO L273 TraceCheckUtils]: 5: Hoare triple {508#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {508#true} is VALID [2018-11-23 12:23:35,494 INFO L273 TraceCheckUtils]: 6: Hoare triple {508#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {510#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:23:35,496 INFO L273 TraceCheckUtils]: 7: Hoare triple {510#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {511#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:35,496 INFO L273 TraceCheckUtils]: 8: Hoare triple {511#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {546#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) |main_#t~mem3|) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:35,498 INFO L273 TraceCheckUtils]: 9: Hoare triple {546#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) |main_#t~mem3|) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem3 > 2 * ~i~0 - 2);havoc #t~mem3; {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:35,499 INFO L273 TraceCheckUtils]: 10: Hoare triple {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:35,499 INFO L273 TraceCheckUtils]: 11: Hoare triple {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:35,503 INFO L273 TraceCheckUtils]: 12: Hoare triple {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:35,504 INFO L273 TraceCheckUtils]: 13: Hoare triple {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:35,505 INFO L273 TraceCheckUtils]: 14: Hoare triple {514#(and (<= (select (select |#memory_int| |main_~#a~0.base|) 0) 0) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {515#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) 0) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:35,505 INFO L273 TraceCheckUtils]: 15: Hoare triple {515#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) 0) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {516#(and (<= |main_#t~mem6| 0) (= main_~i~0 0))} is VALID [2018-11-23 12:23:35,506 INFO L256 TraceCheckUtils]: 16: Hoare triple {516#(and (<= |main_#t~mem6| 0) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {571#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:23:35,507 INFO L273 TraceCheckUtils]: 17: Hoare triple {571#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {575#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:23:35,507 INFO L273 TraceCheckUtils]: 18: Hoare triple {575#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {509#false} is VALID [2018-11-23 12:23:35,508 INFO L273 TraceCheckUtils]: 19: Hoare triple {509#false} assume !false; {509#false} is VALID [2018-11-23 12:23:35,509 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:23:35,528 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:35,529 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 10] total 14 [2018-11-23 12:23:35,529 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 20 [2018-11-23 12:23:35,530 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:35,530 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states. [2018-11-23 12:23:35,565 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 28 edges. 28 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:35,565 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2018-11-23 12:23:35,566 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2018-11-23 12:23:35,566 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=143, Unknown=0, NotChecked=0, Total=182 [2018-11-23 12:23:35,566 INFO L87 Difference]: Start difference. First operand 38 states and 45 transitions. Second operand 14 states. [2018-11-23 12:23:36,514 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:36,514 INFO L93 Difference]: Finished difference Result 58 states and 68 transitions. [2018-11-23 12:23:36,515 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-23 12:23:36,515 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 20 [2018-11-23 12:23:36,515 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:36,515 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 12:23:36,519 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 49 transitions. [2018-11-23 12:23:36,519 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 12:23:36,521 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 49 transitions. [2018-11-23 12:23:36,522 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 49 transitions. [2018-11-23 12:23:36,661 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:36,664 INFO L225 Difference]: With dead ends: 58 [2018-11-23 12:23:36,664 INFO L226 Difference]: Without dead ends: 56 [2018-11-23 12:23:36,667 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 32 GetRequests, 16 SyntacticMatches, 2 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 64 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=51, Invalid=189, Unknown=0, NotChecked=0, Total=240 [2018-11-23 12:23:36,668 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2018-11-23 12:23:36,745 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 31. [2018-11-23 12:23:36,745 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:23:36,745 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand 31 states. [2018-11-23 12:23:36,745 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand 31 states. [2018-11-23 12:23:36,745 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 31 states. [2018-11-23 12:23:36,750 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:36,750 INFO L93 Difference]: Finished difference Result 56 states and 66 transitions. [2018-11-23 12:23:36,750 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 66 transitions. [2018-11-23 12:23:36,751 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:36,751 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:36,751 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 56 states. [2018-11-23 12:23:36,752 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 56 states. [2018-11-23 12:23:36,756 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:36,756 INFO L93 Difference]: Finished difference Result 56 states and 66 transitions. [2018-11-23 12:23:36,756 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 66 transitions. [2018-11-23 12:23:36,757 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:36,757 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:36,757 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:23:36,757 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:23:36,758 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2018-11-23 12:23:36,759 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 34 transitions. [2018-11-23 12:23:36,760 INFO L78 Accepts]: Start accepts. Automaton has 31 states and 34 transitions. Word has length 20 [2018-11-23 12:23:36,760 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:36,760 INFO L480 AbstractCegarLoop]: Abstraction has 31 states and 34 transitions. [2018-11-23 12:23:36,760 INFO L481 AbstractCegarLoop]: Interpolant automaton has 14 states. [2018-11-23 12:23:36,760 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 34 transitions. [2018-11-23 12:23:36,761 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2018-11-23 12:23:36,762 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:36,762 INFO L402 BasicCegarLoop]: trace histogram [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] [2018-11-23 12:23:36,762 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:36,762 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:36,763 INFO L82 PathProgramCache]: Analyzing trace with hash -114237849, now seen corresponding path program 1 times [2018-11-23 12:23:36,763 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:36,763 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:36,764 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:36,764 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:36,764 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:36,790 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:37,115 INFO L256 TraceCheckUtils]: 0: Hoare triple {816#true} call ULTIMATE.init(); {816#true} is VALID [2018-11-23 12:23:37,116 INFO L273 TraceCheckUtils]: 1: Hoare triple {816#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {816#true} is VALID [2018-11-23 12:23:37,116 INFO L273 TraceCheckUtils]: 2: Hoare triple {816#true} assume true; {816#true} is VALID [2018-11-23 12:23:37,116 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {816#true} {816#true} #72#return; {816#true} is VALID [2018-11-23 12:23:37,117 INFO L256 TraceCheckUtils]: 4: Hoare triple {816#true} call #t~ret7 := main(); {816#true} is VALID [2018-11-23 12:23:37,117 INFO L273 TraceCheckUtils]: 5: Hoare triple {816#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {816#true} is VALID [2018-11-23 12:23:37,118 INFO L273 TraceCheckUtils]: 6: Hoare triple {816#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {816#true} is VALID [2018-11-23 12:23:37,119 INFO L273 TraceCheckUtils]: 7: Hoare triple {816#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {818#(= main_~i~0 1)} is VALID [2018-11-23 12:23:37,119 INFO L273 TraceCheckUtils]: 8: Hoare triple {818#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {818#(= main_~i~0 1)} is VALID [2018-11-23 12:23:37,120 INFO L273 TraceCheckUtils]: 9: Hoare triple {818#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {818#(= main_~i~0 1)} is VALID [2018-11-23 12:23:37,120 INFO L273 TraceCheckUtils]: 10: Hoare triple {818#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {819#(and (= |main_#t~mem4| (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4)))) (= main_~i~0 1))} is VALID [2018-11-23 12:23:37,125 INFO L273 TraceCheckUtils]: 11: Hoare triple {819#(and (= |main_#t~mem4| (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4)))) (= main_~i~0 1))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {820#(and (= main_~i~0 1) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 1) (* 2 main_~i~0)))} is VALID [2018-11-23 12:23:37,126 INFO L273 TraceCheckUtils]: 12: Hoare triple {820#(and (= main_~i~0 1) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 1) (* 2 main_~i~0)))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {821#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1)} is VALID [2018-11-23 12:23:37,127 INFO L273 TraceCheckUtils]: 13: Hoare triple {821#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1)} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {821#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1)} is VALID [2018-11-23 12:23:37,127 INFO L273 TraceCheckUtils]: 14: Hoare triple {821#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1)} ~i~0 := 0; {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} is VALID [2018-11-23 12:23:37,128 INFO L273 TraceCheckUtils]: 15: Hoare triple {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} is VALID [2018-11-23 12:23:37,128 INFO L256 TraceCheckUtils]: 16: Hoare triple {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {816#true} is VALID [2018-11-23 12:23:37,128 INFO L273 TraceCheckUtils]: 17: Hoare triple {816#true} ~cond := #in~cond; {816#true} is VALID [2018-11-23 12:23:37,129 INFO L273 TraceCheckUtils]: 18: Hoare triple {816#true} assume !(0 == ~cond); {816#true} is VALID [2018-11-23 12:23:37,129 INFO L273 TraceCheckUtils]: 19: Hoare triple {816#true} assume true; {816#true} is VALID [2018-11-23 12:23:37,130 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {816#true} {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} #76#return; {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} is VALID [2018-11-23 12:23:37,132 INFO L273 TraceCheckUtils]: 21: Hoare triple {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} havoc #t~mem6; {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} is VALID [2018-11-23 12:23:37,133 INFO L273 TraceCheckUtils]: 22: Hoare triple {822#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 2) (- 4)))) 1) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {823#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} is VALID [2018-11-23 12:23:37,134 INFO L273 TraceCheckUtils]: 23: Hoare triple {823#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {824#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:23:37,135 INFO L256 TraceCheckUtils]: 24: Hoare triple {824#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {825#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:23:37,135 INFO L273 TraceCheckUtils]: 25: Hoare triple {825#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {826#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:23:37,150 INFO L273 TraceCheckUtils]: 26: Hoare triple {826#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {817#false} is VALID [2018-11-23 12:23:37,151 INFO L273 TraceCheckUtils]: 27: Hoare triple {817#false} assume !false; {817#false} is VALID [2018-11-23 12:23:37,153 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 2 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:23:37,153 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:23:37,153 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:23:37,163 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:37,181 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:37,207 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:37,208 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:37,862 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 17 treesize of output 13 [2018-11-23 12:23:37,928 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:23:37,950 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-23 12:23:38,025 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:23:38,101 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:38,165 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:23:38,165 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:20, output treesize:7 [2018-11-23 12:23:38,167 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:23:38,167 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (<= (select .cse0 4) 1) (<= |main_#t~mem6| (select .cse0 (* 4 main_~i~0))) (= main_~i~0 1))) [2018-11-23 12:23:38,167 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= |main_#t~mem6| 1) (= main_~i~0 1)) [2018-11-23 12:23:38,302 INFO L256 TraceCheckUtils]: 0: Hoare triple {816#true} call ULTIMATE.init(); {816#true} is VALID [2018-11-23 12:23:38,302 INFO L273 TraceCheckUtils]: 1: Hoare triple {816#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {816#true} is VALID [2018-11-23 12:23:38,303 INFO L273 TraceCheckUtils]: 2: Hoare triple {816#true} assume true; {816#true} is VALID [2018-11-23 12:23:38,303 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {816#true} {816#true} #72#return; {816#true} is VALID [2018-11-23 12:23:38,304 INFO L256 TraceCheckUtils]: 4: Hoare triple {816#true} call #t~ret7 := main(); {816#true} is VALID [2018-11-23 12:23:38,304 INFO L273 TraceCheckUtils]: 5: Hoare triple {816#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {816#true} is VALID [2018-11-23 12:23:38,305 INFO L273 TraceCheckUtils]: 6: Hoare triple {816#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {848#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:23:38,306 INFO L273 TraceCheckUtils]: 7: Hoare triple {848#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {852#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,306 INFO L273 TraceCheckUtils]: 8: Hoare triple {852#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {852#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,307 INFO L273 TraceCheckUtils]: 9: Hoare triple {852#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {852#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,307 INFO L273 TraceCheckUtils]: 10: Hoare triple {852#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {862#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) |main_#t~mem4|) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,308 INFO L273 TraceCheckUtils]: 11: Hoare triple {862#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) |main_#t~mem4|) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {866#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,309 INFO L273 TraceCheckUtils]: 12: Hoare triple {866#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {866#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,310 INFO L273 TraceCheckUtils]: 13: Hoare triple {866#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {866#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,310 INFO L273 TraceCheckUtils]: 14: Hoare triple {866#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,311 INFO L273 TraceCheckUtils]: 15: Hoare triple {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,313 INFO L256 TraceCheckUtils]: 16: Hoare triple {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {883#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) 4) 1))} is VALID [2018-11-23 12:23:38,314 INFO L273 TraceCheckUtils]: 17: Hoare triple {883#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) 4) 1))} ~cond := #in~cond; {883#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) 4) 1))} is VALID [2018-11-23 12:23:38,314 INFO L273 TraceCheckUtils]: 18: Hoare triple {883#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) 4) 1))} assume !(0 == ~cond); {883#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) 4) 1))} is VALID [2018-11-23 12:23:38,315 INFO L273 TraceCheckUtils]: 19: Hoare triple {883#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) 4) 1))} assume true; {883#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) 4) 1))} is VALID [2018-11-23 12:23:38,316 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {883#(exists ((|v_main_~#a~0.base_BEFORE_CALL_1| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_1|) 4) 1))} {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #76#return; {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,317 INFO L273 TraceCheckUtils]: 21: Hoare triple {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,318 INFO L273 TraceCheckUtils]: 22: Hoare triple {876#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {902#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:38,319 INFO L273 TraceCheckUtils]: 23: Hoare triple {902#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)) 1) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {906#(and (<= |main_#t~mem6| 1) (= main_~i~0 1))} is VALID [2018-11-23 12:23:38,320 INFO L256 TraceCheckUtils]: 24: Hoare triple {906#(and (<= |main_#t~mem6| 1) (= main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {910#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:23:38,321 INFO L273 TraceCheckUtils]: 25: Hoare triple {910#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {914#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:23:38,321 INFO L273 TraceCheckUtils]: 26: Hoare triple {914#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {817#false} is VALID [2018-11-23 12:23:38,322 INFO L273 TraceCheckUtils]: 27: Hoare triple {817#false} assume !false; {817#false} is VALID [2018-11-23 12:23:38,324 INFO L134 CoverageAnalysis]: Checked inductivity of 5 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-23 12:23:38,343 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:38,343 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 12] total 21 [2018-11-23 12:23:38,344 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 28 [2018-11-23 12:23:38,344 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:38,344 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states. [2018-11-23 12:23:38,440 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:38,441 INFO L459 AbstractCegarLoop]: Interpolant automaton has 21 states [2018-11-23 12:23:38,441 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2018-11-23 12:23:38,441 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=351, Unknown=0, NotChecked=0, Total=420 [2018-11-23 12:23:38,442 INFO L87 Difference]: Start difference. First operand 31 states and 34 transitions. Second operand 21 states. [2018-11-23 12:23:39,856 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:39,857 INFO L93 Difference]: Finished difference Result 47 states and 52 transitions. [2018-11-23 12:23:39,857 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2018-11-23 12:23:39,857 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 28 [2018-11-23 12:23:39,858 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:39,858 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 12:23:39,861 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 49 transitions. [2018-11-23 12:23:39,861 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 12:23:39,864 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 49 transitions. [2018-11-23 12:23:39,864 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 49 transitions. [2018-11-23 12:23:40,062 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:40,063 INFO L225 Difference]: With dead ends: 47 [2018-11-23 12:23:40,063 INFO L226 Difference]: Without dead ends: 45 [2018-11-23 12:23:40,064 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 43 GetRequests, 18 SyntacticMatches, 1 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 152 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=107, Invalid=543, Unknown=0, NotChecked=0, Total=650 [2018-11-23 12:23:40,064 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2018-11-23 12:23:40,122 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 39. [2018-11-23 12:23:40,122 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:23:40,123 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand 39 states. [2018-11-23 12:23:40,123 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 39 states. [2018-11-23 12:23:40,123 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 39 states. [2018-11-23 12:23:40,126 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:40,126 INFO L93 Difference]: Finished difference Result 45 states and 50 transitions. [2018-11-23 12:23:40,126 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 50 transitions. [2018-11-23 12:23:40,127 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:40,127 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:40,127 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 45 states. [2018-11-23 12:23:40,127 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 45 states. [2018-11-23 12:23:40,130 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:40,130 INFO L93 Difference]: Finished difference Result 45 states and 50 transitions. [2018-11-23 12:23:40,130 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 50 transitions. [2018-11-23 12:23:40,131 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:40,131 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:40,131 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:23:40,131 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:23:40,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2018-11-23 12:23:40,133 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 42 transitions. [2018-11-23 12:23:40,134 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 42 transitions. Word has length 28 [2018-11-23 12:23:40,134 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:40,134 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 42 transitions. [2018-11-23 12:23:40,134 INFO L481 AbstractCegarLoop]: Interpolant automaton has 21 states. [2018-11-23 12:23:40,134 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 42 transitions. [2018-11-23 12:23:40,135 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-23 12:23:40,135 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:40,135 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:40,136 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:40,136 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:40,136 INFO L82 PathProgramCache]: Analyzing trace with hash -1916608614, now seen corresponding path program 2 times [2018-11-23 12:23:40,136 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:40,136 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:40,137 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:40,137 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:40,138 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:40,155 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:40,404 INFO L256 TraceCheckUtils]: 0: Hoare triple {1136#true} call ULTIMATE.init(); {1136#true} is VALID [2018-11-23 12:23:40,405 INFO L273 TraceCheckUtils]: 1: Hoare triple {1136#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {1136#true} is VALID [2018-11-23 12:23:40,405 INFO L273 TraceCheckUtils]: 2: Hoare triple {1136#true} assume true; {1136#true} is VALID [2018-11-23 12:23:40,405 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1136#true} {1136#true} #72#return; {1136#true} is VALID [2018-11-23 12:23:40,406 INFO L256 TraceCheckUtils]: 4: Hoare triple {1136#true} call #t~ret7 := main(); {1136#true} is VALID [2018-11-23 12:23:40,406 INFO L273 TraceCheckUtils]: 5: Hoare triple {1136#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1136#true} is VALID [2018-11-23 12:23:40,407 INFO L273 TraceCheckUtils]: 6: Hoare triple {1136#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {1138#(<= 2 ~SIZE~0)} is VALID [2018-11-23 12:23:40,408 INFO L273 TraceCheckUtils]: 7: Hoare triple {1138#(<= 2 ~SIZE~0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:40,409 INFO L273 TraceCheckUtils]: 8: Hoare triple {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:40,409 INFO L273 TraceCheckUtils]: 9: Hoare triple {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:40,410 INFO L273 TraceCheckUtils]: 10: Hoare triple {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:40,410 INFO L273 TraceCheckUtils]: 11: Hoare triple {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:40,413 INFO L273 TraceCheckUtils]: 12: Hoare triple {1139#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {1140#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:40,414 INFO L273 TraceCheckUtils]: 13: Hoare triple {1140#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {1141#(<= ~SIZE~0 2)} is VALID [2018-11-23 12:23:40,415 INFO L273 TraceCheckUtils]: 14: Hoare triple {1141#(<= ~SIZE~0 2)} ~i~0 := 0; {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:40,415 INFO L273 TraceCheckUtils]: 15: Hoare triple {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:40,415 INFO L256 TraceCheckUtils]: 16: Hoare triple {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1136#true} is VALID [2018-11-23 12:23:40,416 INFO L273 TraceCheckUtils]: 17: Hoare triple {1136#true} ~cond := #in~cond; {1136#true} is VALID [2018-11-23 12:23:40,416 INFO L273 TraceCheckUtils]: 18: Hoare triple {1136#true} assume !(0 == ~cond); {1136#true} is VALID [2018-11-23 12:23:40,416 INFO L273 TraceCheckUtils]: 19: Hoare triple {1136#true} assume true; {1136#true} is VALID [2018-11-23 12:23:40,417 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {1136#true} {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} #76#return; {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:40,417 INFO L273 TraceCheckUtils]: 21: Hoare triple {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} havoc #t~mem6; {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:40,418 INFO L273 TraceCheckUtils]: 22: Hoare triple {1142#(and (<= ~SIZE~0 2) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {1143#(<= ~SIZE~0 (+ main_~i~0 1))} is VALID [2018-11-23 12:23:40,418 INFO L273 TraceCheckUtils]: 23: Hoare triple {1143#(<= ~SIZE~0 (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1143#(<= ~SIZE~0 (+ main_~i~0 1))} is VALID [2018-11-23 12:23:40,418 INFO L256 TraceCheckUtils]: 24: Hoare triple {1143#(<= ~SIZE~0 (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1136#true} is VALID [2018-11-23 12:23:40,418 INFO L273 TraceCheckUtils]: 25: Hoare triple {1136#true} ~cond := #in~cond; {1136#true} is VALID [2018-11-23 12:23:40,419 INFO L273 TraceCheckUtils]: 26: Hoare triple {1136#true} assume !(0 == ~cond); {1136#true} is VALID [2018-11-23 12:23:40,419 INFO L273 TraceCheckUtils]: 27: Hoare triple {1136#true} assume true; {1136#true} is VALID [2018-11-23 12:23:40,419 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {1136#true} {1143#(<= ~SIZE~0 (+ main_~i~0 1))} #76#return; {1143#(<= ~SIZE~0 (+ main_~i~0 1))} is VALID [2018-11-23 12:23:40,420 INFO L273 TraceCheckUtils]: 29: Hoare triple {1143#(<= ~SIZE~0 (+ main_~i~0 1))} havoc #t~mem6; {1143#(<= ~SIZE~0 (+ main_~i~0 1))} is VALID [2018-11-23 12:23:40,421 INFO L273 TraceCheckUtils]: 30: Hoare triple {1143#(<= ~SIZE~0 (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {1144#(<= ~SIZE~0 main_~i~0)} is VALID [2018-11-23 12:23:40,422 INFO L273 TraceCheckUtils]: 31: Hoare triple {1144#(<= ~SIZE~0 main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1137#false} is VALID [2018-11-23 12:23:40,422 INFO L256 TraceCheckUtils]: 32: Hoare triple {1137#false} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1137#false} is VALID [2018-11-23 12:23:40,422 INFO L273 TraceCheckUtils]: 33: Hoare triple {1137#false} ~cond := #in~cond; {1137#false} is VALID [2018-11-23 12:23:40,423 INFO L273 TraceCheckUtils]: 34: Hoare triple {1137#false} assume 0 == ~cond; {1137#false} is VALID [2018-11-23 12:23:40,423 INFO L273 TraceCheckUtils]: 35: Hoare triple {1137#false} assume !false; {1137#false} is VALID [2018-11-23 12:23:40,425 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 7 proven. 6 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:23:40,426 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:23:40,426 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:23:40,434 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-23 12:23:40,483 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 12:23:40,483 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:23:40,514 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:40,517 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:40,881 INFO L256 TraceCheckUtils]: 0: Hoare triple {1136#true} call ULTIMATE.init(); {1136#true} is VALID [2018-11-23 12:23:40,881 INFO L273 TraceCheckUtils]: 1: Hoare triple {1136#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {1136#true} is VALID [2018-11-23 12:23:40,881 INFO L273 TraceCheckUtils]: 2: Hoare triple {1136#true} assume true; {1136#true} is VALID [2018-11-23 12:23:40,881 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1136#true} {1136#true} #72#return; {1136#true} is VALID [2018-11-23 12:23:40,882 INFO L256 TraceCheckUtils]: 4: Hoare triple {1136#true} call #t~ret7 := main(); {1136#true} is VALID [2018-11-23 12:23:40,882 INFO L273 TraceCheckUtils]: 5: Hoare triple {1136#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1136#true} is VALID [2018-11-23 12:23:40,886 INFO L273 TraceCheckUtils]: 6: Hoare triple {1136#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {1138#(<= 2 ~SIZE~0)} is VALID [2018-11-23 12:23:40,887 INFO L273 TraceCheckUtils]: 7: Hoare triple {1138#(<= 2 ~SIZE~0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,888 INFO L273 TraceCheckUtils]: 8: Hoare triple {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,888 INFO L273 TraceCheckUtils]: 9: Hoare triple {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,889 INFO L273 TraceCheckUtils]: 10: Hoare triple {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,889 INFO L273 TraceCheckUtils]: 11: Hoare triple {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,890 INFO L273 TraceCheckUtils]: 12: Hoare triple {1169#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {1185#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,891 INFO L273 TraceCheckUtils]: 13: Hoare triple {1185#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,892 INFO L273 TraceCheckUtils]: 14: Hoare triple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~i~0 := 0; {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,893 INFO L273 TraceCheckUtils]: 15: Hoare triple {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,901 INFO L256 TraceCheckUtils]: 16: Hoare triple {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,902 INFO L273 TraceCheckUtils]: 17: Hoare triple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,903 INFO L273 TraceCheckUtils]: 18: Hoare triple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,903 INFO L273 TraceCheckUtils]: 19: Hoare triple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,904 INFO L268 TraceCheckUtils]: 20: Hoare quadruple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,905 INFO L273 TraceCheckUtils]: 21: Hoare triple {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,926 INFO L273 TraceCheckUtils]: 22: Hoare triple {1193#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,940 INFO L273 TraceCheckUtils]: 23: Hoare triple {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,943 INFO L256 TraceCheckUtils]: 24: Hoare triple {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,944 INFO L273 TraceCheckUtils]: 25: Hoare triple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,945 INFO L273 TraceCheckUtils]: 26: Hoare triple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,945 INFO L273 TraceCheckUtils]: 27: Hoare triple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,947 INFO L268 TraceCheckUtils]: 28: Hoare quadruple {1189#(and (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,947 INFO L273 TraceCheckUtils]: 29: Hoare triple {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,948 INFO L273 TraceCheckUtils]: 30: Hoare triple {1218#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {1243#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:40,949 INFO L273 TraceCheckUtils]: 31: Hoare triple {1243#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 1) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1137#false} is VALID [2018-11-23 12:23:40,949 INFO L256 TraceCheckUtils]: 32: Hoare triple {1137#false} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1137#false} is VALID [2018-11-23 12:23:40,950 INFO L273 TraceCheckUtils]: 33: Hoare triple {1137#false} ~cond := #in~cond; {1137#false} is VALID [2018-11-23 12:23:40,950 INFO L273 TraceCheckUtils]: 34: Hoare triple {1137#false} assume 0 == ~cond; {1137#false} is VALID [2018-11-23 12:23:40,950 INFO L273 TraceCheckUtils]: 35: Hoare triple {1137#false} assume !false; {1137#false} is VALID [2018-11-23 12:23:40,954 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 12 proven. 1 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:23:40,973 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:40,974 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 15 [2018-11-23 12:23:40,974 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 36 [2018-11-23 12:23:40,975 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:40,975 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states. [2018-11-23 12:23:41,037 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:41,037 INFO L459 AbstractCegarLoop]: Interpolant automaton has 15 states [2018-11-23 12:23:41,038 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2018-11-23 12:23:41,038 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=158, Unknown=0, NotChecked=0, Total=210 [2018-11-23 12:23:41,038 INFO L87 Difference]: Start difference. First operand 39 states and 42 transitions. Second operand 15 states. [2018-11-23 12:23:41,879 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:41,879 INFO L93 Difference]: Finished difference Result 76 states and 84 transitions. [2018-11-23 12:23:41,879 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2018-11-23 12:23:41,880 INFO L78 Accepts]: Start accepts. Automaton has 15 states. Word has length 36 [2018-11-23 12:23:41,880 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:41,880 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2018-11-23 12:23:41,883 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 67 transitions. [2018-11-23 12:23:41,883 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 15 states. [2018-11-23 12:23:41,886 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 67 transitions. [2018-11-23 12:23:41,886 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 67 transitions. [2018-11-23 12:23:41,968 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:41,970 INFO L225 Difference]: With dead ends: 76 [2018-11-23 12:23:41,970 INFO L226 Difference]: Without dead ends: 48 [2018-11-23 12:23:41,971 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 48 GetRequests, 30 SyntacticMatches, 1 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 45 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=94, Invalid=248, Unknown=0, NotChecked=0, Total=342 [2018-11-23 12:23:41,972 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2018-11-23 12:23:42,036 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 44. [2018-11-23 12:23:42,036 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:23:42,037 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 44 states. [2018-11-23 12:23:42,037 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 44 states. [2018-11-23 12:23:42,037 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 44 states. [2018-11-23 12:23:42,040 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:42,040 INFO L93 Difference]: Finished difference Result 48 states and 55 transitions. [2018-11-23 12:23:42,040 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 55 transitions. [2018-11-23 12:23:42,041 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:42,041 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:42,041 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 48 states. [2018-11-23 12:23:42,041 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 48 states. [2018-11-23 12:23:42,044 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:42,044 INFO L93 Difference]: Finished difference Result 48 states and 55 transitions. [2018-11-23 12:23:42,044 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 55 transitions. [2018-11-23 12:23:42,045 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:42,045 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:42,045 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:23:42,045 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:23:42,045 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 44 states. [2018-11-23 12:23:42,049 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 49 transitions. [2018-11-23 12:23:42,050 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 49 transitions. Word has length 36 [2018-11-23 12:23:42,050 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:42,050 INFO L480 AbstractCegarLoop]: Abstraction has 44 states and 49 transitions. [2018-11-23 12:23:42,050 INFO L481 AbstractCegarLoop]: Interpolant automaton has 15 states. [2018-11-23 12:23:42,050 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2018-11-23 12:23:42,051 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2018-11-23 12:23:42,051 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:42,052 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:42,052 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:42,052 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:42,052 INFO L82 PathProgramCache]: Analyzing trace with hash 1672194802, now seen corresponding path program 3 times [2018-11-23 12:23:42,052 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:42,052 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:42,053 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:42,053 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:23:42,054 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:42,082 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:42,355 INFO L256 TraceCheckUtils]: 0: Hoare triple {1524#true} call ULTIMATE.init(); {1524#true} is VALID [2018-11-23 12:23:42,355 INFO L273 TraceCheckUtils]: 1: Hoare triple {1524#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {1524#true} is VALID [2018-11-23 12:23:42,355 INFO L273 TraceCheckUtils]: 2: Hoare triple {1524#true} assume true; {1524#true} is VALID [2018-11-23 12:23:42,356 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1524#true} {1524#true} #72#return; {1524#true} is VALID [2018-11-23 12:23:42,356 INFO L256 TraceCheckUtils]: 4: Hoare triple {1524#true} call #t~ret7 := main(); {1524#true} is VALID [2018-11-23 12:23:42,356 INFO L273 TraceCheckUtils]: 5: Hoare triple {1524#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1524#true} is VALID [2018-11-23 12:23:42,356 INFO L273 TraceCheckUtils]: 6: Hoare triple {1524#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {1524#true} is VALID [2018-11-23 12:23:42,357 INFO L273 TraceCheckUtils]: 7: Hoare triple {1524#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:42,358 INFO L273 TraceCheckUtils]: 8: Hoare triple {1526#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:42,358 INFO L273 TraceCheckUtils]: 9: Hoare triple {1526#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:42,359 INFO L273 TraceCheckUtils]: 10: Hoare triple {1526#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:42,359 INFO L273 TraceCheckUtils]: 11: Hoare triple {1526#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:42,359 INFO L273 TraceCheckUtils]: 12: Hoare triple {1526#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {1527#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:42,360 INFO L273 TraceCheckUtils]: 13: Hoare triple {1527#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1527#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:42,361 INFO L273 TraceCheckUtils]: 14: Hoare triple {1527#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1528#(and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:23:42,362 INFO L273 TraceCheckUtils]: 15: Hoare triple {1528#(and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {1528#(and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:23:42,363 INFO L273 TraceCheckUtils]: 16: Hoare triple {1528#(and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {1528#(and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:23:42,364 INFO L273 TraceCheckUtils]: 17: Hoare triple {1528#(and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {1529#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2)} is VALID [2018-11-23 12:23:42,364 INFO L273 TraceCheckUtils]: 18: Hoare triple {1529#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2)} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {1529#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2)} is VALID [2018-11-23 12:23:42,365 INFO L273 TraceCheckUtils]: 19: Hoare triple {1529#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2)} ~i~0 := 0; {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:42,366 INFO L273 TraceCheckUtils]: 20: Hoare triple {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:42,366 INFO L256 TraceCheckUtils]: 21: Hoare triple {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1524#true} is VALID [2018-11-23 12:23:42,367 INFO L273 TraceCheckUtils]: 22: Hoare triple {1524#true} ~cond := #in~cond; {1524#true} is VALID [2018-11-23 12:23:42,367 INFO L273 TraceCheckUtils]: 23: Hoare triple {1524#true} assume !(0 == ~cond); {1524#true} is VALID [2018-11-23 12:23:42,367 INFO L273 TraceCheckUtils]: 24: Hoare triple {1524#true} assume true; {1524#true} is VALID [2018-11-23 12:23:42,368 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1524#true} {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} #76#return; {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:42,370 INFO L273 TraceCheckUtils]: 26: Hoare triple {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} havoc #t~mem6; {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:42,371 INFO L273 TraceCheckUtils]: 27: Hoare triple {1530#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:42,372 INFO L273 TraceCheckUtils]: 28: Hoare triple {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:42,372 INFO L256 TraceCheckUtils]: 29: Hoare triple {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1524#true} is VALID [2018-11-23 12:23:42,372 INFO L273 TraceCheckUtils]: 30: Hoare triple {1524#true} ~cond := #in~cond; {1524#true} is VALID [2018-11-23 12:23:42,372 INFO L273 TraceCheckUtils]: 31: Hoare triple {1524#true} assume !(0 == ~cond); {1524#true} is VALID [2018-11-23 12:23:42,372 INFO L273 TraceCheckUtils]: 32: Hoare triple {1524#true} assume true; {1524#true} is VALID [2018-11-23 12:23:42,375 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {1524#true} {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #76#return; {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:42,375 INFO L273 TraceCheckUtils]: 34: Hoare triple {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} havoc #t~mem6; {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:42,376 INFO L273 TraceCheckUtils]: 35: Hoare triple {1531#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {1532#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} is VALID [2018-11-23 12:23:42,377 INFO L273 TraceCheckUtils]: 36: Hoare triple {1532#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1533#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:23:42,378 INFO L256 TraceCheckUtils]: 37: Hoare triple {1533#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1534#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:23:42,378 INFO L273 TraceCheckUtils]: 38: Hoare triple {1534#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {1535#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:23:42,379 INFO L273 TraceCheckUtils]: 39: Hoare triple {1535#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {1525#false} is VALID [2018-11-23 12:23:42,379 INFO L273 TraceCheckUtils]: 40: Hoare triple {1525#false} assume !false; {1525#false} is VALID [2018-11-23 12:23:42,384 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 4 proven. 15 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:23:42,384 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:23:42,384 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:23:42,402 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 12:23:42,433 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2018-11-23 12:23:42,433 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:23:42,463 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:42,465 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:42,655 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 20 treesize of output 17 [2018-11-23 12:23:42,660 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 17 treesize of output 16 [2018-11-23 12:23:42,663 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:23:42,667 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:42,675 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 12:23:42,676 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:27, output treesize:23 [2018-11-23 12:23:42,679 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:23:42,679 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_11|, main_~i~0]. (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (store |v_#memory_int_11| |main_~#a~0.base| (store (select |v_#memory_int_11| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8)) (+ (* 2 main_~i~0) (- 2)))) |#memory_int|)) [2018-11-23 12:23:42,680 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [main_~i~0]. (and (<= 2 main_~i~0) (= (+ (* 2 main_~i~0) (- 2)) (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8)))) (<= main_~i~0 2)) [2018-11-23 12:23:43,388 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 28 treesize of output 24 [2018-11-23 12:23:43,393 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:23:43,395 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 20 [2018-11-23 12:23:43,397 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:23:43,401 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:43,407 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:43,407 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:34, output treesize:14 [2018-11-23 12:23:43,411 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:23:43,411 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|, |main_~#a~0.offset|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (<= 2 main_~i~0) (<= |main_#t~mem6| (select .cse0 (+ (* 4 main_~i~0) |main_~#a~0.offset|))) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select .cse0 (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))) [2018-11-23 12:23:43,411 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= 2 main_~i~0) (<= main_~i~0 2) (<= (+ |main_#t~mem6| 2) (* 2 main_~i~0))) [2018-11-23 12:23:43,487 INFO L256 TraceCheckUtils]: 0: Hoare triple {1524#true} call ULTIMATE.init(); {1524#true} is VALID [2018-11-23 12:23:43,487 INFO L273 TraceCheckUtils]: 1: Hoare triple {1524#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {1524#true} is VALID [2018-11-23 12:23:43,488 INFO L273 TraceCheckUtils]: 2: Hoare triple {1524#true} assume true; {1524#true} is VALID [2018-11-23 12:23:43,488 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1524#true} {1524#true} #72#return; {1524#true} is VALID [2018-11-23 12:23:43,488 INFO L256 TraceCheckUtils]: 4: Hoare triple {1524#true} call #t~ret7 := main(); {1524#true} is VALID [2018-11-23 12:23:43,489 INFO L273 TraceCheckUtils]: 5: Hoare triple {1524#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1524#true} is VALID [2018-11-23 12:23:43,489 INFO L273 TraceCheckUtils]: 6: Hoare triple {1524#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {1524#true} is VALID [2018-11-23 12:23:43,489 INFO L273 TraceCheckUtils]: 7: Hoare triple {1524#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:43,490 INFO L273 TraceCheckUtils]: 8: Hoare triple {1526#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:43,490 INFO L273 TraceCheckUtils]: 9: Hoare triple {1526#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:43,491 INFO L273 TraceCheckUtils]: 10: Hoare triple {1526#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:43,491 INFO L273 TraceCheckUtils]: 11: Hoare triple {1526#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {1526#(= main_~i~0 1)} is VALID [2018-11-23 12:23:43,492 INFO L273 TraceCheckUtils]: 12: Hoare triple {1526#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {1527#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:43,493 INFO L273 TraceCheckUtils]: 13: Hoare triple {1527#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1527#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:43,495 INFO L273 TraceCheckUtils]: 14: Hoare triple {1527#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} is VALID [2018-11-23 12:23:43,499 INFO L273 TraceCheckUtils]: 15: Hoare triple {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} is VALID [2018-11-23 12:23:43,500 INFO L273 TraceCheckUtils]: 16: Hoare triple {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} is VALID [2018-11-23 12:23:43,500 INFO L273 TraceCheckUtils]: 17: Hoare triple {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} is VALID [2018-11-23 12:23:43,501 INFO L273 TraceCheckUtils]: 18: Hoare triple {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} is VALID [2018-11-23 12:23:43,502 INFO L273 TraceCheckUtils]: 19: Hoare triple {1581#(exists ((main_~i~0 Int)) (and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2))))} ~i~0 := 0; {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} is VALID [2018-11-23 12:23:43,524 INFO L273 TraceCheckUtils]: 20: Hoare triple {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} is VALID [2018-11-23 12:23:43,531 INFO L256 TraceCheckUtils]: 21: Hoare triple {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} is VALID [2018-11-23 12:23:43,532 INFO L273 TraceCheckUtils]: 22: Hoare triple {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} ~cond := #in~cond; {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} is VALID [2018-11-23 12:23:43,532 INFO L273 TraceCheckUtils]: 23: Hoare triple {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} assume !(0 == ~cond); {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} is VALID [2018-11-23 12:23:43,533 INFO L273 TraceCheckUtils]: 24: Hoare triple {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} assume true; {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} is VALID [2018-11-23 12:23:43,534 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} #76#return; {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} is VALID [2018-11-23 12:23:43,535 INFO L273 TraceCheckUtils]: 26: Hoare triple {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} havoc #t~mem6; {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} is VALID [2018-11-23 12:23:43,536 INFO L273 TraceCheckUtils]: 27: Hoare triple {1597#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} is VALID [2018-11-23 12:23:43,537 INFO L273 TraceCheckUtils]: 28: Hoare triple {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} is VALID [2018-11-23 12:23:43,555 INFO L256 TraceCheckUtils]: 29: Hoare triple {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} is VALID [2018-11-23 12:23:43,555 INFO L273 TraceCheckUtils]: 30: Hoare triple {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} ~cond := #in~cond; {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} is VALID [2018-11-23 12:23:43,556 INFO L273 TraceCheckUtils]: 31: Hoare triple {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} assume !(0 == ~cond); {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} is VALID [2018-11-23 12:23:43,556 INFO L273 TraceCheckUtils]: 32: Hoare triple {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} assume true; {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} is VALID [2018-11-23 12:23:43,557 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {1604#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int) (|v_main_~#a~0.offset_BEFORE_CALL_2| Int) (v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) (+ |v_main_~#a~0.offset_BEFORE_CALL_2| (* 8 v_prenex_1) (- 8))) 2))))} {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} #76#return; {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} is VALID [2018-11-23 12:23:43,558 INFO L273 TraceCheckUtils]: 34: Hoare triple {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} havoc #t~mem6; {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} is VALID [2018-11-23 12:23:43,566 INFO L273 TraceCheckUtils]: 35: Hoare triple {1623#(and (exists ((v_prenex_1 Int)) (and (<= 2 v_prenex_1) (<= v_prenex_1 2) (= (* 2 v_prenex_1) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_1) |main_~#a~0.offset| (- 8))) 2)))) (= main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {1528#(and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:23:43,567 INFO L273 TraceCheckUtils]: 36: Hoare triple {1528#(and (<= 2 main_~i~0) (<= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {1651#(and (<= 2 main_~i~0) (<= main_~i~0 2) (<= (+ |main_#t~mem6| 2) (* 2 main_~i~0)))} is VALID [2018-11-23 12:23:43,568 INFO L256 TraceCheckUtils]: 37: Hoare triple {1651#(and (<= 2 main_~i~0) (<= main_~i~0 2) (<= (+ |main_#t~mem6| 2) (* 2 main_~i~0)))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {1655#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:23:43,568 INFO L273 TraceCheckUtils]: 38: Hoare triple {1655#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {1659#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:23:43,569 INFO L273 TraceCheckUtils]: 39: Hoare triple {1659#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1525#false} is VALID [2018-11-23 12:23:43,569 INFO L273 TraceCheckUtils]: 40: Hoare triple {1525#false} assume !false; {1525#false} is VALID [2018-11-23 12:23:43,578 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:23:43,597 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:43,598 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 12] total 19 [2018-11-23 12:23:43,600 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 41 [2018-11-23 12:23:43,600 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:43,600 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states. [2018-11-23 12:23:43,765 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:43,765 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2018-11-23 12:23:43,766 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2018-11-23 12:23:43,766 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=56, Invalid=286, Unknown=0, NotChecked=0, Total=342 [2018-11-23 12:23:43,766 INFO L87 Difference]: Start difference. First operand 44 states and 49 transitions. Second operand 19 states. [2018-11-23 12:23:46,799 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:46,799 INFO L93 Difference]: Finished difference Result 108 states and 125 transitions. [2018-11-23 12:23:46,799 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2018-11-23 12:23:46,799 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 41 [2018-11-23 12:23:46,800 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:46,800 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-23 12:23:46,803 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 105 transitions. [2018-11-23 12:23:46,803 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-23 12:23:46,806 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 105 transitions. [2018-11-23 12:23:46,806 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 105 transitions. [2018-11-23 12:23:46,982 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 105 edges. 105 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:46,985 INFO L225 Difference]: With dead ends: 108 [2018-11-23 12:23:46,985 INFO L226 Difference]: Without dead ends: 106 [2018-11-23 12:23:46,986 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 60 GetRequests, 30 SyntacticMatches, 5 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 168 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=111, Invalid=591, Unknown=0, NotChecked=0, Total=702 [2018-11-23 12:23:46,986 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 106 states. [2018-11-23 12:23:47,094 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 106 to 59. [2018-11-23 12:23:47,095 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:23:47,095 INFO L82 GeneralOperation]: Start isEquivalent. First operand 106 states. Second operand 59 states. [2018-11-23 12:23:47,095 INFO L74 IsIncluded]: Start isIncluded. First operand 106 states. Second operand 59 states. [2018-11-23 12:23:47,096 INFO L87 Difference]: Start difference. First operand 106 states. Second operand 59 states. [2018-11-23 12:23:47,099 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:47,100 INFO L93 Difference]: Finished difference Result 106 states and 123 transitions. [2018-11-23 12:23:47,100 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 123 transitions. [2018-11-23 12:23:47,101 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:47,101 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:47,101 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 106 states. [2018-11-23 12:23:47,101 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 106 states. [2018-11-23 12:23:47,105 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:47,105 INFO L93 Difference]: Finished difference Result 106 states and 123 transitions. [2018-11-23 12:23:47,106 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 123 transitions. [2018-11-23 12:23:47,106 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:47,106 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:47,106 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:23:47,107 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:23:47,107 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2018-11-23 12:23:47,109 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 68 transitions. [2018-11-23 12:23:47,109 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 68 transitions. Word has length 41 [2018-11-23 12:23:47,109 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:47,109 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 68 transitions. [2018-11-23 12:23:47,109 INFO L481 AbstractCegarLoop]: Interpolant automaton has 19 states. [2018-11-23 12:23:47,109 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 68 transitions. [2018-11-23 12:23:47,110 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2018-11-23 12:23:47,110 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:47,111 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:47,111 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:47,111 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:47,111 INFO L82 PathProgramCache]: Analyzing trace with hash -699544460, now seen corresponding path program 1 times [2018-11-23 12:23:47,111 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:47,111 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:47,112 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:47,112 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:23:47,113 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:47,133 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:47,533 INFO L256 TraceCheckUtils]: 0: Hoare triple {2111#true} call ULTIMATE.init(); {2111#true} is VALID [2018-11-23 12:23:47,533 INFO L273 TraceCheckUtils]: 1: Hoare triple {2111#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {2111#true} is VALID [2018-11-23 12:23:47,534 INFO L273 TraceCheckUtils]: 2: Hoare triple {2111#true} assume true; {2111#true} is VALID [2018-11-23 12:23:47,534 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2111#true} {2111#true} #72#return; {2111#true} is VALID [2018-11-23 12:23:47,534 INFO L256 TraceCheckUtils]: 4: Hoare triple {2111#true} call #t~ret7 := main(); {2111#true} is VALID [2018-11-23 12:23:47,535 INFO L273 TraceCheckUtils]: 5: Hoare triple {2111#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {2111#true} is VALID [2018-11-23 12:23:47,535 INFO L273 TraceCheckUtils]: 6: Hoare triple {2111#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {2111#true} is VALID [2018-11-23 12:23:47,536 INFO L273 TraceCheckUtils]: 7: Hoare triple {2111#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {2113#(= main_~i~0 1)} is VALID [2018-11-23 12:23:47,536 INFO L273 TraceCheckUtils]: 8: Hoare triple {2113#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2113#(= main_~i~0 1)} is VALID [2018-11-23 12:23:47,537 INFO L273 TraceCheckUtils]: 9: Hoare triple {2113#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2113#(= main_~i~0 1)} is VALID [2018-11-23 12:23:47,537 INFO L273 TraceCheckUtils]: 10: Hoare triple {2113#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {2113#(= main_~i~0 1)} is VALID [2018-11-23 12:23:47,537 INFO L273 TraceCheckUtils]: 11: Hoare triple {2113#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {2113#(= main_~i~0 1)} is VALID [2018-11-23 12:23:47,538 INFO L273 TraceCheckUtils]: 12: Hoare triple {2113#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {2114#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:47,539 INFO L273 TraceCheckUtils]: 13: Hoare triple {2114#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2115#(and (<= 2 main_~i~0) (= |main_#t~mem3| (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:47,540 INFO L273 TraceCheckUtils]: 14: Hoare triple {2115#(and (<= 2 main_~i~0) (= |main_#t~mem3| (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (<= main_~i~0 2))} assume !(#t~mem3 > 2 * ~i~0 - 2);havoc #t~mem3; {2116#(and (<= 2 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:47,541 INFO L273 TraceCheckUtils]: 15: Hoare triple {2116#(and (<= 2 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (<= main_~i~0 2))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {2116#(and (<= 2 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:47,541 INFO L273 TraceCheckUtils]: 16: Hoare triple {2116#(and (<= 2 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (<= main_~i~0 2))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {2116#(and (<= 2 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:47,543 INFO L273 TraceCheckUtils]: 17: Hoare triple {2116#(and (<= 2 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2) (<= main_~i~0 2))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {2117#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2)} is VALID [2018-11-23 12:23:47,545 INFO L273 TraceCheckUtils]: 18: Hoare triple {2117#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2)} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {2117#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2)} is VALID [2018-11-23 12:23:47,546 INFO L273 TraceCheckUtils]: 19: Hoare triple {2117#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2)} ~i~0 := 0; {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:47,546 INFO L273 TraceCheckUtils]: 20: Hoare triple {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:47,547 INFO L256 TraceCheckUtils]: 21: Hoare triple {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2111#true} is VALID [2018-11-23 12:23:47,547 INFO L273 TraceCheckUtils]: 22: Hoare triple {2111#true} ~cond := #in~cond; {2111#true} is VALID [2018-11-23 12:23:47,547 INFO L273 TraceCheckUtils]: 23: Hoare triple {2111#true} assume !(0 == ~cond); {2111#true} is VALID [2018-11-23 12:23:47,547 INFO L273 TraceCheckUtils]: 24: Hoare triple {2111#true} assume true; {2111#true} is VALID [2018-11-23 12:23:47,548 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {2111#true} {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} #76#return; {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:47,548 INFO L273 TraceCheckUtils]: 26: Hoare triple {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} havoc #t~mem6; {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} is VALID [2018-11-23 12:23:47,549 INFO L273 TraceCheckUtils]: 27: Hoare triple {2118#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 8)))) 2) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:47,549 INFO L273 TraceCheckUtils]: 28: Hoare triple {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:47,549 INFO L256 TraceCheckUtils]: 29: Hoare triple {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2111#true} is VALID [2018-11-23 12:23:47,550 INFO L273 TraceCheckUtils]: 30: Hoare triple {2111#true} ~cond := #in~cond; {2111#true} is VALID [2018-11-23 12:23:47,550 INFO L273 TraceCheckUtils]: 31: Hoare triple {2111#true} assume !(0 == ~cond); {2111#true} is VALID [2018-11-23 12:23:47,550 INFO L273 TraceCheckUtils]: 32: Hoare triple {2111#true} assume true; {2111#true} is VALID [2018-11-23 12:23:47,550 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {2111#true} {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #76#return; {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:47,551 INFO L273 TraceCheckUtils]: 34: Hoare triple {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} havoc #t~mem6; {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:47,551 INFO L273 TraceCheckUtils]: 35: Hoare triple {2119#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2120#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} is VALID [2018-11-23 12:23:47,552 INFO L273 TraceCheckUtils]: 36: Hoare triple {2120#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2121#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:23:47,554 INFO L256 TraceCheckUtils]: 37: Hoare triple {2121#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2122#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:23:47,558 INFO L273 TraceCheckUtils]: 38: Hoare triple {2122#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {2123#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:23:47,558 INFO L273 TraceCheckUtils]: 39: Hoare triple {2123#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {2112#false} is VALID [2018-11-23 12:23:47,559 INFO L273 TraceCheckUtils]: 40: Hoare triple {2112#false} assume !false; {2112#false} is VALID [2018-11-23 12:23:47,562 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 4 proven. 15 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 12:23:47,562 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:23:47,563 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:23:47,573 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:47,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:47,637 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:47,638 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:48,320 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 17 treesize of output 13 [2018-11-23 12:23:48,324 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:23:48,325 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-23 12:23:48,329 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:23:48,333 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:48,338 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:23:48,339 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:20, output treesize:7 [2018-11-23 12:23:48,340 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:23:48,341 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= main_~i~0 2) (<= |main_#t~mem6| (select .cse0 (* 4 main_~i~0))) (<= (select .cse0 8) 2))) [2018-11-23 12:23:48,341 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= main_~i~0 2) (<= |main_#t~mem6| 2)) [2018-11-23 12:23:48,402 INFO L256 TraceCheckUtils]: 0: Hoare triple {2111#true} call ULTIMATE.init(); {2111#true} is VALID [2018-11-23 12:23:48,402 INFO L273 TraceCheckUtils]: 1: Hoare triple {2111#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {2111#true} is VALID [2018-11-23 12:23:48,403 INFO L273 TraceCheckUtils]: 2: Hoare triple {2111#true} assume true; {2111#true} is VALID [2018-11-23 12:23:48,403 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2111#true} {2111#true} #72#return; {2111#true} is VALID [2018-11-23 12:23:48,403 INFO L256 TraceCheckUtils]: 4: Hoare triple {2111#true} call #t~ret7 := main(); {2111#true} is VALID [2018-11-23 12:23:48,403 INFO L273 TraceCheckUtils]: 5: Hoare triple {2111#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {2111#true} is VALID [2018-11-23 12:23:48,404 INFO L273 TraceCheckUtils]: 6: Hoare triple {2111#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {2145#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:23:48,405 INFO L273 TraceCheckUtils]: 7: Hoare triple {2145#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,406 INFO L273 TraceCheckUtils]: 8: Hoare triple {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,406 INFO L273 TraceCheckUtils]: 9: Hoare triple {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,407 INFO L273 TraceCheckUtils]: 10: Hoare triple {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,408 INFO L273 TraceCheckUtils]: 11: Hoare triple {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,409 INFO L273 TraceCheckUtils]: 12: Hoare triple {2149#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {2165#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,410 INFO L273 TraceCheckUtils]: 13: Hoare triple {2165#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2169#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) |main_#t~mem3|) (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,411 INFO L273 TraceCheckUtils]: 14: Hoare triple {2169#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) |main_#t~mem3|) (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !(#t~mem3 > 2 * ~i~0 - 2);havoc #t~mem3; {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,412 INFO L273 TraceCheckUtils]: 15: Hoare triple {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,412 INFO L273 TraceCheckUtils]: 16: Hoare triple {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,413 INFO L273 TraceCheckUtils]: 17: Hoare triple {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,414 INFO L273 TraceCheckUtils]: 18: Hoare triple {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,415 INFO L273 TraceCheckUtils]: 19: Hoare triple {2173#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,415 INFO L273 TraceCheckUtils]: 20: Hoare triple {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,417 INFO L256 TraceCheckUtils]: 21: Hoare triple {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} is VALID [2018-11-23 12:23:48,418 INFO L273 TraceCheckUtils]: 22: Hoare triple {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} ~cond := #in~cond; {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} is VALID [2018-11-23 12:23:48,418 INFO L273 TraceCheckUtils]: 23: Hoare triple {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} assume !(0 == ~cond); {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} is VALID [2018-11-23 12:23:48,419 INFO L273 TraceCheckUtils]: 24: Hoare triple {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} assume true; {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} is VALID [2018-11-23 12:23:48,420 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #76#return; {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,420 INFO L273 TraceCheckUtils]: 26: Hoare triple {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,421 INFO L273 TraceCheckUtils]: 27: Hoare triple {2189#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,422 INFO L273 TraceCheckUtils]: 28: Hoare triple {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,424 INFO L256 TraceCheckUtils]: 29: Hoare triple {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} is VALID [2018-11-23 12:23:48,424 INFO L273 TraceCheckUtils]: 30: Hoare triple {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} ~cond := #in~cond; {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} is VALID [2018-11-23 12:23:48,426 INFO L273 TraceCheckUtils]: 31: Hoare triple {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} assume !(0 == ~cond); {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} is VALID [2018-11-23 12:23:48,427 INFO L273 TraceCheckUtils]: 32: Hoare triple {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} assume true; {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} is VALID [2018-11-23 12:23:48,428 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {2196#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8) 2))} {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} #76#return; {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,428 INFO L273 TraceCheckUtils]: 34: Hoare triple {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,429 INFO L273 TraceCheckUtils]: 35: Hoare triple {2215#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2240#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:48,430 INFO L273 TraceCheckUtils]: 36: Hoare triple {2240#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)) 2) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2244#(and (= main_~i~0 2) (<= |main_#t~mem6| 2))} is VALID [2018-11-23 12:23:48,434 INFO L256 TraceCheckUtils]: 37: Hoare triple {2244#(and (= main_~i~0 2) (<= |main_#t~mem6| 2))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2248#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:23:48,437 INFO L273 TraceCheckUtils]: 38: Hoare triple {2248#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {2252#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:23:48,438 INFO L273 TraceCheckUtils]: 39: Hoare triple {2252#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2112#false} is VALID [2018-11-23 12:23:48,438 INFO L273 TraceCheckUtils]: 40: Hoare triple {2112#false} assume !false; {2112#false} is VALID [2018-11-23 12:23:48,442 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:23:48,460 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:48,460 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 14] total 25 [2018-11-23 12:23:48,461 INFO L78 Accepts]: Start accepts. Automaton has 25 states. Word has length 41 [2018-11-23 12:23:48,461 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:48,461 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 25 states. [2018-11-23 12:23:48,535 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:48,535 INFO L459 AbstractCegarLoop]: Interpolant automaton has 25 states [2018-11-23 12:23:48,535 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2018-11-23 12:23:48,535 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=86, Invalid=514, Unknown=0, NotChecked=0, Total=600 [2018-11-23 12:23:48,535 INFO L87 Difference]: Start difference. First operand 59 states and 68 transitions. Second operand 25 states. [2018-11-23 12:23:50,982 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:50,982 INFO L93 Difference]: Finished difference Result 102 states and 120 transitions. [2018-11-23 12:23:50,982 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2018-11-23 12:23:50,982 INFO L78 Accepts]: Start accepts. Automaton has 25 states. Word has length 41 [2018-11-23 12:23:50,983 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:50,983 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2018-11-23 12:23:50,986 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 72 transitions. [2018-11-23 12:23:50,986 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2018-11-23 12:23:50,988 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 72 transitions. [2018-11-23 12:23:50,988 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 18 states and 72 transitions. [2018-11-23 12:23:51,101 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:51,104 INFO L225 Difference]: With dead ends: 102 [2018-11-23 12:23:51,104 INFO L226 Difference]: Without dead ends: 100 [2018-11-23 12:23:51,105 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 61 GetRequests, 27 SyntacticMatches, 3 SemanticMatches, 31 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 263 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=152, Invalid=904, Unknown=0, NotChecked=0, Total=1056 [2018-11-23 12:23:51,105 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 100 states. [2018-11-23 12:23:51,381 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 100 to 69. [2018-11-23 12:23:51,381 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:23:51,381 INFO L82 GeneralOperation]: Start isEquivalent. First operand 100 states. Second operand 69 states. [2018-11-23 12:23:51,381 INFO L74 IsIncluded]: Start isIncluded. First operand 100 states. Second operand 69 states. [2018-11-23 12:23:51,381 INFO L87 Difference]: Start difference. First operand 100 states. Second operand 69 states. [2018-11-23 12:23:51,385 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:51,385 INFO L93 Difference]: Finished difference Result 100 states and 118 transitions. [2018-11-23 12:23:51,385 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 118 transitions. [2018-11-23 12:23:51,385 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:51,385 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:51,386 INFO L74 IsIncluded]: Start isIncluded. First operand 69 states. Second operand 100 states. [2018-11-23 12:23:51,386 INFO L87 Difference]: Start difference. First operand 69 states. Second operand 100 states. [2018-11-23 12:23:51,389 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:51,389 INFO L93 Difference]: Finished difference Result 100 states and 118 transitions. [2018-11-23 12:23:51,389 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 118 transitions. [2018-11-23 12:23:51,389 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:51,389 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:51,390 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:23:51,390 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:23:51,390 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 69 states. [2018-11-23 12:23:51,392 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 69 states to 69 states and 79 transitions. [2018-11-23 12:23:51,392 INFO L78 Accepts]: Start accepts. Automaton has 69 states and 79 transitions. Word has length 41 [2018-11-23 12:23:51,392 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:51,392 INFO L480 AbstractCegarLoop]: Abstraction has 69 states and 79 transitions. [2018-11-23 12:23:51,392 INFO L481 AbstractCegarLoop]: Interpolant automaton has 25 states. [2018-11-23 12:23:51,392 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 79 transitions. [2018-11-23 12:23:51,393 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2018-11-23 12:23:51,393 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:51,394 INFO L402 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:51,394 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:51,394 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:51,394 INFO L82 PathProgramCache]: Analyzing trace with hash -405147355, now seen corresponding path program 4 times [2018-11-23 12:23:51,394 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:51,394 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:51,395 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:51,395 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:23:51,395 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:51,414 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:51,675 INFO L256 TraceCheckUtils]: 0: Hoare triple {2700#true} call ULTIMATE.init(); {2700#true} is VALID [2018-11-23 12:23:51,676 INFO L273 TraceCheckUtils]: 1: Hoare triple {2700#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {2700#true} is VALID [2018-11-23 12:23:51,676 INFO L273 TraceCheckUtils]: 2: Hoare triple {2700#true} assume true; {2700#true} is VALID [2018-11-23 12:23:51,676 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2700#true} {2700#true} #72#return; {2700#true} is VALID [2018-11-23 12:23:51,676 INFO L256 TraceCheckUtils]: 4: Hoare triple {2700#true} call #t~ret7 := main(); {2700#true} is VALID [2018-11-23 12:23:51,677 INFO L273 TraceCheckUtils]: 5: Hoare triple {2700#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {2700#true} is VALID [2018-11-23 12:23:51,677 INFO L273 TraceCheckUtils]: 6: Hoare triple {2700#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {2700#true} is VALID [2018-11-23 12:23:51,677 INFO L273 TraceCheckUtils]: 7: Hoare triple {2700#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {2702#(= main_~i~0 1)} is VALID [2018-11-23 12:23:51,678 INFO L273 TraceCheckUtils]: 8: Hoare triple {2702#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2702#(= main_~i~0 1)} is VALID [2018-11-23 12:23:51,678 INFO L273 TraceCheckUtils]: 9: Hoare triple {2702#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2702#(= main_~i~0 1)} is VALID [2018-11-23 12:23:51,679 INFO L273 TraceCheckUtils]: 10: Hoare triple {2702#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {2702#(= main_~i~0 1)} is VALID [2018-11-23 12:23:51,679 INFO L273 TraceCheckUtils]: 11: Hoare triple {2702#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {2702#(= main_~i~0 1)} is VALID [2018-11-23 12:23:51,680 INFO L273 TraceCheckUtils]: 12: Hoare triple {2702#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {2703#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:51,680 INFO L273 TraceCheckUtils]: 13: Hoare triple {2703#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2703#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:51,681 INFO L273 TraceCheckUtils]: 14: Hoare triple {2703#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2703#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:51,681 INFO L273 TraceCheckUtils]: 15: Hoare triple {2703#(and (<= 2 main_~i~0) (<= main_~i~0 2))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {2704#(and (<= 2 main_~i~0) (= |main_#t~mem4| (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4)))) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:51,682 INFO L273 TraceCheckUtils]: 16: Hoare triple {2704#(and (<= 2 main_~i~0) (= |main_#t~mem4| (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4)))) (<= main_~i~0 2))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {2705#(and (<= 2 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 3) (<= main_~i~0 2))} is VALID [2018-11-23 12:23:51,683 INFO L273 TraceCheckUtils]: 17: Hoare triple {2705#(and (<= 2 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 3) (<= main_~i~0 2))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {2706#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3)} is VALID [2018-11-23 12:23:51,683 INFO L273 TraceCheckUtils]: 18: Hoare triple {2706#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3)} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {2706#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3)} is VALID [2018-11-23 12:23:51,684 INFO L273 TraceCheckUtils]: 19: Hoare triple {2706#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3)} ~i~0 := 0; {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} is VALID [2018-11-23 12:23:51,685 INFO L273 TraceCheckUtils]: 20: Hoare triple {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} is VALID [2018-11-23 12:23:51,685 INFO L256 TraceCheckUtils]: 21: Hoare triple {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2700#true} is VALID [2018-11-23 12:23:51,686 INFO L273 TraceCheckUtils]: 22: Hoare triple {2700#true} ~cond := #in~cond; {2700#true} is VALID [2018-11-23 12:23:51,686 INFO L273 TraceCheckUtils]: 23: Hoare triple {2700#true} assume !(0 == ~cond); {2700#true} is VALID [2018-11-23 12:23:51,686 INFO L273 TraceCheckUtils]: 24: Hoare triple {2700#true} assume true; {2700#true} is VALID [2018-11-23 12:23:51,689 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {2700#true} {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} #76#return; {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} is VALID [2018-11-23 12:23:51,700 INFO L273 TraceCheckUtils]: 26: Hoare triple {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} havoc #t~mem6; {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} is VALID [2018-11-23 12:23:51,701 INFO L273 TraceCheckUtils]: 27: Hoare triple {2707#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 4) (- 4)))) 3) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:23:51,702 INFO L273 TraceCheckUtils]: 28: Hoare triple {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:23:51,702 INFO L256 TraceCheckUtils]: 29: Hoare triple {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2700#true} is VALID [2018-11-23 12:23:51,702 INFO L273 TraceCheckUtils]: 30: Hoare triple {2700#true} ~cond := #in~cond; {2700#true} is VALID [2018-11-23 12:23:51,702 INFO L273 TraceCheckUtils]: 31: Hoare triple {2700#true} assume !(0 == ~cond); {2700#true} is VALID [2018-11-23 12:23:51,702 INFO L273 TraceCheckUtils]: 32: Hoare triple {2700#true} assume true; {2700#true} is VALID [2018-11-23 12:23:51,703 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {2700#true} {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} #76#return; {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:23:51,703 INFO L273 TraceCheckUtils]: 34: Hoare triple {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} havoc #t~mem6; {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:23:51,704 INFO L273 TraceCheckUtils]: 35: Hoare triple {2708#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:51,705 INFO L273 TraceCheckUtils]: 36: Hoare triple {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:51,705 INFO L256 TraceCheckUtils]: 37: Hoare triple {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2700#true} is VALID [2018-11-23 12:23:51,705 INFO L273 TraceCheckUtils]: 38: Hoare triple {2700#true} ~cond := #in~cond; {2700#true} is VALID [2018-11-23 12:23:51,705 INFO L273 TraceCheckUtils]: 39: Hoare triple {2700#true} assume !(0 == ~cond); {2700#true} is VALID [2018-11-23 12:23:51,706 INFO L273 TraceCheckUtils]: 40: Hoare triple {2700#true} assume true; {2700#true} is VALID [2018-11-23 12:23:51,707 INFO L268 TraceCheckUtils]: 41: Hoare quadruple {2700#true} {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} #76#return; {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:51,707 INFO L273 TraceCheckUtils]: 42: Hoare triple {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} havoc #t~mem6; {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:23:51,708 INFO L273 TraceCheckUtils]: 43: Hoare triple {2709#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2710#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} is VALID [2018-11-23 12:23:51,709 INFO L273 TraceCheckUtils]: 44: Hoare triple {2710#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2711#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:23:51,711 INFO L256 TraceCheckUtils]: 45: Hoare triple {2711#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2712#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:23:51,711 INFO L273 TraceCheckUtils]: 46: Hoare triple {2712#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {2713#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:23:51,712 INFO L273 TraceCheckUtils]: 47: Hoare triple {2713#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {2701#false} is VALID [2018-11-23 12:23:51,712 INFO L273 TraceCheckUtils]: 48: Hoare triple {2701#false} assume !false; {2701#false} is VALID [2018-11-23 12:23:51,717 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 6 proven. 25 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2018-11-23 12:23:51,717 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:23:51,717 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:23:51,727 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2018-11-23 12:23:51,749 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2018-11-23 12:23:51,749 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:23:51,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:51,764 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:52,459 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 17 treesize of output 13 [2018-11-23 12:23:52,464 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:23:52,468 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-23 12:23:52,471 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:23:52,476 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:23:52,481 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:23:52,481 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:20, output treesize:7 [2018-11-23 12:23:52,486 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:23:52,486 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= main_~i~0 3) (<= |main_#t~mem6| (select .cse0 (* 4 main_~i~0))) (<= (select .cse0 12) 3))) [2018-11-23 12:23:52,487 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= main_~i~0 3) (<= |main_#t~mem6| 3)) [2018-11-23 12:23:52,567 INFO L256 TraceCheckUtils]: 0: Hoare triple {2700#true} call ULTIMATE.init(); {2700#true} is VALID [2018-11-23 12:23:52,567 INFO L273 TraceCheckUtils]: 1: Hoare triple {2700#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {2700#true} is VALID [2018-11-23 12:23:52,568 INFO L273 TraceCheckUtils]: 2: Hoare triple {2700#true} assume true; {2700#true} is VALID [2018-11-23 12:23:52,568 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2700#true} {2700#true} #72#return; {2700#true} is VALID [2018-11-23 12:23:52,568 INFO L256 TraceCheckUtils]: 4: Hoare triple {2700#true} call #t~ret7 := main(); {2700#true} is VALID [2018-11-23 12:23:52,568 INFO L273 TraceCheckUtils]: 5: Hoare triple {2700#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {2700#true} is VALID [2018-11-23 12:23:52,569 INFO L273 TraceCheckUtils]: 6: Hoare triple {2700#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {2735#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:23:52,570 INFO L273 TraceCheckUtils]: 7: Hoare triple {2735#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,571 INFO L273 TraceCheckUtils]: 8: Hoare triple {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,571 INFO L273 TraceCheckUtils]: 9: Hoare triple {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,572 INFO L273 TraceCheckUtils]: 10: Hoare triple {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,573 INFO L273 TraceCheckUtils]: 11: Hoare triple {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,574 INFO L273 TraceCheckUtils]: 12: Hoare triple {2739#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {2755#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,575 INFO L273 TraceCheckUtils]: 13: Hoare triple {2755#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2755#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,575 INFO L273 TraceCheckUtils]: 14: Hoare triple {2755#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {2755#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,577 INFO L273 TraceCheckUtils]: 15: Hoare triple {2755#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {2765#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) |main_#t~mem4|) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,578 INFO L273 TraceCheckUtils]: 16: Hoare triple {2765#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) |main_#t~mem4|) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {2769#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,579 INFO L273 TraceCheckUtils]: 17: Hoare triple {2769#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {2769#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,580 INFO L273 TraceCheckUtils]: 18: Hoare triple {2769#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {2769#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,580 INFO L273 TraceCheckUtils]: 19: Hoare triple {2769#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,581 INFO L273 TraceCheckUtils]: 20: Hoare triple {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,583 INFO L256 TraceCheckUtils]: 21: Hoare triple {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,584 INFO L273 TraceCheckUtils]: 22: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} ~cond := #in~cond; {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,585 INFO L273 TraceCheckUtils]: 23: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} assume !(0 == ~cond); {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,585 INFO L273 TraceCheckUtils]: 24: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} assume true; {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,587 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #76#return; {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,588 INFO L273 TraceCheckUtils]: 26: Hoare triple {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,589 INFO L273 TraceCheckUtils]: 27: Hoare triple {2779#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,589 INFO L273 TraceCheckUtils]: 28: Hoare triple {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,591 INFO L256 TraceCheckUtils]: 29: Hoare triple {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,592 INFO L273 TraceCheckUtils]: 30: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} ~cond := #in~cond; {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,593 INFO L273 TraceCheckUtils]: 31: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} assume !(0 == ~cond); {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,593 INFO L273 TraceCheckUtils]: 32: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} assume true; {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,595 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} #76#return; {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,595 INFO L273 TraceCheckUtils]: 34: Hoare triple {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,596 INFO L273 TraceCheckUtils]: 35: Hoare triple {2805#(and (= main_~i~0 1) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,597 INFO L273 TraceCheckUtils]: 36: Hoare triple {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,599 INFO L256 TraceCheckUtils]: 37: Hoare triple {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,600 INFO L273 TraceCheckUtils]: 38: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} ~cond := #in~cond; {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,601 INFO L273 TraceCheckUtils]: 39: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} assume !(0 == ~cond); {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,607 INFO L273 TraceCheckUtils]: 40: Hoare triple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} assume true; {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} is VALID [2018-11-23 12:23:52,608 INFO L268 TraceCheckUtils]: 41: Hoare quadruple {2786#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 12) 3))} {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} #76#return; {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,609 INFO L273 TraceCheckUtils]: 42: Hoare triple {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,609 INFO L273 TraceCheckUtils]: 43: Hoare triple {2830#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {2855#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:23:52,610 INFO L273 TraceCheckUtils]: 44: Hoare triple {2855#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 12)) 3) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {2859#(and (= main_~i~0 3) (<= |main_#t~mem6| 3))} is VALID [2018-11-23 12:23:52,611 INFO L256 TraceCheckUtils]: 45: Hoare triple {2859#(and (= main_~i~0 3) (<= |main_#t~mem6| 3))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {2863#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:23:52,611 INFO L273 TraceCheckUtils]: 46: Hoare triple {2863#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {2867#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:23:52,612 INFO L273 TraceCheckUtils]: 47: Hoare triple {2867#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2701#false} is VALID [2018-11-23 12:23:52,612 INFO L273 TraceCheckUtils]: 48: Hoare triple {2701#false} assume !false; {2701#false} is VALID [2018-11-23 12:23:52,621 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 0 proven. 31 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2018-11-23 12:23:52,645 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:52,645 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 15] total 27 [2018-11-23 12:23:52,646 INFO L78 Accepts]: Start accepts. Automaton has 27 states. Word has length 49 [2018-11-23 12:23:52,646 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:52,647 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 27 states. [2018-11-23 12:23:52,810 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:52,810 INFO L459 AbstractCegarLoop]: Interpolant automaton has 27 states [2018-11-23 12:23:52,810 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2018-11-23 12:23:52,810 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=94, Invalid=608, Unknown=0, NotChecked=0, Total=702 [2018-11-23 12:23:52,811 INFO L87 Difference]: Start difference. First operand 69 states and 79 transitions. Second operand 27 states. [2018-11-23 12:23:57,613 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:57,613 INFO L93 Difference]: Finished difference Result 146 states and 184 transitions. [2018-11-23 12:23:57,613 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2018-11-23 12:23:57,613 INFO L78 Accepts]: Start accepts. Automaton has 27 states. Word has length 49 [2018-11-23 12:23:57,614 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:23:57,614 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2018-11-23 12:23:57,617 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 113 transitions. [2018-11-23 12:23:57,617 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2018-11-23 12:23:57,619 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 113 transitions. [2018-11-23 12:23:57,620 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 26 states and 113 transitions. [2018-11-23 12:23:57,785 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 113 edges. 113 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:57,789 INFO L225 Difference]: With dead ends: 146 [2018-11-23 12:23:57,789 INFO L226 Difference]: Without dead ends: 144 [2018-11-23 12:23:57,790 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 77 GetRequests, 32 SyntacticMatches, 5 SemanticMatches, 40 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 473 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=231, Invalid=1491, Unknown=0, NotChecked=0, Total=1722 [2018-11-23 12:23:57,790 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 144 states. [2018-11-23 12:23:58,217 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 144 to 77. [2018-11-23 12:23:58,217 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:23:58,218 INFO L82 GeneralOperation]: Start isEquivalent. First operand 144 states. Second operand 77 states. [2018-11-23 12:23:58,218 INFO L74 IsIncluded]: Start isIncluded. First operand 144 states. Second operand 77 states. [2018-11-23 12:23:58,218 INFO L87 Difference]: Start difference. First operand 144 states. Second operand 77 states. [2018-11-23 12:23:58,222 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:58,223 INFO L93 Difference]: Finished difference Result 144 states and 182 transitions. [2018-11-23 12:23:58,223 INFO L276 IsEmpty]: Start isEmpty. Operand 144 states and 182 transitions. [2018-11-23 12:23:58,223 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:58,223 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:58,223 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 144 states. [2018-11-23 12:23:58,224 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 144 states. [2018-11-23 12:23:58,229 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:23:58,229 INFO L93 Difference]: Finished difference Result 144 states and 182 transitions. [2018-11-23 12:23:58,229 INFO L276 IsEmpty]: Start isEmpty. Operand 144 states and 182 transitions. [2018-11-23 12:23:58,230 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:23:58,230 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:23:58,230 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:23:58,230 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:23:58,230 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2018-11-23 12:23:58,233 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 87 transitions. [2018-11-23 12:23:58,233 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 87 transitions. Word has length 49 [2018-11-23 12:23:58,234 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:23:58,234 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 87 transitions. [2018-11-23 12:23:58,234 INFO L481 AbstractCegarLoop]: Interpolant automaton has 27 states. [2018-11-23 12:23:58,234 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 87 transitions. [2018-11-23 12:23:58,235 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2018-11-23 12:23:58,235 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:23:58,235 INFO L402 BasicCegarLoop]: trace histogram [5, 5, 5, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:23:58,235 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:23:58,236 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:23:58,236 INFO L82 PathProgramCache]: Analyzing trace with hash -1643883432, now seen corresponding path program 5 times [2018-11-23 12:23:58,236 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:23:58,236 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:23:58,237 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:58,237 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:23:58,237 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:23:58,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:58,545 INFO L256 TraceCheckUtils]: 0: Hoare triple {3478#true} call ULTIMATE.init(); {3478#true} is VALID [2018-11-23 12:23:58,545 INFO L273 TraceCheckUtils]: 1: Hoare triple {3478#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {3478#true} is VALID [2018-11-23 12:23:58,546 INFO L273 TraceCheckUtils]: 2: Hoare triple {3478#true} assume true; {3478#true} is VALID [2018-11-23 12:23:58,546 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3478#true} {3478#true} #72#return; {3478#true} is VALID [2018-11-23 12:23:58,546 INFO L256 TraceCheckUtils]: 4: Hoare triple {3478#true} call #t~ret7 := main(); {3478#true} is VALID [2018-11-23 12:23:58,546 INFO L273 TraceCheckUtils]: 5: Hoare triple {3478#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {3478#true} is VALID [2018-11-23 12:23:58,547 INFO L273 TraceCheckUtils]: 6: Hoare triple {3478#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {3480#(<= 2 ~SIZE~0)} is VALID [2018-11-23 12:23:58,548 INFO L273 TraceCheckUtils]: 7: Hoare triple {3480#(<= 2 ~SIZE~0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,549 INFO L273 TraceCheckUtils]: 8: Hoare triple {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,550 INFO L273 TraceCheckUtils]: 9: Hoare triple {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,550 INFO L273 TraceCheckUtils]: 10: Hoare triple {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,551 INFO L273 TraceCheckUtils]: 11: Hoare triple {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,551 INFO L273 TraceCheckUtils]: 12: Hoare triple {3481#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,574 INFO L273 TraceCheckUtils]: 13: Hoare triple {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,588 INFO L273 TraceCheckUtils]: 14: Hoare triple {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,589 INFO L273 TraceCheckUtils]: 15: Hoare triple {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,589 INFO L273 TraceCheckUtils]: 16: Hoare triple {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,590 INFO L273 TraceCheckUtils]: 17: Hoare triple {3482#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {3483#(and (<= main_~i~0 3) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:23:58,591 INFO L273 TraceCheckUtils]: 18: Hoare triple {3483#(and (<= main_~i~0 3) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {3484#(<= ~SIZE~0 4)} is VALID [2018-11-23 12:23:58,591 INFO L273 TraceCheckUtils]: 19: Hoare triple {3484#(<= ~SIZE~0 4)} ~i~0 := 0; {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} is VALID [2018-11-23 12:23:58,592 INFO L273 TraceCheckUtils]: 20: Hoare triple {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} is VALID [2018-11-23 12:23:58,592 INFO L256 TraceCheckUtils]: 21: Hoare triple {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3478#true} is VALID [2018-11-23 12:23:58,592 INFO L273 TraceCheckUtils]: 22: Hoare triple {3478#true} ~cond := #in~cond; {3478#true} is VALID [2018-11-23 12:23:58,592 INFO L273 TraceCheckUtils]: 23: Hoare triple {3478#true} assume !(0 == ~cond); {3478#true} is VALID [2018-11-23 12:23:58,592 INFO L273 TraceCheckUtils]: 24: Hoare triple {3478#true} assume true; {3478#true} is VALID [2018-11-23 12:23:58,593 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {3478#true} {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} #76#return; {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} is VALID [2018-11-23 12:23:58,593 INFO L273 TraceCheckUtils]: 26: Hoare triple {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} havoc #t~mem6; {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} is VALID [2018-11-23 12:23:58,609 INFO L273 TraceCheckUtils]: 27: Hoare triple {3485#(and (<= ~SIZE~0 4) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {3486#(<= ~SIZE~0 (+ main_~i~0 3))} is VALID [2018-11-23 12:23:58,610 INFO L273 TraceCheckUtils]: 28: Hoare triple {3486#(<= ~SIZE~0 (+ main_~i~0 3))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3486#(<= ~SIZE~0 (+ main_~i~0 3))} is VALID [2018-11-23 12:23:58,610 INFO L256 TraceCheckUtils]: 29: Hoare triple {3486#(<= ~SIZE~0 (+ main_~i~0 3))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3478#true} is VALID [2018-11-23 12:23:58,610 INFO L273 TraceCheckUtils]: 30: Hoare triple {3478#true} ~cond := #in~cond; {3478#true} is VALID [2018-11-23 12:23:58,610 INFO L273 TraceCheckUtils]: 31: Hoare triple {3478#true} assume !(0 == ~cond); {3478#true} is VALID [2018-11-23 12:23:58,610 INFO L273 TraceCheckUtils]: 32: Hoare triple {3478#true} assume true; {3478#true} is VALID [2018-11-23 12:23:58,611 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {3478#true} {3486#(<= ~SIZE~0 (+ main_~i~0 3))} #76#return; {3486#(<= ~SIZE~0 (+ main_~i~0 3))} is VALID [2018-11-23 12:23:58,611 INFO L273 TraceCheckUtils]: 34: Hoare triple {3486#(<= ~SIZE~0 (+ main_~i~0 3))} havoc #t~mem6; {3486#(<= ~SIZE~0 (+ main_~i~0 3))} is VALID [2018-11-23 12:23:58,612 INFO L273 TraceCheckUtils]: 35: Hoare triple {3486#(<= ~SIZE~0 (+ main_~i~0 3))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {3487#(<= ~SIZE~0 (+ main_~i~0 2))} is VALID [2018-11-23 12:23:58,612 INFO L273 TraceCheckUtils]: 36: Hoare triple {3487#(<= ~SIZE~0 (+ main_~i~0 2))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3487#(<= ~SIZE~0 (+ main_~i~0 2))} is VALID [2018-11-23 12:23:58,612 INFO L256 TraceCheckUtils]: 37: Hoare triple {3487#(<= ~SIZE~0 (+ main_~i~0 2))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3478#true} is VALID [2018-11-23 12:23:58,612 INFO L273 TraceCheckUtils]: 38: Hoare triple {3478#true} ~cond := #in~cond; {3478#true} is VALID [2018-11-23 12:23:58,613 INFO L273 TraceCheckUtils]: 39: Hoare triple {3478#true} assume !(0 == ~cond); {3478#true} is VALID [2018-11-23 12:23:58,613 INFO L273 TraceCheckUtils]: 40: Hoare triple {3478#true} assume true; {3478#true} is VALID [2018-11-23 12:23:58,613 INFO L268 TraceCheckUtils]: 41: Hoare quadruple {3478#true} {3487#(<= ~SIZE~0 (+ main_~i~0 2))} #76#return; {3487#(<= ~SIZE~0 (+ main_~i~0 2))} is VALID [2018-11-23 12:23:58,614 INFO L273 TraceCheckUtils]: 42: Hoare triple {3487#(<= ~SIZE~0 (+ main_~i~0 2))} havoc #t~mem6; {3487#(<= ~SIZE~0 (+ main_~i~0 2))} is VALID [2018-11-23 12:23:58,614 INFO L273 TraceCheckUtils]: 43: Hoare triple {3487#(<= ~SIZE~0 (+ main_~i~0 2))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {3488#(<= ~SIZE~0 (+ main_~i~0 1))} is VALID [2018-11-23 12:23:58,615 INFO L273 TraceCheckUtils]: 44: Hoare triple {3488#(<= ~SIZE~0 (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3488#(<= ~SIZE~0 (+ main_~i~0 1))} is VALID [2018-11-23 12:23:58,615 INFO L256 TraceCheckUtils]: 45: Hoare triple {3488#(<= ~SIZE~0 (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3478#true} is VALID [2018-11-23 12:23:58,615 INFO L273 TraceCheckUtils]: 46: Hoare triple {3478#true} ~cond := #in~cond; {3478#true} is VALID [2018-11-23 12:23:58,615 INFO L273 TraceCheckUtils]: 47: Hoare triple {3478#true} assume !(0 == ~cond); {3478#true} is VALID [2018-11-23 12:23:58,615 INFO L273 TraceCheckUtils]: 48: Hoare triple {3478#true} assume true; {3478#true} is VALID [2018-11-23 12:23:58,616 INFO L268 TraceCheckUtils]: 49: Hoare quadruple {3478#true} {3488#(<= ~SIZE~0 (+ main_~i~0 1))} #76#return; {3488#(<= ~SIZE~0 (+ main_~i~0 1))} is VALID [2018-11-23 12:23:58,617 INFO L273 TraceCheckUtils]: 50: Hoare triple {3488#(<= ~SIZE~0 (+ main_~i~0 1))} havoc #t~mem6; {3488#(<= ~SIZE~0 (+ main_~i~0 1))} is VALID [2018-11-23 12:23:58,618 INFO L273 TraceCheckUtils]: 51: Hoare triple {3488#(<= ~SIZE~0 (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {3489#(<= ~SIZE~0 main_~i~0)} is VALID [2018-11-23 12:23:58,618 INFO L273 TraceCheckUtils]: 52: Hoare triple {3489#(<= ~SIZE~0 main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3479#false} is VALID [2018-11-23 12:23:58,618 INFO L256 TraceCheckUtils]: 53: Hoare triple {3479#false} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3479#false} is VALID [2018-11-23 12:23:58,619 INFO L273 TraceCheckUtils]: 54: Hoare triple {3479#false} ~cond := #in~cond; {3479#false} is VALID [2018-11-23 12:23:58,619 INFO L273 TraceCheckUtils]: 55: Hoare triple {3479#false} assume 0 == ~cond; {3479#false} is VALID [2018-11-23 12:23:58,619 INFO L273 TraceCheckUtils]: 56: Hoare triple {3479#false} assume !false; {3479#false} is VALID [2018-11-23 12:23:58,623 INFO L134 CoverageAnalysis]: Checked inductivity of 71 backedges. 27 proven. 20 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2018-11-23 12:23:58,623 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:23:58,623 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:23:58,631 INFO L103 rtionOrderModulation]: Keeping assertion order INSIDE_LOOP_FIRST1 [2018-11-23 12:23:58,659 INFO L249 tOrderPrioritization]: Assert order INSIDE_LOOP_FIRST1 issued 5 check-sat command(s) [2018-11-23 12:23:58,660 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:23:58,675 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:23:58,677 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:23:59,086 INFO L256 TraceCheckUtils]: 0: Hoare triple {3478#true} call ULTIMATE.init(); {3478#true} is VALID [2018-11-23 12:23:59,086 INFO L273 TraceCheckUtils]: 1: Hoare triple {3478#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {3478#true} is VALID [2018-11-23 12:23:59,087 INFO L273 TraceCheckUtils]: 2: Hoare triple {3478#true} assume true; {3478#true} is VALID [2018-11-23 12:23:59,087 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3478#true} {3478#true} #72#return; {3478#true} is VALID [2018-11-23 12:23:59,087 INFO L256 TraceCheckUtils]: 4: Hoare triple {3478#true} call #t~ret7 := main(); {3478#true} is VALID [2018-11-23 12:23:59,087 INFO L273 TraceCheckUtils]: 5: Hoare triple {3478#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {3478#true} is VALID [2018-11-23 12:23:59,088 INFO L273 TraceCheckUtils]: 6: Hoare triple {3478#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {3480#(<= 2 ~SIZE~0)} is VALID [2018-11-23 12:23:59,089 INFO L273 TraceCheckUtils]: 7: Hoare triple {3480#(<= 2 ~SIZE~0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,090 INFO L273 TraceCheckUtils]: 8: Hoare triple {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,090 INFO L273 TraceCheckUtils]: 9: Hoare triple {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,091 INFO L273 TraceCheckUtils]: 10: Hoare triple {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,091 INFO L273 TraceCheckUtils]: 11: Hoare triple {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,092 INFO L273 TraceCheckUtils]: 12: Hoare triple {3514#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,093 INFO L273 TraceCheckUtils]: 13: Hoare triple {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,094 INFO L273 TraceCheckUtils]: 14: Hoare triple {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,095 INFO L273 TraceCheckUtils]: 15: Hoare triple {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,095 INFO L273 TraceCheckUtils]: 16: Hoare triple {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,096 INFO L273 TraceCheckUtils]: 17: Hoare triple {3530#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {3546#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,097 INFO L273 TraceCheckUtils]: 18: Hoare triple {3546#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,098 INFO L273 TraceCheckUtils]: 19: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~i~0 := 0; {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,099 INFO L273 TraceCheckUtils]: 20: Hoare triple {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,100 INFO L256 TraceCheckUtils]: 21: Hoare triple {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,101 INFO L273 TraceCheckUtils]: 22: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,101 INFO L273 TraceCheckUtils]: 23: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,102 INFO L273 TraceCheckUtils]: 24: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,103 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,103 INFO L273 TraceCheckUtils]: 26: Hoare triple {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,104 INFO L273 TraceCheckUtils]: 27: Hoare triple {3554#(and (<= 0 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,105 INFO L273 TraceCheckUtils]: 28: Hoare triple {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,106 INFO L256 TraceCheckUtils]: 29: Hoare triple {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,107 INFO L273 TraceCheckUtils]: 30: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,108 INFO L273 TraceCheckUtils]: 31: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,108 INFO L273 TraceCheckUtils]: 32: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,109 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,110 INFO L273 TraceCheckUtils]: 34: Hoare triple {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,111 INFO L273 TraceCheckUtils]: 35: Hoare triple {3579#(and (<= 1 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,112 INFO L273 TraceCheckUtils]: 36: Hoare triple {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,113 INFO L256 TraceCheckUtils]: 37: Hoare triple {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,113 INFO L273 TraceCheckUtils]: 38: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,114 INFO L273 TraceCheckUtils]: 39: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,115 INFO L273 TraceCheckUtils]: 40: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,115 INFO L268 TraceCheckUtils]: 41: Hoare quadruple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,116 INFO L273 TraceCheckUtils]: 42: Hoare triple {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,117 INFO L273 TraceCheckUtils]: 43: Hoare triple {3604#(and (<= 2 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,118 INFO L273 TraceCheckUtils]: 44: Hoare triple {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,119 INFO L256 TraceCheckUtils]: 45: Hoare triple {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,120 INFO L273 TraceCheckUtils]: 46: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,121 INFO L273 TraceCheckUtils]: 47: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,121 INFO L273 TraceCheckUtils]: 48: Hoare triple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,122 INFO L268 TraceCheckUtils]: 49: Hoare quadruple {3550#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} #76#return; {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,123 INFO L273 TraceCheckUtils]: 50: Hoare triple {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} havoc #t~mem6; {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,124 INFO L273 TraceCheckUtils]: 51: Hoare triple {3629#(and (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {3654#(and (<= 4 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:23:59,125 INFO L273 TraceCheckUtils]: 52: Hoare triple {3654#(and (<= 4 main_~i~0) (<= (div ~SIZE~0 2) 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {3479#false} is VALID [2018-11-23 12:23:59,125 INFO L256 TraceCheckUtils]: 53: Hoare triple {3479#false} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {3479#false} is VALID [2018-11-23 12:23:59,125 INFO L273 TraceCheckUtils]: 54: Hoare triple {3479#false} ~cond := #in~cond; {3479#false} is VALID [2018-11-23 12:23:59,126 INFO L273 TraceCheckUtils]: 55: Hoare triple {3479#false} assume 0 == ~cond; {3479#false} is VALID [2018-11-23 12:23:59,126 INFO L273 TraceCheckUtils]: 56: Hoare triple {3479#false} assume !false; {3479#false} is VALID [2018-11-23 12:23:59,134 INFO L134 CoverageAnalysis]: Checked inductivity of 71 backedges. 40 proven. 7 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2018-11-23 12:23:59,153 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:23:59,154 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 12] total 21 [2018-11-23 12:23:59,154 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 57 [2018-11-23 12:23:59,155 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:23:59,155 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states. [2018-11-23 12:23:59,247 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 85 edges. 85 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:23:59,248 INFO L459 AbstractCegarLoop]: Interpolant automaton has 21 states [2018-11-23 12:23:59,248 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2018-11-23 12:23:59,248 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=97, Invalid=323, Unknown=0, NotChecked=0, Total=420 [2018-11-23 12:23:59,249 INFO L87 Difference]: Start difference. First operand 77 states and 87 transitions. Second operand 21 states. [2018-11-23 12:24:00,837 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:00,837 INFO L93 Difference]: Finished difference Result 148 states and 167 transitions. [2018-11-23 12:24:00,837 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2018-11-23 12:24:00,837 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 57 [2018-11-23 12:24:00,838 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:24:00,838 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 12:24:00,840 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 84 transitions. [2018-11-23 12:24:00,841 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 12:24:00,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 84 transitions. [2018-11-23 12:24:00,843 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 84 transitions. [2018-11-23 12:24:01,007 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 84 edges. 84 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:24:01,010 INFO L225 Difference]: With dead ends: 148 [2018-11-23 12:24:01,010 INFO L226 Difference]: Without dead ends: 93 [2018-11-23 12:24:01,011 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 74 GetRequests, 48 SyntacticMatches, 1 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 133 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=175, Invalid=527, Unknown=0, NotChecked=0, Total=702 [2018-11-23 12:24:01,011 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 93 states. [2018-11-23 12:24:01,446 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 93 to 85. [2018-11-23 12:24:01,446 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:24:01,446 INFO L82 GeneralOperation]: Start isEquivalent. First operand 93 states. Second operand 85 states. [2018-11-23 12:24:01,446 INFO L74 IsIncluded]: Start isIncluded. First operand 93 states. Second operand 85 states. [2018-11-23 12:24:01,446 INFO L87 Difference]: Start difference. First operand 93 states. Second operand 85 states. [2018-11-23 12:24:01,450 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:01,450 INFO L93 Difference]: Finished difference Result 93 states and 109 transitions. [2018-11-23 12:24:01,450 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 109 transitions. [2018-11-23 12:24:01,451 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:24:01,451 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:24:01,451 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand 93 states. [2018-11-23 12:24:01,451 INFO L87 Difference]: Start difference. First operand 85 states. Second operand 93 states. [2018-11-23 12:24:01,455 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:01,455 INFO L93 Difference]: Finished difference Result 93 states and 109 transitions. [2018-11-23 12:24:01,455 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 109 transitions. [2018-11-23 12:24:01,455 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:24:01,456 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:24:01,456 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:24:01,456 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:24:01,456 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 85 states. [2018-11-23 12:24:01,459 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 85 states to 85 states and 97 transitions. [2018-11-23 12:24:01,459 INFO L78 Accepts]: Start accepts. Automaton has 85 states and 97 transitions. Word has length 57 [2018-11-23 12:24:01,459 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:24:01,459 INFO L480 AbstractCegarLoop]: Abstraction has 85 states and 97 transitions. [2018-11-23 12:24:01,460 INFO L481 AbstractCegarLoop]: Interpolant automaton has 21 states. [2018-11-23 12:24:01,460 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 97 transitions. [2018-11-23 12:24:01,460 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2018-11-23 12:24:01,461 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:24:01,461 INFO L402 BasicCegarLoop]: trace histogram [5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:24:01,461 INFO L423 AbstractCegarLoop]: === Iteration 10 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:24:01,461 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:24:01,461 INFO L82 PathProgramCache]: Analyzing trace with hash 1376817152, now seen corresponding path program 6 times [2018-11-23 12:24:01,461 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:24:01,462 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:24:01,465 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:24:01,465 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:24:01,466 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:24:01,516 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:02,285 INFO L256 TraceCheckUtils]: 0: Hoare triple {4181#true} call ULTIMATE.init(); {4181#true} is VALID [2018-11-23 12:24:02,285 INFO L273 TraceCheckUtils]: 1: Hoare triple {4181#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {4181#true} is VALID [2018-11-23 12:24:02,286 INFO L273 TraceCheckUtils]: 2: Hoare triple {4181#true} assume true; {4181#true} is VALID [2018-11-23 12:24:02,286 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {4181#true} {4181#true} #72#return; {4181#true} is VALID [2018-11-23 12:24:02,286 INFO L256 TraceCheckUtils]: 4: Hoare triple {4181#true} call #t~ret7 := main(); {4181#true} is VALID [2018-11-23 12:24:02,286 INFO L273 TraceCheckUtils]: 5: Hoare triple {4181#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {4181#true} is VALID [2018-11-23 12:24:02,286 INFO L273 TraceCheckUtils]: 6: Hoare triple {4181#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {4181#true} is VALID [2018-11-23 12:24:02,287 INFO L273 TraceCheckUtils]: 7: Hoare triple {4181#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:02,287 INFO L273 TraceCheckUtils]: 8: Hoare triple {4183#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:02,288 INFO L273 TraceCheckUtils]: 9: Hoare triple {4183#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:02,288 INFO L273 TraceCheckUtils]: 10: Hoare triple {4183#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:02,289 INFO L273 TraceCheckUtils]: 11: Hoare triple {4183#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:02,289 INFO L273 TraceCheckUtils]: 12: Hoare triple {4183#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:02,290 INFO L273 TraceCheckUtils]: 13: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:02,290 INFO L273 TraceCheckUtils]: 14: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:02,291 INFO L273 TraceCheckUtils]: 15: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:02,292 INFO L273 TraceCheckUtils]: 16: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:02,292 INFO L273 TraceCheckUtils]: 17: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {4185#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:02,293 INFO L273 TraceCheckUtils]: 18: Hoare triple {4185#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4185#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:02,295 INFO L273 TraceCheckUtils]: 19: Hoare triple {4185#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:02,296 INFO L273 TraceCheckUtils]: 20: Hoare triple {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:02,297 INFO L273 TraceCheckUtils]: 21: Hoare triple {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:02,298 INFO L273 TraceCheckUtils]: 22: Hoare triple {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {4187#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4)} is VALID [2018-11-23 12:24:02,298 INFO L273 TraceCheckUtils]: 23: Hoare triple {4187#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4)} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {4187#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4)} is VALID [2018-11-23 12:24:02,299 INFO L273 TraceCheckUtils]: 24: Hoare triple {4187#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4)} ~i~0 := 0; {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} is VALID [2018-11-23 12:24:02,300 INFO L273 TraceCheckUtils]: 25: Hoare triple {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} is VALID [2018-11-23 12:24:02,300 INFO L256 TraceCheckUtils]: 26: Hoare triple {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4181#true} is VALID [2018-11-23 12:24:02,300 INFO L273 TraceCheckUtils]: 27: Hoare triple {4181#true} ~cond := #in~cond; {4181#true} is VALID [2018-11-23 12:24:02,301 INFO L273 TraceCheckUtils]: 28: Hoare triple {4181#true} assume !(0 == ~cond); {4181#true} is VALID [2018-11-23 12:24:02,301 INFO L273 TraceCheckUtils]: 29: Hoare triple {4181#true} assume true; {4181#true} is VALID [2018-11-23 12:24:02,302 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {4181#true} {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} #76#return; {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} is VALID [2018-11-23 12:24:02,302 INFO L273 TraceCheckUtils]: 31: Hoare triple {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} havoc #t~mem6; {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} is VALID [2018-11-23 12:24:02,303 INFO L273 TraceCheckUtils]: 32: Hoare triple {4188#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:02,304 INFO L273 TraceCheckUtils]: 33: Hoare triple {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:02,304 INFO L256 TraceCheckUtils]: 34: Hoare triple {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4181#true} is VALID [2018-11-23 12:24:02,304 INFO L273 TraceCheckUtils]: 35: Hoare triple {4181#true} ~cond := #in~cond; {4181#true} is VALID [2018-11-23 12:24:02,305 INFO L273 TraceCheckUtils]: 36: Hoare triple {4181#true} assume !(0 == ~cond); {4181#true} is VALID [2018-11-23 12:24:02,305 INFO L273 TraceCheckUtils]: 37: Hoare triple {4181#true} assume true; {4181#true} is VALID [2018-11-23 12:24:02,306 INFO L268 TraceCheckUtils]: 38: Hoare quadruple {4181#true} {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} #76#return; {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:02,306 INFO L273 TraceCheckUtils]: 39: Hoare triple {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} havoc #t~mem6; {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:02,308 INFO L273 TraceCheckUtils]: 40: Hoare triple {4189#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:02,308 INFO L273 TraceCheckUtils]: 41: Hoare triple {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:02,308 INFO L256 TraceCheckUtils]: 42: Hoare triple {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4181#true} is VALID [2018-11-23 12:24:02,309 INFO L273 TraceCheckUtils]: 43: Hoare triple {4181#true} ~cond := #in~cond; {4181#true} is VALID [2018-11-23 12:24:02,309 INFO L273 TraceCheckUtils]: 44: Hoare triple {4181#true} assume !(0 == ~cond); {4181#true} is VALID [2018-11-23 12:24:02,309 INFO L273 TraceCheckUtils]: 45: Hoare triple {4181#true} assume true; {4181#true} is VALID [2018-11-23 12:24:02,310 INFO L268 TraceCheckUtils]: 46: Hoare quadruple {4181#true} {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} #76#return; {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:02,311 INFO L273 TraceCheckUtils]: 47: Hoare triple {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} havoc #t~mem6; {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:02,312 INFO L273 TraceCheckUtils]: 48: Hoare triple {4190#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:02,312 INFO L273 TraceCheckUtils]: 49: Hoare triple {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:02,313 INFO L256 TraceCheckUtils]: 50: Hoare triple {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4181#true} is VALID [2018-11-23 12:24:02,313 INFO L273 TraceCheckUtils]: 51: Hoare triple {4181#true} ~cond := #in~cond; {4181#true} is VALID [2018-11-23 12:24:02,313 INFO L273 TraceCheckUtils]: 52: Hoare triple {4181#true} assume !(0 == ~cond); {4181#true} is VALID [2018-11-23 12:24:02,313 INFO L273 TraceCheckUtils]: 53: Hoare triple {4181#true} assume true; {4181#true} is VALID [2018-11-23 12:24:02,314 INFO L268 TraceCheckUtils]: 54: Hoare quadruple {4181#true} {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #76#return; {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:02,315 INFO L273 TraceCheckUtils]: 55: Hoare triple {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} havoc #t~mem6; {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:02,316 INFO L273 TraceCheckUtils]: 56: Hoare triple {4191#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {4192#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} is VALID [2018-11-23 12:24:02,338 INFO L273 TraceCheckUtils]: 57: Hoare triple {4192#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4193#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:24:02,339 INFO L256 TraceCheckUtils]: 58: Hoare triple {4193#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4194#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:24:02,340 INFO L273 TraceCheckUtils]: 59: Hoare triple {4194#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {4195#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:24:02,340 INFO L273 TraceCheckUtils]: 60: Hoare triple {4195#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {4182#false} is VALID [2018-11-23 12:24:02,340 INFO L273 TraceCheckUtils]: 61: Hoare triple {4182#false} assume !false; {4182#false} is VALID [2018-11-23 12:24:02,346 INFO L134 CoverageAnalysis]: Checked inductivity of 82 backedges. 8 proven. 50 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2018-11-23 12:24:02,347 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:24:02,347 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:24:02,355 INFO L103 rtionOrderModulation]: Keeping assertion order MIX_INSIDE_OUTSIDE [2018-11-23 12:24:02,389 INFO L249 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 5 check-sat command(s) [2018-11-23 12:24:02,389 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:24:02,410 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:02,412 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:24:02,467 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 20 treesize of output 17 [2018-11-23 12:24:02,475 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 17 treesize of output 16 [2018-11-23 12:24:02,476 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:24:02,479 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:24:02,487 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 12:24:02,488 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:27, output treesize:23 [2018-11-23 12:24:02,491 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:24:02,492 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_12|, main_~i~0]. (and (<= main_~i~0 3) (= (store |v_#memory_int_12| |main_~#a~0.base| (store (select |v_#memory_int_12| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8)) (+ (* 2 main_~i~0) (- 2)))) |#memory_int|) (<= 3 main_~i~0)) [2018-11-23 12:24:02,492 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [main_~i~0]. (and (<= main_~i~0 3) (= (+ (* 2 main_~i~0) (- 2)) (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8)))) (<= 3 main_~i~0)) [2018-11-23 12:24:03,490 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 28 treesize of output 24 [2018-11-23 12:24:03,495 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:24:03,496 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 20 [2018-11-23 12:24:03,497 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:24:03,502 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:24:03,508 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:24:03,508 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:34, output treesize:14 [2018-11-23 12:24:03,511 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:24:03,512 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|, |main_~#a~0.offset|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= (* 2 main_~i~0) (+ (select .cse0 (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 16))) 4)) (<= |main_#t~mem6| (select .cse0 (+ (* 4 main_~i~0) |main_~#a~0.offset|))) (<= 4 main_~i~0) (<= main_~i~0 4))) [2018-11-23 12:24:03,512 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (+ |main_#t~mem6| 4) (* 2 main_~i~0))) [2018-11-23 12:24:03,587 INFO L256 TraceCheckUtils]: 0: Hoare triple {4181#true} call ULTIMATE.init(); {4181#true} is VALID [2018-11-23 12:24:03,587 INFO L273 TraceCheckUtils]: 1: Hoare triple {4181#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {4181#true} is VALID [2018-11-23 12:24:03,587 INFO L273 TraceCheckUtils]: 2: Hoare triple {4181#true} assume true; {4181#true} is VALID [2018-11-23 12:24:03,587 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {4181#true} {4181#true} #72#return; {4181#true} is VALID [2018-11-23 12:24:03,587 INFO L256 TraceCheckUtils]: 4: Hoare triple {4181#true} call #t~ret7 := main(); {4181#true} is VALID [2018-11-23 12:24:03,588 INFO L273 TraceCheckUtils]: 5: Hoare triple {4181#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {4181#true} is VALID [2018-11-23 12:24:03,588 INFO L273 TraceCheckUtils]: 6: Hoare triple {4181#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {4181#true} is VALID [2018-11-23 12:24:03,588 INFO L273 TraceCheckUtils]: 7: Hoare triple {4181#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:03,589 INFO L273 TraceCheckUtils]: 8: Hoare triple {4183#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:03,589 INFO L273 TraceCheckUtils]: 9: Hoare triple {4183#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:03,590 INFO L273 TraceCheckUtils]: 10: Hoare triple {4183#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:03,590 INFO L273 TraceCheckUtils]: 11: Hoare triple {4183#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {4183#(= main_~i~0 1)} is VALID [2018-11-23 12:24:03,610 INFO L273 TraceCheckUtils]: 12: Hoare triple {4183#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:03,625 INFO L273 TraceCheckUtils]: 13: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:03,634 INFO L273 TraceCheckUtils]: 14: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:03,648 INFO L273 TraceCheckUtils]: 15: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:03,657 INFO L273 TraceCheckUtils]: 16: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:03,671 INFO L273 TraceCheckUtils]: 17: Hoare triple {4184#(and (<= 2 main_~i~0) (<= main_~i~0 2))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {4185#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:03,680 INFO L273 TraceCheckUtils]: 18: Hoare triple {4185#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4185#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:03,694 INFO L273 TraceCheckUtils]: 19: Hoare triple {4185#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} is VALID [2018-11-23 12:24:03,703 INFO L273 TraceCheckUtils]: 20: Hoare triple {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} is VALID [2018-11-23 12:24:03,715 INFO L273 TraceCheckUtils]: 21: Hoare triple {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} is VALID [2018-11-23 12:24:03,730 INFO L273 TraceCheckUtils]: 22: Hoare triple {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} is VALID [2018-11-23 12:24:03,739 INFO L273 TraceCheckUtils]: 23: Hoare triple {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} is VALID [2018-11-23 12:24:03,751 INFO L273 TraceCheckUtils]: 24: Hoare triple {4256#(exists ((main_~i~0 Int)) (and (<= main_~i~0 3) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (<= 3 main_~i~0)))} ~i~0 := 0; {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} is VALID [2018-11-23 12:24:03,764 INFO L273 TraceCheckUtils]: 25: Hoare triple {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} is VALID [2018-11-23 12:24:03,777 INFO L256 TraceCheckUtils]: 26: Hoare triple {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,790 INFO L273 TraceCheckUtils]: 27: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} ~cond := #in~cond; {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,802 INFO L273 TraceCheckUtils]: 28: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} assume !(0 == ~cond); {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,815 INFO L273 TraceCheckUtils]: 29: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} assume true; {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,828 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} #76#return; {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} is VALID [2018-11-23 12:24:03,841 INFO L273 TraceCheckUtils]: 31: Hoare triple {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} havoc #t~mem6; {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} is VALID [2018-11-23 12:24:03,858 INFO L273 TraceCheckUtils]: 32: Hoare triple {4272#(and (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} is VALID [2018-11-23 12:24:03,867 INFO L273 TraceCheckUtils]: 33: Hoare triple {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} is VALID [2018-11-23 12:24:03,880 INFO L256 TraceCheckUtils]: 34: Hoare triple {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,893 INFO L273 TraceCheckUtils]: 35: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} ~cond := #in~cond; {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,905 INFO L273 TraceCheckUtils]: 36: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} assume !(0 == ~cond); {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,923 INFO L273 TraceCheckUtils]: 37: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} assume true; {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,932 INFO L268 TraceCheckUtils]: 38: Hoare quadruple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} #76#return; {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} is VALID [2018-11-23 12:24:03,945 INFO L273 TraceCheckUtils]: 39: Hoare triple {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} havoc #t~mem6; {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} is VALID [2018-11-23 12:24:03,957 INFO L273 TraceCheckUtils]: 40: Hoare triple {4298#(and (= main_~i~0 1) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} is VALID [2018-11-23 12:24:03,970 INFO L273 TraceCheckUtils]: 41: Hoare triple {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} is VALID [2018-11-23 12:24:03,988 INFO L256 TraceCheckUtils]: 42: Hoare triple {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:03,997 INFO L273 TraceCheckUtils]: 43: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} ~cond := #in~cond; {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:04,010 INFO L273 TraceCheckUtils]: 44: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} assume !(0 == ~cond); {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:04,022 INFO L273 TraceCheckUtils]: 45: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} assume true; {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:04,035 INFO L268 TraceCheckUtils]: 46: Hoare quadruple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} #76#return; {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} is VALID [2018-11-23 12:24:04,051 INFO L273 TraceCheckUtils]: 47: Hoare triple {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} havoc #t~mem6; {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} is VALID [2018-11-23 12:24:04,060 INFO L273 TraceCheckUtils]: 48: Hoare triple {4323#(and (= main_~i~0 2) (exists ((v_prenex_4 Int)) (and (= (* 2 v_prenex_4) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_4) |main_~#a~0.offset| (- 8))) 2)) (<= v_prenex_4 3) (<= 3 v_prenex_4))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:04,073 INFO L273 TraceCheckUtils]: 49: Hoare triple {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:04,086 INFO L256 TraceCheckUtils]: 50: Hoare triple {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:04,099 INFO L273 TraceCheckUtils]: 51: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} ~cond := #in~cond; {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:04,114 INFO L273 TraceCheckUtils]: 52: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} assume !(0 == ~cond); {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:04,123 INFO L273 TraceCheckUtils]: 53: Hoare triple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} assume true; {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} is VALID [2018-11-23 12:24:04,136 INFO L268 TraceCheckUtils]: 54: Hoare quadruple {4279#(exists ((v_prenex_4 Int) (|v_main_~#a~0.base_BEFORE_CALL_9| Int) (|v_main_~#a~0.offset_BEFORE_CALL_9| Int)) (and (<= v_prenex_4 3) (<= 3 v_prenex_4) (= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_9|) (+ (* 8 v_prenex_4) |v_main_~#a~0.offset_BEFORE_CALL_9| (- 8))) 2) (* 2 v_prenex_4))))} {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} #76#return; {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:04,149 INFO L273 TraceCheckUtils]: 55: Hoare triple {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} havoc #t~mem6; {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:04,161 INFO L273 TraceCheckUtils]: 56: Hoare triple {4186#(and (<= main_~i~0 3) (<= 3 main_~i~0) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {4372#(and (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 16))) 4)) (<= 4 main_~i~0) (<= main_~i~0 4))} is VALID [2018-11-23 12:24:04,179 INFO L273 TraceCheckUtils]: 57: Hoare triple {4372#(and (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 16))) 4)) (<= 4 main_~i~0) (<= main_~i~0 4))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {4376#(and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (+ |main_#t~mem6| 4) (* 2 main_~i~0)))} is VALID [2018-11-23 12:24:04,188 INFO L256 TraceCheckUtils]: 58: Hoare triple {4376#(and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (+ |main_#t~mem6| 4) (* 2 main_~i~0)))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {4380#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:24:04,190 INFO L273 TraceCheckUtils]: 59: Hoare triple {4380#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {4384#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:24:04,190 INFO L273 TraceCheckUtils]: 60: Hoare triple {4384#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4182#false} is VALID [2018-11-23 12:24:04,190 INFO L273 TraceCheckUtils]: 61: Hoare triple {4182#false} assume !false; {4182#false} is VALID [2018-11-23 12:24:04,203 INFO L134 CoverageAnalysis]: Checked inductivity of 82 backedges. 0 proven. 58 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2018-11-23 12:24:04,223 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:24:04,224 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 15] total 24 [2018-11-23 12:24:04,224 INFO L78 Accepts]: Start accepts. Automaton has 24 states. Word has length 62 [2018-11-23 12:24:04,225 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:24:04,225 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 24 states. [2018-11-23 12:24:04,362 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:24:04,362 INFO L459 AbstractCegarLoop]: Interpolant automaton has 24 states [2018-11-23 12:24:04,362 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2018-11-23 12:24:04,363 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=478, Unknown=0, NotChecked=0, Total=552 [2018-11-23 12:24:04,363 INFO L87 Difference]: Start difference. First operand 85 states and 97 transitions. Second operand 24 states. [2018-11-23 12:24:17,550 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:17,550 INFO L93 Difference]: Finished difference Result 352 states and 453 transitions. [2018-11-23 12:24:17,550 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 43 states. [2018-11-23 12:24:17,551 INFO L78 Accepts]: Start accepts. Automaton has 24 states. Word has length 62 [2018-11-23 12:24:17,551 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:24:17,551 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2018-11-23 12:24:17,555 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 234 transitions. [2018-11-23 12:24:17,555 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2018-11-23 12:24:17,558 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 234 transitions. [2018-11-23 12:24:17,558 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 43 states and 234 transitions. [2018-11-23 12:24:18,870 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 234 edges. 233 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2018-11-23 12:24:18,880 INFO L225 Difference]: With dead ends: 352 [2018-11-23 12:24:18,881 INFO L226 Difference]: Without dead ends: 350 [2018-11-23 12:24:18,882 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 107 GetRequests, 48 SyntacticMatches, 9 SemanticMatches, 50 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 755 ImplicationChecksByTransitivity, 1.9s TimeCoverageRelationStatistics Valid=346, Invalid=2306, Unknown=0, NotChecked=0, Total=2652 [2018-11-23 12:24:18,883 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 350 states. [2018-11-23 12:24:19,869 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 350 to 123. [2018-11-23 12:24:19,869 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:24:19,869 INFO L82 GeneralOperation]: Start isEquivalent. First operand 350 states. Second operand 123 states. [2018-11-23 12:24:19,869 INFO L74 IsIncluded]: Start isIncluded. First operand 350 states. Second operand 123 states. [2018-11-23 12:24:19,869 INFO L87 Difference]: Start difference. First operand 350 states. Second operand 123 states. [2018-11-23 12:24:19,880 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:19,881 INFO L93 Difference]: Finished difference Result 350 states and 451 transitions. [2018-11-23 12:24:19,881 INFO L276 IsEmpty]: Start isEmpty. Operand 350 states and 451 transitions. [2018-11-23 12:24:19,882 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:24:19,882 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:24:19,882 INFO L74 IsIncluded]: Start isIncluded. First operand 123 states. Second operand 350 states. [2018-11-23 12:24:19,882 INFO L87 Difference]: Start difference. First operand 123 states. Second operand 350 states. [2018-11-23 12:24:19,893 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:19,893 INFO L93 Difference]: Finished difference Result 350 states and 451 transitions. [2018-11-23 12:24:19,893 INFO L276 IsEmpty]: Start isEmpty. Operand 350 states and 451 transitions. [2018-11-23 12:24:19,894 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:24:19,894 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:24:19,894 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:24:19,895 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:24:19,895 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 123 states. [2018-11-23 12:24:19,898 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 123 states to 123 states and 144 transitions. [2018-11-23 12:24:19,898 INFO L78 Accepts]: Start accepts. Automaton has 123 states and 144 transitions. Word has length 62 [2018-11-23 12:24:19,898 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:24:19,898 INFO L480 AbstractCegarLoop]: Abstraction has 123 states and 144 transitions. [2018-11-23 12:24:19,898 INFO L481 AbstractCegarLoop]: Interpolant automaton has 24 states. [2018-11-23 12:24:19,898 INFO L276 IsEmpty]: Start isEmpty. Operand 123 states and 144 transitions. [2018-11-23 12:24:19,899 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2018-11-23 12:24:19,900 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:24:19,900 INFO L402 BasicCegarLoop]: trace histogram [5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:24:19,900 INFO L423 AbstractCegarLoop]: === Iteration 11 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:24:19,900 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:24:19,900 INFO L82 PathProgramCache]: Analyzing trace with hash 479423874, now seen corresponding path program 2 times [2018-11-23 12:24:19,900 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:24:19,901 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:24:19,901 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:24:19,901 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:24:19,902 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:24:19,917 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:20,874 INFO L256 TraceCheckUtils]: 0: Hoare triple {5746#true} call ULTIMATE.init(); {5746#true} is VALID [2018-11-23 12:24:20,875 INFO L273 TraceCheckUtils]: 1: Hoare triple {5746#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {5746#true} is VALID [2018-11-23 12:24:20,875 INFO L273 TraceCheckUtils]: 2: Hoare triple {5746#true} assume true; {5746#true} is VALID [2018-11-23 12:24:20,875 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {5746#true} {5746#true} #72#return; {5746#true} is VALID [2018-11-23 12:24:20,875 INFO L256 TraceCheckUtils]: 4: Hoare triple {5746#true} call #t~ret7 := main(); {5746#true} is VALID [2018-11-23 12:24:20,875 INFO L273 TraceCheckUtils]: 5: Hoare triple {5746#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {5746#true} is VALID [2018-11-23 12:24:20,876 INFO L273 TraceCheckUtils]: 6: Hoare triple {5746#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {5746#true} is VALID [2018-11-23 12:24:20,876 INFO L273 TraceCheckUtils]: 7: Hoare triple {5746#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {5748#(= main_~i~0 1)} is VALID [2018-11-23 12:24:20,877 INFO L273 TraceCheckUtils]: 8: Hoare triple {5748#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5748#(= main_~i~0 1)} is VALID [2018-11-23 12:24:20,877 INFO L273 TraceCheckUtils]: 9: Hoare triple {5748#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5748#(= main_~i~0 1)} is VALID [2018-11-23 12:24:20,878 INFO L273 TraceCheckUtils]: 10: Hoare triple {5748#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {5748#(= main_~i~0 1)} is VALID [2018-11-23 12:24:20,878 INFO L273 TraceCheckUtils]: 11: Hoare triple {5748#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {5748#(= main_~i~0 1)} is VALID [2018-11-23 12:24:20,878 INFO L273 TraceCheckUtils]: 12: Hoare triple {5748#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:20,879 INFO L273 TraceCheckUtils]: 13: Hoare triple {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:20,879 INFO L273 TraceCheckUtils]: 14: Hoare triple {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:20,880 INFO L273 TraceCheckUtils]: 15: Hoare triple {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:20,881 INFO L273 TraceCheckUtils]: 16: Hoare triple {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:20,882 INFO L273 TraceCheckUtils]: 17: Hoare triple {5749#(and (<= 2 main_~i~0) (<= main_~i~0 2))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {5750#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:20,882 INFO L273 TraceCheckUtils]: 18: Hoare triple {5750#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5751#(and (<= main_~i~0 3) (= |main_#t~mem3| (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:20,883 INFO L273 TraceCheckUtils]: 19: Hoare triple {5751#(and (<= main_~i~0 3) (= |main_#t~mem3| (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (<= 3 main_~i~0))} assume !(#t~mem3 > 2 * ~i~0 - 2);havoc #t~mem3; {5752#(and (<= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 4) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:20,884 INFO L273 TraceCheckUtils]: 20: Hoare triple {5752#(and (<= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 4) (<= 3 main_~i~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {5752#(and (<= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 4) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:20,885 INFO L273 TraceCheckUtils]: 21: Hoare triple {5752#(and (<= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 4) (<= 3 main_~i~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {5752#(and (<= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 4) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:20,886 INFO L273 TraceCheckUtils]: 22: Hoare triple {5752#(and (<= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 4) (<= 3 main_~i~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {5753#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4)} is VALID [2018-11-23 12:24:20,887 INFO L273 TraceCheckUtils]: 23: Hoare triple {5753#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4)} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {5753#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4)} is VALID [2018-11-23 12:24:20,887 INFO L273 TraceCheckUtils]: 24: Hoare triple {5753#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4)} ~i~0 := 0; {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} is VALID [2018-11-23 12:24:20,888 INFO L273 TraceCheckUtils]: 25: Hoare triple {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} is VALID [2018-11-23 12:24:20,889 INFO L256 TraceCheckUtils]: 26: Hoare triple {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5746#true} is VALID [2018-11-23 12:24:20,889 INFO L273 TraceCheckUtils]: 27: Hoare triple {5746#true} ~cond := #in~cond; {5746#true} is VALID [2018-11-23 12:24:20,889 INFO L273 TraceCheckUtils]: 28: Hoare triple {5746#true} assume !(0 == ~cond); {5746#true} is VALID [2018-11-23 12:24:20,889 INFO L273 TraceCheckUtils]: 29: Hoare triple {5746#true} assume true; {5746#true} is VALID [2018-11-23 12:24:20,890 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {5746#true} {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} #76#return; {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} is VALID [2018-11-23 12:24:20,891 INFO L273 TraceCheckUtils]: 31: Hoare triple {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} havoc #t~mem6; {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} is VALID [2018-11-23 12:24:20,892 INFO L273 TraceCheckUtils]: 32: Hoare triple {5754#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 6) (- 8)))) 4) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:20,893 INFO L273 TraceCheckUtils]: 33: Hoare triple {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:20,893 INFO L256 TraceCheckUtils]: 34: Hoare triple {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5746#true} is VALID [2018-11-23 12:24:20,893 INFO L273 TraceCheckUtils]: 35: Hoare triple {5746#true} ~cond := #in~cond; {5746#true} is VALID [2018-11-23 12:24:20,893 INFO L273 TraceCheckUtils]: 36: Hoare triple {5746#true} assume !(0 == ~cond); {5746#true} is VALID [2018-11-23 12:24:20,893 INFO L273 TraceCheckUtils]: 37: Hoare triple {5746#true} assume true; {5746#true} is VALID [2018-11-23 12:24:20,894 INFO L268 TraceCheckUtils]: 38: Hoare quadruple {5746#true} {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} #76#return; {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:20,895 INFO L273 TraceCheckUtils]: 39: Hoare triple {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} havoc #t~mem6; {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:20,896 INFO L273 TraceCheckUtils]: 40: Hoare triple {5755#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:20,897 INFO L273 TraceCheckUtils]: 41: Hoare triple {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:20,897 INFO L256 TraceCheckUtils]: 42: Hoare triple {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5746#true} is VALID [2018-11-23 12:24:20,897 INFO L273 TraceCheckUtils]: 43: Hoare triple {5746#true} ~cond := #in~cond; {5746#true} is VALID [2018-11-23 12:24:20,897 INFO L273 TraceCheckUtils]: 44: Hoare triple {5746#true} assume !(0 == ~cond); {5746#true} is VALID [2018-11-23 12:24:20,897 INFO L273 TraceCheckUtils]: 45: Hoare triple {5746#true} assume true; {5746#true} is VALID [2018-11-23 12:24:20,898 INFO L268 TraceCheckUtils]: 46: Hoare quadruple {5746#true} {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} #76#return; {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:20,899 INFO L273 TraceCheckUtils]: 47: Hoare triple {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} havoc #t~mem6; {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:20,900 INFO L273 TraceCheckUtils]: 48: Hoare triple {5756#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:20,901 INFO L273 TraceCheckUtils]: 49: Hoare triple {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:20,901 INFO L256 TraceCheckUtils]: 50: Hoare triple {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5746#true} is VALID [2018-11-23 12:24:20,901 INFO L273 TraceCheckUtils]: 51: Hoare triple {5746#true} ~cond := #in~cond; {5746#true} is VALID [2018-11-23 12:24:20,901 INFO L273 TraceCheckUtils]: 52: Hoare triple {5746#true} assume !(0 == ~cond); {5746#true} is VALID [2018-11-23 12:24:20,902 INFO L273 TraceCheckUtils]: 53: Hoare triple {5746#true} assume true; {5746#true} is VALID [2018-11-23 12:24:20,918 INFO L268 TraceCheckUtils]: 54: Hoare quadruple {5746#true} {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #76#return; {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:20,933 INFO L273 TraceCheckUtils]: 55: Hoare triple {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} havoc #t~mem6; {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:20,942 INFO L273 TraceCheckUtils]: 56: Hoare triple {5757#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {5758#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} is VALID [2018-11-23 12:24:20,955 INFO L273 TraceCheckUtils]: 57: Hoare triple {5758#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5759#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:24:20,969 INFO L256 TraceCheckUtils]: 58: Hoare triple {5759#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5760#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:24:20,978 INFO L273 TraceCheckUtils]: 59: Hoare triple {5760#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {5761#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:24:20,992 INFO L273 TraceCheckUtils]: 60: Hoare triple {5761#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {5747#false} is VALID [2018-11-23 12:24:20,992 INFO L273 TraceCheckUtils]: 61: Hoare triple {5747#false} assume !false; {5747#false} is VALID [2018-11-23 12:24:21,001 INFO L134 CoverageAnalysis]: Checked inductivity of 82 backedges. 8 proven. 50 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2018-11-23 12:24:21,002 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:24:21,002 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:24:21,021 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-23 12:24:21,045 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 12:24:21,045 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:24:21,075 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:21,077 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:24:21,933 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 17 treesize of output 13 [2018-11-23 12:24:21,936 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:24:21,937 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-23 12:24:21,941 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:24:21,945 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:24:21,950 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:24:21,951 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:20, output treesize:7 [2018-11-23 12:24:21,954 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:24:21,954 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (<= |main_#t~mem6| (select .cse0 (* 4 main_~i~0))) (<= (select .cse0 16) 4) (= main_~i~0 4))) [2018-11-23 12:24:21,954 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= |main_#t~mem6| 4) (= main_~i~0 4)) [2018-11-23 12:24:22,032 INFO L256 TraceCheckUtils]: 0: Hoare triple {5746#true} call ULTIMATE.init(); {5746#true} is VALID [2018-11-23 12:24:22,032 INFO L273 TraceCheckUtils]: 1: Hoare triple {5746#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {5746#true} is VALID [2018-11-23 12:24:22,032 INFO L273 TraceCheckUtils]: 2: Hoare triple {5746#true} assume true; {5746#true} is VALID [2018-11-23 12:24:22,032 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {5746#true} {5746#true} #72#return; {5746#true} is VALID [2018-11-23 12:24:22,032 INFO L256 TraceCheckUtils]: 4: Hoare triple {5746#true} call #t~ret7 := main(); {5746#true} is VALID [2018-11-23 12:24:22,032 INFO L273 TraceCheckUtils]: 5: Hoare triple {5746#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {5746#true} is VALID [2018-11-23 12:24:22,033 INFO L273 TraceCheckUtils]: 6: Hoare triple {5746#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {5783#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:24:22,033 INFO L273 TraceCheckUtils]: 7: Hoare triple {5783#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,034 INFO L273 TraceCheckUtils]: 8: Hoare triple {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,034 INFO L273 TraceCheckUtils]: 9: Hoare triple {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,035 INFO L273 TraceCheckUtils]: 10: Hoare triple {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,035 INFO L273 TraceCheckUtils]: 11: Hoare triple {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,036 INFO L273 TraceCheckUtils]: 12: Hoare triple {5787#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,037 INFO L273 TraceCheckUtils]: 13: Hoare triple {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,038 INFO L273 TraceCheckUtils]: 14: Hoare triple {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,038 INFO L273 TraceCheckUtils]: 15: Hoare triple {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,039 INFO L273 TraceCheckUtils]: 16: Hoare triple {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,040 INFO L273 TraceCheckUtils]: 17: Hoare triple {5803#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {5819#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,041 INFO L273 TraceCheckUtils]: 18: Hoare triple {5819#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {5823#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) |main_#t~mem3|) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,042 INFO L273 TraceCheckUtils]: 19: Hoare triple {5823#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) |main_#t~mem3|) (= |main_~#a~0.offset| 0))} assume !(#t~mem3 > 2 * ~i~0 - 2);havoc #t~mem3; {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,043 INFO L273 TraceCheckUtils]: 20: Hoare triple {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,043 INFO L273 TraceCheckUtils]: 21: Hoare triple {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,044 INFO L273 TraceCheckUtils]: 22: Hoare triple {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,045 INFO L273 TraceCheckUtils]: 23: Hoare triple {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,046 INFO L273 TraceCheckUtils]: 24: Hoare triple {5827#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,047 INFO L273 TraceCheckUtils]: 25: Hoare triple {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,048 INFO L256 TraceCheckUtils]: 26: Hoare triple {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,049 INFO L273 TraceCheckUtils]: 27: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} ~cond := #in~cond; {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,049 INFO L273 TraceCheckUtils]: 28: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} assume !(0 == ~cond); {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,050 INFO L273 TraceCheckUtils]: 29: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} assume true; {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,051 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #76#return; {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,052 INFO L273 TraceCheckUtils]: 31: Hoare triple {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,053 INFO L273 TraceCheckUtils]: 32: Hoare triple {5843#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,053 INFO L273 TraceCheckUtils]: 33: Hoare triple {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,055 INFO L256 TraceCheckUtils]: 34: Hoare triple {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,056 INFO L273 TraceCheckUtils]: 35: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} ~cond := #in~cond; {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,056 INFO L273 TraceCheckUtils]: 36: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} assume !(0 == ~cond); {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,057 INFO L273 TraceCheckUtils]: 37: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} assume true; {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,058 INFO L268 TraceCheckUtils]: 38: Hoare quadruple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #76#return; {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,058 INFO L273 TraceCheckUtils]: 39: Hoare triple {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,059 INFO L273 TraceCheckUtils]: 40: Hoare triple {5869#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,060 INFO L273 TraceCheckUtils]: 41: Hoare triple {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,062 INFO L256 TraceCheckUtils]: 42: Hoare triple {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,062 INFO L273 TraceCheckUtils]: 43: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} ~cond := #in~cond; {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,063 INFO L273 TraceCheckUtils]: 44: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} assume !(0 == ~cond); {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,063 INFO L273 TraceCheckUtils]: 45: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} assume true; {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,064 INFO L268 TraceCheckUtils]: 46: Hoare quadruple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} #76#return; {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,065 INFO L273 TraceCheckUtils]: 47: Hoare triple {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,066 INFO L273 TraceCheckUtils]: 48: Hoare triple {5894#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,067 INFO L273 TraceCheckUtils]: 49: Hoare triple {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,068 INFO L256 TraceCheckUtils]: 50: Hoare triple {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,069 INFO L273 TraceCheckUtils]: 51: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} ~cond := #in~cond; {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,069 INFO L273 TraceCheckUtils]: 52: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} assume !(0 == ~cond); {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,070 INFO L273 TraceCheckUtils]: 53: Hoare triple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} assume true; {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} is VALID [2018-11-23 12:24:22,071 INFO L268 TraceCheckUtils]: 54: Hoare quadruple {5850#(exists ((|v_main_~#a~0.base_BEFORE_CALL_13| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_13|) 16) 4))} {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} #76#return; {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,092 INFO L273 TraceCheckUtils]: 55: Hoare triple {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,107 INFO L273 TraceCheckUtils]: 56: Hoare triple {5919#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {5944#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:22,109 INFO L273 TraceCheckUtils]: 57: Hoare triple {5944#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16)) 4) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {5948#(and (<= |main_#t~mem6| 4) (= main_~i~0 4))} is VALID [2018-11-23 12:24:22,110 INFO L256 TraceCheckUtils]: 58: Hoare triple {5948#(and (<= |main_#t~mem6| 4) (= main_~i~0 4))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {5952#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:24:22,111 INFO L273 TraceCheckUtils]: 59: Hoare triple {5952#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {5956#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:24:22,111 INFO L273 TraceCheckUtils]: 60: Hoare triple {5956#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {5747#false} is VALID [2018-11-23 12:24:22,111 INFO L273 TraceCheckUtils]: 61: Hoare triple {5747#false} assume !false; {5747#false} is VALID [2018-11-23 12:24:22,121 INFO L134 CoverageAnalysis]: Checked inductivity of 82 backedges. 0 proven. 58 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2018-11-23 12:24:22,141 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:24:22,141 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 17] total 31 [2018-11-23 12:24:22,142 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 62 [2018-11-23 12:24:22,142 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:24:22,142 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 31 states. [2018-11-23 12:24:22,271 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:24:22,271 INFO L459 AbstractCegarLoop]: Interpolant automaton has 31 states [2018-11-23 12:24:22,272 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2018-11-23 12:24:22,272 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=111, Invalid=819, Unknown=0, NotChecked=0, Total=930 [2018-11-23 12:24:22,273 INFO L87 Difference]: Start difference. First operand 123 states and 144 transitions. Second operand 31 states. [2018-11-23 12:24:31,438 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:31,438 INFO L93 Difference]: Finished difference Result 446 states and 595 transitions. [2018-11-23 12:24:31,438 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 41 states. [2018-11-23 12:24:31,438 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 62 [2018-11-23 12:24:31,439 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:24:31,439 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2018-11-23 12:24:31,441 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 187 transitions. [2018-11-23 12:24:31,442 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2018-11-23 12:24:31,444 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 187 transitions. [2018-11-23 12:24:31,444 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 41 states and 187 transitions. [2018-11-23 12:24:32,082 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 187 edges. 187 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:24:32,097 INFO L225 Difference]: With dead ends: 446 [2018-11-23 12:24:32,097 INFO L226 Difference]: Without dead ends: 444 [2018-11-23 12:24:32,099 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 105 GetRequests, 41 SyntacticMatches, 7 SemanticMatches, 57 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1020 ImplicationChecksByTransitivity, 2.0s TimeCoverageRelationStatistics Valid=420, Invalid=3002, Unknown=0, NotChecked=0, Total=3422 [2018-11-23 12:24:32,099 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 444 states. [2018-11-23 12:24:32,731 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 444 to 139. [2018-11-23 12:24:32,731 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:24:32,731 INFO L82 GeneralOperation]: Start isEquivalent. First operand 444 states. Second operand 139 states. [2018-11-23 12:24:32,731 INFO L74 IsIncluded]: Start isIncluded. First operand 444 states. Second operand 139 states. [2018-11-23 12:24:32,731 INFO L87 Difference]: Start difference. First operand 444 states. Second operand 139 states. [2018-11-23 12:24:32,747 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:32,748 INFO L93 Difference]: Finished difference Result 444 states and 593 transitions. [2018-11-23 12:24:32,748 INFO L276 IsEmpty]: Start isEmpty. Operand 444 states and 593 transitions. [2018-11-23 12:24:32,749 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:24:32,749 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:24:32,749 INFO L74 IsIncluded]: Start isIncluded. First operand 139 states. Second operand 444 states. [2018-11-23 12:24:32,749 INFO L87 Difference]: Start difference. First operand 139 states. Second operand 444 states. [2018-11-23 12:24:32,766 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:32,767 INFO L93 Difference]: Finished difference Result 444 states and 593 transitions. [2018-11-23 12:24:32,767 INFO L276 IsEmpty]: Start isEmpty. Operand 444 states and 593 transitions. [2018-11-23 12:24:32,768 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:24:32,768 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:24:32,768 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:24:32,769 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:24:32,769 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 139 states. [2018-11-23 12:24:32,772 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 139 states to 139 states and 162 transitions. [2018-11-23 12:24:32,772 INFO L78 Accepts]: Start accepts. Automaton has 139 states and 162 transitions. Word has length 62 [2018-11-23 12:24:32,773 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:24:32,773 INFO L480 AbstractCegarLoop]: Abstraction has 139 states and 162 transitions. [2018-11-23 12:24:32,773 INFO L481 AbstractCegarLoop]: Interpolant automaton has 31 states. [2018-11-23 12:24:32,773 INFO L276 IsEmpty]: Start isEmpty. Operand 139 states and 162 transitions. [2018-11-23 12:24:32,774 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 71 [2018-11-23 12:24:32,774 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:24:32,774 INFO L402 BasicCegarLoop]: trace histogram [6, 6, 6, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:24:32,775 INFO L423 AbstractCegarLoop]: === Iteration 12 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:24:32,775 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:24:32,775 INFO L82 PathProgramCache]: Analyzing trace with hash -2058885069, now seen corresponding path program 7 times [2018-11-23 12:24:32,775 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:24:32,775 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:24:32,776 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:24:32,776 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:24:32,776 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:24:32,805 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:34,254 INFO L256 TraceCheckUtils]: 0: Hoare triple {7632#true} call ULTIMATE.init(); {7632#true} is VALID [2018-11-23 12:24:34,254 INFO L273 TraceCheckUtils]: 1: Hoare triple {7632#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {7632#true} is VALID [2018-11-23 12:24:34,254 INFO L273 TraceCheckUtils]: 2: Hoare triple {7632#true} assume true; {7632#true} is VALID [2018-11-23 12:24:34,254 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {7632#true} {7632#true} #72#return; {7632#true} is VALID [2018-11-23 12:24:34,255 INFO L256 TraceCheckUtils]: 4: Hoare triple {7632#true} call #t~ret7 := main(); {7632#true} is VALID [2018-11-23 12:24:34,255 INFO L273 TraceCheckUtils]: 5: Hoare triple {7632#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {7632#true} is VALID [2018-11-23 12:24:34,255 INFO L273 TraceCheckUtils]: 6: Hoare triple {7632#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {7634#(<= 2 ~SIZE~0)} is VALID [2018-11-23 12:24:34,256 INFO L273 TraceCheckUtils]: 7: Hoare triple {7634#(<= 2 ~SIZE~0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,257 INFO L273 TraceCheckUtils]: 8: Hoare triple {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,258 INFO L273 TraceCheckUtils]: 9: Hoare triple {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,259 INFO L273 TraceCheckUtils]: 10: Hoare triple {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,260 INFO L273 TraceCheckUtils]: 11: Hoare triple {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,260 INFO L273 TraceCheckUtils]: 12: Hoare triple {7635#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,261 INFO L273 TraceCheckUtils]: 13: Hoare triple {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,262 INFO L273 TraceCheckUtils]: 14: Hoare triple {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,263 INFO L273 TraceCheckUtils]: 15: Hoare triple {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,263 INFO L273 TraceCheckUtils]: 16: Hoare triple {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,264 INFO L273 TraceCheckUtils]: 17: Hoare triple {7636#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {7637#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,265 INFO L273 TraceCheckUtils]: 18: Hoare triple {7637#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7637#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,266 INFO L273 TraceCheckUtils]: 19: Hoare triple {7637#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7637#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,267 INFO L273 TraceCheckUtils]: 20: Hoare triple {7637#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {7638#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))) (or (= |main_#t~mem4| (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4)))) (<= (* 2 main_~i~0) 5)))} is VALID [2018-11-23 12:24:34,268 INFO L273 TraceCheckUtils]: 21: Hoare triple {7638#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))) (or (= |main_#t~mem4| (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4)))) (<= (* 2 main_~i~0) 5)))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {7639#(and (<= (* 2 main_~i~0) 6) (or (<= (* 2 main_~i~0) 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 5)) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,269 INFO L273 TraceCheckUtils]: 22: Hoare triple {7639#(and (<= (* 2 main_~i~0) 6) (or (<= (* 2 main_~i~0) 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 5)) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {7640#(and (<= (* 2 main_~i~0) 8) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (* 2 main_~i~0) (- 2))) (- 4)))) 5) (<= (* 2 main_~i~0) 7)) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:24:34,271 INFO L273 TraceCheckUtils]: 23: Hoare triple {7640#(and (<= (* 2 main_~i~0) 8) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (* 2 main_~i~0) (- 2))) (- 4)))) 5) (<= (* 2 main_~i~0) 7)) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {7641#(or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5))} is VALID [2018-11-23 12:24:34,272 INFO L273 TraceCheckUtils]: 24: Hoare triple {7641#(or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5))} ~i~0 := 0; {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} is VALID [2018-11-23 12:24:34,273 INFO L273 TraceCheckUtils]: 25: Hoare triple {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} is VALID [2018-11-23 12:24:34,273 INFO L256 TraceCheckUtils]: 26: Hoare triple {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7632#true} is VALID [2018-11-23 12:24:34,273 INFO L273 TraceCheckUtils]: 27: Hoare triple {7632#true} ~cond := #in~cond; {7632#true} is VALID [2018-11-23 12:24:34,273 INFO L273 TraceCheckUtils]: 28: Hoare triple {7632#true} assume !(0 == ~cond); {7632#true} is VALID [2018-11-23 12:24:34,274 INFO L273 TraceCheckUtils]: 29: Hoare triple {7632#true} assume true; {7632#true} is VALID [2018-11-23 12:24:34,275 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {7632#true} {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} #76#return; {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} is VALID [2018-11-23 12:24:34,275 INFO L273 TraceCheckUtils]: 31: Hoare triple {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} havoc #t~mem6; {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} is VALID [2018-11-23 12:24:34,277 INFO L273 TraceCheckUtils]: 32: Hoare triple {7642#(and (= main_~i~0 0) (or (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) 5) (<= ~SIZE~0 6)) (<= ~SIZE~0 5)))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} is VALID [2018-11-23 12:24:34,278 INFO L273 TraceCheckUtils]: 33: Hoare triple {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} is VALID [2018-11-23 12:24:34,278 INFO L256 TraceCheckUtils]: 34: Hoare triple {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7632#true} is VALID [2018-11-23 12:24:34,278 INFO L273 TraceCheckUtils]: 35: Hoare triple {7632#true} ~cond := #in~cond; {7632#true} is VALID [2018-11-23 12:24:34,278 INFO L273 TraceCheckUtils]: 36: Hoare triple {7632#true} assume !(0 == ~cond); {7632#true} is VALID [2018-11-23 12:24:34,278 INFO L273 TraceCheckUtils]: 37: Hoare triple {7632#true} assume true; {7632#true} is VALID [2018-11-23 12:24:34,279 INFO L268 TraceCheckUtils]: 38: Hoare quadruple {7632#true} {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} #76#return; {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} is VALID [2018-11-23 12:24:34,280 INFO L273 TraceCheckUtils]: 39: Hoare triple {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} havoc #t~mem6; {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} is VALID [2018-11-23 12:24:34,281 INFO L273 TraceCheckUtils]: 40: Hoare triple {7643#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 4))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} is VALID [2018-11-23 12:24:34,282 INFO L273 TraceCheckUtils]: 41: Hoare triple {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} is VALID [2018-11-23 12:24:34,282 INFO L256 TraceCheckUtils]: 42: Hoare triple {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7632#true} is VALID [2018-11-23 12:24:34,283 INFO L273 TraceCheckUtils]: 43: Hoare triple {7632#true} ~cond := #in~cond; {7632#true} is VALID [2018-11-23 12:24:34,283 INFO L273 TraceCheckUtils]: 44: Hoare triple {7632#true} assume !(0 == ~cond); {7632#true} is VALID [2018-11-23 12:24:34,283 INFO L273 TraceCheckUtils]: 45: Hoare triple {7632#true} assume true; {7632#true} is VALID [2018-11-23 12:24:34,284 INFO L268 TraceCheckUtils]: 46: Hoare quadruple {7632#true} {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} #76#return; {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} is VALID [2018-11-23 12:24:34,285 INFO L273 TraceCheckUtils]: 47: Hoare triple {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} havoc #t~mem6; {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} is VALID [2018-11-23 12:24:34,286 INFO L273 TraceCheckUtils]: 48: Hoare triple {7644#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 3))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} is VALID [2018-11-23 12:24:34,286 INFO L273 TraceCheckUtils]: 49: Hoare triple {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} is VALID [2018-11-23 12:24:34,287 INFO L256 TraceCheckUtils]: 50: Hoare triple {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7632#true} is VALID [2018-11-23 12:24:34,287 INFO L273 TraceCheckUtils]: 51: Hoare triple {7632#true} ~cond := #in~cond; {7632#true} is VALID [2018-11-23 12:24:34,287 INFO L273 TraceCheckUtils]: 52: Hoare triple {7632#true} assume !(0 == ~cond); {7632#true} is VALID [2018-11-23 12:24:34,287 INFO L273 TraceCheckUtils]: 53: Hoare triple {7632#true} assume true; {7632#true} is VALID [2018-11-23 12:24:34,288 INFO L268 TraceCheckUtils]: 54: Hoare quadruple {7632#true} {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} #76#return; {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} is VALID [2018-11-23 12:24:34,289 INFO L273 TraceCheckUtils]: 55: Hoare triple {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} havoc #t~mem6; {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} is VALID [2018-11-23 12:24:34,290 INFO L273 TraceCheckUtils]: 56: Hoare triple {7645#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= ~SIZE~0 (+ main_~i~0 2)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 2))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-23 12:24:34,291 INFO L273 TraceCheckUtils]: 57: Hoare triple {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-23 12:24:34,292 INFO L256 TraceCheckUtils]: 58: Hoare triple {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7632#true} is VALID [2018-11-23 12:24:34,292 INFO L273 TraceCheckUtils]: 59: Hoare triple {7632#true} ~cond := #in~cond; {7632#true} is VALID [2018-11-23 12:24:34,292 INFO L273 TraceCheckUtils]: 60: Hoare triple {7632#true} assume !(0 == ~cond); {7632#true} is VALID [2018-11-23 12:24:34,292 INFO L273 TraceCheckUtils]: 61: Hoare triple {7632#true} assume true; {7632#true} is VALID [2018-11-23 12:24:34,293 INFO L268 TraceCheckUtils]: 62: Hoare quadruple {7632#true} {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} #76#return; {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-23 12:24:34,294 INFO L273 TraceCheckUtils]: 63: Hoare triple {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} havoc #t~mem6; {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-23 12:24:34,295 INFO L273 TraceCheckUtils]: 64: Hoare triple {7646#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 ~SIZE~0) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 1))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7647#(or (<= ~SIZE~0 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0))} is VALID [2018-11-23 12:24:34,296 INFO L273 TraceCheckUtils]: 65: Hoare triple {7647#(or (<= ~SIZE~0 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7648#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:24:34,296 INFO L256 TraceCheckUtils]: 66: Hoare triple {7648#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7649#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:24:34,297 INFO L273 TraceCheckUtils]: 67: Hoare triple {7649#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {7650#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:24:34,297 INFO L273 TraceCheckUtils]: 68: Hoare triple {7650#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {7633#false} is VALID [2018-11-23 12:24:34,297 INFO L273 TraceCheckUtils]: 69: Hoare triple {7633#false} assume !false; {7633#false} is VALID [2018-11-23 12:24:34,310 INFO L134 CoverageAnalysis]: Checked inductivity of 118 backedges. 34 proven. 44 refuted. 0 times theorem prover too weak. 40 trivial. 0 not checked. [2018-11-23 12:24:34,310 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:24:34,310 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:24:34,319 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:24:34,343 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:34,354 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:34,357 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:24:35,273 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 17 treesize of output 13 [2018-11-23 12:24:35,277 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:24:35,278 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-23 12:24:35,282 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:24:35,285 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:24:35,290 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:24:35,290 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:20, output treesize:7 [2018-11-23 12:24:35,297 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:24:35,297 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (<= |main_#t~mem6| (select .cse0 (* 4 main_~i~0))) (<= (select .cse0 20) 5) (= main_~i~0 5))) [2018-11-23 12:24:35,297 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= |main_#t~mem6| 5) (= main_~i~0 5)) [2018-11-23 12:24:35,379 INFO L256 TraceCheckUtils]: 0: Hoare triple {7632#true} call ULTIMATE.init(); {7632#true} is VALID [2018-11-23 12:24:35,379 INFO L273 TraceCheckUtils]: 1: Hoare triple {7632#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {7632#true} is VALID [2018-11-23 12:24:35,380 INFO L273 TraceCheckUtils]: 2: Hoare triple {7632#true} assume true; {7632#true} is VALID [2018-11-23 12:24:35,380 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {7632#true} {7632#true} #72#return; {7632#true} is VALID [2018-11-23 12:24:35,380 INFO L256 TraceCheckUtils]: 4: Hoare triple {7632#true} call #t~ret7 := main(); {7632#true} is VALID [2018-11-23 12:24:35,380 INFO L273 TraceCheckUtils]: 5: Hoare triple {7632#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {7632#true} is VALID [2018-11-23 12:24:35,381 INFO L273 TraceCheckUtils]: 6: Hoare triple {7632#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {7672#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:24:35,382 INFO L273 TraceCheckUtils]: 7: Hoare triple {7672#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,382 INFO L273 TraceCheckUtils]: 8: Hoare triple {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,383 INFO L273 TraceCheckUtils]: 9: Hoare triple {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,384 INFO L273 TraceCheckUtils]: 10: Hoare triple {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,385 INFO L273 TraceCheckUtils]: 11: Hoare triple {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,385 INFO L273 TraceCheckUtils]: 12: Hoare triple {7676#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,386 INFO L273 TraceCheckUtils]: 13: Hoare triple {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,387 INFO L273 TraceCheckUtils]: 14: Hoare triple {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,388 INFO L273 TraceCheckUtils]: 15: Hoare triple {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,393 INFO L273 TraceCheckUtils]: 16: Hoare triple {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,394 INFO L273 TraceCheckUtils]: 17: Hoare triple {7692#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {7708#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,394 INFO L273 TraceCheckUtils]: 18: Hoare triple {7708#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7708#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,395 INFO L273 TraceCheckUtils]: 19: Hoare triple {7708#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {7708#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,395 INFO L273 TraceCheckUtils]: 20: Hoare triple {7708#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {7718#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) |main_#t~mem4|) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,396 INFO L273 TraceCheckUtils]: 21: Hoare triple {7718#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) |main_#t~mem4|) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {7722#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,397 INFO L273 TraceCheckUtils]: 22: Hoare triple {7722#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {7722#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,397 INFO L273 TraceCheckUtils]: 23: Hoare triple {7722#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {7722#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,398 INFO L273 TraceCheckUtils]: 24: Hoare triple {7722#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,399 INFO L273 TraceCheckUtils]: 25: Hoare triple {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,401 INFO L256 TraceCheckUtils]: 26: Hoare triple {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,402 INFO L273 TraceCheckUtils]: 27: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} ~cond := #in~cond; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,402 INFO L273 TraceCheckUtils]: 28: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume !(0 == ~cond); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,403 INFO L273 TraceCheckUtils]: 29: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume true; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,404 INFO L268 TraceCheckUtils]: 30: Hoare quadruple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #76#return; {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,405 INFO L273 TraceCheckUtils]: 31: Hoare triple {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,405 INFO L273 TraceCheckUtils]: 32: Hoare triple {7732#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,406 INFO L273 TraceCheckUtils]: 33: Hoare triple {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,408 INFO L256 TraceCheckUtils]: 34: Hoare triple {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,409 INFO L273 TraceCheckUtils]: 35: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} ~cond := #in~cond; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,409 INFO L273 TraceCheckUtils]: 36: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume !(0 == ~cond); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,410 INFO L273 TraceCheckUtils]: 37: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume true; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,411 INFO L268 TraceCheckUtils]: 38: Hoare quadruple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #76#return; {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,412 INFO L273 TraceCheckUtils]: 39: Hoare triple {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,413 INFO L273 TraceCheckUtils]: 40: Hoare triple {7758#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,414 INFO L273 TraceCheckUtils]: 41: Hoare triple {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,415 INFO L256 TraceCheckUtils]: 42: Hoare triple {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,416 INFO L273 TraceCheckUtils]: 43: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} ~cond := #in~cond; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,416 INFO L273 TraceCheckUtils]: 44: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume !(0 == ~cond); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,417 INFO L273 TraceCheckUtils]: 45: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume true; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,418 INFO L268 TraceCheckUtils]: 46: Hoare quadruple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} #76#return; {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,419 INFO L273 TraceCheckUtils]: 47: Hoare triple {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,420 INFO L273 TraceCheckUtils]: 48: Hoare triple {7783#(and (= main_~i~0 2) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,420 INFO L273 TraceCheckUtils]: 49: Hoare triple {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,422 INFO L256 TraceCheckUtils]: 50: Hoare triple {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,423 INFO L273 TraceCheckUtils]: 51: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} ~cond := #in~cond; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,423 INFO L273 TraceCheckUtils]: 52: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume !(0 == ~cond); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,424 INFO L273 TraceCheckUtils]: 53: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume true; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,425 INFO L268 TraceCheckUtils]: 54: Hoare quadruple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} #76#return; {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,426 INFO L273 TraceCheckUtils]: 55: Hoare triple {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,427 INFO L273 TraceCheckUtils]: 56: Hoare triple {7808#(and (= main_~i~0 3) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,427 INFO L273 TraceCheckUtils]: 57: Hoare triple {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,429 INFO L256 TraceCheckUtils]: 58: Hoare triple {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,430 INFO L273 TraceCheckUtils]: 59: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} ~cond := #in~cond; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,452 INFO L273 TraceCheckUtils]: 60: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume !(0 == ~cond); {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,460 INFO L273 TraceCheckUtils]: 61: Hoare triple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} assume true; {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} is VALID [2018-11-23 12:24:35,462 INFO L268 TraceCheckUtils]: 62: Hoare quadruple {7739#(exists ((|v_main_~#a~0.base_BEFORE_CALL_17| Int)) (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_17|) 20) 5))} {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} #76#return; {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,462 INFO L273 TraceCheckUtils]: 63: Hoare triple {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,463 INFO L273 TraceCheckUtils]: 64: Hoare triple {7833#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {7858#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:35,463 INFO L273 TraceCheckUtils]: 65: Hoare triple {7858#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 20)) 5) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {7862#(and (<= |main_#t~mem6| 5) (= main_~i~0 5))} is VALID [2018-11-23 12:24:35,464 INFO L256 TraceCheckUtils]: 66: Hoare triple {7862#(and (<= |main_#t~mem6| 5) (= main_~i~0 5))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {7866#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:24:35,464 INFO L273 TraceCheckUtils]: 67: Hoare triple {7866#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {7870#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:24:35,465 INFO L273 TraceCheckUtils]: 68: Hoare triple {7870#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7633#false} is VALID [2018-11-23 12:24:35,465 INFO L273 TraceCheckUtils]: 69: Hoare triple {7633#false} assume !false; {7633#false} is VALID [2018-11-23 12:24:35,477 INFO L134 CoverageAnalysis]: Checked inductivity of 118 backedges. 0 proven. 78 refuted. 0 times theorem prover too weak. 40 trivial. 0 not checked. [2018-11-23 12:24:35,496 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:24:35,496 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 18] total 35 [2018-11-23 12:24:35,496 INFO L78 Accepts]: Start accepts. Automaton has 35 states. Word has length 70 [2018-11-23 12:24:35,497 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:24:35,497 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 35 states. [2018-11-23 12:24:35,626 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 109 edges. 109 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:24:35,627 INFO L459 AbstractCegarLoop]: Interpolant automaton has 35 states [2018-11-23 12:24:35,627 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2018-11-23 12:24:35,628 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=120, Invalid=1070, Unknown=0, NotChecked=0, Total=1190 [2018-11-23 12:24:35,628 INFO L87 Difference]: Start difference. First operand 139 states and 162 transitions. Second operand 35 states. [2018-11-23 12:24:43,673 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:43,674 INFO L93 Difference]: Finished difference Result 266 states and 332 transitions. [2018-11-23 12:24:43,674 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 34 states. [2018-11-23 12:24:43,674 INFO L78 Accepts]: Start accepts. Automaton has 35 states. Word has length 70 [2018-11-23 12:24:43,674 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:24:43,674 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2018-11-23 12:24:43,677 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 141 transitions. [2018-11-23 12:24:43,677 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2018-11-23 12:24:43,680 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 141 transitions. [2018-11-23 12:24:43,680 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 34 states and 141 transitions. [2018-11-23 12:24:44,557 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 141 edges. 141 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:24:44,564 INFO L225 Difference]: With dead ends: 266 [2018-11-23 12:24:44,565 INFO L226 Difference]: Without dead ends: 206 [2018-11-23 12:24:44,567 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 121 GetRequests, 48 SyntacticMatches, 9 SemanticMatches, 64 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1302 ImplicationChecksByTransitivity, 3.1s TimeCoverageRelationStatistics Valid=522, Invalid=3768, Unknown=0, NotChecked=0, Total=4290 [2018-11-23 12:24:44,567 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 206 states. [2018-11-23 12:24:45,501 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 206 to 163. [2018-11-23 12:24:45,502 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:24:45,502 INFO L82 GeneralOperation]: Start isEquivalent. First operand 206 states. Second operand 163 states. [2018-11-23 12:24:45,502 INFO L74 IsIncluded]: Start isIncluded. First operand 206 states. Second operand 163 states. [2018-11-23 12:24:45,502 INFO L87 Difference]: Start difference. First operand 206 states. Second operand 163 states. [2018-11-23 12:24:45,508 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:45,509 INFO L93 Difference]: Finished difference Result 206 states and 253 transitions. [2018-11-23 12:24:45,509 INFO L276 IsEmpty]: Start isEmpty. Operand 206 states and 253 transitions. [2018-11-23 12:24:45,510 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:24:45,510 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:24:45,510 INFO L74 IsIncluded]: Start isIncluded. First operand 163 states. Second operand 206 states. [2018-11-23 12:24:45,510 INFO L87 Difference]: Start difference. First operand 163 states. Second operand 206 states. [2018-11-23 12:24:45,517 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:24:45,517 INFO L93 Difference]: Finished difference Result 206 states and 253 transitions. [2018-11-23 12:24:45,517 INFO L276 IsEmpty]: Start isEmpty. Operand 206 states and 253 transitions. [2018-11-23 12:24:45,518 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:24:45,518 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:24:45,518 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:24:45,518 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:24:45,518 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 163 states. [2018-11-23 12:24:45,523 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 163 states to 163 states and 190 transitions. [2018-11-23 12:24:45,524 INFO L78 Accepts]: Start accepts. Automaton has 163 states and 190 transitions. Word has length 70 [2018-11-23 12:24:45,524 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:24:45,524 INFO L480 AbstractCegarLoop]: Abstraction has 163 states and 190 transitions. [2018-11-23 12:24:45,524 INFO L481 AbstractCegarLoop]: Interpolant automaton has 35 states. [2018-11-23 12:24:45,524 INFO L276 IsEmpty]: Start isEmpty. Operand 163 states and 190 transitions. [2018-11-23 12:24:45,525 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 84 [2018-11-23 12:24:45,525 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:24:45,526 INFO L402 BasicCegarLoop]: trace histogram [7, 7, 7, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:24:45,526 INFO L423 AbstractCegarLoop]: === Iteration 13 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:24:45,526 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:24:45,526 INFO L82 PathProgramCache]: Analyzing trace with hash 1182956222, now seen corresponding path program 8 times [2018-11-23 12:24:45,526 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:24:45,526 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:24:45,527 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:24:45,527 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 12:24:45,527 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:24:45,550 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:46,574 INFO L256 TraceCheckUtils]: 0: Hoare triple {8929#true} call ULTIMATE.init(); {8929#true} is VALID [2018-11-23 12:24:46,575 INFO L273 TraceCheckUtils]: 1: Hoare triple {8929#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {8929#true} is VALID [2018-11-23 12:24:46,575 INFO L273 TraceCheckUtils]: 2: Hoare triple {8929#true} assume true; {8929#true} is VALID [2018-11-23 12:24:46,575 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {8929#true} {8929#true} #72#return; {8929#true} is VALID [2018-11-23 12:24:46,575 INFO L256 TraceCheckUtils]: 4: Hoare triple {8929#true} call #t~ret7 := main(); {8929#true} is VALID [2018-11-23 12:24:46,575 INFO L273 TraceCheckUtils]: 5: Hoare triple {8929#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {8929#true} is VALID [2018-11-23 12:24:46,576 INFO L273 TraceCheckUtils]: 6: Hoare triple {8929#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {8929#true} is VALID [2018-11-23 12:24:46,576 INFO L273 TraceCheckUtils]: 7: Hoare triple {8929#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {8931#(= main_~i~0 1)} is VALID [2018-11-23 12:24:46,577 INFO L273 TraceCheckUtils]: 8: Hoare triple {8931#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8931#(= main_~i~0 1)} is VALID [2018-11-23 12:24:46,577 INFO L273 TraceCheckUtils]: 9: Hoare triple {8931#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8931#(= main_~i~0 1)} is VALID [2018-11-23 12:24:46,577 INFO L273 TraceCheckUtils]: 10: Hoare triple {8931#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {8931#(= main_~i~0 1)} is VALID [2018-11-23 12:24:46,578 INFO L273 TraceCheckUtils]: 11: Hoare triple {8931#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {8931#(= main_~i~0 1)} is VALID [2018-11-23 12:24:46,578 INFO L273 TraceCheckUtils]: 12: Hoare triple {8931#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:46,579 INFO L273 TraceCheckUtils]: 13: Hoare triple {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:46,579 INFO L273 TraceCheckUtils]: 14: Hoare triple {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:46,580 INFO L273 TraceCheckUtils]: 15: Hoare triple {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:46,581 INFO L273 TraceCheckUtils]: 16: Hoare triple {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:24:46,581 INFO L273 TraceCheckUtils]: 17: Hoare triple {8932#(and (<= 2 main_~i~0) (<= main_~i~0 2))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:46,582 INFO L273 TraceCheckUtils]: 18: Hoare triple {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:46,583 INFO L273 TraceCheckUtils]: 19: Hoare triple {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:46,584 INFO L273 TraceCheckUtils]: 20: Hoare triple {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:46,584 INFO L273 TraceCheckUtils]: 21: Hoare triple {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:24:46,585 INFO L273 TraceCheckUtils]: 22: Hoare triple {8933#(and (<= main_~i~0 3) (<= 3 main_~i~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {8934#(and (<= 4 main_~i~0) (<= main_~i~0 4))} is VALID [2018-11-23 12:24:46,586 INFO L273 TraceCheckUtils]: 23: Hoare triple {8934#(and (<= 4 main_~i~0) (<= main_~i~0 4))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8934#(and (<= 4 main_~i~0) (<= main_~i~0 4))} is VALID [2018-11-23 12:24:46,587 INFO L273 TraceCheckUtils]: 24: Hoare triple {8934#(and (<= 4 main_~i~0) (<= main_~i~0 4))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8935#(and (<= 4 main_~i~0) (<= main_~i~0 4) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:46,588 INFO L273 TraceCheckUtils]: 25: Hoare triple {8935#(and (<= 4 main_~i~0) (<= main_~i~0 4) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {8935#(and (<= 4 main_~i~0) (<= main_~i~0 4) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:46,589 INFO L273 TraceCheckUtils]: 26: Hoare triple {8935#(and (<= 4 main_~i~0) (<= main_~i~0 4) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {8935#(and (<= 4 main_~i~0) (<= main_~i~0 4) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} is VALID [2018-11-23 12:24:46,590 INFO L273 TraceCheckUtils]: 27: Hoare triple {8935#(and (<= 4 main_~i~0) (<= main_~i~0 4) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 2)))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {8936#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6)} is VALID [2018-11-23 12:24:46,590 INFO L273 TraceCheckUtils]: 28: Hoare triple {8936#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6)} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {8936#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6)} is VALID [2018-11-23 12:24:46,591 INFO L273 TraceCheckUtils]: 29: Hoare triple {8936#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6)} ~i~0 := 0; {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} is VALID [2018-11-23 12:24:46,592 INFO L273 TraceCheckUtils]: 30: Hoare triple {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} is VALID [2018-11-23 12:24:46,592 INFO L256 TraceCheckUtils]: 31: Hoare triple {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {8929#true} is VALID [2018-11-23 12:24:46,592 INFO L273 TraceCheckUtils]: 32: Hoare triple {8929#true} ~cond := #in~cond; {8929#true} is VALID [2018-11-23 12:24:46,592 INFO L273 TraceCheckUtils]: 33: Hoare triple {8929#true} assume !(0 == ~cond); {8929#true} is VALID [2018-11-23 12:24:46,592 INFO L273 TraceCheckUtils]: 34: Hoare triple {8929#true} assume true; {8929#true} is VALID [2018-11-23 12:24:46,594 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {8929#true} {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} #76#return; {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} is VALID [2018-11-23 12:24:46,595 INFO L273 TraceCheckUtils]: 36: Hoare triple {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} havoc #t~mem6; {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} is VALID [2018-11-23 12:24:46,596 INFO L273 TraceCheckUtils]: 37: Hoare triple {8937#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} is VALID [2018-11-23 12:24:46,596 INFO L273 TraceCheckUtils]: 38: Hoare triple {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} is VALID [2018-11-23 12:24:46,596 INFO L256 TraceCheckUtils]: 39: Hoare triple {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {8929#true} is VALID [2018-11-23 12:24:46,597 INFO L273 TraceCheckUtils]: 40: Hoare triple {8929#true} ~cond := #in~cond; {8929#true} is VALID [2018-11-23 12:24:46,597 INFO L273 TraceCheckUtils]: 41: Hoare triple {8929#true} assume !(0 == ~cond); {8929#true} is VALID [2018-11-23 12:24:46,597 INFO L273 TraceCheckUtils]: 42: Hoare triple {8929#true} assume true; {8929#true} is VALID [2018-11-23 12:24:46,598 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {8929#true} {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} #76#return; {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} is VALID [2018-11-23 12:24:46,599 INFO L273 TraceCheckUtils]: 44: Hoare triple {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} havoc #t~mem6; {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} is VALID [2018-11-23 12:24:46,600 INFO L273 TraceCheckUtils]: 45: Hoare triple {8938#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} is VALID [2018-11-23 12:24:46,600 INFO L273 TraceCheckUtils]: 46: Hoare triple {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} is VALID [2018-11-23 12:24:46,601 INFO L256 TraceCheckUtils]: 47: Hoare triple {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {8929#true} is VALID [2018-11-23 12:24:46,601 INFO L273 TraceCheckUtils]: 48: Hoare triple {8929#true} ~cond := #in~cond; {8929#true} is VALID [2018-11-23 12:24:46,601 INFO L273 TraceCheckUtils]: 49: Hoare triple {8929#true} assume !(0 == ~cond); {8929#true} is VALID [2018-11-23 12:24:46,601 INFO L273 TraceCheckUtils]: 50: Hoare triple {8929#true} assume true; {8929#true} is VALID [2018-11-23 12:24:46,602 INFO L268 TraceCheckUtils]: 51: Hoare quadruple {8929#true} {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} #76#return; {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} is VALID [2018-11-23 12:24:46,603 INFO L273 TraceCheckUtils]: 52: Hoare triple {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} havoc #t~mem6; {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} is VALID [2018-11-23 12:24:46,604 INFO L273 TraceCheckUtils]: 53: Hoare triple {8939#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:46,604 INFO L273 TraceCheckUtils]: 54: Hoare triple {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:46,605 INFO L256 TraceCheckUtils]: 55: Hoare triple {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {8929#true} is VALID [2018-11-23 12:24:46,605 INFO L273 TraceCheckUtils]: 56: Hoare triple {8929#true} ~cond := #in~cond; {8929#true} is VALID [2018-11-23 12:24:46,605 INFO L273 TraceCheckUtils]: 57: Hoare triple {8929#true} assume !(0 == ~cond); {8929#true} is VALID [2018-11-23 12:24:46,605 INFO L273 TraceCheckUtils]: 58: Hoare triple {8929#true} assume true; {8929#true} is VALID [2018-11-23 12:24:46,606 INFO L268 TraceCheckUtils]: 59: Hoare quadruple {8929#true} {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} #76#return; {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:46,607 INFO L273 TraceCheckUtils]: 60: Hoare triple {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} havoc #t~mem6; {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:24:46,608 INFO L273 TraceCheckUtils]: 61: Hoare triple {8940#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:46,608 INFO L273 TraceCheckUtils]: 62: Hoare triple {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:46,609 INFO L256 TraceCheckUtils]: 63: Hoare triple {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {8929#true} is VALID [2018-11-23 12:24:46,609 INFO L273 TraceCheckUtils]: 64: Hoare triple {8929#true} ~cond := #in~cond; {8929#true} is VALID [2018-11-23 12:24:46,609 INFO L273 TraceCheckUtils]: 65: Hoare triple {8929#true} assume !(0 == ~cond); {8929#true} is VALID [2018-11-23 12:24:46,609 INFO L273 TraceCheckUtils]: 66: Hoare triple {8929#true} assume true; {8929#true} is VALID [2018-11-23 12:24:46,610 INFO L268 TraceCheckUtils]: 67: Hoare quadruple {8929#true} {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} #76#return; {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:46,611 INFO L273 TraceCheckUtils]: 68: Hoare triple {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} havoc #t~mem6; {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:24:46,612 INFO L273 TraceCheckUtils]: 69: Hoare triple {8941#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:46,613 INFO L273 TraceCheckUtils]: 70: Hoare triple {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:46,613 INFO L256 TraceCheckUtils]: 71: Hoare triple {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {8929#true} is VALID [2018-11-23 12:24:46,613 INFO L273 TraceCheckUtils]: 72: Hoare triple {8929#true} ~cond := #in~cond; {8929#true} is VALID [2018-11-23 12:24:46,613 INFO L273 TraceCheckUtils]: 73: Hoare triple {8929#true} assume !(0 == ~cond); {8929#true} is VALID [2018-11-23 12:24:46,613 INFO L273 TraceCheckUtils]: 74: Hoare triple {8929#true} assume true; {8929#true} is VALID [2018-11-23 12:24:46,615 INFO L268 TraceCheckUtils]: 75: Hoare quadruple {8929#true} {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #76#return; {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:46,615 INFO L273 TraceCheckUtils]: 76: Hoare triple {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} havoc #t~mem6; {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:24:46,616 INFO L273 TraceCheckUtils]: 77: Hoare triple {8942#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {8943#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} is VALID [2018-11-23 12:24:46,617 INFO L273 TraceCheckUtils]: 78: Hoare triple {8943#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {8944#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:24:46,618 INFO L256 TraceCheckUtils]: 79: Hoare triple {8944#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {8945#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:24:46,619 INFO L273 TraceCheckUtils]: 80: Hoare triple {8945#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {8946#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:24:46,620 INFO L273 TraceCheckUtils]: 81: Hoare triple {8946#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {8930#false} is VALID [2018-11-23 12:24:46,620 INFO L273 TraceCheckUtils]: 82: Hoare triple {8930#false} assume !false; {8930#false} is VALID [2018-11-23 12:24:46,632 INFO L134 CoverageAnalysis]: Checked inductivity of 178 backedges. 12 proven. 106 refuted. 0 times theorem prover too weak. 60 trivial. 0 not checked. [2018-11-23 12:24:46,633 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:24:46,633 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:24:46,641 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-23 12:24:46,685 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 12:24:46,685 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:24:46,748 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:24:46,750 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:24:46,988 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:24:46,995 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:24:46,997 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:24:46,999 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:24:47,005 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:24:47,005 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:17, output treesize:13 [2018-11-23 12:24:47,747 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 17 treesize of output 13 [2018-11-23 12:24:47,752 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:24:47,753 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 9 [2018-11-23 12:24:47,755 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:24:47,760 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:24:47,763 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:24:47,764 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:20, output treesize:7 [2018-11-23 12:24:47,766 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:24:47,766 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (<= |main_#t~mem6| (select .cse0 (* 4 main_~i~0))) (= main_~i~0 6) (= 6 (select .cse0 24)))) [2018-11-23 12:24:47,767 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= |main_#t~mem6| 6) (= main_~i~0 6)) [2018-11-23 12:24:47,846 INFO L256 TraceCheckUtils]: 0: Hoare triple {8929#true} call ULTIMATE.init(); {8929#true} is VALID [2018-11-23 12:24:47,847 INFO L273 TraceCheckUtils]: 1: Hoare triple {8929#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {8929#true} is VALID [2018-11-23 12:24:47,847 INFO L273 TraceCheckUtils]: 2: Hoare triple {8929#true} assume true; {8929#true} is VALID [2018-11-23 12:24:47,847 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {8929#true} {8929#true} #72#return; {8929#true} is VALID [2018-11-23 12:24:47,847 INFO L256 TraceCheckUtils]: 4: Hoare triple {8929#true} call #t~ret7 := main(); {8929#true} is VALID [2018-11-23 12:24:47,848 INFO L273 TraceCheckUtils]: 5: Hoare triple {8929#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {8929#true} is VALID [2018-11-23 12:24:47,848 INFO L273 TraceCheckUtils]: 6: Hoare triple {8929#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {8968#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:24:47,849 INFO L273 TraceCheckUtils]: 7: Hoare triple {8968#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,849 INFO L273 TraceCheckUtils]: 8: Hoare triple {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,850 INFO L273 TraceCheckUtils]: 9: Hoare triple {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,850 INFO L273 TraceCheckUtils]: 10: Hoare triple {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,851 INFO L273 TraceCheckUtils]: 11: Hoare triple {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,852 INFO L273 TraceCheckUtils]: 12: Hoare triple {8972#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,852 INFO L273 TraceCheckUtils]: 13: Hoare triple {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,853 INFO L273 TraceCheckUtils]: 14: Hoare triple {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,854 INFO L273 TraceCheckUtils]: 15: Hoare triple {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,855 INFO L273 TraceCheckUtils]: 16: Hoare triple {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,855 INFO L273 TraceCheckUtils]: 17: Hoare triple {8988#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,856 INFO L273 TraceCheckUtils]: 18: Hoare triple {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,857 INFO L273 TraceCheckUtils]: 19: Hoare triple {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,858 INFO L273 TraceCheckUtils]: 20: Hoare triple {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,858 INFO L273 TraceCheckUtils]: 21: Hoare triple {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,859 INFO L273 TraceCheckUtils]: 22: Hoare triple {9004#(and (= main_~i~0 3) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {9020#(and (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,860 INFO L273 TraceCheckUtils]: 23: Hoare triple {9020#(and (= main_~i~0 4) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {9020#(and (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,861 INFO L273 TraceCheckUtils]: 24: Hoare triple {9020#(and (= main_~i~0 4) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,862 INFO L273 TraceCheckUtils]: 25: Hoare triple {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,863 INFO L273 TraceCheckUtils]: 26: Hoare triple {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,864 INFO L273 TraceCheckUtils]: 27: Hoare triple {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,865 INFO L273 TraceCheckUtils]: 28: Hoare triple {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,866 INFO L273 TraceCheckUtils]: 29: Hoare triple {9027#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,867 INFO L273 TraceCheckUtils]: 30: Hoare triple {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,868 INFO L256 TraceCheckUtils]: 31: Hoare triple {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,868 INFO L273 TraceCheckUtils]: 32: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} ~cond := #in~cond; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,869 INFO L273 TraceCheckUtils]: 33: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume !(0 == ~cond); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,869 INFO L273 TraceCheckUtils]: 34: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume true; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,870 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #76#return; {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,871 INFO L273 TraceCheckUtils]: 36: Hoare triple {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,872 INFO L273 TraceCheckUtils]: 37: Hoare triple {9043#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,873 INFO L273 TraceCheckUtils]: 38: Hoare triple {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,874 INFO L256 TraceCheckUtils]: 39: Hoare triple {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,874 INFO L273 TraceCheckUtils]: 40: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} ~cond := #in~cond; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,875 INFO L273 TraceCheckUtils]: 41: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume !(0 == ~cond); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,876 INFO L273 TraceCheckUtils]: 42: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume true; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,876 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #76#return; {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,877 INFO L273 TraceCheckUtils]: 44: Hoare triple {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,878 INFO L273 TraceCheckUtils]: 45: Hoare triple {9069#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,879 INFO L273 TraceCheckUtils]: 46: Hoare triple {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,880 INFO L256 TraceCheckUtils]: 47: Hoare triple {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,881 INFO L273 TraceCheckUtils]: 48: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} ~cond := #in~cond; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,881 INFO L273 TraceCheckUtils]: 49: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume !(0 == ~cond); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,882 INFO L273 TraceCheckUtils]: 50: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume true; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,883 INFO L268 TraceCheckUtils]: 51: Hoare quadruple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} #76#return; {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,883 INFO L273 TraceCheckUtils]: 52: Hoare triple {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,884 INFO L273 TraceCheckUtils]: 53: Hoare triple {9094#(and (= main_~i~0 2) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,885 INFO L273 TraceCheckUtils]: 54: Hoare triple {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,886 INFO L256 TraceCheckUtils]: 55: Hoare triple {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,887 INFO L273 TraceCheckUtils]: 56: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} ~cond := #in~cond; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,887 INFO L273 TraceCheckUtils]: 57: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume !(0 == ~cond); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,888 INFO L273 TraceCheckUtils]: 58: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume true; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,889 INFO L268 TraceCheckUtils]: 59: Hoare quadruple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} #76#return; {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,889 INFO L273 TraceCheckUtils]: 60: Hoare triple {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,890 INFO L273 TraceCheckUtils]: 61: Hoare triple {9119#(and (= main_~i~0 3) (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,891 INFO L273 TraceCheckUtils]: 62: Hoare triple {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,893 INFO L256 TraceCheckUtils]: 63: Hoare triple {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,893 INFO L273 TraceCheckUtils]: 64: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} ~cond := #in~cond; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,894 INFO L273 TraceCheckUtils]: 65: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume !(0 == ~cond); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,894 INFO L273 TraceCheckUtils]: 66: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume true; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,895 INFO L268 TraceCheckUtils]: 67: Hoare quadruple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} #76#return; {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,896 INFO L273 TraceCheckUtils]: 68: Hoare triple {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,897 INFO L273 TraceCheckUtils]: 69: Hoare triple {9144#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,897 INFO L273 TraceCheckUtils]: 70: Hoare triple {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,899 INFO L256 TraceCheckUtils]: 71: Hoare triple {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,899 INFO L273 TraceCheckUtils]: 72: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} ~cond := #in~cond; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,900 INFO L273 TraceCheckUtils]: 73: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume !(0 == ~cond); {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,900 INFO L273 TraceCheckUtils]: 74: Hoare triple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} assume true; {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} is VALID [2018-11-23 12:24:47,901 INFO L268 TraceCheckUtils]: 75: Hoare quadruple {9050#(exists ((|v_main_~#a~0.base_BEFORE_CALL_22| Int)) (= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_22|) 24) 6))} {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} #76#return; {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,902 INFO L273 TraceCheckUtils]: 76: Hoare triple {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,903 INFO L273 TraceCheckUtils]: 77: Hoare triple {9169#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 5) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {9194#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:24:47,904 INFO L273 TraceCheckUtils]: 78: Hoare triple {9194#(and (= 6 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24))) (= main_~i~0 6) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {9198#(and (<= |main_#t~mem6| 6) (= main_~i~0 6))} is VALID [2018-11-23 12:24:47,905 INFO L256 TraceCheckUtils]: 79: Hoare triple {9198#(and (<= |main_#t~mem6| 6) (= main_~i~0 6))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {9202#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:24:47,905 INFO L273 TraceCheckUtils]: 80: Hoare triple {9202#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {9206#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:24:47,906 INFO L273 TraceCheckUtils]: 81: Hoare triple {9206#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8930#false} is VALID [2018-11-23 12:24:47,906 INFO L273 TraceCheckUtils]: 82: Hoare triple {8930#false} assume !false; {8930#false} is VALID [2018-11-23 12:24:47,922 INFO L134 CoverageAnalysis]: Checked inductivity of 178 backedges. 0 proven. 118 refuted. 0 times theorem prover too weak. 60 trivial. 0 not checked. [2018-11-23 12:24:47,941 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:24:47,941 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 19] total 35 [2018-11-23 12:24:47,941 INFO L78 Accepts]: Start accepts. Automaton has 35 states. Word has length 83 [2018-11-23 12:24:47,942 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:24:47,942 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 35 states. [2018-11-23 12:24:48,090 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 129 edges. 129 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:24:48,091 INFO L459 AbstractCegarLoop]: Interpolant automaton has 35 states [2018-11-23 12:24:48,091 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 35 interpolants. [2018-11-23 12:24:48,092 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=129, Invalid=1061, Unknown=0, NotChecked=0, Total=1190 [2018-11-23 12:24:48,093 INFO L87 Difference]: Start difference. First operand 163 states and 190 transitions. Second operand 35 states. [2018-11-23 12:25:01,576 WARN L180 SmtUtils]: Spent 158.00 ms on a formula simplification that was a NOOP. DAG size: 24 [2018-11-23 12:25:14,945 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:25:14,945 INFO L93 Difference]: Finished difference Result 1822 states and 2520 transitions. [2018-11-23 12:25:14,945 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 132 states. [2018-11-23 12:25:14,945 INFO L78 Accepts]: Start accepts. Automaton has 35 states. Word has length 83 [2018-11-23 12:25:14,946 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:25:14,946 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2018-11-23 12:25:14,955 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 710 transitions. [2018-11-23 12:25:14,955 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2018-11-23 12:25:14,962 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 710 transitions. [2018-11-23 12:25:14,963 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 132 states and 710 transitions. [2018-11-23 12:25:16,616 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 710 edges. 710 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:25:16,821 INFO L225 Difference]: With dead ends: 1822 [2018-11-23 12:25:16,821 INFO L226 Difference]: Without dead ends: 1820 [2018-11-23 12:25:16,828 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 216 GetRequests, 57 SyntacticMatches, 11 SemanticMatches, 148 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8618 ImplicationChecksByTransitivity, 6.6s TimeCoverageRelationStatistics Valid=2371, Invalid=19979, Unknown=0, NotChecked=0, Total=22350 [2018-11-23 12:25:16,830 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1820 states. [2018-11-23 12:25:18,594 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1820 to 263. [2018-11-23 12:25:18,594 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:25:18,595 INFO L82 GeneralOperation]: Start isEquivalent. First operand 1820 states. Second operand 263 states. [2018-11-23 12:25:18,595 INFO L74 IsIncluded]: Start isIncluded. First operand 1820 states. Second operand 263 states. [2018-11-23 12:25:18,595 INFO L87 Difference]: Start difference. First operand 1820 states. Second operand 263 states. [2018-11-23 12:25:18,731 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:25:18,732 INFO L93 Difference]: Finished difference Result 1820 states and 2518 transitions. [2018-11-23 12:25:18,732 INFO L276 IsEmpty]: Start isEmpty. Operand 1820 states and 2518 transitions. [2018-11-23 12:25:18,736 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:25:18,736 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:25:18,737 INFO L74 IsIncluded]: Start isIncluded. First operand 263 states. Second operand 1820 states. [2018-11-23 12:25:18,737 INFO L87 Difference]: Start difference. First operand 263 states. Second operand 1820 states. [2018-11-23 12:25:18,846 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:25:18,846 INFO L93 Difference]: Finished difference Result 1820 states and 2518 transitions. [2018-11-23 12:25:18,846 INFO L276 IsEmpty]: Start isEmpty. Operand 1820 states and 2518 transitions. [2018-11-23 12:25:18,851 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:25:18,851 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:25:18,851 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:25:18,852 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:25:18,852 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 263 states. [2018-11-23 12:25:18,859 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 263 states to 263 states and 310 transitions. [2018-11-23 12:25:18,859 INFO L78 Accepts]: Start accepts. Automaton has 263 states and 310 transitions. Word has length 83 [2018-11-23 12:25:18,859 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:25:18,859 INFO L480 AbstractCegarLoop]: Abstraction has 263 states and 310 transitions. [2018-11-23 12:25:18,859 INFO L481 AbstractCegarLoop]: Interpolant automaton has 35 states. [2018-11-23 12:25:18,860 INFO L276 IsEmpty]: Start isEmpty. Operand 263 states and 310 transitions. [2018-11-23 12:25:18,861 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 84 [2018-11-23 12:25:18,861 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:25:18,861 INFO L402 BasicCegarLoop]: trace histogram [7, 7, 7, 6, 6, 6, 6, 6, 4, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:25:18,861 INFO L423 AbstractCegarLoop]: === Iteration 14 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:25:18,862 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:25:18,862 INFO L82 PathProgramCache]: Analyzing trace with hash 1743656000, now seen corresponding path program 3 times [2018-11-23 12:25:18,862 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:25:18,862 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:25:18,863 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:25:18,863 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:25:18,863 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:25:18,885 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:25:19,454 INFO L256 TraceCheckUtils]: 0: Hoare triple {15589#true} call ULTIMATE.init(); {15589#true} is VALID [2018-11-23 12:25:19,454 INFO L273 TraceCheckUtils]: 1: Hoare triple {15589#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {15589#true} is VALID [2018-11-23 12:25:19,454 INFO L273 TraceCheckUtils]: 2: Hoare triple {15589#true} assume true; {15589#true} is VALID [2018-11-23 12:25:19,455 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {15589#true} {15589#true} #72#return; {15589#true} is VALID [2018-11-23 12:25:19,455 INFO L256 TraceCheckUtils]: 4: Hoare triple {15589#true} call #t~ret7 := main(); {15589#true} is VALID [2018-11-23 12:25:19,455 INFO L273 TraceCheckUtils]: 5: Hoare triple {15589#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {15589#true} is VALID [2018-11-23 12:25:19,455 INFO L273 TraceCheckUtils]: 6: Hoare triple {15589#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {15589#true} is VALID [2018-11-23 12:25:19,455 INFO L273 TraceCheckUtils]: 7: Hoare triple {15589#true} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {15591#(= main_~i~0 1)} is VALID [2018-11-23 12:25:19,456 INFO L273 TraceCheckUtils]: 8: Hoare triple {15591#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15591#(= main_~i~0 1)} is VALID [2018-11-23 12:25:19,456 INFO L273 TraceCheckUtils]: 9: Hoare triple {15591#(= main_~i~0 1)} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15591#(= main_~i~0 1)} is VALID [2018-11-23 12:25:19,456 INFO L273 TraceCheckUtils]: 10: Hoare triple {15591#(= main_~i~0 1)} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {15591#(= main_~i~0 1)} is VALID [2018-11-23 12:25:19,457 INFO L273 TraceCheckUtils]: 11: Hoare triple {15591#(= main_~i~0 1)} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {15591#(= main_~i~0 1)} is VALID [2018-11-23 12:25:19,457 INFO L273 TraceCheckUtils]: 12: Hoare triple {15591#(= main_~i~0 1)} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:25:19,457 INFO L273 TraceCheckUtils]: 13: Hoare triple {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:25:19,458 INFO L273 TraceCheckUtils]: 14: Hoare triple {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:25:19,458 INFO L273 TraceCheckUtils]: 15: Hoare triple {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:25:19,459 INFO L273 TraceCheckUtils]: 16: Hoare triple {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} is VALID [2018-11-23 12:25:19,460 INFO L273 TraceCheckUtils]: 17: Hoare triple {15592#(and (<= 2 main_~i~0) (<= main_~i~0 2))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:25:19,460 INFO L273 TraceCheckUtils]: 18: Hoare triple {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:25:19,461 INFO L273 TraceCheckUtils]: 19: Hoare triple {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:25:19,462 INFO L273 TraceCheckUtils]: 20: Hoare triple {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:25:19,463 INFO L273 TraceCheckUtils]: 21: Hoare triple {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} is VALID [2018-11-23 12:25:19,463 INFO L273 TraceCheckUtils]: 22: Hoare triple {15593#(and (<= main_~i~0 3) (<= 3 main_~i~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {15594#(and (<= 4 main_~i~0) (<= main_~i~0 4))} is VALID [2018-11-23 12:25:19,464 INFO L273 TraceCheckUtils]: 23: Hoare triple {15594#(and (<= 4 main_~i~0) (<= main_~i~0 4))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15595#(and (= |main_#t~mem3| (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (<= 4 main_~i~0) (<= main_~i~0 4))} is VALID [2018-11-23 12:25:19,465 INFO L273 TraceCheckUtils]: 24: Hoare triple {15595#(and (= |main_#t~mem3| (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8)))) (<= 4 main_~i~0) (<= main_~i~0 4))} assume !(#t~mem3 > 2 * ~i~0 - 2);havoc #t~mem3; {15596#(and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 6))} is VALID [2018-11-23 12:25:19,466 INFO L273 TraceCheckUtils]: 25: Hoare triple {15596#(and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 6))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {15596#(and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 6))} is VALID [2018-11-23 12:25:19,467 INFO L273 TraceCheckUtils]: 26: Hoare triple {15596#(and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 6))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {15596#(and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 6))} is VALID [2018-11-23 12:25:19,468 INFO L273 TraceCheckUtils]: 27: Hoare triple {15596#(and (<= 4 main_~i~0) (<= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 8 main_~i~0) (- 8))) 6))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {15597#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6)} is VALID [2018-11-23 12:25:19,468 INFO L273 TraceCheckUtils]: 28: Hoare triple {15597#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6)} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {15597#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6)} is VALID [2018-11-23 12:25:19,469 INFO L273 TraceCheckUtils]: 29: Hoare triple {15597#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6)} ~i~0 := 0; {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} is VALID [2018-11-23 12:25:19,470 INFO L273 TraceCheckUtils]: 30: Hoare triple {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} is VALID [2018-11-23 12:25:19,470 INFO L256 TraceCheckUtils]: 31: Hoare triple {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15589#true} is VALID [2018-11-23 12:25:19,470 INFO L273 TraceCheckUtils]: 32: Hoare triple {15589#true} ~cond := #in~cond; {15589#true} is VALID [2018-11-23 12:25:19,470 INFO L273 TraceCheckUtils]: 33: Hoare triple {15589#true} assume !(0 == ~cond); {15589#true} is VALID [2018-11-23 12:25:19,471 INFO L273 TraceCheckUtils]: 34: Hoare triple {15589#true} assume true; {15589#true} is VALID [2018-11-23 12:25:19,471 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {15589#true} {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} #76#return; {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} is VALID [2018-11-23 12:25:19,472 INFO L273 TraceCheckUtils]: 36: Hoare triple {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} havoc #t~mem6; {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} is VALID [2018-11-23 12:25:19,473 INFO L273 TraceCheckUtils]: 37: Hoare triple {15598#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 8) (- 8)))) 6) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} is VALID [2018-11-23 12:25:19,474 INFO L273 TraceCheckUtils]: 38: Hoare triple {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} is VALID [2018-11-23 12:25:19,474 INFO L256 TraceCheckUtils]: 39: Hoare triple {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15589#true} is VALID [2018-11-23 12:25:19,474 INFO L273 TraceCheckUtils]: 40: Hoare triple {15589#true} ~cond := #in~cond; {15589#true} is VALID [2018-11-23 12:25:19,474 INFO L273 TraceCheckUtils]: 41: Hoare triple {15589#true} assume !(0 == ~cond); {15589#true} is VALID [2018-11-23 12:25:19,474 INFO L273 TraceCheckUtils]: 42: Hoare triple {15589#true} assume true; {15589#true} is VALID [2018-11-23 12:25:19,475 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {15589#true} {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} #76#return; {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} is VALID [2018-11-23 12:25:19,476 INFO L273 TraceCheckUtils]: 44: Hoare triple {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} havoc #t~mem6; {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} is VALID [2018-11-23 12:25:19,477 INFO L273 TraceCheckUtils]: 45: Hoare triple {15599#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 7)) (- 8)))) (+ main_~i~0 5))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} is VALID [2018-11-23 12:25:19,477 INFO L273 TraceCheckUtils]: 46: Hoare triple {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} is VALID [2018-11-23 12:25:19,478 INFO L256 TraceCheckUtils]: 47: Hoare triple {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15589#true} is VALID [2018-11-23 12:25:19,478 INFO L273 TraceCheckUtils]: 48: Hoare triple {15589#true} ~cond := #in~cond; {15589#true} is VALID [2018-11-23 12:25:19,478 INFO L273 TraceCheckUtils]: 49: Hoare triple {15589#true} assume !(0 == ~cond); {15589#true} is VALID [2018-11-23 12:25:19,478 INFO L273 TraceCheckUtils]: 50: Hoare triple {15589#true} assume true; {15589#true} is VALID [2018-11-23 12:25:19,479 INFO L268 TraceCheckUtils]: 51: Hoare quadruple {15589#true} {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} #76#return; {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} is VALID [2018-11-23 12:25:19,480 INFO L273 TraceCheckUtils]: 52: Hoare triple {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} havoc #t~mem6; {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} is VALID [2018-11-23 12:25:19,481 INFO L273 TraceCheckUtils]: 53: Hoare triple {15600#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 6)) (- 8)))) (+ main_~i~0 4))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:25:19,481 INFO L273 TraceCheckUtils]: 54: Hoare triple {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:25:19,481 INFO L256 TraceCheckUtils]: 55: Hoare triple {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15589#true} is VALID [2018-11-23 12:25:19,482 INFO L273 TraceCheckUtils]: 56: Hoare triple {15589#true} ~cond := #in~cond; {15589#true} is VALID [2018-11-23 12:25:19,482 INFO L273 TraceCheckUtils]: 57: Hoare triple {15589#true} assume !(0 == ~cond); {15589#true} is VALID [2018-11-23 12:25:19,482 INFO L273 TraceCheckUtils]: 58: Hoare triple {15589#true} assume true; {15589#true} is VALID [2018-11-23 12:25:19,483 INFO L268 TraceCheckUtils]: 59: Hoare quadruple {15589#true} {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} #76#return; {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:25:19,483 INFO L273 TraceCheckUtils]: 60: Hoare triple {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} havoc #t~mem6; {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} is VALID [2018-11-23 12:25:19,484 INFO L273 TraceCheckUtils]: 61: Hoare triple {15601#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 8)))) (+ main_~i~0 3))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:25:19,485 INFO L273 TraceCheckUtils]: 62: Hoare triple {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:25:19,485 INFO L256 TraceCheckUtils]: 63: Hoare triple {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15589#true} is VALID [2018-11-23 12:25:19,485 INFO L273 TraceCheckUtils]: 64: Hoare triple {15589#true} ~cond := #in~cond; {15589#true} is VALID [2018-11-23 12:25:19,486 INFO L273 TraceCheckUtils]: 65: Hoare triple {15589#true} assume !(0 == ~cond); {15589#true} is VALID [2018-11-23 12:25:19,486 INFO L273 TraceCheckUtils]: 66: Hoare triple {15589#true} assume true; {15589#true} is VALID [2018-11-23 12:25:19,487 INFO L268 TraceCheckUtils]: 67: Hoare quadruple {15589#true} {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} #76#return; {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:25:19,487 INFO L273 TraceCheckUtils]: 68: Hoare triple {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} havoc #t~mem6; {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} is VALID [2018-11-23 12:25:19,488 INFO L273 TraceCheckUtils]: 69: Hoare triple {15602#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 8)))) (+ main_~i~0 2))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:25:19,489 INFO L273 TraceCheckUtils]: 70: Hoare triple {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:25:19,489 INFO L256 TraceCheckUtils]: 71: Hoare triple {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15589#true} is VALID [2018-11-23 12:25:19,489 INFO L273 TraceCheckUtils]: 72: Hoare triple {15589#true} ~cond := #in~cond; {15589#true} is VALID [2018-11-23 12:25:19,489 INFO L273 TraceCheckUtils]: 73: Hoare triple {15589#true} assume !(0 == ~cond); {15589#true} is VALID [2018-11-23 12:25:19,490 INFO L273 TraceCheckUtils]: 74: Hoare triple {15589#true} assume true; {15589#true} is VALID [2018-11-23 12:25:19,490 INFO L268 TraceCheckUtils]: 75: Hoare quadruple {15589#true} {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #76#return; {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:25:19,491 INFO L273 TraceCheckUtils]: 76: Hoare triple {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} havoc #t~mem6; {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} is VALID [2018-11-23 12:25:19,492 INFO L273 TraceCheckUtils]: 77: Hoare triple {15603#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 8)))) (+ main_~i~0 1))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15604#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} is VALID [2018-11-23 12:25:19,493 INFO L273 TraceCheckUtils]: 78: Hoare triple {15604#(<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0)} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15605#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:25:19,494 INFO L256 TraceCheckUtils]: 79: Hoare triple {15605#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15606#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:25:19,494 INFO L273 TraceCheckUtils]: 80: Hoare triple {15606#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {15607#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:25:19,495 INFO L273 TraceCheckUtils]: 81: Hoare triple {15607#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {15590#false} is VALID [2018-11-23 12:25:19,495 INFO L273 TraceCheckUtils]: 82: Hoare triple {15590#false} assume !false; {15590#false} is VALID [2018-11-23 12:25:19,515 INFO L134 CoverageAnalysis]: Checked inductivity of 178 backedges. 12 proven. 106 refuted. 0 times theorem prover too weak. 60 trivial. 0 not checked. [2018-11-23 12:25:19,516 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:25:19,516 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:25:19,531 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 12:25:19,575 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 7 check-sat command(s) [2018-11-23 12:25:19,575 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:25:19,593 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:25:19,595 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:25:19,698 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 20 treesize of output 17 [2018-11-23 12:25:19,703 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 17 treesize of output 16 [2018-11-23 12:25:19,705 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:25:19,709 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:25:19,721 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:25:19,721 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:27, output treesize:23 [2018-11-23 12:25:19,923 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 30 treesize of output 25 [2018-11-23 12:25:19,940 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:25:19,943 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:25:19,944 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2018-11-23 12:25:19,949 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:25:19,967 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:25:19,979 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:25:19,979 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:36, output treesize:32 [2018-11-23 12:25:22,044 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 31 treesize of output 23 [2018-11-23 12:25:22,074 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:25:22,075 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:25:22,077 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 12:25:22,081 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 4 select indices, 4 select index equivalence classes, 4 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 18 [2018-11-23 12:25:22,085 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:25:22,089 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:25:22,093 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:25:22,094 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:34, output treesize:7 [2018-11-23 12:25:22,097 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:25:22,097 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (= 2 (select .cse0 8)) (<= (select .cse0 24) 6) (<= |main_#t~mem6| (select .cse0 (* 4 main_~i~0))) (= main_~i~0 6) (= 4 (select .cse0 16)))) [2018-11-23 12:25:22,097 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= |main_#t~mem6| 6) (= main_~i~0 6)) [2018-11-23 12:25:22,192 INFO L256 TraceCheckUtils]: 0: Hoare triple {15589#true} call ULTIMATE.init(); {15589#true} is VALID [2018-11-23 12:25:22,193 INFO L273 TraceCheckUtils]: 1: Hoare triple {15589#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {15589#true} is VALID [2018-11-23 12:25:22,193 INFO L273 TraceCheckUtils]: 2: Hoare triple {15589#true} assume true; {15589#true} is VALID [2018-11-23 12:25:22,193 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {15589#true} {15589#true} #72#return; {15589#true} is VALID [2018-11-23 12:25:22,193 INFO L256 TraceCheckUtils]: 4: Hoare triple {15589#true} call #t~ret7 := main(); {15589#true} is VALID [2018-11-23 12:25:22,193 INFO L273 TraceCheckUtils]: 5: Hoare triple {15589#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {15589#true} is VALID [2018-11-23 12:25:22,194 INFO L273 TraceCheckUtils]: 6: Hoare triple {15589#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {15629#(= |main_~#a~0.offset| 0)} is VALID [2018-11-23 12:25:22,195 INFO L273 TraceCheckUtils]: 7: Hoare triple {15629#(= |main_~#a~0.offset| 0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,196 INFO L273 TraceCheckUtils]: 8: Hoare triple {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,196 INFO L273 TraceCheckUtils]: 9: Hoare triple {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,197 INFO L273 TraceCheckUtils]: 10: Hoare triple {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,198 INFO L273 TraceCheckUtils]: 11: Hoare triple {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,199 INFO L273 TraceCheckUtils]: 12: Hoare triple {15633#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {15649#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,199 INFO L273 TraceCheckUtils]: 13: Hoare triple {15649#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15649#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,201 INFO L273 TraceCheckUtils]: 14: Hoare triple {15649#(and (= main_~i~0 2) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15656#(and (= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,201 INFO L273 TraceCheckUtils]: 15: Hoare triple {15656#(and (= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {15656#(and (= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,202 INFO L273 TraceCheckUtils]: 16: Hoare triple {15656#(and (= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {15656#(and (= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,203 INFO L273 TraceCheckUtils]: 17: Hoare triple {15656#(and (= main_~i~0 2) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {15666#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,204 INFO L273 TraceCheckUtils]: 18: Hoare triple {15666#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15666#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,206 INFO L273 TraceCheckUtils]: 19: Hoare triple {15666#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15673#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,207 INFO L273 TraceCheckUtils]: 20: Hoare triple {15673#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {15673#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,208 INFO L273 TraceCheckUtils]: 21: Hoare triple {15673#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {15673#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,209 INFO L273 TraceCheckUtils]: 22: Hoare triple {15673#(and (= main_~i~0 3) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= (* 2 main_~i~0) (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) 2)) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {15683#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,210 INFO L273 TraceCheckUtils]: 23: Hoare triple {15683#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {15687#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) |main_#t~mem3|) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,211 INFO L273 TraceCheckUtils]: 24: Hoare triple {15687#(and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 8))) |main_#t~mem3|) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (= |main_~#a~0.offset| 0))} assume !(#t~mem3 > 2 * ~i~0 - 2);havoc #t~mem3; {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,212 INFO L273 TraceCheckUtils]: 25: Hoare triple {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,213 INFO L273 TraceCheckUtils]: 26: Hoare triple {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,214 INFO L273 TraceCheckUtils]: 27: Hoare triple {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,215 INFO L273 TraceCheckUtils]: 28: Hoare triple {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,216 INFO L273 TraceCheckUtils]: 29: Hoare triple {15691#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,217 INFO L273 TraceCheckUtils]: 30: Hoare triple {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,218 INFO L256 TraceCheckUtils]: 31: Hoare triple {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,219 INFO L273 TraceCheckUtils]: 32: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} ~cond := #in~cond; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,219 INFO L273 TraceCheckUtils]: 33: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume !(0 == ~cond); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,220 INFO L273 TraceCheckUtils]: 34: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume true; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,221 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #76#return; {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,221 INFO L273 TraceCheckUtils]: 36: Hoare triple {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,223 INFO L273 TraceCheckUtils]: 37: Hoare triple {15707#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,224 INFO L273 TraceCheckUtils]: 38: Hoare triple {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,225 INFO L256 TraceCheckUtils]: 39: Hoare triple {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,226 INFO L273 TraceCheckUtils]: 40: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} ~cond := #in~cond; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,226 INFO L273 TraceCheckUtils]: 41: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume !(0 == ~cond); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,227 INFO L273 TraceCheckUtils]: 42: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume true; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,228 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #76#return; {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,229 INFO L273 TraceCheckUtils]: 44: Hoare triple {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,230 INFO L273 TraceCheckUtils]: 45: Hoare triple {15733#(and (= main_~i~0 1) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,231 INFO L273 TraceCheckUtils]: 46: Hoare triple {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,232 INFO L256 TraceCheckUtils]: 47: Hoare triple {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,233 INFO L273 TraceCheckUtils]: 48: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} ~cond := #in~cond; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,233 INFO L273 TraceCheckUtils]: 49: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume !(0 == ~cond); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,234 INFO L273 TraceCheckUtils]: 50: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume true; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,235 INFO L268 TraceCheckUtils]: 51: Hoare quadruple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #76#return; {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,236 INFO L273 TraceCheckUtils]: 52: Hoare triple {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,237 INFO L273 TraceCheckUtils]: 53: Hoare triple {15758#(and (= main_~i~0 2) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,238 INFO L273 TraceCheckUtils]: 54: Hoare triple {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,240 INFO L256 TraceCheckUtils]: 55: Hoare triple {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,240 INFO L273 TraceCheckUtils]: 56: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} ~cond := #in~cond; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,241 INFO L273 TraceCheckUtils]: 57: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume !(0 == ~cond); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,241 INFO L273 TraceCheckUtils]: 58: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume true; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,242 INFO L268 TraceCheckUtils]: 59: Hoare quadruple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #76#return; {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,243 INFO L273 TraceCheckUtils]: 60: Hoare triple {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,244 INFO L273 TraceCheckUtils]: 61: Hoare triple {15783#(and (= main_~i~0 3) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,245 INFO L273 TraceCheckUtils]: 62: Hoare triple {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,247 INFO L256 TraceCheckUtils]: 63: Hoare triple {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,247 INFO L273 TraceCheckUtils]: 64: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} ~cond := #in~cond; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,248 INFO L273 TraceCheckUtils]: 65: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume !(0 == ~cond); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,248 INFO L273 TraceCheckUtils]: 66: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume true; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,249 INFO L268 TraceCheckUtils]: 67: Hoare quadruple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #76#return; {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,250 INFO L273 TraceCheckUtils]: 68: Hoare triple {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,251 INFO L273 TraceCheckUtils]: 69: Hoare triple {15808#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,252 INFO L273 TraceCheckUtils]: 70: Hoare triple {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,254 INFO L256 TraceCheckUtils]: 71: Hoare triple {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,254 INFO L273 TraceCheckUtils]: 72: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} ~cond := #in~cond; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,255 INFO L273 TraceCheckUtils]: 73: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume !(0 == ~cond); {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,256 INFO L273 TraceCheckUtils]: 74: Hoare triple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} assume true; {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} is VALID [2018-11-23 12:25:22,256 INFO L268 TraceCheckUtils]: 75: Hoare quadruple {15714#(exists ((|v_main_~#a~0.base_BEFORE_CALL_28| Int)) (and (<= (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 24) 6) (= 2 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 8)) (= 4 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_28|) 16))))} {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #76#return; {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,257 INFO L273 TraceCheckUtils]: 76: Hoare triple {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} havoc #t~mem6; {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,258 INFO L273 TraceCheckUtils]: 77: Hoare triple {15833#(and (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 5) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {15858#(and (= main_~i~0 6) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} is VALID [2018-11-23 12:25:22,259 INFO L273 TraceCheckUtils]: 78: Hoare triple {15858#(and (= main_~i~0 6) (= 4 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 16))) (= 2 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 24)) 6) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {15862#(and (<= |main_#t~mem6| 6) (= main_~i~0 6))} is VALID [2018-11-23 12:25:22,260 INFO L256 TraceCheckUtils]: 79: Hoare triple {15862#(and (<= |main_#t~mem6| 6) (= main_~i~0 6))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {15866#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:25:22,261 INFO L273 TraceCheckUtils]: 80: Hoare triple {15866#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {15870#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:25:22,261 INFO L273 TraceCheckUtils]: 81: Hoare triple {15870#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {15590#false} is VALID [2018-11-23 12:25:22,262 INFO L273 TraceCheckUtils]: 82: Hoare triple {15590#false} assume !false; {15590#false} is VALID [2018-11-23 12:25:22,290 INFO L134 CoverageAnalysis]: Checked inductivity of 178 backedges. 0 proven. 118 refuted. 0 times theorem prover too weak. 60 trivial. 0 not checked. [2018-11-23 12:25:22,309 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:25:22,309 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 22] total 39 [2018-11-23 12:25:22,310 INFO L78 Accepts]: Start accepts. Automaton has 39 states. Word has length 83 [2018-11-23 12:25:22,310 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:25:22,310 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 39 states. [2018-11-23 12:25:22,470 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 129 edges. 129 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:25:22,470 INFO L459 AbstractCegarLoop]: Interpolant automaton has 39 states [2018-11-23 12:25:22,471 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 39 interpolants. [2018-11-23 12:25:22,472 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=161, Invalid=1321, Unknown=0, NotChecked=0, Total=1482 [2018-11-23 12:25:22,472 INFO L87 Difference]: Start difference. First operand 263 states and 310 transitions. Second operand 39 states. [2018-11-23 12:25:53,903 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:25:53,903 INFO L93 Difference]: Finished difference Result 1354 states and 1812 transitions. [2018-11-23 12:25:53,904 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 161 states. [2018-11-23 12:25:53,904 INFO L78 Accepts]: Start accepts. Automaton has 39 states. Word has length 83 [2018-11-23 12:25:53,904 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:25:53,904 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2018-11-23 12:25:53,913 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 161 states to 161 states and 780 transitions. [2018-11-23 12:25:53,914 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2018-11-23 12:25:53,923 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 161 states to 161 states and 780 transitions. [2018-11-23 12:25:53,923 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 161 states and 780 transitions. [2018-11-23 12:25:55,457 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 780 edges. 780 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:25:55,529 INFO L225 Difference]: With dead ends: 1354 [2018-11-23 12:25:55,530 INFO L226 Difference]: Without dead ends: 1352 [2018-11-23 12:25:55,535 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 243 GetRequests, 54 SyntacticMatches, 11 SemanticMatches, 178 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12894 ImplicationChecksByTransitivity, 8.6s TimeCoverageRelationStatistics Valid=2929, Invalid=29291, Unknown=0, NotChecked=0, Total=32220 [2018-11-23 12:25:55,537 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 1352 states. [2018-11-23 12:25:59,189 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 1352 to 408. [2018-11-23 12:25:59,189 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 12:25:59,190 INFO L82 GeneralOperation]: Start isEquivalent. First operand 1352 states. Second operand 408 states. [2018-11-23 12:25:59,190 INFO L74 IsIncluded]: Start isIncluded. First operand 1352 states. Second operand 408 states. [2018-11-23 12:25:59,190 INFO L87 Difference]: Start difference. First operand 1352 states. Second operand 408 states. [2018-11-23 12:25:59,274 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:25:59,274 INFO L93 Difference]: Finished difference Result 1352 states and 1809 transitions. [2018-11-23 12:25:59,274 INFO L276 IsEmpty]: Start isEmpty. Operand 1352 states and 1809 transitions. [2018-11-23 12:25:59,278 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:25:59,278 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:25:59,278 INFO L74 IsIncluded]: Start isIncluded. First operand 408 states. Second operand 1352 states. [2018-11-23 12:25:59,278 INFO L87 Difference]: Start difference. First operand 408 states. Second operand 1352 states. [2018-11-23 12:25:59,371 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:25:59,371 INFO L93 Difference]: Finished difference Result 1352 states and 1809 transitions. [2018-11-23 12:25:59,371 INFO L276 IsEmpty]: Start isEmpty. Operand 1352 states and 1809 transitions. [2018-11-23 12:25:59,374 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 12:25:59,374 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 12:25:59,374 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 12:25:59,375 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 12:25:59,375 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 408 states. [2018-11-23 12:25:59,388 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 408 states to 408 states and 472 transitions. [2018-11-23 12:25:59,389 INFO L78 Accepts]: Start accepts. Automaton has 408 states and 472 transitions. Word has length 83 [2018-11-23 12:25:59,389 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 12:25:59,389 INFO L480 AbstractCegarLoop]: Abstraction has 408 states and 472 transitions. [2018-11-23 12:25:59,389 INFO L481 AbstractCegarLoop]: Interpolant automaton has 39 states. [2018-11-23 12:25:59,389 INFO L276 IsEmpty]: Start isEmpty. Operand 408 states and 472 transitions. [2018-11-23 12:25:59,391 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 92 [2018-11-23 12:25:59,391 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 12:25:59,391 INFO L402 BasicCegarLoop]: trace histogram [8, 8, 8, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 12:25:59,392 INFO L423 AbstractCegarLoop]: === Iteration 15 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 12:25:59,392 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 12:25:59,392 INFO L82 PathProgramCache]: Analyzing trace with hash 284833009, now seen corresponding path program 9 times [2018-11-23 12:25:59,392 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-23 12:25:59,392 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-23 12:25:59,393 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:25:59,393 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 12:25:59,393 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-23 12:25:59,418 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:26:00,025 WARN L180 SmtUtils]: Spent 106.00 ms on a formula simplification. DAG size of input: 21 DAG size of output: 9 [2018-11-23 12:26:00,912 INFO L256 TraceCheckUtils]: 0: Hoare triple {21062#true} call ULTIMATE.init(); {21062#true} is VALID [2018-11-23 12:26:00,912 INFO L273 TraceCheckUtils]: 1: Hoare triple {21062#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {21062#true} is VALID [2018-11-23 12:26:00,912 INFO L273 TraceCheckUtils]: 2: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:00,912 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {21062#true} {21062#true} #72#return; {21062#true} is VALID [2018-11-23 12:26:00,912 INFO L256 TraceCheckUtils]: 4: Hoare triple {21062#true} call #t~ret7 := main(); {21062#true} is VALID [2018-11-23 12:26:00,913 INFO L273 TraceCheckUtils]: 5: Hoare triple {21062#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {21062#true} is VALID [2018-11-23 12:26:00,913 INFO L273 TraceCheckUtils]: 6: Hoare triple {21062#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {21064#(<= 2 ~SIZE~0)} is VALID [2018-11-23 12:26:00,915 INFO L273 TraceCheckUtils]: 7: Hoare triple {21064#(<= 2 ~SIZE~0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,915 INFO L273 TraceCheckUtils]: 8: Hoare triple {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,917 INFO L273 TraceCheckUtils]: 9: Hoare triple {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,917 INFO L273 TraceCheckUtils]: 10: Hoare triple {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,918 INFO L273 TraceCheckUtils]: 11: Hoare triple {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,919 INFO L273 TraceCheckUtils]: 12: Hoare triple {21065#(and (= main_~i~0 1) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,921 INFO L273 TraceCheckUtils]: 13: Hoare triple {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,922 INFO L273 TraceCheckUtils]: 14: Hoare triple {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,923 INFO L273 TraceCheckUtils]: 15: Hoare triple {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,923 INFO L273 TraceCheckUtils]: 16: Hoare triple {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,924 INFO L273 TraceCheckUtils]: 17: Hoare triple {21066#(and (<= main_~i~0 2) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,925 INFO L273 TraceCheckUtils]: 18: Hoare triple {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,929 INFO L273 TraceCheckUtils]: 19: Hoare triple {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,929 INFO L273 TraceCheckUtils]: 20: Hoare triple {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,931 INFO L273 TraceCheckUtils]: 21: Hoare triple {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,931 INFO L273 TraceCheckUtils]: 22: Hoare triple {21067#(and (<= (* 2 main_~i~0) 6) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {21068#(and (<= (* 2 main_~i~0) 8) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,950 INFO L273 TraceCheckUtils]: 23: Hoare triple {21068#(and (<= (* 2 main_~i~0) 8) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21068#(and (<= (* 2 main_~i~0) 8) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,951 INFO L273 TraceCheckUtils]: 24: Hoare triple {21068#(and (<= (* 2 main_~i~0) 8) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21068#(and (<= (* 2 main_~i~0) 8) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,952 INFO L273 TraceCheckUtils]: 25: Hoare triple {21068#(and (<= (* 2 main_~i~0) 8) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {21069#(and (<= (* 2 main_~i~0) 8) (or (= |main_#t~mem4| (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4)))) (<= (* 2 main_~i~0) 7)) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,952 INFO L273 TraceCheckUtils]: 26: Hoare triple {21069#(and (<= (* 2 main_~i~0) 8) (or (= |main_#t~mem4| (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4)))) (<= (* 2 main_~i~0) 7)) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {21070#(and (<= (* 2 main_~i~0) 8) (or (<= (* 2 main_~i~0) 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 1) (* 2 main_~i~0))) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} is VALID [2018-11-23 12:26:00,954 INFO L273 TraceCheckUtils]: 27: Hoare triple {21070#(and (<= (* 2 main_~i~0) 8) (or (<= (* 2 main_~i~0) 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 1) (* 2 main_~i~0))) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {21071#(and (<= (* 2 main_~i~0) 10) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))) (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ (* 2 main_~i~0) (- 6)) 4)) (- 4)))) 3) (* 2 main_~i~0)) (<= (* 2 main_~i~0) 9)))} is VALID [2018-11-23 12:26:00,955 INFO L273 TraceCheckUtils]: 28: Hoare triple {21071#(and (<= (* 2 main_~i~0) 10) (= ~SIZE~0 (* 2 (div ~SIZE~0 2))) (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ (* 2 main_~i~0) (- 6)) 4)) (- 4)))) 3) (* 2 main_~i~0)) (<= (* 2 main_~i~0) 9)))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {21072#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)))} is VALID [2018-11-23 12:26:00,960 INFO L273 TraceCheckUtils]: 29: Hoare triple {21072#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)))} ~i~0 := 0; {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} is VALID [2018-11-23 12:26:00,962 INFO L273 TraceCheckUtils]: 30: Hoare triple {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} is VALID [2018-11-23 12:26:00,962 INFO L256 TraceCheckUtils]: 31: Hoare triple {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21062#true} is VALID [2018-11-23 12:26:00,962 INFO L273 TraceCheckUtils]: 32: Hoare triple {21062#true} ~cond := #in~cond; {21062#true} is VALID [2018-11-23 12:26:00,962 INFO L273 TraceCheckUtils]: 33: Hoare triple {21062#true} assume !(0 == ~cond); {21062#true} is VALID [2018-11-23 12:26:00,962 INFO L273 TraceCheckUtils]: 34: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:00,963 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {21062#true} {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} #76#return; {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} is VALID [2018-11-23 12:26:00,963 INFO L273 TraceCheckUtils]: 36: Hoare triple {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} havoc #t~mem6; {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} is VALID [2018-11-23 12:26:00,964 INFO L273 TraceCheckUtils]: 37: Hoare triple {21073#(and (<= ~SIZE~0 8) (or (<= ~SIZE~0 7) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (= main_~i~0 0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} is VALID [2018-11-23 12:26:00,965 INFO L273 TraceCheckUtils]: 38: Hoare triple {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} is VALID [2018-11-23 12:26:00,965 INFO L256 TraceCheckUtils]: 39: Hoare triple {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21062#true} is VALID [2018-11-23 12:26:00,965 INFO L273 TraceCheckUtils]: 40: Hoare triple {21062#true} ~cond := #in~cond; {21062#true} is VALID [2018-11-23 12:26:00,965 INFO L273 TraceCheckUtils]: 41: Hoare triple {21062#true} assume !(0 == ~cond); {21062#true} is VALID [2018-11-23 12:26:00,965 INFO L273 TraceCheckUtils]: 42: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:00,966 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {21062#true} {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} #76#return; {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} is VALID [2018-11-23 12:26:00,971 INFO L273 TraceCheckUtils]: 44: Hoare triple {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} havoc #t~mem6; {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} is VALID [2018-11-23 12:26:00,973 INFO L273 TraceCheckUtils]: 45: Hoare triple {21074#(and (or (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0) (<= ~SIZE~0 (+ main_~i~0 6))) (<= ~SIZE~0 (+ main_~i~0 7)))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} is VALID [2018-11-23 12:26:00,973 INFO L273 TraceCheckUtils]: 46: Hoare triple {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} is VALID [2018-11-23 12:26:00,973 INFO L256 TraceCheckUtils]: 47: Hoare triple {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21062#true} is VALID [2018-11-23 12:26:00,974 INFO L273 TraceCheckUtils]: 48: Hoare triple {21062#true} ~cond := #in~cond; {21062#true} is VALID [2018-11-23 12:26:00,974 INFO L273 TraceCheckUtils]: 49: Hoare triple {21062#true} assume !(0 == ~cond); {21062#true} is VALID [2018-11-23 12:26:00,974 INFO L273 TraceCheckUtils]: 50: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:00,975 INFO L268 TraceCheckUtils]: 51: Hoare quadruple {21062#true} {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} #76#return; {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} is VALID [2018-11-23 12:26:00,976 INFO L273 TraceCheckUtils]: 52: Hoare triple {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} havoc #t~mem6; {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} is VALID [2018-11-23 12:26:00,977 INFO L273 TraceCheckUtils]: 53: Hoare triple {21075#(and (or (<= ~SIZE~0 (+ main_~i~0 5)) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ (+ ~SIZE~0 (- 4)) 4)) (- 4)))) 1) ~SIZE~0)) (<= ~SIZE~0 (+ main_~i~0 6)))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} is VALID [2018-11-23 12:26:00,982 INFO L273 TraceCheckUtils]: 54: Hoare triple {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} is VALID [2018-11-23 12:26:00,982 INFO L256 TraceCheckUtils]: 55: Hoare triple {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21062#true} is VALID [2018-11-23 12:26:00,982 INFO L273 TraceCheckUtils]: 56: Hoare triple {21062#true} ~cond := #in~cond; {21062#true} is VALID [2018-11-23 12:26:00,982 INFO L273 TraceCheckUtils]: 57: Hoare triple {21062#true} assume !(0 == ~cond); {21062#true} is VALID [2018-11-23 12:26:00,982 INFO L273 TraceCheckUtils]: 58: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:00,983 INFO L268 TraceCheckUtils]: 59: Hoare quadruple {21062#true} {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} #76#return; {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} is VALID [2018-11-23 12:26:00,984 INFO L273 TraceCheckUtils]: 60: Hoare triple {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} havoc #t~mem6; {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} is VALID [2018-11-23 12:26:00,985 INFO L273 TraceCheckUtils]: 61: Hoare triple {21076#(and (<= ~SIZE~0 (+ main_~i~0 5)) (or (<= ~SIZE~0 (+ main_~i~0 4)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 5)) (- 4)))) (+ main_~i~0 4))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} is VALID [2018-11-23 12:26:00,986 INFO L273 TraceCheckUtils]: 62: Hoare triple {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} is VALID [2018-11-23 12:26:00,986 INFO L256 TraceCheckUtils]: 63: Hoare triple {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21062#true} is VALID [2018-11-23 12:26:00,986 INFO L273 TraceCheckUtils]: 64: Hoare triple {21062#true} ~cond := #in~cond; {21062#true} is VALID [2018-11-23 12:26:00,986 INFO L273 TraceCheckUtils]: 65: Hoare triple {21062#true} assume !(0 == ~cond); {21062#true} is VALID [2018-11-23 12:26:00,986 INFO L273 TraceCheckUtils]: 66: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:00,987 INFO L268 TraceCheckUtils]: 67: Hoare quadruple {21062#true} {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} #76#return; {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} is VALID [2018-11-23 12:26:00,987 INFO L273 TraceCheckUtils]: 68: Hoare triple {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} havoc #t~mem6; {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} is VALID [2018-11-23 12:26:00,988 INFO L273 TraceCheckUtils]: 69: Hoare triple {21077#(and (<= ~SIZE~0 (+ main_~i~0 4)) (or (<= ~SIZE~0 (+ main_~i~0 3)) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 4)) (- 4)))) (+ main_~i~0 3))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} is VALID [2018-11-23 12:26:00,989 INFO L273 TraceCheckUtils]: 70: Hoare triple {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} is VALID [2018-11-23 12:26:00,990 INFO L256 TraceCheckUtils]: 71: Hoare triple {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21062#true} is VALID [2018-11-23 12:26:00,990 INFO L273 TraceCheckUtils]: 72: Hoare triple {21062#true} ~cond := #in~cond; {21062#true} is VALID [2018-11-23 12:26:00,990 INFO L273 TraceCheckUtils]: 73: Hoare triple {21062#true} assume !(0 == ~cond); {21062#true} is VALID [2018-11-23 12:26:00,990 INFO L273 TraceCheckUtils]: 74: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:00,991 INFO L268 TraceCheckUtils]: 75: Hoare quadruple {21062#true} {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} #76#return; {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} is VALID [2018-11-23 12:26:00,993 INFO L273 TraceCheckUtils]: 76: Hoare triple {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} havoc #t~mem6; {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} is VALID [2018-11-23 12:26:00,993 INFO L273 TraceCheckUtils]: 77: Hoare triple {21078#(and (<= ~SIZE~0 (+ main_~i~0 3)) (or (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 3)) (- 4)))) (+ main_~i~0 2)) (<= ~SIZE~0 (+ main_~i~0 2))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} is VALID [2018-11-23 12:26:00,995 INFO L273 TraceCheckUtils]: 78: Hoare triple {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} is VALID [2018-11-23 12:26:00,995 INFO L256 TraceCheckUtils]: 79: Hoare triple {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21062#true} is VALID [2018-11-23 12:26:00,995 INFO L273 TraceCheckUtils]: 80: Hoare triple {21062#true} ~cond := #in~cond; {21062#true} is VALID [2018-11-23 12:26:00,995 INFO L273 TraceCheckUtils]: 81: Hoare triple {21062#true} assume !(0 == ~cond); {21062#true} is VALID [2018-11-23 12:26:00,996 INFO L273 TraceCheckUtils]: 82: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:00,997 INFO L268 TraceCheckUtils]: 83: Hoare quadruple {21062#true} {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} #76#return; {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} is VALID [2018-11-23 12:26:00,997 INFO L273 TraceCheckUtils]: 84: Hoare triple {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} havoc #t~mem6; {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} is VALID [2018-11-23 12:26:00,999 INFO L273 TraceCheckUtils]: 85: Hoare triple {21079#(or (<= ~SIZE~0 (+ main_~i~0 1)) (and (<= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) (+ main_~i~0 1)) (<= ~SIZE~0 (+ main_~i~0 2))))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21080#(or (<= ~SIZE~0 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0))} is VALID [2018-11-23 12:26:00,999 INFO L273 TraceCheckUtils]: 86: Hoare triple {21080#(or (<= ~SIZE~0 main_~i~0) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~i~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21081#(<= |main_#t~mem6| main_~i~0)} is VALID [2018-11-23 12:26:01,000 INFO L256 TraceCheckUtils]: 87: Hoare triple {21081#(<= |main_#t~mem6| main_~i~0)} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21082#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-23 12:26:01,000 INFO L273 TraceCheckUtils]: 88: Hoare triple {21082#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {21083#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-23 12:26:01,002 INFO L273 TraceCheckUtils]: 89: Hoare triple {21083#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {21063#false} is VALID [2018-11-23 12:26:01,002 INFO L273 TraceCheckUtils]: 90: Hoare triple {21063#false} assume !false; {21063#false} is VALID [2018-11-23 12:26:01,025 INFO L134 CoverageAnalysis]: Checked inductivity of 230 backedges. 74 proven. 72 refuted. 0 times theorem prover too weak. 84 trivial. 0 not checked. [2018-11-23 12:26:01,025 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-23 12:26:01,025 INFO L223 ckRefinementStrategy]: Switched to mode Z3_FP No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2018-11-23 12:26:01,033 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2018-11-23 12:26:01,088 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 8 check-sat command(s) [2018-11-23 12:26:01,088 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 12:26:01,106 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 12:26:01,108 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 12:26:07,003 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 28 treesize of output 24 [2018-11-23 12:26:07,010 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 12:26:07,012 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 23 [2018-11-23 12:26:07,018 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 12:26:07,023 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 12:26:07,040 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-2 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2018-11-23 12:26:07,041 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 5 variables, input treesize:50, output treesize:27 [2018-11-23 12:26:07,047 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 12:26:07,047 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, |main_~#a~0.base|, |main_~#a~0.offset|, ~SIZE~0, v_prenex_10]. (let ((.cse0 (select |#memory_int| |main_~#a~0.base|))) (and (<= 7 main_~i~0) (<= |main_#t~mem6| (select .cse0 (+ (* 4 main_~i~0) |main_~#a~0.offset|))) (< main_~i~0 ~SIZE~0) (= (mod ~SIZE~0 2) 0) (<= (+ (select .cse0 (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= 2 ~SIZE~0))) [2018-11-23 12:26:07,047 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ [~SIZE~0, v_prenex_10]. (and (<= 7 main_~i~0) (< main_~i~0 ~SIZE~0) (= (mod ~SIZE~0 2) 0) (<= (+ |main_#t~mem6| 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10)) [2018-11-23 12:26:07,173 INFO L256 TraceCheckUtils]: 0: Hoare triple {21062#true} call ULTIMATE.init(); {21062#true} is VALID [2018-11-23 12:26:07,174 INFO L273 TraceCheckUtils]: 1: Hoare triple {21062#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {21062#true} is VALID [2018-11-23 12:26:07,174 INFO L273 TraceCheckUtils]: 2: Hoare triple {21062#true} assume true; {21062#true} is VALID [2018-11-23 12:26:07,174 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {21062#true} {21062#true} #72#return; {21062#true} is VALID [2018-11-23 12:26:07,174 INFO L256 TraceCheckUtils]: 4: Hoare triple {21062#true} call #t~ret7 := main(); {21062#true} is VALID [2018-11-23 12:26:07,175 INFO L273 TraceCheckUtils]: 5: Hoare triple {21062#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {21062#true} is VALID [2018-11-23 12:26:07,175 INFO L273 TraceCheckUtils]: 6: Hoare triple {21062#true} assume ~SIZE~0 > 1;havoc ~i~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(4 * ~SIZE~0); {21064#(<= 2 ~SIZE~0)} is VALID [2018-11-23 12:26:07,176 INFO L273 TraceCheckUtils]: 7: Hoare triple {21064#(<= 2 ~SIZE~0)} assume !(0 != (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2));assume 0 != (if 0 == (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then ~SIZE~0 % 2 - 2 else ~SIZE~0 % 2) then 1 else 0);~i~0 := 1; {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,177 INFO L273 TraceCheckUtils]: 8: Hoare triple {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,177 INFO L273 TraceCheckUtils]: 9: Hoare triple {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,178 INFO L273 TraceCheckUtils]: 10: Hoare triple {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,178 INFO L273 TraceCheckUtils]: 11: Hoare triple {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,179 INFO L273 TraceCheckUtils]: 12: Hoare triple {21108#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 1) (<= 2 ~SIZE~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,180 INFO L273 TraceCheckUtils]: 13: Hoare triple {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,181 INFO L273 TraceCheckUtils]: 14: Hoare triple {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,182 INFO L273 TraceCheckUtils]: 15: Hoare triple {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,182 INFO L273 TraceCheckUtils]: 16: Hoare triple {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,183 INFO L273 TraceCheckUtils]: 17: Hoare triple {21124#(and (<= main_~i~0 2) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,184 INFO L273 TraceCheckUtils]: 18: Hoare triple {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,185 INFO L273 TraceCheckUtils]: 19: Hoare triple {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,186 INFO L273 TraceCheckUtils]: 20: Hoare triple {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,187 INFO L273 TraceCheckUtils]: 21: Hoare triple {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,187 INFO L273 TraceCheckUtils]: 22: Hoare triple {21140#(and (<= main_~i~0 3) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {21156#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,188 INFO L273 TraceCheckUtils]: 23: Hoare triple {21156#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= 2 ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2));call #t~mem3 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21156#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,189 INFO L273 TraceCheckUtils]: 24: Hoare triple {21156#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= 2 ~SIZE~0))} assume #t~mem3 > 2 * ~i~0 - 2;havoc #t~mem3;call write~int(2 * ~i~0 - 2, ~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 2), 4); {21156#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,190 INFO L273 TraceCheckUtils]: 25: Hoare triple {21156#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= 2 ~SIZE~0))} call #t~mem4 := read~int(~#a~0.base, ~#a~0.offset + 4 * (2 * ~i~0 - 1), 4); {21166#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) |main_#t~mem4|) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,191 INFO L273 TraceCheckUtils]: 26: Hoare triple {21166#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) |main_#t~mem4|) (<= 2 ~SIZE~0))} assume !(#t~mem4 > 2 * ~i~0 - 1);havoc #t~mem4; {21170#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= 2 ~SIZE~0) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 1) (* 2 main_~i~0)))} is VALID [2018-11-23 12:26:07,194 INFO L273 TraceCheckUtils]: 27: Hoare triple {21170#(and (= (mod ~SIZE~0 2) 0) (<= main_~i~0 4) (<= 2 ~SIZE~0) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 main_~i~0) |main_~#a~0.offset| (- 4))) 1) (* 2 main_~i~0)))} #t~post2 := ~i~0;~i~0 := 1 + #t~post2;havoc #t~post2; {21174#(and (= (mod ~SIZE~0 2) 0) (exists ((v_main_~i~0_79 Int)) (and (<= main_~i~0 (+ v_main_~i~0_79 1)) (<= v_main_~i~0_79 4) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_main_~i~0_79) |main_~#a~0.offset| (- 4))) 1) (* 2 v_main_~i~0_79)))) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,196 INFO L273 TraceCheckUtils]: 28: Hoare triple {21174#(and (= (mod ~SIZE~0 2) 0) (exists ((v_main_~i~0_79 Int)) (and (<= main_~i~0 (+ v_main_~i~0_79 1)) (<= v_main_~i~0_79 4) (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_main_~i~0_79) |main_~#a~0.offset| (- 4))) 1) (* 2 v_main_~i~0_79)))) (<= 2 ~SIZE~0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && 0 != ~SIZE~0 % 2 then 1 + ~SIZE~0 / 2 else ~SIZE~0 / 2)); {21178#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,197 INFO L273 TraceCheckUtils]: 29: Hoare triple {21178#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~i~0 := 0; {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,198 INFO L273 TraceCheckUtils]: 30: Hoare triple {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,201 INFO L256 TraceCheckUtils]: 31: Hoare triple {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,202 INFO L273 TraceCheckUtils]: 32: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,203 INFO L273 TraceCheckUtils]: 33: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,204 INFO L273 TraceCheckUtils]: 34: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,205 INFO L268 TraceCheckUtils]: 35: Hoare quadruple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,206 INFO L273 TraceCheckUtils]: 36: Hoare triple {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,207 INFO L273 TraceCheckUtils]: 37: Hoare triple {21182#(and (<= 0 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,208 INFO L273 TraceCheckUtils]: 38: Hoare triple {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,210 INFO L256 TraceCheckUtils]: 39: Hoare triple {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,211 INFO L273 TraceCheckUtils]: 40: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,212 INFO L273 TraceCheckUtils]: 41: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,213 INFO L273 TraceCheckUtils]: 42: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,214 INFO L268 TraceCheckUtils]: 43: Hoare quadruple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,215 INFO L273 TraceCheckUtils]: 44: Hoare triple {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,217 INFO L273 TraceCheckUtils]: 45: Hoare triple {21208#(and (<= 1 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,218 INFO L273 TraceCheckUtils]: 46: Hoare triple {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,220 INFO L256 TraceCheckUtils]: 47: Hoare triple {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,221 INFO L273 TraceCheckUtils]: 48: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,222 INFO L273 TraceCheckUtils]: 49: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,223 INFO L273 TraceCheckUtils]: 50: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,224 INFO L268 TraceCheckUtils]: 51: Hoare quadruple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,225 INFO L273 TraceCheckUtils]: 52: Hoare triple {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,226 INFO L273 TraceCheckUtils]: 53: Hoare triple {21233#(and (<= 2 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,228 INFO L273 TraceCheckUtils]: 54: Hoare triple {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,230 INFO L256 TraceCheckUtils]: 55: Hoare triple {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,231 INFO L273 TraceCheckUtils]: 56: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,232 INFO L273 TraceCheckUtils]: 57: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,233 INFO L273 TraceCheckUtils]: 58: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,234 INFO L268 TraceCheckUtils]: 59: Hoare quadruple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} #76#return; {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,235 INFO L273 TraceCheckUtils]: 60: Hoare triple {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} havoc #t~mem6; {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,236 INFO L273 TraceCheckUtils]: 61: Hoare triple {21258#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 3 main_~i~0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,237 INFO L273 TraceCheckUtils]: 62: Hoare triple {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,240 INFO L256 TraceCheckUtils]: 63: Hoare triple {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,241 INFO L273 TraceCheckUtils]: 64: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,241 INFO L273 TraceCheckUtils]: 65: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,242 INFO L273 TraceCheckUtils]: 66: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,242 INFO L268 TraceCheckUtils]: 67: Hoare quadruple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,243 INFO L273 TraceCheckUtils]: 68: Hoare triple {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,244 INFO L273 TraceCheckUtils]: 69: Hoare triple {21283#(and (<= 4 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,245 INFO L273 TraceCheckUtils]: 70: Hoare triple {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,259 INFO L256 TraceCheckUtils]: 71: Hoare triple {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21315#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_39| Int) (|v_main_~#a~0.base_BEFORE_CALL_39| Int) (v_prenex_10 Int)) (and (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_39|) (+ |v_main_~#a~0.offset_BEFORE_CALL_39| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,260 INFO L273 TraceCheckUtils]: 72: Hoare triple {21315#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_39| Int) (|v_main_~#a~0.base_BEFORE_CALL_39| Int) (v_prenex_10 Int)) (and (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_39|) (+ |v_main_~#a~0.offset_BEFORE_CALL_39| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {21315#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_39| Int) (|v_main_~#a~0.base_BEFORE_CALL_39| Int) (v_prenex_10 Int)) (and (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_39|) (+ |v_main_~#a~0.offset_BEFORE_CALL_39| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,261 INFO L273 TraceCheckUtils]: 73: Hoare triple {21315#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_39| Int) (|v_main_~#a~0.base_BEFORE_CALL_39| Int) (v_prenex_10 Int)) (and (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_39|) (+ |v_main_~#a~0.offset_BEFORE_CALL_39| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {21315#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_39| Int) (|v_main_~#a~0.base_BEFORE_CALL_39| Int) (v_prenex_10 Int)) (and (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_39|) (+ |v_main_~#a~0.offset_BEFORE_CALL_39| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,261 INFO L273 TraceCheckUtils]: 74: Hoare triple {21315#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_39| Int) (|v_main_~#a~0.base_BEFORE_CALL_39| Int) (v_prenex_10 Int)) (and (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_39|) (+ |v_main_~#a~0.offset_BEFORE_CALL_39| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {21315#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_39| Int) (|v_main_~#a~0.base_BEFORE_CALL_39| Int) (v_prenex_10 Int)) (and (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_39|) (+ |v_main_~#a~0.offset_BEFORE_CALL_39| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,262 INFO L268 TraceCheckUtils]: 75: Hoare quadruple {21315#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_39| Int) (|v_main_~#a~0.base_BEFORE_CALL_39| Int) (v_prenex_10 Int)) (and (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10) (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_39|) (+ |v_main_~#a~0.offset_BEFORE_CALL_39| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #76#return; {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,263 INFO L273 TraceCheckUtils]: 76: Hoare triple {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} havoc #t~mem6; {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,264 INFO L273 TraceCheckUtils]: 77: Hoare triple {21308#(and (<= 5 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,265 INFO L273 TraceCheckUtils]: 78: Hoare triple {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,268 INFO L256 TraceCheckUtils]: 79: Hoare triple {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,269 INFO L273 TraceCheckUtils]: 80: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} ~cond := #in~cond; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,269 INFO L273 TraceCheckUtils]: 81: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !(0 == ~cond); {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,270 INFO L273 TraceCheckUtils]: 82: Hoare triple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume true; {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,271 INFO L268 TraceCheckUtils]: 83: Hoare quadruple {21189#(and (exists ((|v_main_~#a~0.offset_BEFORE_CALL_34| Int) (v_prenex_10 Int) (|v_main_~#a~0.base_BEFORE_CALL_34| Int)) (and (<= (+ (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_34|) (+ |v_main_~#a~0.offset_BEFORE_CALL_34| (* 8 v_prenex_10) (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} #76#return; {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,272 INFO L273 TraceCheckUtils]: 84: Hoare triple {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} havoc #t~mem6; {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,273 INFO L273 TraceCheckUtils]: 85: Hoare triple {21334#(and (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 6 main_~i~0) (<= 2 ~SIZE~0))} #t~post5 := ~i~0;~i~0 := 1 + #t~post5;havoc #t~post5; {21359#(and (<= 7 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} is VALID [2018-11-23 12:26:07,276 INFO L273 TraceCheckUtils]: 86: Hoare triple {21359#(and (<= 7 main_~i~0) (exists ((v_prenex_10 Int)) (and (<= (+ (select (select |#memory_int| |main_~#a~0.base|) (+ (* 8 v_prenex_10) |main_~#a~0.offset| (- 4))) 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))) (= (mod ~SIZE~0 2) 0) (<= 2 ~SIZE~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem6 := read~int(~#a~0.base, ~#a~0.offset + 4 * ~i~0, 4); {21363#(and (<= 7 main_~i~0) (exists ((v_prenex_10 Int) (~SIZE~0 Int)) (and (< main_~i~0 ~SIZE~0) (= (mod ~SIZE~0 2) 0) (<= (+ |main_#t~mem6| 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))))} is VALID [2018-11-23 12:26:07,278 INFO L256 TraceCheckUtils]: 87: Hoare triple {21363#(and (<= 7 main_~i~0) (exists ((v_prenex_10 Int) (~SIZE~0 Int)) (and (< main_~i~0 ~SIZE~0) (= (mod ~SIZE~0 2) 0) (<= (+ |main_#t~mem6| 1) (* 2 v_prenex_10)) (<= v_prenex_10 4) (<= (div ~SIZE~0 2) v_prenex_10))))} call __VERIFIER_assert((if #t~mem6 <= ~i~0 then 1 else 0)); {21367#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-23 12:26:07,279 INFO L273 TraceCheckUtils]: 88: Hoare triple {21367#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {21371#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-23 12:26:07,279 INFO L273 TraceCheckUtils]: 89: Hoare triple {21371#(= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {21063#false} is VALID [2018-11-23 12:26:07,280 INFO L273 TraceCheckUtils]: 90: Hoare triple {21063#false} assume !false; {21063#false} is VALID [2018-11-23 12:26:07,323 INFO L134 CoverageAnalysis]: Checked inductivity of 230 backedges. 95 proven. 55 refuted. 20 times theorem prover too weak. 60 trivial. 0 not checked. [2018-11-23 12:26:07,344 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 12:26:07,344 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [22, 24] total 43 [2018-11-23 12:26:07,345 INFO L78 Accepts]: Start accepts. Automaton has 43 states. Word has length 91 [2018-11-23 12:26:07,345 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 12:26:07,345 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 43 states. [2018-11-23 12:26:07,640 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 141 edges. 141 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:26:07,640 INFO L459 AbstractCegarLoop]: Interpolant automaton has 43 states [2018-11-23 12:26:07,641 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 43 interpolants. [2018-11-23 12:26:07,641 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=266, Invalid=1539, Unknown=1, NotChecked=0, Total=1806 [2018-11-23 12:26:07,641 INFO L87 Difference]: Start difference. First operand 408 states and 472 transitions. Second operand 43 states. [2018-11-23 12:26:10,648 WARN L180 SmtUtils]: Spent 341.00 ms on a formula simplification. DAG size of input: 43 DAG size of output: 39 [2018-11-23 12:26:40,026 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 12:26:40,026 INFO L93 Difference]: Finished difference Result 740 states and 844 transitions. [2018-11-23 12:26:40,026 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 34 states. [2018-11-23 12:26:40,026 INFO L78 Accepts]: Start accepts. Automaton has 43 states. Word has length 91 [2018-11-23 12:26:40,027 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 12:26:40,027 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 43 states. [2018-11-23 12:26:40,028 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 112 transitions. [2018-11-23 12:26:40,029 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 43 states. [2018-11-23 12:26:40,030 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 112 transitions. [2018-11-23 12:26:40,030 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 34 states and 112 transitions. [2018-11-23 12:26:40,410 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 112 edges. 112 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 12:26:40,424 INFO L225 Difference]: With dead ends: 740 [2018-11-23 12:26:40,425 INFO L226 Difference]: Without dead ends: 426 [2018-11-23 12:26:40,427 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 137 GetRequests, 59 SyntacticMatches, 13 SemanticMatches, 65 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1682 ImplicationChecksByTransitivity, 6.8s TimeCoverageRelationStatistics Valid=662, Invalid=3759, Unknown=1, NotChecked=0, Total=4422 [2018-11-23 12:26:40,427 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 426 states.