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/AutomizerC.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default-Const.epf -i ../../../trunk/examples/svcomp/array-tiling/pnr3_true-unreach-call.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-370d6ab [2018-11-14 18:52:25,955 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-14 18:52:25,958 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-14 18:52:25,972 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-14 18:52:25,972 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-14 18:52:25,974 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-14 18:52:25,976 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-14 18:52:25,979 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-14 18:52:25,982 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-14 18:52:25,987 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-14 18:52:25,988 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-14 18:52:25,988 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-14 18:52:25,991 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-14 18:52:25,992 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-14 18:52:25,993 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-14 18:52:25,996 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-14 18:52:25,996 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-14 18:52:26,000 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-14 18:52:26,006 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-14 18:52:26,009 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-14 18:52:26,010 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-14 18:52:26,011 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-14 18:52:26,015 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-14 18:52:26,015 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-14 18:52:26,015 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-14 18:52:26,016 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-14 18:52:26,017 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-14 18:52:26,019 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-14 18:52:26,020 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-14 18:52:26,022 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-14 18:52:26,023 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-14 18:52:26,026 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-14 18:52:26,026 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-14 18:52:26,026 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-14 18:52:26,027 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-14 18:52:26,030 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-14 18:52:26,030 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default-Const.epf [2018-11-14 18:52:26,051 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-14 18:52:26,051 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-14 18:52:26,052 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-14 18:52:26,052 INFO L133 SettingsManager]: * to procedures, called more than once=true [2018-11-14 18:52:26,052 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-14 18:52:26,053 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-14 18:52:26,053 INFO L133 SettingsManager]: * Use SBE=true [2018-11-14 18:52:26,053 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-14 18:52:26,053 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-14 18:52:26,053 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-14 18:52:26,054 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-14 18:52:26,054 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-14 18:52:26,054 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-14 18:52:26,054 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-14 18:52:26,054 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-14 18:52:26,054 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-14 18:52:26,055 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-14 18:52:26,055 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-14 18:52:26,055 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-14 18:52:26,055 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-14 18:52:26,055 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-14 18:52:26,056 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-14 18:52:26,056 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-14 18:52:26,056 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-14 18:52:26,056 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-14 18:52:26,056 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-14 18:52:26,057 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-14 18:52:26,057 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-11-14 18:52:26,057 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-14 18:52:26,057 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-14 18:52:26,057 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-14 18:52:26,103 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-14 18:52:26,123 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-14 18:52:26,128 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-14 18:52:26,129 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-14 18:52:26,130 INFO L276 PluginConnector]: CDTParser initialized [2018-11-14 18:52:26,131 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/array-tiling/pnr3_true-unreach-call.i [2018-11-14 18:52:26,206 INFO L218 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/ca4404ab1/c5ac0aade7f34f3fb1646c3cd9702940/FLAG6512caf6b [2018-11-14 18:52:26,656 INFO L298 CDTParser]: Found 1 translation units. [2018-11-14 18:52:26,657 INFO L158 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/array-tiling/pnr3_true-unreach-call.i [2018-11-14 18:52:26,664 INFO L346 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/ca4404ab1/c5ac0aade7f34f3fb1646c3cd9702940/FLAG6512caf6b [2018-11-14 18:52:26,680 INFO L354 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/ca4404ab1/c5ac0aade7f34f3fb1646c3cd9702940 [2018-11-14 18:52:26,691 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-14 18:52:26,692 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2018-11-14 18:52:26,693 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-14 18:52:26,694 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-14 18:52:26,698 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-14 18:52:26,700 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.11 06:52:26" (1/1) ... [2018-11-14 18:52:26,703 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@71c8de56 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:26, skipping insertion in model container [2018-11-14 18:52:26,704 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.11 06:52:26" (1/1) ... [2018-11-14 18:52:26,714 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-14 18:52:26,738 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-14 18:52:26,997 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-14 18:52:27,002 INFO L191 MainTranslator]: Completed pre-run [2018-11-14 18:52:27,035 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-14 18:52:27,064 INFO L195 MainTranslator]: Completed translation [2018-11-14 18:52:27,064 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27 WrapperNode [2018-11-14 18:52:27,065 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-14 18:52:27,066 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-14 18:52:27,066 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-14 18:52:27,066 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-14 18:52:27,083 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (1/1) ... [2018-11-14 18:52:27,084 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (1/1) ... [2018-11-14 18:52:27,095 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (1/1) ... [2018-11-14 18:52:27,095 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (1/1) ... [2018-11-14 18:52:27,108 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (1/1) ... [2018-11-14 18:52:27,120 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (1/1) ... [2018-11-14 18:52:27,121 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (1/1) ... [2018-11-14 18:52:27,124 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-14 18:52:27,124 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-14 18:52:27,125 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-14 18:52:27,125 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-14 18:52:27,126 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (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-14 18:52:27,270 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-14 18:52:27,270 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-14 18:52:27,270 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2018-11-14 18:52:27,271 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-14 18:52:27,271 INFO L130 BoogieDeclarations]: Found specification of procedure ReadFromPort [2018-11-14 18:52:27,271 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_error [2018-11-14 18:52:27,271 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assume [2018-11-14 18:52:27,271 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2018-11-14 18:52:27,271 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2018-11-14 18:52:27,272 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-14 18:52:27,272 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-14 18:52:27,272 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-14 18:52:27,272 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-14 18:52:27,272 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-14 18:52:27,272 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-14 18:52:27,274 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-14 18:52:27,275 INFO L130 BoogieDeclarations]: Found specification of procedure write~unchecked~int [2018-11-14 18:52:28,081 INFO L278 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-14 18:52:28,082 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.11 06:52:28 BoogieIcfgContainer [2018-11-14 18:52:28,082 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-14 18:52:28,083 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-14 18:52:28,084 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-14 18:52:28,087 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-14 18:52:28,087 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 14.11 06:52:26" (1/3) ... [2018-11-14 18:52:28,088 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@38114795 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.11 06:52:28, skipping insertion in model container [2018-11-14 18:52:28,088 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.11 06:52:27" (2/3) ... [2018-11-14 18:52:28,089 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@38114795 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.11 06:52:28, skipping insertion in model container [2018-11-14 18:52:28,089 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.11 06:52:28" (3/3) ... [2018-11-14 18:52:28,091 INFO L112 eAbstractionObserver]: Analyzing ICFG pnr3_true-unreach-call.i [2018-11-14 18:52:28,101 INFO L136 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-14 18:52:28,110 INFO L148 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-14 18:52:28,127 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-14 18:52:28,159 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-14 18:52:28,159 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-14 18:52:28,160 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-14 18:52:28,160 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-14 18:52:28,160 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-14 18:52:28,160 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-14 18:52:28,161 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-14 18:52:28,161 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-14 18:52:28,161 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-14 18:52:28,183 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states. [2018-11-14 18:52:28,189 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 17 [2018-11-14 18:52:28,190 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:52:28,191 INFO L375 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:52:28,193 INFO L423 AbstractCegarLoop]: === Iteration 1 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:52:28,199 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:52:28,199 INFO L82 PathProgramCache]: Analyzing trace with hash -1024731985, now seen corresponding path program 1 times [2018-11-14 18:52:28,201 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:52:28,201 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:52:28,252 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:28,253 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:28,253 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:28,315 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:28,389 INFO L256 TraceCheckUtils]: 0: Hoare triple {37#true} call ULTIMATE.init(); {37#true} is VALID [2018-11-14 18:52:28,394 INFO L273 TraceCheckUtils]: 1: Hoare triple {37#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {37#true} is VALID [2018-11-14 18:52:28,395 INFO L273 TraceCheckUtils]: 2: Hoare triple {37#true} assume true; {37#true} is VALID [2018-11-14 18:52:28,395 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {37#true} {37#true} #83#return; {37#true} is VALID [2018-11-14 18:52:28,396 INFO L256 TraceCheckUtils]: 4: Hoare triple {37#true} call #t~ret8 := main(); {37#true} is VALID [2018-11-14 18:52:28,396 INFO L273 TraceCheckUtils]: 5: Hoare triple {37#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {37#true} is VALID [2018-11-14 18:52:28,396 INFO L273 TraceCheckUtils]: 6: Hoare triple {37#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {37#true} is VALID [2018-11-14 18:52:28,397 INFO L273 TraceCheckUtils]: 7: Hoare triple {37#true} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {37#true} is VALID [2018-11-14 18:52:28,410 INFO L273 TraceCheckUtils]: 8: Hoare triple {37#true} assume !true; {38#false} is VALID [2018-11-14 18:52:28,411 INFO L273 TraceCheckUtils]: 9: Hoare triple {38#false} ~i~0 := 0; {38#false} is VALID [2018-11-14 18:52:28,411 INFO L273 TraceCheckUtils]: 10: Hoare triple {38#false} assume true; {38#false} is VALID [2018-11-14 18:52:28,411 INFO L273 TraceCheckUtils]: 11: Hoare triple {38#false} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {38#false} is VALID [2018-11-14 18:52:28,412 INFO L256 TraceCheckUtils]: 12: Hoare triple {38#false} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {38#false} is VALID [2018-11-14 18:52:28,412 INFO L273 TraceCheckUtils]: 13: Hoare triple {38#false} ~cond := #in~cond; {38#false} is VALID [2018-11-14 18:52:28,413 INFO L273 TraceCheckUtils]: 14: Hoare triple {38#false} assume ~cond == 0; {38#false} is VALID [2018-11-14 18:52:28,413 INFO L273 TraceCheckUtils]: 15: Hoare triple {38#false} assume !false; {38#false} is VALID [2018-11-14 18:52:28,416 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-14 18:52:28,419 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 18:52:28,419 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-14 18:52:28,425 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 16 [2018-11-14 18:52:28,428 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:52:28,432 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-14 18:52:28,587 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:28,587 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-14 18:52:28,597 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-14 18:52:28,597 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-14 18:52:28,600 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 2 states. [2018-11-14 18:52:28,818 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:28,818 INFO L93 Difference]: Finished difference Result 52 states and 64 transitions. [2018-11-14 18:52:28,818 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-14 18:52:28,818 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 16 [2018-11-14 18:52:28,819 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:52:28,820 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-14 18:52:28,831 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 64 transitions. [2018-11-14 18:52:28,831 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-14 18:52:28,837 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 64 transitions. [2018-11-14 18:52:28,837 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 64 transitions. [2018-11-14 18:52:29,079 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:29,091 INFO L225 Difference]: With dead ends: 52 [2018-11-14 18:52:29,094 INFO L226 Difference]: Without dead ends: 28 [2018-11-14 18:52:29,099 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 2 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-14 18:52:29,116 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2018-11-14 18:52:29,158 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 28. [2018-11-14 18:52:29,159 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:52:29,159 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 28 states. [2018-11-14 18:52:29,160 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 28 states. [2018-11-14 18:52:29,160 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 28 states. [2018-11-14 18:52:29,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:29,165 INFO L93 Difference]: Finished difference Result 28 states and 32 transitions. [2018-11-14 18:52:29,165 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 32 transitions. [2018-11-14 18:52:29,166 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:29,166 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:29,166 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 28 states. [2018-11-14 18:52:29,166 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 28 states. [2018-11-14 18:52:29,171 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:29,172 INFO L93 Difference]: Finished difference Result 28 states and 32 transitions. [2018-11-14 18:52:29,172 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 32 transitions. [2018-11-14 18:52:29,173 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:29,173 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:29,173 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:52:29,173 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:52:29,174 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2018-11-14 18:52:29,176 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 32 transitions. [2018-11-14 18:52:29,178 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 32 transitions. Word has length 16 [2018-11-14 18:52:29,179 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:52:29,179 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 32 transitions. [2018-11-14 18:52:29,179 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-14 18:52:29,179 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 32 transitions. [2018-11-14 18:52:29,180 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 18 [2018-11-14 18:52:29,180 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:52:29,180 INFO L375 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:52:29,180 INFO L423 AbstractCegarLoop]: === Iteration 2 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:52:29,181 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:52:29,181 INFO L82 PathProgramCache]: Analyzing trace with hash -1869615823, now seen corresponding path program 1 times [2018-11-14 18:52:29,181 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:52:29,181 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:52:29,183 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:29,183 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:29,183 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:29,212 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:29,510 INFO L256 TraceCheckUtils]: 0: Hoare triple {196#true} call ULTIMATE.init(); {196#true} is VALID [2018-11-14 18:52:29,510 INFO L273 TraceCheckUtils]: 1: Hoare triple {196#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {196#true} is VALID [2018-11-14 18:52:29,510 INFO L273 TraceCheckUtils]: 2: Hoare triple {196#true} assume true; {196#true} is VALID [2018-11-14 18:52:29,511 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {196#true} {196#true} #83#return; {196#true} is VALID [2018-11-14 18:52:29,511 INFO L256 TraceCheckUtils]: 4: Hoare triple {196#true} call #t~ret8 := main(); {196#true} is VALID [2018-11-14 18:52:29,511 INFO L273 TraceCheckUtils]: 5: Hoare triple {196#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {196#true} is VALID [2018-11-14 18:52:29,514 INFO L273 TraceCheckUtils]: 6: Hoare triple {196#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {198#(<= 2 ~SIZE~0)} is VALID [2018-11-14 18:52:29,518 INFO L273 TraceCheckUtils]: 7: Hoare triple {198#(<= 2 ~SIZE~0)} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {199#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= 2 ~SIZE~0))} is VALID [2018-11-14 18:52:29,519 INFO L273 TraceCheckUtils]: 8: Hoare triple {199#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= 2 ~SIZE~0))} assume true; {199#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= 2 ~SIZE~0))} is VALID [2018-11-14 18:52:29,521 INFO L273 TraceCheckUtils]: 9: Hoare triple {199#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= 2 ~SIZE~0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {197#false} is VALID [2018-11-14 18:52:29,522 INFO L273 TraceCheckUtils]: 10: Hoare triple {197#false} ~i~0 := 0; {197#false} is VALID [2018-11-14 18:52:29,522 INFO L273 TraceCheckUtils]: 11: Hoare triple {197#false} assume true; {197#false} is VALID [2018-11-14 18:52:29,522 INFO L273 TraceCheckUtils]: 12: Hoare triple {197#false} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {197#false} is VALID [2018-11-14 18:52:29,523 INFO L256 TraceCheckUtils]: 13: Hoare triple {197#false} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {197#false} is VALID [2018-11-14 18:52:29,523 INFO L273 TraceCheckUtils]: 14: Hoare triple {197#false} ~cond := #in~cond; {197#false} is VALID [2018-11-14 18:52:29,524 INFO L273 TraceCheckUtils]: 15: Hoare triple {197#false} assume ~cond == 0; {197#false} is VALID [2018-11-14 18:52:29,524 INFO L273 TraceCheckUtils]: 16: Hoare triple {197#false} assume !false; {197#false} is VALID [2018-11-14 18:52:29,526 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-14 18:52:29,527 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-14 18:52:29,527 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2018-11-14 18:52:29,529 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 17 [2018-11-14 18:52:29,529 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:52:29,529 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2018-11-14 18:52:29,719 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:29,719 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2018-11-14 18:52:29,720 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2018-11-14 18:52:29,720 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-14 18:52:29,720 INFO L87 Difference]: Start difference. First operand 28 states and 32 transitions. Second operand 4 states. [2018-11-14 18:52:30,255 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:30,255 INFO L93 Difference]: Finished difference Result 48 states and 56 transitions. [2018-11-14 18:52:30,255 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2018-11-14 18:52:30,256 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 17 [2018-11-14 18:52:30,256 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:52:30,256 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-14 18:52:30,260 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 56 transitions. [2018-11-14 18:52:30,260 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2018-11-14 18:52:30,264 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 56 transitions. [2018-11-14 18:52:30,264 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 56 transitions. [2018-11-14 18:52:30,389 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:30,392 INFO L225 Difference]: With dead ends: 48 [2018-11-14 18:52:30,393 INFO L226 Difference]: Without dead ends: 36 [2018-11-14 18:52:30,394 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 4 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2018-11-14 18:52:30,394 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2018-11-14 18:52:30,413 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 30. [2018-11-14 18:52:30,413 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:52:30,414 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 30 states. [2018-11-14 18:52:30,414 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 30 states. [2018-11-14 18:52:30,414 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 30 states. [2018-11-14 18:52:30,417 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:30,417 INFO L93 Difference]: Finished difference Result 36 states and 43 transitions. [2018-11-14 18:52:30,417 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 43 transitions. [2018-11-14 18:52:30,418 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:30,418 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:30,418 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 36 states. [2018-11-14 18:52:30,419 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 36 states. [2018-11-14 18:52:30,422 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:30,422 INFO L93 Difference]: Finished difference Result 36 states and 43 transitions. [2018-11-14 18:52:30,422 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 43 transitions. [2018-11-14 18:52:30,423 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:30,423 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:30,424 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:52:30,424 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:52:30,424 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2018-11-14 18:52:30,426 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 34 transitions. [2018-11-14 18:52:30,427 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 34 transitions. Word has length 17 [2018-11-14 18:52:30,427 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:52:30,427 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 34 transitions. [2018-11-14 18:52:30,427 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2018-11-14 18:52:30,427 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 34 transitions. [2018-11-14 18:52:30,428 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 26 [2018-11-14 18:52:30,428 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:52:30,429 INFO L375 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:52:30,429 INFO L423 AbstractCegarLoop]: === Iteration 3 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:52:30,429 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:52:30,429 INFO L82 PathProgramCache]: Analyzing trace with hash -1249925920, now seen corresponding path program 1 times [2018-11-14 18:52:30,430 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:52:30,430 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:52:30,431 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:30,431 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:30,431 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:30,474 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:31,581 INFO L256 TraceCheckUtils]: 0: Hoare triple {373#true} call ULTIMATE.init(); {373#true} is VALID [2018-11-14 18:52:31,581 INFO L273 TraceCheckUtils]: 1: Hoare triple {373#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {373#true} is VALID [2018-11-14 18:52:31,582 INFO L273 TraceCheckUtils]: 2: Hoare triple {373#true} assume true; {373#true} is VALID [2018-11-14 18:52:31,582 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {373#true} {373#true} #83#return; {373#true} is VALID [2018-11-14 18:52:31,583 INFO L256 TraceCheckUtils]: 4: Hoare triple {373#true} call #t~ret8 := main(); {373#true} is VALID [2018-11-14 18:52:31,583 INFO L273 TraceCheckUtils]: 5: Hoare triple {373#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {373#true} is VALID [2018-11-14 18:52:31,587 INFO L273 TraceCheckUtils]: 6: Hoare triple {373#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {375#(and (<= 2 ~SIZE~0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,588 INFO L273 TraceCheckUtils]: 7: Hoare triple {375#(and (<= 2 ~SIZE~0) (= |main_~#a~0.offset| 0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {376#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,589 INFO L273 TraceCheckUtils]: 8: Hoare triple {376#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} assume true; {376#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,590 INFO L273 TraceCheckUtils]: 9: Hoare triple {376#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {376#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,591 INFO L273 TraceCheckUtils]: 10: Hoare triple {376#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,592 INFO L273 TraceCheckUtils]: 11: Hoare triple {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,594 INFO L273 TraceCheckUtils]: 12: Hoare triple {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,595 INFO L273 TraceCheckUtils]: 13: Hoare triple {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,597 INFO L273 TraceCheckUtils]: 14: Hoare triple {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,599 INFO L273 TraceCheckUtils]: 15: Hoare triple {377#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 12) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {378#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (and (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 23) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,601 INFO L273 TraceCheckUtils]: 16: Hoare triple {378#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (and (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 23) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))) (= |main_~#a~0.offset| 0))} assume true; {378#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (and (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 23) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,603 INFO L273 TraceCheckUtils]: 17: Hoare triple {378#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (and (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 23) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:31,607 INFO L273 TraceCheckUtils]: 18: Hoare triple {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {380#(and (not (= main_~DEFAULTVAL~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-14 18:52:31,608 INFO L273 TraceCheckUtils]: 19: Hoare triple {380#(and (not (= main_~DEFAULTVAL~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 true; {380#(and (not (= main_~DEFAULTVAL~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-14 18:52:31,609 INFO L273 TraceCheckUtils]: 20: Hoare triple {380#(and (not (= main_~DEFAULTVAL~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~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {381#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} is VALID [2018-11-14 18:52:31,610 INFO L256 TraceCheckUtils]: 21: Hoare triple {381#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {382#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-14 18:52:31,610 INFO L273 TraceCheckUtils]: 22: Hoare triple {382#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {383#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-14 18:52:31,611 INFO L273 TraceCheckUtils]: 23: Hoare triple {383#(not (= __VERIFIER_assert_~cond 0))} assume ~cond == 0; {374#false} is VALID [2018-11-14 18:52:31,611 INFO L273 TraceCheckUtils]: 24: Hoare triple {374#false} assume !false; {374#false} is VALID [2018-11-14 18:52:31,618 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:52:31,618 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 18:52:31,618 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-14 18:52:31,641 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:31,684 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:31,719 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:31,725 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 18:52:32,062 INFO L477 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 16 treesize of output 13 [2018-11-14 18:52:32,107 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-14 18:52:32,109 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:32,115 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:32,143 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-14 18:52:32,143 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:27, output treesize:20 [2018-11-14 18:52:32,149 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:32,260 INFO L477 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-14 18:52:32,287 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:52:32,290 INFO L477 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 40 [2018-11-14 18:52:32,293 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:32,306 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:32,318 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-14 18:52:32,319 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:36, output treesize:20 [2018-11-14 18:52:32,324 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:32,376 INFO L477 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 22 treesize of output 17 [2018-11-14 18:52:32,390 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:52:32,392 INFO L477 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 17 treesize of output 24 [2018-11-14 18:52:32,395 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:32,406 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:32,416 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-14 18:52:32,417 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:25, output treesize:12 [2018-11-14 18:52:32,423 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:32,543 INFO L477 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 16 treesize of output 12 [2018-11-14 18:52:32,563 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 12 treesize of output 4 [2018-11-14 18:52:32,568 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:32,572 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:32,576 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-14 18:52:32,576 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:16, output treesize:4 [2018-11-14 18:52:32,587 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:32,813 INFO L256 TraceCheckUtils]: 0: Hoare triple {373#true} call ULTIMATE.init(); {373#true} is VALID [2018-11-14 18:52:32,814 INFO L273 TraceCheckUtils]: 1: Hoare triple {373#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {373#true} is VALID [2018-11-14 18:52:32,814 INFO L273 TraceCheckUtils]: 2: Hoare triple {373#true} assume true; {373#true} is VALID [2018-11-14 18:52:32,815 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {373#true} {373#true} #83#return; {373#true} is VALID [2018-11-14 18:52:32,815 INFO L256 TraceCheckUtils]: 4: Hoare triple {373#true} call #t~ret8 := main(); {373#true} is VALID [2018-11-14 18:52:32,816 INFO L273 TraceCheckUtils]: 5: Hoare triple {373#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {373#true} is VALID [2018-11-14 18:52:32,818 INFO L273 TraceCheckUtils]: 6: Hoare triple {373#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {405#(= |main_~#a~0.offset| 0)} is VALID [2018-11-14 18:52:32,818 INFO L273 TraceCheckUtils]: 7: Hoare triple {405#(= |main_~#a~0.offset| 0)} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {409#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,820 INFO L273 TraceCheckUtils]: 8: Hoare triple {409#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume true; {409#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,821 INFO L273 TraceCheckUtils]: 9: Hoare triple {409#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {409#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,823 INFO L273 TraceCheckUtils]: 10: Hoare triple {409#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {419#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,824 INFO L273 TraceCheckUtils]: 11: Hoare triple {419#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= |main_~#a~0.offset| 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {419#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,825 INFO L273 TraceCheckUtils]: 12: Hoare triple {419#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {419#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,826 INFO L273 TraceCheckUtils]: 13: Hoare triple {419#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= |main_~#a~0.offset| 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {419#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,827 INFO L273 TraceCheckUtils]: 14: Hoare triple {419#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))))) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,828 INFO L273 TraceCheckUtils]: 15: Hoare triple {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,828 INFO L273 TraceCheckUtils]: 16: Hoare triple {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} assume true; {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,829 INFO L273 TraceCheckUtils]: 17: Hoare triple {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:32,830 INFO L273 TraceCheckUtils]: 18: Hoare triple {379#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) 0))) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {380#(and (not (= main_~DEFAULTVAL~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-14 18:52:32,832 INFO L273 TraceCheckUtils]: 19: Hoare triple {380#(and (not (= main_~DEFAULTVAL~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 true; {380#(and (not (= main_~DEFAULTVAL~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-14 18:52:32,833 INFO L273 TraceCheckUtils]: 20: Hoare triple {380#(and (not (= main_~DEFAULTVAL~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~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {381#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} is VALID [2018-11-14 18:52:32,834 INFO L256 TraceCheckUtils]: 21: Hoare triple {381#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {453#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 18:52:32,835 INFO L273 TraceCheckUtils]: 22: Hoare triple {453#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {457#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-14 18:52:32,836 INFO L273 TraceCheckUtils]: 23: Hoare triple {457#(= 1 __VERIFIER_assert_~cond)} assume ~cond == 0; {374#false} is VALID [2018-11-14 18:52:32,836 INFO L273 TraceCheckUtils]: 24: Hoare triple {374#false} assume !false; {374#false} is VALID [2018-11-14 18:52:32,840 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:52:32,860 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 18:52:32,861 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 10] total 16 [2018-11-14 18:52:32,861 INFO L78 Accepts]: Start accepts. Automaton has 16 states. Word has length 25 [2018-11-14 18:52:32,863 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:52:32,863 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 16 states. [2018-11-14 18:52:32,924 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:32,925 INFO L459 AbstractCegarLoop]: Interpolant automaton has 16 states [2018-11-14 18:52:32,925 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2018-11-14 18:52:32,925 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=48, Invalid=192, Unknown=0, NotChecked=0, Total=240 [2018-11-14 18:52:32,926 INFO L87 Difference]: Start difference. First operand 30 states and 34 transitions. Second operand 16 states. [2018-11-14 18:52:35,088 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:35,089 INFO L93 Difference]: Finished difference Result 76 states and 93 transitions. [2018-11-14 18:52:35,089 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-14 18:52:35,089 INFO L78 Accepts]: Start accepts. Automaton has 16 states. Word has length 25 [2018-11-14 18:52:35,089 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:52:35,090 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2018-11-14 18:52:35,095 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 93 transitions. [2018-11-14 18:52:35,095 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2018-11-14 18:52:35,100 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 93 transitions. [2018-11-14 18:52:35,100 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 93 transitions. [2018-11-14 18:52:35,330 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 93 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:35,334 INFO L225 Difference]: With dead ends: 76 [2018-11-14 18:52:35,335 INFO L226 Difference]: Without dead ends: 74 [2018-11-14 18:52:35,335 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 46 GetRequests, 21 SyntacticMatches, 4 SemanticMatches, 21 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 106 ImplicationChecksByTransitivity, 1.4s TimeCoverageRelationStatistics Valid=107, Invalid=399, Unknown=0, NotChecked=0, Total=506 [2018-11-14 18:52:35,336 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 74 states. [2018-11-14 18:52:35,429 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 74 to 46. [2018-11-14 18:52:35,429 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:52:35,429 INFO L82 GeneralOperation]: Start isEquivalent. First operand 74 states. Second operand 46 states. [2018-11-14 18:52:35,430 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 46 states. [2018-11-14 18:52:35,430 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 46 states. [2018-11-14 18:52:35,436 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:35,436 INFO L93 Difference]: Finished difference Result 74 states and 91 transitions. [2018-11-14 18:52:35,437 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 91 transitions. [2018-11-14 18:52:35,438 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:35,438 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:35,438 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 74 states. [2018-11-14 18:52:35,438 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 74 states. [2018-11-14 18:52:35,444 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:35,444 INFO L93 Difference]: Finished difference Result 74 states and 91 transitions. [2018-11-14 18:52:35,444 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 91 transitions. [2018-11-14 18:52:35,445 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:35,446 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:35,446 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:52:35,446 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:52:35,446 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 46 states. [2018-11-14 18:52:35,449 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 54 transitions. [2018-11-14 18:52:35,449 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 54 transitions. Word has length 25 [2018-11-14 18:52:35,449 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:52:35,450 INFO L480 AbstractCegarLoop]: Abstraction has 46 states and 54 transitions. [2018-11-14 18:52:35,450 INFO L481 AbstractCegarLoop]: Interpolant automaton has 16 states. [2018-11-14 18:52:35,450 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 54 transitions. [2018-11-14 18:52:35,451 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 26 [2018-11-14 18:52:35,451 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:52:35,451 INFO L375 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:52:35,452 INFO L423 AbstractCegarLoop]: === Iteration 4 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:52:35,452 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:52:35,452 INFO L82 PathProgramCache]: Analyzing trace with hash 1765177698, now seen corresponding path program 1 times [2018-11-14 18:52:35,452 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:52:35,452 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:52:35,453 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:35,453 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:35,454 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:35,479 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:35,938 WARN L179 SmtUtils]: Spent 159.00 ms on a formula simplification. DAG size of input: 57 DAG size of output: 34 [2018-11-14 18:52:36,136 WARN L179 SmtUtils]: Spent 147.00 ms on a formula simplification. DAG size of input: 57 DAG size of output: 37 [2018-11-14 18:52:36,848 WARN L179 SmtUtils]: Spent 211.00 ms on a formula simplification. DAG size of input: 48 DAG size of output: 31 [2018-11-14 18:52:37,009 INFO L256 TraceCheckUtils]: 0: Hoare triple {777#true} call ULTIMATE.init(); {777#true} is VALID [2018-11-14 18:52:37,009 INFO L273 TraceCheckUtils]: 1: Hoare triple {777#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {777#true} is VALID [2018-11-14 18:52:37,010 INFO L273 TraceCheckUtils]: 2: Hoare triple {777#true} assume true; {777#true} is VALID [2018-11-14 18:52:37,010 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {777#true} {777#true} #83#return; {777#true} is VALID [2018-11-14 18:52:37,010 INFO L256 TraceCheckUtils]: 4: Hoare triple {777#true} call #t~ret8 := main(); {777#true} is VALID [2018-11-14 18:52:37,010 INFO L273 TraceCheckUtils]: 5: Hoare triple {777#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {777#true} is VALID [2018-11-14 18:52:37,011 INFO L273 TraceCheckUtils]: 6: Hoare triple {777#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {779#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (<= 2 ~SIZE~0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,012 INFO L273 TraceCheckUtils]: 7: Hoare triple {779#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (<= 2 ~SIZE~0) (= |main_~#a~0.offset| 0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {780#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,013 INFO L273 TraceCheckUtils]: 8: Hoare triple {780#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} assume true; {780#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,014 INFO L273 TraceCheckUtils]: 9: Hoare triple {780#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {780#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,016 INFO L273 TraceCheckUtils]: 10: Hoare triple {780#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,017 INFO L273 TraceCheckUtils]: 11: Hoare triple {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,019 INFO L273 TraceCheckUtils]: 12: Hoare triple {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,020 INFO L273 TraceCheckUtils]: 13: Hoare triple {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,022 INFO L273 TraceCheckUtils]: 14: Hoare triple {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,024 INFO L273 TraceCheckUtils]: 15: Hoare triple {781#(and (or (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 11) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0)) (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12))) main_~DEFAULTVAL~0)) (not (= 12 (+ (* 12 main_~i~0) |main_~#a~0.offset|)))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {782#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) 0) main_~DEFAULTVAL~0)) (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 23) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,025 INFO L273 TraceCheckUtils]: 16: Hoare triple {782#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) 0) main_~DEFAULTVAL~0)) (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 23) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} assume true; {782#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) 0) main_~DEFAULTVAL~0)) (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 23) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,027 INFO L273 TraceCheckUtils]: 17: Hoare triple {782#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) 0) main_~DEFAULTVAL~0)) (and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (+ (* 12 main_~i~0) |main_~#a~0.offset|) 23) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))) (or (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= 0 ~SIZE~0)) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {783#(and (not (= (select (select |#memory_int| |main_~#a~0.base|) 0) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,028 INFO L273 TraceCheckUtils]: 18: Hoare triple {783#(and (not (= (select (select |#memory_int| |main_~#a~0.base|) 0) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {784#(and (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0)) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,029 INFO L273 TraceCheckUtils]: 19: Hoare triple {784#(and (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0)) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume true; {784#(and (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0)) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:37,030 INFO L273 TraceCheckUtils]: 20: Hoare triple {784#(and (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0)) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {785#(not (= |main_#t~mem7| main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:52:37,031 INFO L256 TraceCheckUtils]: 21: Hoare triple {785#(not (= |main_#t~mem7| main_~DEFAULTVAL~0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {786#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-14 18:52:37,032 INFO L273 TraceCheckUtils]: 22: Hoare triple {786#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {787#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-14 18:52:37,038 INFO L273 TraceCheckUtils]: 23: Hoare triple {787#(not (= __VERIFIER_assert_~cond 0))} assume ~cond == 0; {778#false} is VALID [2018-11-14 18:52:37,039 INFO L273 TraceCheckUtils]: 24: Hoare triple {778#false} assume !false; {778#false} is VALID [2018-11-14 18:52:37,043 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:52:37,044 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 18:52:37,044 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-14 18:52:37,063 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:37,090 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:37,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:37,102 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 18:52:37,199 INFO L477 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 16 treesize of output 13 [2018-11-14 18:52:37,203 INFO L477 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 13 treesize of output 12 [2018-11-14 18:52:37,207 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:37,210 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:37,235 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-14 18:52:37,235 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:29, output treesize:22 [2018-11-14 18:52:37,238 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:37,287 INFO L477 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 29 treesize of output 24 [2018-11-14 18:52:37,294 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:52:37,296 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 39 [2018-11-14 18:52:37,298 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:37,304 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:37,316 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-14 18:52:37,316 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:38, output treesize:22 [2018-11-14 18:52:37,320 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:37,343 INFO L477 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 21 treesize of output 16 [2018-11-14 18:52:37,356 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:52:37,364 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 23 [2018-11-14 18:52:37,367 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:37,383 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:37,397 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-14 18:52:37,397 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:27, output treesize:14 [2018-11-14 18:52:37,402 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:37,552 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 11 [2018-11-14 18:52:37,559 INFO L477 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 11 treesize of output 7 [2018-11-14 18:52:37,567 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:37,570 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:37,580 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-14 18:52:37,580 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:18, output treesize:7 [2018-11-14 18:52:37,581 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:37,761 INFO L256 TraceCheckUtils]: 0: Hoare triple {777#true} call ULTIMATE.init(); {777#true} is VALID [2018-11-14 18:52:37,762 INFO L273 TraceCheckUtils]: 1: Hoare triple {777#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {777#true} is VALID [2018-11-14 18:52:37,762 INFO L273 TraceCheckUtils]: 2: Hoare triple {777#true} assume true; {777#true} is VALID [2018-11-14 18:52:37,762 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {777#true} {777#true} #83#return; {777#true} is VALID [2018-11-14 18:52:37,763 INFO L256 TraceCheckUtils]: 4: Hoare triple {777#true} call #t~ret8 := main(); {777#true} is VALID [2018-11-14 18:52:37,763 INFO L273 TraceCheckUtils]: 5: Hoare triple {777#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {777#true} is VALID [2018-11-14 18:52:37,768 INFO L273 TraceCheckUtils]: 6: Hoare triple {777#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {809#(and (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,771 INFO L273 TraceCheckUtils]: 7: Hoare triple {809#(and (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {813#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,771 INFO L273 TraceCheckUtils]: 8: Hoare triple {813#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {813#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,773 INFO L273 TraceCheckUtils]: 9: Hoare triple {813#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {813#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,774 INFO L273 TraceCheckUtils]: 10: Hoare triple {813#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {823#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,775 INFO L273 TraceCheckUtils]: 11: Hoare triple {823#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {823#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,776 INFO L273 TraceCheckUtils]: 12: Hoare triple {823#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {823#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,793 INFO L273 TraceCheckUtils]: 13: Hoare triple {823#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {823#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,794 INFO L273 TraceCheckUtils]: 14: Hoare triple {823#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 12)))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {836#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,794 INFO L273 TraceCheckUtils]: 15: Hoare triple {836#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {836#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,795 INFO L273 TraceCheckUtils]: 16: Hoare triple {836#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {836#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,796 INFO L273 TraceCheckUtils]: 17: Hoare triple {836#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {836#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,797 INFO L273 TraceCheckUtils]: 18: Hoare triple {836#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} ~i~0 := 0; {849#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,799 INFO L273 TraceCheckUtils]: 19: Hoare triple {849#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {849#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,803 INFO L273 TraceCheckUtils]: 20: Hoare triple {849#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) |main_~#a~0.offset|)) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {856#(and (<= 10 |main_#t~mem7|) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:37,804 INFO L256 TraceCheckUtils]: 21: Hoare triple {856#(and (<= 10 |main_#t~mem7|) (<= main_~DEFAULTVAL~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {860#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 18:52:37,804 INFO L273 TraceCheckUtils]: 22: Hoare triple {860#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {864#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-14 18:52:37,805 INFO L273 TraceCheckUtils]: 23: Hoare triple {864#(= 1 __VERIFIER_assert_~cond)} assume ~cond == 0; {778#false} is VALID [2018-11-14 18:52:37,805 INFO L273 TraceCheckUtils]: 24: Hoare triple {778#false} assume !false; {778#false} is VALID [2018-11-14 18:52:37,807 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:52:37,828 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 18:52:37,828 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 10] total 19 [2018-11-14 18:52:37,828 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 25 [2018-11-14 18:52:37,829 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:52:37,829 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states. [2018-11-14 18:52:37,888 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:37,888 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2018-11-14 18:52:37,888 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2018-11-14 18:52:37,889 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=47, Invalid=295, Unknown=0, NotChecked=0, Total=342 [2018-11-14 18:52:37,889 INFO L87 Difference]: Start difference. First operand 46 states and 54 transitions. Second operand 19 states. [2018-11-14 18:52:40,835 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:40,835 INFO L93 Difference]: Finished difference Result 97 states and 118 transitions. [2018-11-14 18:52:40,835 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2018-11-14 18:52:40,835 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 25 [2018-11-14 18:52:40,836 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:52:40,836 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-14 18:52:40,840 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 98 transitions. [2018-11-14 18:52:40,844 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-14 18:52:40,851 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 98 transitions. [2018-11-14 18:52:40,851 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states and 98 transitions. [2018-11-14 18:52:41,047 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 98 edges. 98 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:41,053 INFO L225 Difference]: With dead ends: 97 [2018-11-14 18:52:41,053 INFO L226 Difference]: Without dead ends: 95 [2018-11-14 18:52:41,054 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 50 GetRequests, 20 SyntacticMatches, 2 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 123 ImplicationChecksByTransitivity, 2.1s TimeCoverageRelationStatistics Valid=159, Invalid=711, Unknown=0, NotChecked=0, Total=870 [2018-11-14 18:52:41,054 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 95 states. [2018-11-14 18:52:41,154 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 95 to 37. [2018-11-14 18:52:41,155 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:52:41,155 INFO L82 GeneralOperation]: Start isEquivalent. First operand 95 states. Second operand 37 states. [2018-11-14 18:52:41,155 INFO L74 IsIncluded]: Start isIncluded. First operand 95 states. Second operand 37 states. [2018-11-14 18:52:41,155 INFO L87 Difference]: Start difference. First operand 95 states. Second operand 37 states. [2018-11-14 18:52:41,161 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:41,161 INFO L93 Difference]: Finished difference Result 95 states and 116 transitions. [2018-11-14 18:52:41,161 INFO L276 IsEmpty]: Start isEmpty. Operand 95 states and 116 transitions. [2018-11-14 18:52:41,163 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:41,163 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:41,163 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 95 states. [2018-11-14 18:52:41,163 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 95 states. [2018-11-14 18:52:41,168 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:41,169 INFO L93 Difference]: Finished difference Result 95 states and 116 transitions. [2018-11-14 18:52:41,169 INFO L276 IsEmpty]: Start isEmpty. Operand 95 states and 116 transitions. [2018-11-14 18:52:41,170 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:41,170 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:41,170 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:52:41,170 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:52:41,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2018-11-14 18:52:41,172 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 41 transitions. [2018-11-14 18:52:41,173 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 41 transitions. Word has length 25 [2018-11-14 18:52:41,173 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:52:41,173 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 41 transitions. [2018-11-14 18:52:41,173 INFO L481 AbstractCegarLoop]: Interpolant automaton has 19 states. [2018-11-14 18:52:41,173 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 41 transitions. [2018-11-14 18:52:41,174 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2018-11-14 18:52:41,174 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:52:41,174 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:52:41,175 INFO L423 AbstractCegarLoop]: === Iteration 5 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:52:41,175 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:52:41,175 INFO L82 PathProgramCache]: Analyzing trace with hash -5809233, now seen corresponding path program 1 times [2018-11-14 18:52:41,175 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:52:41,175 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:52:41,176 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:41,176 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:41,176 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:41,194 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:41,798 INFO L256 TraceCheckUtils]: 0: Hoare triple {1253#true} call ULTIMATE.init(); {1253#true} is VALID [2018-11-14 18:52:41,799 INFO L273 TraceCheckUtils]: 1: Hoare triple {1253#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {1253#true} is VALID [2018-11-14 18:52:41,799 INFO L273 TraceCheckUtils]: 2: Hoare triple {1253#true} assume true; {1253#true} is VALID [2018-11-14 18:52:41,800 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1253#true} {1253#true} #83#return; {1253#true} is VALID [2018-11-14 18:52:41,800 INFO L256 TraceCheckUtils]: 4: Hoare triple {1253#true} call #t~ret8 := main(); {1253#true} is VALID [2018-11-14 18:52:41,800 INFO L273 TraceCheckUtils]: 5: Hoare triple {1253#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1253#true} is VALID [2018-11-14 18:52:41,801 INFO L273 TraceCheckUtils]: 6: Hoare triple {1253#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {1255#(<= 2 ~SIZE~0)} is VALID [2018-11-14 18:52:41,802 INFO L273 TraceCheckUtils]: 7: Hoare triple {1255#(<= 2 ~SIZE~0)} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,803 INFO L273 TraceCheckUtils]: 8: Hoare triple {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume true; {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,803 INFO L273 TraceCheckUtils]: 9: Hoare triple {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,804 INFO L273 TraceCheckUtils]: 10: Hoare triple {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,805 INFO L273 TraceCheckUtils]: 11: Hoare triple {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,807 INFO L273 TraceCheckUtils]: 12: Hoare triple {1256#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {1257#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,808 INFO L273 TraceCheckUtils]: 13: Hoare triple {1257#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {1257#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,809 INFO L273 TraceCheckUtils]: 14: Hoare triple {1257#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {1257#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,811 INFO L273 TraceCheckUtils]: 15: Hoare triple {1257#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {1258#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (<= (* 3 main_~i~0) 5)) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (* 3 main_~i~0) 6) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,812 INFO L273 TraceCheckUtils]: 16: Hoare triple {1258#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (<= (* 3 main_~i~0) 5)) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (* 3 main_~i~0) 6) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume true; {1258#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (<= (* 3 main_~i~0) 5)) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (* 3 main_~i~0) 6) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,814 INFO L273 TraceCheckUtils]: 17: Hoare triple {1258#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (<= (* 3 main_~i~0) 5)) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (* 3 main_~i~0) 6) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {1259#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:41,815 INFO L273 TraceCheckUtils]: 18: Hoare triple {1259#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} ~i~0 := 0; {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:41,817 INFO L273 TraceCheckUtils]: 19: Hoare triple {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} assume true; {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:41,818 INFO L273 TraceCheckUtils]: 20: Hoare triple {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:41,818 INFO L256 TraceCheckUtils]: 21: Hoare triple {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {1253#true} is VALID [2018-11-14 18:52:41,819 INFO L273 TraceCheckUtils]: 22: Hoare triple {1253#true} ~cond := #in~cond; {1253#true} is VALID [2018-11-14 18:52:41,819 INFO L273 TraceCheckUtils]: 23: Hoare triple {1253#true} assume !(~cond == 0); {1253#true} is VALID [2018-11-14 18:52:41,819 INFO L273 TraceCheckUtils]: 24: Hoare triple {1253#true} assume true; {1253#true} is VALID [2018-11-14 18:52:41,821 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1253#true} {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} #81#return; {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:41,822 INFO L273 TraceCheckUtils]: 26: Hoare triple {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} havoc #t~mem7; {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:41,823 INFO L273 TraceCheckUtils]: 27: Hoare triple {1260#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {1261#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))))} is VALID [2018-11-14 18:52:41,824 INFO L273 TraceCheckUtils]: 28: Hoare triple {1261#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))))} assume true; {1261#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))))} is VALID [2018-11-14 18:52:41,825 INFO L273 TraceCheckUtils]: 29: Hoare triple {1261#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1262#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} is VALID [2018-11-14 18:52:41,826 INFO L256 TraceCheckUtils]: 30: Hoare triple {1262#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {1263#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-14 18:52:41,827 INFO L273 TraceCheckUtils]: 31: Hoare triple {1263#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {1264#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-14 18:52:41,828 INFO L273 TraceCheckUtils]: 32: Hoare triple {1264#(not (= __VERIFIER_assert_~cond 0))} assume ~cond == 0; {1254#false} is VALID [2018-11-14 18:52:41,828 INFO L273 TraceCheckUtils]: 33: Hoare triple {1254#false} assume !false; {1254#false} is VALID [2018-11-14 18:52:41,836 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 2 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:52:41,836 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 18:52:41,836 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-14 18:52:41,846 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:41,876 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:41,898 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:41,901 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 18:52:41,992 INFO L477 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 16 treesize of output 13 [2018-11-14 18:52:42,003 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-14 18:52:42,005 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:42,009 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:42,023 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-14 18:52:42,024 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:27, output treesize:20 [2018-11-14 18:52:42,030 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:42,074 INFO L477 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 24 treesize of output 19 [2018-11-14 18:52:42,082 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:52:42,083 INFO L477 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 19 treesize of output 28 [2018-11-14 18:52:42,086 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:42,093 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:42,103 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-14 18:52:42,103 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:27, output treesize:14 [2018-11-14 18:52:42,106 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:42,231 INFO L477 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 16 treesize of output 12 [2018-11-14 18:52:42,237 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 12 treesize of output 4 [2018-11-14 18:52:42,239 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:42,241 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:42,243 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-14 18:52:42,243 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:16, output treesize:4 [2018-11-14 18:52:42,248 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:42,293 INFO L256 TraceCheckUtils]: 0: Hoare triple {1253#true} call ULTIMATE.init(); {1253#true} is VALID [2018-11-14 18:52:42,294 INFO L273 TraceCheckUtils]: 1: Hoare triple {1253#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {1253#true} is VALID [2018-11-14 18:52:42,294 INFO L273 TraceCheckUtils]: 2: Hoare triple {1253#true} assume true; {1253#true} is VALID [2018-11-14 18:52:42,294 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1253#true} {1253#true} #83#return; {1253#true} is VALID [2018-11-14 18:52:42,294 INFO L256 TraceCheckUtils]: 4: Hoare triple {1253#true} call #t~ret8 := main(); {1253#true} is VALID [2018-11-14 18:52:42,294 INFO L273 TraceCheckUtils]: 5: Hoare triple {1253#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1253#true} is VALID [2018-11-14 18:52:42,295 INFO L273 TraceCheckUtils]: 6: Hoare triple {1253#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {1286#(= |main_~#a~0.offset| 0)} is VALID [2018-11-14 18:52:42,296 INFO L273 TraceCheckUtils]: 7: Hoare triple {1286#(= |main_~#a~0.offset| 0)} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,296 INFO L273 TraceCheckUtils]: 8: Hoare triple {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume true; {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,297 INFO L273 TraceCheckUtils]: 9: Hoare triple {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,297 INFO L273 TraceCheckUtils]: 10: Hoare triple {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,298 INFO L273 TraceCheckUtils]: 11: Hoare triple {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,299 INFO L273 TraceCheckUtils]: 12: Hoare triple {1290#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {1306#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,300 INFO L273 TraceCheckUtils]: 13: Hoare triple {1306#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {1306#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,302 INFO L273 TraceCheckUtils]: 14: Hoare triple {1306#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {1313#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,303 INFO L273 TraceCheckUtils]: 15: Hoare triple {1313#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {1313#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,304 INFO L273 TraceCheckUtils]: 16: Hoare triple {1313#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume true; {1313#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,305 INFO L273 TraceCheckUtils]: 17: Hoare triple {1313#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {1313#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,306 INFO L273 TraceCheckUtils]: 18: Hoare triple {1313#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,307 INFO L273 TraceCheckUtils]: 19: Hoare triple {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume true; {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,308 INFO L273 TraceCheckUtils]: 20: Hoare triple {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,308 INFO L256 TraceCheckUtils]: 21: Hoare triple {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {1253#true} is VALID [2018-11-14 18:52:42,308 INFO L273 TraceCheckUtils]: 22: Hoare triple {1253#true} ~cond := #in~cond; {1253#true} is VALID [2018-11-14 18:52:42,309 INFO L273 TraceCheckUtils]: 23: Hoare triple {1253#true} assume !(~cond == 0); {1253#true} is VALID [2018-11-14 18:52:42,309 INFO L273 TraceCheckUtils]: 24: Hoare triple {1253#true} assume true; {1253#true} is VALID [2018-11-14 18:52:42,311 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1253#true} {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #81#return; {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,312 INFO L273 TraceCheckUtils]: 26: Hoare triple {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem7; {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,314 INFO L273 TraceCheckUtils]: 27: Hoare triple {1326#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {1306#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,315 INFO L273 TraceCheckUtils]: 28: Hoare triple {1306#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} assume true; {1306#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:52:42,316 INFO L273 TraceCheckUtils]: 29: Hoare triple {1306#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1262#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} is VALID [2018-11-14 18:52:42,317 INFO L256 TraceCheckUtils]: 30: Hoare triple {1262#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {1363#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 18:52:42,318 INFO L273 TraceCheckUtils]: 31: Hoare triple {1363#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {1367#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-14 18:52:42,319 INFO L273 TraceCheckUtils]: 32: Hoare triple {1367#(= 1 __VERIFIER_assert_~cond)} assume ~cond == 0; {1254#false} is VALID [2018-11-14 18:52:42,320 INFO L273 TraceCheckUtils]: 33: Hoare triple {1254#false} assume !false; {1254#false} is VALID [2018-11-14 18:52:42,326 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 2 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:52:42,347 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 18:52:42,348 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 10] total 19 [2018-11-14 18:52:42,348 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 34 [2018-11-14 18:52:42,348 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:52:42,349 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states. [2018-11-14 18:52:42,435 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:42,436 INFO L459 AbstractCegarLoop]: Interpolant automaton has 19 states [2018-11-14 18:52:42,436 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2018-11-14 18:52:42,436 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=287, Unknown=0, NotChecked=0, Total=342 [2018-11-14 18:52:42,437 INFO L87 Difference]: Start difference. First operand 37 states and 41 transitions. Second operand 19 states. [2018-11-14 18:52:45,414 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:45,414 INFO L93 Difference]: Finished difference Result 108 states and 131 transitions. [2018-11-14 18:52:45,414 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 20 states. [2018-11-14 18:52:45,414 INFO L78 Accepts]: Start accepts. Automaton has 19 states. Word has length 34 [2018-11-14 18:52:45,415 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:52:45,415 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-14 18:52:45,419 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 124 transitions. [2018-11-14 18:52:45,419 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 19 states. [2018-11-14 18:52:45,423 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 124 transitions. [2018-11-14 18:52:45,423 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states and 124 transitions. [2018-11-14 18:52:45,653 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 124 edges. 124 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:52:45,658 INFO L225 Difference]: With dead ends: 108 [2018-11-14 18:52:45,658 INFO L226 Difference]: Without dead ends: 106 [2018-11-14 18:52:45,659 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 64 GetRequests, 28 SyntacticMatches, 2 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 298 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=235, Invalid=1025, Unknown=0, NotChecked=0, Total=1260 [2018-11-14 18:52:45,660 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 106 states. [2018-11-14 18:52:45,901 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 106 to 58. [2018-11-14 18:52:45,901 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:52:45,901 INFO L82 GeneralOperation]: Start isEquivalent. First operand 106 states. Second operand 58 states. [2018-11-14 18:52:45,902 INFO L74 IsIncluded]: Start isIncluded. First operand 106 states. Second operand 58 states. [2018-11-14 18:52:45,902 INFO L87 Difference]: Start difference. First operand 106 states. Second operand 58 states. [2018-11-14 18:52:45,907 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:45,907 INFO L93 Difference]: Finished difference Result 106 states and 129 transitions. [2018-11-14 18:52:45,907 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 129 transitions. [2018-11-14 18:52:45,908 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:45,908 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:45,909 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 106 states. [2018-11-14 18:52:45,909 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 106 states. [2018-11-14 18:52:45,913 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:52:45,914 INFO L93 Difference]: Finished difference Result 106 states and 129 transitions. [2018-11-14 18:52:45,914 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 129 transitions. [2018-11-14 18:52:45,915 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:52:45,915 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:52:45,915 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:52:45,915 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:52:45,915 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 58 states. [2018-11-14 18:52:45,918 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 67 transitions. [2018-11-14 18:52:45,918 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 67 transitions. Word has length 34 [2018-11-14 18:52:45,918 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:52:45,918 INFO L480 AbstractCegarLoop]: Abstraction has 58 states and 67 transitions. [2018-11-14 18:52:45,918 INFO L481 AbstractCegarLoop]: Interpolant automaton has 19 states. [2018-11-14 18:52:45,919 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 67 transitions. [2018-11-14 18:52:45,919 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2018-11-14 18:52:45,919 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:52:45,920 INFO L375 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:52:45,920 INFO L423 AbstractCegarLoop]: === Iteration 6 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:52:45,920 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:52:45,920 INFO L82 PathProgramCache]: Analyzing trace with hash 213045485, now seen corresponding path program 1 times [2018-11-14 18:52:45,920 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:52:45,921 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:52:45,921 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:45,921 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:45,921 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:52:45,936 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:46,821 INFO L256 TraceCheckUtils]: 0: Hoare triple {1832#true} call ULTIMATE.init(); {1832#true} is VALID [2018-11-14 18:52:46,822 INFO L273 TraceCheckUtils]: 1: Hoare triple {1832#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {1832#true} is VALID [2018-11-14 18:52:46,822 INFO L273 TraceCheckUtils]: 2: Hoare triple {1832#true} assume true; {1832#true} is VALID [2018-11-14 18:52:46,822 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1832#true} {1832#true} #83#return; {1832#true} is VALID [2018-11-14 18:52:46,823 INFO L256 TraceCheckUtils]: 4: Hoare triple {1832#true} call #t~ret8 := main(); {1832#true} is VALID [2018-11-14 18:52:46,823 INFO L273 TraceCheckUtils]: 5: Hoare triple {1832#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1832#true} is VALID [2018-11-14 18:52:46,828 INFO L273 TraceCheckUtils]: 6: Hoare triple {1832#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {1834#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (<= 2 ~SIZE~0))} is VALID [2018-11-14 18:52:46,830 INFO L273 TraceCheckUtils]: 7: Hoare triple {1834#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (<= 2 ~SIZE~0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,830 INFO L273 TraceCheckUtils]: 8: Hoare triple {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume true; {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,831 INFO L273 TraceCheckUtils]: 9: Hoare triple {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,832 INFO L273 TraceCheckUtils]: 10: Hoare triple {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,833 INFO L273 TraceCheckUtils]: 11: Hoare triple {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,835 INFO L273 TraceCheckUtils]: 12: Hoare triple {1835#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {1836#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,844 INFO L273 TraceCheckUtils]: 13: Hoare triple {1836#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {1836#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,846 INFO L273 TraceCheckUtils]: 14: Hoare triple {1836#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {1836#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,847 INFO L273 TraceCheckUtils]: 15: Hoare triple {1836#(and (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {1837#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (* 3 main_~i~0) 6) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (<= (* 3 main_~i~0) 5)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,847 INFO L273 TraceCheckUtils]: 16: Hoare triple {1837#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (* 3 main_~i~0) 6) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (<= (* 3 main_~i~0) 5)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume true; {1837#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (* 3 main_~i~0) 6) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (<= (* 3 main_~i~0) 5)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,848 INFO L273 TraceCheckUtils]: 17: Hoare triple {1837#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (<= (* 3 main_~i~0) 6) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (<= (* 3 main_~i~0) 5)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {1838#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} is VALID [2018-11-14 18:52:46,849 INFO L273 TraceCheckUtils]: 18: Hoare triple {1838#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0))} ~i~0 := 0; {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:46,850 INFO L273 TraceCheckUtils]: 19: Hoare triple {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} assume true; {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:46,851 INFO L273 TraceCheckUtils]: 20: Hoare triple {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:46,852 INFO L256 TraceCheckUtils]: 21: Hoare triple {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {1832#true} is VALID [2018-11-14 18:52:46,852 INFO L273 TraceCheckUtils]: 22: Hoare triple {1832#true} ~cond := #in~cond; {1832#true} is VALID [2018-11-14 18:52:46,853 INFO L273 TraceCheckUtils]: 23: Hoare triple {1832#true} assume !(~cond == 0); {1832#true} is VALID [2018-11-14 18:52:46,853 INFO L273 TraceCheckUtils]: 24: Hoare triple {1832#true} assume true; {1832#true} is VALID [2018-11-14 18:52:46,854 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1832#true} {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} #81#return; {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:46,855 INFO L273 TraceCheckUtils]: 26: Hoare triple {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} havoc #t~mem7; {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} is VALID [2018-11-14 18:52:46,856 INFO L273 TraceCheckUtils]: 27: Hoare triple {1839#(and (<= (div (+ (* 3 ~SIZE~0) (+ (* (- 3) (div ~SIZE~0 3)) 1)) 2) 3) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)) (< (+ (div ~SIZE~0 3) 1) ~SIZE~0) (= main_~i~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {1840#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:52:46,856 INFO L273 TraceCheckUtils]: 28: Hoare triple {1840#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0))} assume true; {1840#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:52:46,857 INFO L273 TraceCheckUtils]: 29: Hoare triple {1840#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1841#(not (= |main_#t~mem7| main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:52:46,858 INFO L256 TraceCheckUtils]: 30: Hoare triple {1841#(not (= |main_#t~mem7| main_~DEFAULTVAL~0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {1842#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-14 18:52:46,859 INFO L273 TraceCheckUtils]: 31: Hoare triple {1842#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {1843#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-14 18:52:46,859 INFO L273 TraceCheckUtils]: 32: Hoare triple {1843#(not (= __VERIFIER_assert_~cond 0))} assume ~cond == 0; {1833#false} is VALID [2018-11-14 18:52:46,860 INFO L273 TraceCheckUtils]: 33: Hoare triple {1833#false} assume !false; {1833#false} is VALID [2018-11-14 18:52:46,866 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 2 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:52:46,866 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 18:52:46,867 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-14 18:52:46,883 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:52:46,900 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:46,928 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:52:46,930 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 18:52:47,146 INFO L477 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 16 treesize of output 13 [2018-11-14 18:52:47,152 INFO L477 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 13 treesize of output 12 [2018-11-14 18:52:47,154 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:47,157 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:47,170 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-14 18:52:47,170 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:29, output treesize:22 [2018-11-14 18:52:47,174 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:47,223 INFO L477 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 23 treesize of output 18 [2018-11-14 18:52:47,229 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:52:47,232 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 27 [2018-11-14 18:52:47,239 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:47,246 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:47,255 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-14 18:52:47,256 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:29, output treesize:16 [2018-11-14 18:52:47,261 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:47,538 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 11 [2018-11-14 18:52:47,544 INFO L477 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 11 treesize of output 7 [2018-11-14 18:52:47,550 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:52:47,551 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:52:47,555 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-14 18:52:47,555 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:18, output treesize:7 [2018-11-14 18:52:47,557 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:52:47,726 INFO L256 TraceCheckUtils]: 0: Hoare triple {1832#true} call ULTIMATE.init(); {1832#true} is VALID [2018-11-14 18:52:47,726 INFO L273 TraceCheckUtils]: 1: Hoare triple {1832#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {1832#true} is VALID [2018-11-14 18:52:47,726 INFO L273 TraceCheckUtils]: 2: Hoare triple {1832#true} assume true; {1832#true} is VALID [2018-11-14 18:52:47,726 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1832#true} {1832#true} #83#return; {1832#true} is VALID [2018-11-14 18:52:47,727 INFO L256 TraceCheckUtils]: 4: Hoare triple {1832#true} call #t~ret8 := main(); {1832#true} is VALID [2018-11-14 18:52:47,727 INFO L273 TraceCheckUtils]: 5: Hoare triple {1832#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {1832#true} is VALID [2018-11-14 18:52:47,727 INFO L273 TraceCheckUtils]: 6: Hoare triple {1832#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {1865#(and (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,732 INFO L273 TraceCheckUtils]: 7: Hoare triple {1865#(and (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,732 INFO L273 TraceCheckUtils]: 8: Hoare triple {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,734 INFO L273 TraceCheckUtils]: 9: Hoare triple {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,734 INFO L273 TraceCheckUtils]: 10: Hoare triple {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,736 INFO L273 TraceCheckUtils]: 11: Hoare triple {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,737 INFO L273 TraceCheckUtils]: 12: Hoare triple {1869#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {1885#(and (= main_~i~0 1) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,738 INFO L273 TraceCheckUtils]: 13: Hoare triple {1885#(and (= main_~i~0 1) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {1885#(and (= main_~i~0 1) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,740 INFO L273 TraceCheckUtils]: 14: Hoare triple {1885#(and (= main_~i~0 1) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {1892#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,740 INFO L273 TraceCheckUtils]: 15: Hoare triple {1892#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {1892#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,742 INFO L273 TraceCheckUtils]: 16: Hoare triple {1892#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {1892#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,748 INFO L273 TraceCheckUtils]: 17: Hoare triple {1892#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {1892#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,750 INFO L273 TraceCheckUtils]: 18: Hoare triple {1892#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} ~i~0 := 0; {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,752 INFO L273 TraceCheckUtils]: 19: Hoare triple {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,756 INFO L273 TraceCheckUtils]: 20: Hoare triple {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,770 INFO L256 TraceCheckUtils]: 21: Hoare triple {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {1915#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) 4)))} is VALID [2018-11-14 18:52:47,772 INFO L273 TraceCheckUtils]: 22: Hoare triple {1915#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) 4)))} ~cond := #in~cond; {1915#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) 4)))} is VALID [2018-11-14 18:52:47,773 INFO L273 TraceCheckUtils]: 23: Hoare triple {1915#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) 4)))} assume !(~cond == 0); {1915#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) 4)))} is VALID [2018-11-14 18:52:47,775 INFO L273 TraceCheckUtils]: 24: Hoare triple {1915#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) 4)))} assume true; {1915#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) 4)))} is VALID [2018-11-14 18:52:47,776 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1915#(exists ((|v_main_~#a~0.base_BEFORE_CALL_2| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_2|) 4)))} {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #81#return; {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,781 INFO L273 TraceCheckUtils]: 26: Hoare triple {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} havoc #t~mem7; {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,783 INFO L273 TraceCheckUtils]: 27: Hoare triple {1905#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {1885#(and (= main_~i~0 1) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,783 INFO L273 TraceCheckUtils]: 28: Hoare triple {1885#(and (= main_~i~0 1) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {1885#(and (= main_~i~0 1) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,786 INFO L273 TraceCheckUtils]: 29: Hoare triple {1885#(and (= main_~i~0 1) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {1940#(and (<= 10 |main_#t~mem7|) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:52:47,788 INFO L256 TraceCheckUtils]: 30: Hoare triple {1940#(and (<= 10 |main_#t~mem7|) (<= main_~DEFAULTVAL~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {1944#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 18:52:47,788 INFO L273 TraceCheckUtils]: 31: Hoare triple {1944#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {1948#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-14 18:52:47,791 INFO L273 TraceCheckUtils]: 32: Hoare triple {1948#(= 1 __VERIFIER_assert_~cond)} assume ~cond == 0; {1833#false} is VALID [2018-11-14 18:52:47,791 INFO L273 TraceCheckUtils]: 33: Hoare triple {1833#false} assume !false; {1833#false} is VALID [2018-11-14 18:52:47,794 INFO L134 CoverageAnalysis]: Checked inductivity of 7 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:52:47,814 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 18:52:47,815 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 11] total 21 [2018-11-14 18:52:47,815 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 34 [2018-11-14 18:52:47,815 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:52:47,815 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states. [2018-11-14 18:52:47,922 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-14 18:52:47,922 INFO L459 AbstractCegarLoop]: Interpolant automaton has 21 states [2018-11-14 18:52:47,923 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2018-11-14 18:52:47,923 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=366, Unknown=0, NotChecked=0, Total=420 [2018-11-14 18:52:47,923 INFO L87 Difference]: Start difference. First operand 58 states and 67 transitions. Second operand 21 states. [2018-11-14 18:53:05,708 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:05,709 INFO L93 Difference]: Finished difference Result 172 states and 205 transitions. [2018-11-14 18:53:05,709 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 29 states. [2018-11-14 18:53:05,709 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 34 [2018-11-14 18:53:05,709 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:53:05,709 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-14 18:53:05,714 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 165 transitions. [2018-11-14 18:53:05,714 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-14 18:53:05,718 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 165 transitions. [2018-11-14 18:53:05,718 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 29 states and 165 transitions. [2018-11-14 18:53:05,993 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 165 edges. 165 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:53:06,000 INFO L225 Difference]: With dead ends: 172 [2018-11-14 18:53:06,001 INFO L226 Difference]: Without dead ends: 170 [2018-11-14 18:53:06,002 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 71 GetRequests, 25 SyntacticMatches, 3 SemanticMatches, 43 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 444 ImplicationChecksByTransitivity, 2.2s TimeCoverageRelationStatistics Valid=342, Invalid=1638, Unknown=0, NotChecked=0, Total=1980 [2018-11-14 18:53:06,002 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 170 states. [2018-11-14 18:53:06,320 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 170 to 77. [2018-11-14 18:53:06,320 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:53:06,320 INFO L82 GeneralOperation]: Start isEquivalent. First operand 170 states. Second operand 77 states. [2018-11-14 18:53:06,320 INFO L74 IsIncluded]: Start isIncluded. First operand 170 states. Second operand 77 states. [2018-11-14 18:53:06,321 INFO L87 Difference]: Start difference. First operand 170 states. Second operand 77 states. [2018-11-14 18:53:06,328 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:06,329 INFO L93 Difference]: Finished difference Result 170 states and 203 transitions. [2018-11-14 18:53:06,329 INFO L276 IsEmpty]: Start isEmpty. Operand 170 states and 203 transitions. [2018-11-14 18:53:06,330 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:53:06,330 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:53:06,330 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 170 states. [2018-11-14 18:53:06,330 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 170 states. [2018-11-14 18:53:06,337 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:06,337 INFO L93 Difference]: Finished difference Result 170 states and 203 transitions. [2018-11-14 18:53:06,338 INFO L276 IsEmpty]: Start isEmpty. Operand 170 states and 203 transitions. [2018-11-14 18:53:06,338 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:53:06,338 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:53:06,339 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:53:06,339 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:53:06,339 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2018-11-14 18:53:06,342 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 92 transitions. [2018-11-14 18:53:06,342 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 92 transitions. Word has length 34 [2018-11-14 18:53:06,342 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:53:06,342 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 92 transitions. [2018-11-14 18:53:06,342 INFO L481 AbstractCegarLoop]: Interpolant automaton has 21 states. [2018-11-14 18:53:06,343 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 92 transitions. [2018-11-14 18:53:06,343 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2018-11-14 18:53:06,344 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:53:06,344 INFO L375 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:53:06,344 INFO L423 AbstractCegarLoop]: === Iteration 7 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:53:06,344 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:53:06,344 INFO L82 PathProgramCache]: Analyzing trace with hash 738299166, now seen corresponding path program 1 times [2018-11-14 18:53:06,345 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:53:06,345 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:53:06,345 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:53:06,346 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:53:06,346 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:53:06,362 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:53:06,747 INFO L256 TraceCheckUtils]: 0: Hoare triple {2660#true} call ULTIMATE.init(); {2660#true} is VALID [2018-11-14 18:53:06,747 INFO L273 TraceCheckUtils]: 1: Hoare triple {2660#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {2660#true} is VALID [2018-11-14 18:53:06,747 INFO L273 TraceCheckUtils]: 2: Hoare triple {2660#true} assume true; {2660#true} is VALID [2018-11-14 18:53:06,747 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2660#true} {2660#true} #83#return; {2660#true} is VALID [2018-11-14 18:53:06,747 INFO L256 TraceCheckUtils]: 4: Hoare triple {2660#true} call #t~ret8 := main(); {2660#true} is VALID [2018-11-14 18:53:06,747 INFO L273 TraceCheckUtils]: 5: Hoare triple {2660#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {2660#true} is VALID [2018-11-14 18:53:06,748 INFO L273 TraceCheckUtils]: 6: Hoare triple {2660#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {2660#true} is VALID [2018-11-14 18:53:06,748 INFO L273 TraceCheckUtils]: 7: Hoare triple {2660#true} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {2662#(= main_~i~0 1)} is VALID [2018-11-14 18:53:06,748 INFO L273 TraceCheckUtils]: 8: Hoare triple {2662#(= main_~i~0 1)} assume true; {2662#(= main_~i~0 1)} is VALID [2018-11-14 18:53:06,749 INFO L273 TraceCheckUtils]: 9: Hoare triple {2662#(= main_~i~0 1)} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {2662#(= main_~i~0 1)} is VALID [2018-11-14 18:53:06,749 INFO L273 TraceCheckUtils]: 10: Hoare triple {2662#(= main_~i~0 1)} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {2662#(= main_~i~0 1)} is VALID [2018-11-14 18:53:06,750 INFO L273 TraceCheckUtils]: 11: Hoare triple {2662#(= main_~i~0 1)} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {2662#(= main_~i~0 1)} is VALID [2018-11-14 18:53:06,750 INFO L273 TraceCheckUtils]: 12: Hoare triple {2662#(= main_~i~0 1)} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {2663#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))))} is VALID [2018-11-14 18:53:06,752 INFO L273 TraceCheckUtils]: 13: Hoare triple {2663#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {2663#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))))} is VALID [2018-11-14 18:53:06,753 INFO L273 TraceCheckUtils]: 14: Hoare triple {2663#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {2663#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))))} is VALID [2018-11-14 18:53:06,753 INFO L273 TraceCheckUtils]: 15: Hoare triple {2663#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))))))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {2664#(and (not (= (* 12 main_~i~0) 12)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))))} is VALID [2018-11-14 18:53:06,754 INFO L273 TraceCheckUtils]: 16: Hoare triple {2664#(and (not (= (* 12 main_~i~0) 12)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))))} assume true; {2664#(and (not (= (* 12 main_~i~0) 12)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))))} is VALID [2018-11-14 18:53:06,755 INFO L273 TraceCheckUtils]: 17: Hoare triple {2664#(and (not (= (* 12 main_~i~0) 12)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {2664#(and (not (= (* 12 main_~i~0) 12)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))))} is VALID [2018-11-14 18:53:06,756 INFO L273 TraceCheckUtils]: 18: Hoare triple {2664#(and (not (= (* 12 main_~i~0) 12)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {2665#(not (= main_~DEFAULTVAL~0 (select (store (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)) main_~FIXEDVAL~0) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} is VALID [2018-11-14 18:53:06,757 INFO L273 TraceCheckUtils]: 19: Hoare triple {2665#(not (= main_~DEFAULTVAL~0 (select (store (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)) main_~FIXEDVAL~0) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {2665#(not (= main_~DEFAULTVAL~0 (select (store (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)) main_~FIXEDVAL~0) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} is VALID [2018-11-14 18:53:06,758 INFO L273 TraceCheckUtils]: 20: Hoare triple {2665#(not (= main_~DEFAULTVAL~0 (select (store (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)) main_~FIXEDVAL~0) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} is VALID [2018-11-14 18:53:06,759 INFO L273 TraceCheckUtils]: 21: Hoare triple {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} is VALID [2018-11-14 18:53:06,760 INFO L273 TraceCheckUtils]: 22: Hoare triple {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} is VALID [2018-11-14 18:53:06,761 INFO L273 TraceCheckUtils]: 23: Hoare triple {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} is VALID [2018-11-14 18:53:06,761 INFO L273 TraceCheckUtils]: 24: Hoare triple {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} assume true; {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} is VALID [2018-11-14 18:53:06,762 INFO L273 TraceCheckUtils]: 25: Hoare triple {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} is VALID [2018-11-14 18:53:06,763 INFO L273 TraceCheckUtils]: 26: Hoare triple {2666#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8))))))} ~i~0 := 0; {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} is VALID [2018-11-14 18:53:06,763 INFO L273 TraceCheckUtils]: 27: Hoare triple {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} assume true; {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} is VALID [2018-11-14 18:53:06,764 INFO L273 TraceCheckUtils]: 28: Hoare triple {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} is VALID [2018-11-14 18:53:06,764 INFO L256 TraceCheckUtils]: 29: Hoare triple {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {2660#true} is VALID [2018-11-14 18:53:06,765 INFO L273 TraceCheckUtils]: 30: Hoare triple {2660#true} ~cond := #in~cond; {2660#true} is VALID [2018-11-14 18:53:06,765 INFO L273 TraceCheckUtils]: 31: Hoare triple {2660#true} assume !(~cond == 0); {2660#true} is VALID [2018-11-14 18:53:06,765 INFO L273 TraceCheckUtils]: 32: Hoare triple {2660#true} assume true; {2660#true} is VALID [2018-11-14 18:53:06,773 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {2660#true} {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} #81#return; {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} is VALID [2018-11-14 18:53:06,774 INFO L273 TraceCheckUtils]: 34: Hoare triple {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} havoc #t~mem7; {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} is VALID [2018-11-14 18:53:06,774 INFO L273 TraceCheckUtils]: 35: Hoare triple {2667#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))))) (= main_~i~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {2668#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))))} is VALID [2018-11-14 18:53:06,775 INFO L273 TraceCheckUtils]: 36: Hoare triple {2668#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))))} assume true; {2668#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))))} is VALID [2018-11-14 18:53:06,775 INFO L273 TraceCheckUtils]: 37: Hoare triple {2668#(not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|))))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2669#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} is VALID [2018-11-14 18:53:06,779 INFO L256 TraceCheckUtils]: 38: Hoare triple {2669#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {2670#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-14 18:53:06,780 INFO L273 TraceCheckUtils]: 39: Hoare triple {2670#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {2671#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-14 18:53:06,780 INFO L273 TraceCheckUtils]: 40: Hoare triple {2671#(not (= __VERIFIER_assert_~cond 0))} assume ~cond == 0; {2661#false} is VALID [2018-11-14 18:53:06,780 INFO L273 TraceCheckUtils]: 41: Hoare triple {2661#false} assume !false; {2661#false} is VALID [2018-11-14 18:53:06,786 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 2 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:53:06,786 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 18:53:06,786 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-14 18:53:06,795 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:53:06,815 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:53:06,833 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:53:06,835 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 18:53:06,915 INFO L477 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 16 treesize of output 13 [2018-11-14 18:53:06,924 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 12 [2018-11-14 18:53:06,927 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:06,929 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:06,942 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-14 18:53:06,942 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:27, output treesize:20 [2018-11-14 18:53:06,945 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:06,988 INFO L477 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-14 18:53:06,997 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:53:07,000 INFO L477 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 40 [2018-11-14 18:53:07,003 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,010 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,020 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-14 18:53:07,021 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:36, output treesize:20 [2018-11-14 18:53:07,025 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:07,070 INFO L477 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 27 treesize of output 22 [2018-11-14 18:53:07,076 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:53:07,078 INFO L477 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 22 treesize of output 34 [2018-11-14 18:53:07,081 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,089 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,099 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-14 18:53:07,100 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:33, output treesize:17 [2018-11-14 18:53:07,107 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:07,124 INFO L477 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 27 treesize of output 22 [2018-11-14 18:53:07,130 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:53:07,138 INFO L477 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 22 treesize of output 34 [2018-11-14 18:53:07,140 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,157 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,167 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-14 18:53:07,167 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:33, output treesize:17 [2018-11-14 18:53:07,200 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:07,251 INFO L477 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 27 treesize of output 22 [2018-11-14 18:53:07,259 INFO L700 Elim1Store]: detected not equals via solver [2018-11-14 18:53:07,261 INFO L477 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 22 treesize of output 34 [2018-11-14 18:53:07,265 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,277 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,290 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-14 18:53:07,291 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 3 variables, input treesize:33, output treesize:14 [2018-11-14 18:53:07,295 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:07,406 INFO L477 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 16 treesize of output 12 [2018-11-14 18:53:07,410 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 12 treesize of output 4 [2018-11-14 18:53:07,411 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,413 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:07,415 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-14 18:53:07,415 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:16, output treesize:4 [2018-11-14 18:53:07,417 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:07,450 INFO L256 TraceCheckUtils]: 0: Hoare triple {2660#true} call ULTIMATE.init(); {2660#true} is VALID [2018-11-14 18:53:07,450 INFO L273 TraceCheckUtils]: 1: Hoare triple {2660#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {2660#true} is VALID [2018-11-14 18:53:07,450 INFO L273 TraceCheckUtils]: 2: Hoare triple {2660#true} assume true; {2660#true} is VALID [2018-11-14 18:53:07,451 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2660#true} {2660#true} #83#return; {2660#true} is VALID [2018-11-14 18:53:07,451 INFO L256 TraceCheckUtils]: 4: Hoare triple {2660#true} call #t~ret8 := main(); {2660#true} is VALID [2018-11-14 18:53:07,451 INFO L273 TraceCheckUtils]: 5: Hoare triple {2660#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {2660#true} is VALID [2018-11-14 18:53:07,451 INFO L273 TraceCheckUtils]: 6: Hoare triple {2660#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {2693#(= |main_~#a~0.offset| 0)} is VALID [2018-11-14 18:53:07,452 INFO L273 TraceCheckUtils]: 7: Hoare triple {2693#(= |main_~#a~0.offset| 0)} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,452 INFO L273 TraceCheckUtils]: 8: Hoare triple {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume true; {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,453 INFO L273 TraceCheckUtils]: 9: Hoare triple {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,453 INFO L273 TraceCheckUtils]: 10: Hoare triple {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,454 INFO L273 TraceCheckUtils]: 11: Hoare triple {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,455 INFO L273 TraceCheckUtils]: 12: Hoare triple {2697#(and (= main_~i~0 1) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,456 INFO L273 TraceCheckUtils]: 13: Hoare triple {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,457 INFO L273 TraceCheckUtils]: 14: Hoare triple {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,458 INFO L273 TraceCheckUtils]: 15: Hoare triple {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,458 INFO L273 TraceCheckUtils]: 16: Hoare triple {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume true; {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,459 INFO L273 TraceCheckUtils]: 17: Hoare triple {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,461 INFO L273 TraceCheckUtils]: 18: Hoare triple {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,461 INFO L273 TraceCheckUtils]: 19: Hoare triple {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,463 INFO L273 TraceCheckUtils]: 20: Hoare triple {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,463 INFO L273 TraceCheckUtils]: 21: Hoare triple {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,464 INFO L273 TraceCheckUtils]: 22: Hoare triple {2723#(and (<= 2 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {2745#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,465 INFO L273 TraceCheckUtils]: 23: Hoare triple {2745#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {2745#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,466 INFO L273 TraceCheckUtils]: 24: Hoare triple {2745#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume true; {2745#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,467 INFO L273 TraceCheckUtils]: 25: Hoare triple {2745#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {2745#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,467 INFO L273 TraceCheckUtils]: 26: Hoare triple {2745#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,468 INFO L273 TraceCheckUtils]: 27: Hoare triple {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume true; {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,470 INFO L273 TraceCheckUtils]: 28: Hoare triple {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,470 INFO L256 TraceCheckUtils]: 29: Hoare triple {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {2660#true} is VALID [2018-11-14 18:53:07,470 INFO L273 TraceCheckUtils]: 30: Hoare triple {2660#true} ~cond := #in~cond; {2660#true} is VALID [2018-11-14 18:53:07,470 INFO L273 TraceCheckUtils]: 31: Hoare triple {2660#true} assume !(~cond == 0); {2660#true} is VALID [2018-11-14 18:53:07,471 INFO L273 TraceCheckUtils]: 32: Hoare triple {2660#true} assume true; {2660#true} is VALID [2018-11-14 18:53:07,472 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {2660#true} {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #81#return; {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,472 INFO L273 TraceCheckUtils]: 34: Hoare triple {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem7; {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,473 INFO L273 TraceCheckUtils]: 35: Hoare triple {2758#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 4)))) (= main_~i~0 0) (= |main_~#a~0.offset| 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,473 INFO L273 TraceCheckUtils]: 36: Hoare triple {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} assume true; {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:07,474 INFO L273 TraceCheckUtils]: 37: Hoare triple {2713#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {2669#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} is VALID [2018-11-14 18:53:07,475 INFO L256 TraceCheckUtils]: 38: Hoare triple {2669#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {2795#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 18:53:07,476 INFO L273 TraceCheckUtils]: 39: Hoare triple {2795#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {2799#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-14 18:53:07,476 INFO L273 TraceCheckUtils]: 40: Hoare triple {2799#(= 1 __VERIFIER_assert_~cond)} assume ~cond == 0; {2661#false} is VALID [2018-11-14 18:53:07,476 INFO L273 TraceCheckUtils]: 41: Hoare triple {2661#false} assume !false; {2661#false} is VALID [2018-11-14 18:53:07,482 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 2 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-14 18:53:07,507 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 18:53:07,507 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 11] total 20 [2018-11-14 18:53:07,508 INFO L78 Accepts]: Start accepts. Automaton has 20 states. Word has length 42 [2018-11-14 18:53:07,508 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:53:07,508 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 20 states. [2018-11-14 18:53:07,589 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:53:07,589 INFO L459 AbstractCegarLoop]: Interpolant automaton has 20 states [2018-11-14 18:53:07,589 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2018-11-14 18:53:07,590 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=311, Unknown=0, NotChecked=0, Total=380 [2018-11-14 18:53:07,590 INFO L87 Difference]: Start difference. First operand 77 states and 92 transitions. Second operand 20 states. [2018-11-14 18:53:09,714 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:09,715 INFO L93 Difference]: Finished difference Result 122 states and 145 transitions. [2018-11-14 18:53:09,715 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2018-11-14 18:53:09,715 INFO L78 Accepts]: Start accepts. Automaton has 20 states. Word has length 42 [2018-11-14 18:53:09,715 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:53:09,715 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2018-11-14 18:53:09,717 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 83 transitions. [2018-11-14 18:53:09,717 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2018-11-14 18:53:09,719 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 83 transitions. [2018-11-14 18:53:09,719 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 83 transitions. [2018-11-14 18:53:09,816 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:53:09,820 INFO L225 Difference]: With dead ends: 122 [2018-11-14 18:53:09,820 INFO L226 Difference]: Without dead ends: 120 [2018-11-14 18:53:09,821 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 61 GetRequests, 36 SyntacticMatches, 5 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 115 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=86, Invalid=376, Unknown=0, NotChecked=0, Total=462 [2018-11-14 18:53:09,821 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 120 states. [2018-11-14 18:53:10,120 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 120 to 77. [2018-11-14 18:53:10,120 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:53:10,120 INFO L82 GeneralOperation]: Start isEquivalent. First operand 120 states. Second operand 77 states. [2018-11-14 18:53:10,120 INFO L74 IsIncluded]: Start isIncluded. First operand 120 states. Second operand 77 states. [2018-11-14 18:53:10,121 INFO L87 Difference]: Start difference. First operand 120 states. Second operand 77 states. [2018-11-14 18:53:10,125 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:10,125 INFO L93 Difference]: Finished difference Result 120 states and 143 transitions. [2018-11-14 18:53:10,125 INFO L276 IsEmpty]: Start isEmpty. Operand 120 states and 143 transitions. [2018-11-14 18:53:10,126 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:53:10,126 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:53:10,126 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 120 states. [2018-11-14 18:53:10,126 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 120 states. [2018-11-14 18:53:10,131 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:10,131 INFO L93 Difference]: Finished difference Result 120 states and 143 transitions. [2018-11-14 18:53:10,131 INFO L276 IsEmpty]: Start isEmpty. Operand 120 states and 143 transitions. [2018-11-14 18:53:10,132 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:53:10,132 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:53:10,132 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:53:10,132 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:53:10,132 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2018-11-14 18:53:10,135 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 92 transitions. [2018-11-14 18:53:10,135 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 92 transitions. Word has length 42 [2018-11-14 18:53:10,135 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:53:10,135 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 92 transitions. [2018-11-14 18:53:10,135 INFO L481 AbstractCegarLoop]: Interpolant automaton has 20 states. [2018-11-14 18:53:10,136 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 92 transitions. [2018-11-14 18:53:10,136 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2018-11-14 18:53:10,137 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:53:10,137 INFO L375 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:53:10,137 INFO L423 AbstractCegarLoop]: === Iteration 8 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:53:10,137 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:53:10,137 INFO L82 PathProgramCache]: Analyzing trace with hash -282141248, now seen corresponding path program 2 times [2018-11-14 18:53:10,138 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:53:10,138 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:53:10,138 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:53:10,139 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:53:10,139 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:53:10,150 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:53:10,933 WARN L179 SmtUtils]: Spent 312.00 ms on a formula simplification. DAG size of input: 23 DAG size of output: 9 [2018-11-14 18:53:11,213 INFO L256 TraceCheckUtils]: 0: Hoare triple {3303#true} call ULTIMATE.init(); {3303#true} is VALID [2018-11-14 18:53:11,214 INFO L273 TraceCheckUtils]: 1: Hoare triple {3303#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {3303#true} is VALID [2018-11-14 18:53:11,214 INFO L273 TraceCheckUtils]: 2: Hoare triple {3303#true} assume true; {3303#true} is VALID [2018-11-14 18:53:11,214 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3303#true} {3303#true} #83#return; {3303#true} is VALID [2018-11-14 18:53:11,214 INFO L256 TraceCheckUtils]: 4: Hoare triple {3303#true} call #t~ret8 := main(); {3303#true} is VALID [2018-11-14 18:53:11,215 INFO L273 TraceCheckUtils]: 5: Hoare triple {3303#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {3303#true} is VALID [2018-11-14 18:53:11,216 INFO L273 TraceCheckUtils]: 6: Hoare triple {3303#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {3305#(<= 2 ~SIZE~0)} is VALID [2018-11-14 18:53:11,216 INFO L273 TraceCheckUtils]: 7: Hoare triple {3305#(<= 2 ~SIZE~0)} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:11,217 INFO L273 TraceCheckUtils]: 8: Hoare triple {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} assume true; {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:11,217 INFO L273 TraceCheckUtils]: 9: Hoare triple {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:11,218 INFO L273 TraceCheckUtils]: 10: Hoare triple {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:11,218 INFO L273 TraceCheckUtils]: 11: Hoare triple {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:11,219 INFO L273 TraceCheckUtils]: 12: Hoare triple {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:11,220 INFO L273 TraceCheckUtils]: 13: Hoare triple {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:11,221 INFO L273 TraceCheckUtils]: 14: Hoare triple {3306#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {3307#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 4))))) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))))} is VALID [2018-11-14 18:53:11,223 INFO L273 TraceCheckUtils]: 15: Hoare triple {3307#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 4))))) (= main_~i~0 1) (= ~SIZE~0 (* 3 (div ~SIZE~0 3))))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {3308#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= (* 3 main_~i~0) 6) (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= (* 3 main_~i~0) 5)))} is VALID [2018-11-14 18:53:11,223 INFO L273 TraceCheckUtils]: 16: Hoare triple {3308#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= (* 3 main_~i~0) 6) (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= (* 3 main_~i~0) 5)))} assume true; {3308#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= (* 3 main_~i~0) 6) (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= (* 3 main_~i~0) 5)))} is VALID [2018-11-14 18:53:11,225 INFO L273 TraceCheckUtils]: 17: Hoare triple {3308#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (<= (* 3 main_~i~0) 6) (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= (* 3 main_~i~0) 5)))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {3309#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3))} is VALID [2018-11-14 18:53:11,226 INFO L273 TraceCheckUtils]: 18: Hoare triple {3309#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3))} ~i~0 := 0; {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:11,227 INFO L273 TraceCheckUtils]: 19: Hoare triple {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} assume true; {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:11,228 INFO L273 TraceCheckUtils]: 20: Hoare triple {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:11,228 INFO L256 TraceCheckUtils]: 21: Hoare triple {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {3303#true} is VALID [2018-11-14 18:53:11,228 INFO L273 TraceCheckUtils]: 22: Hoare triple {3303#true} ~cond := #in~cond; {3303#true} is VALID [2018-11-14 18:53:11,228 INFO L273 TraceCheckUtils]: 23: Hoare triple {3303#true} assume !(~cond == 0); {3303#true} is VALID [2018-11-14 18:53:11,229 INFO L273 TraceCheckUtils]: 24: Hoare triple {3303#true} assume true; {3303#true} is VALID [2018-11-14 18:53:11,232 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {3303#true} {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} #81#return; {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:11,233 INFO L273 TraceCheckUtils]: 26: Hoare triple {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} havoc #t~mem7; {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:11,234 INFO L273 TraceCheckUtils]: 27: Hoare triple {3310#(and (or (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))))) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} is VALID [2018-11-14 18:53:11,234 INFO L273 TraceCheckUtils]: 28: Hoare triple {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} assume true; {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} is VALID [2018-11-14 18:53:11,235 INFO L273 TraceCheckUtils]: 29: Hoare triple {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} is VALID [2018-11-14 18:53:11,235 INFO L256 TraceCheckUtils]: 30: Hoare triple {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {3303#true} is VALID [2018-11-14 18:53:11,235 INFO L273 TraceCheckUtils]: 31: Hoare triple {3303#true} ~cond := #in~cond; {3303#true} is VALID [2018-11-14 18:53:11,236 INFO L273 TraceCheckUtils]: 32: Hoare triple {3303#true} assume !(~cond == 0); {3303#true} is VALID [2018-11-14 18:53:11,236 INFO L273 TraceCheckUtils]: 33: Hoare triple {3303#true} assume true; {3303#true} is VALID [2018-11-14 18:53:11,241 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {3303#true} {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} #81#return; {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} is VALID [2018-11-14 18:53:11,242 INFO L273 TraceCheckUtils]: 35: Hoare triple {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} havoc #t~mem7; {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} is VALID [2018-11-14 18:53:11,243 INFO L273 TraceCheckUtils]: 36: Hoare triple {3311#(and (or (<= ~SIZE~0 (+ main_~i~0 1)) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4))))))) (<= ~SIZE~0 (+ main_~i~0 2)))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {3312#(or (<= ~SIZE~0 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)))))} is VALID [2018-11-14 18:53:11,243 INFO L273 TraceCheckUtils]: 37: Hoare triple {3312#(or (<= ~SIZE~0 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)))))} assume true; {3312#(or (<= ~SIZE~0 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)))))} is VALID [2018-11-14 18:53:11,244 INFO L273 TraceCheckUtils]: 38: Hoare triple {3312#(or (<= ~SIZE~0 main_~i~0) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)))))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {3313#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} is VALID [2018-11-14 18:53:11,252 INFO L256 TraceCheckUtils]: 39: Hoare triple {3313#(not (= main_~DEFAULTVAL~0 |main_#t~mem7|))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {3314#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-14 18:53:11,253 INFO L273 TraceCheckUtils]: 40: Hoare triple {3314#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {3315#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-14 18:53:11,253 INFO L273 TraceCheckUtils]: 41: Hoare triple {3315#(not (= __VERIFIER_assert_~cond 0))} assume ~cond == 0; {3304#false} is VALID [2018-11-14 18:53:11,253 INFO L273 TraceCheckUtils]: 42: Hoare triple {3304#false} assume !false; {3304#false} is VALID [2018-11-14 18:53:11,258 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 13 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 18:53:11,258 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 18:53:11,258 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-14 18:53:11,269 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST1 [2018-11-14 18:53:11,294 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-14 18:53:11,294 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-14 18:53:11,304 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:53:11,306 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 18:53:11,409 INFO L477 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-14 18:53:11,414 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 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-14 18:53:11,425 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:11,427 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:11,436 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-14 18:53:11,437 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:24, output treesize:17 [2018-11-14 18:53:11,440 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:11,739 INFO L477 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 16 treesize of output 12 [2018-11-14 18:53:11,744 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 12 treesize of output 4 [2018-11-14 18:53:11,745 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:11,746 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:11,751 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-14 18:53:11,751 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:19, output treesize:8 [2018-11-14 18:53:11,754 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:13,823 INFO L256 TraceCheckUtils]: 0: Hoare triple {3303#true} call ULTIMATE.init(); {3303#true} is VALID [2018-11-14 18:53:13,824 INFO L273 TraceCheckUtils]: 1: Hoare triple {3303#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {3303#true} is VALID [2018-11-14 18:53:13,824 INFO L273 TraceCheckUtils]: 2: Hoare triple {3303#true} assume true; {3303#true} is VALID [2018-11-14 18:53:13,824 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3303#true} {3303#true} #83#return; {3303#true} is VALID [2018-11-14 18:53:13,824 INFO L256 TraceCheckUtils]: 4: Hoare triple {3303#true} call #t~ret8 := main(); {3303#true} is VALID [2018-11-14 18:53:13,824 INFO L273 TraceCheckUtils]: 5: Hoare triple {3303#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {3303#true} is VALID [2018-11-14 18:53:13,825 INFO L273 TraceCheckUtils]: 6: Hoare triple {3303#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {3337#(and (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,825 INFO L273 TraceCheckUtils]: 7: Hoare triple {3337#(and (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,826 INFO L273 TraceCheckUtils]: 8: Hoare triple {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume true; {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,826 INFO L273 TraceCheckUtils]: 9: Hoare triple {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,827 INFO L273 TraceCheckUtils]: 10: Hoare triple {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,827 INFO L273 TraceCheckUtils]: 11: Hoare triple {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,828 INFO L273 TraceCheckUtils]: 12: Hoare triple {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,828 INFO L273 TraceCheckUtils]: 13: Hoare triple {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,829 INFO L273 TraceCheckUtils]: 14: Hoare triple {3341#(and (= main_~i~0 1) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {3363#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,830 INFO L273 TraceCheckUtils]: 15: Hoare triple {3363#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {3363#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,831 INFO L273 TraceCheckUtils]: 16: Hoare triple {3363#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume true; {3363#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,831 INFO L273 TraceCheckUtils]: 17: Hoare triple {3363#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {3363#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,832 INFO L273 TraceCheckUtils]: 18: Hoare triple {3363#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} ~i~0 := 0; {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,833 INFO L273 TraceCheckUtils]: 19: Hoare triple {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume true; {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,834 INFO L273 TraceCheckUtils]: 20: Hoare triple {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,835 INFO L256 TraceCheckUtils]: 21: Hoare triple {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} is VALID [2018-11-14 18:53:13,836 INFO L273 TraceCheckUtils]: 22: Hoare triple {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} ~cond := #in~cond; {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} is VALID [2018-11-14 18:53:13,836 INFO L273 TraceCheckUtils]: 23: Hoare triple {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} assume !(~cond == 0); {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} is VALID [2018-11-14 18:53:13,837 INFO L273 TraceCheckUtils]: 24: Hoare triple {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} assume true; {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} is VALID [2018-11-14 18:53:13,838 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} #81#return; {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,839 INFO L273 TraceCheckUtils]: 26: Hoare triple {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem7; {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,839 INFO L273 TraceCheckUtils]: 27: Hoare triple {3376#(and (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~i~0 0) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,840 INFO L273 TraceCheckUtils]: 28: Hoare triple {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume true; {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,841 INFO L273 TraceCheckUtils]: 29: Hoare triple {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,843 INFO L256 TraceCheckUtils]: 30: Hoare triple {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} is VALID [2018-11-14 18:53:13,844 INFO L273 TraceCheckUtils]: 31: Hoare triple {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} ~cond := #in~cond; {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} is VALID [2018-11-14 18:53:13,844 INFO L273 TraceCheckUtils]: 32: Hoare triple {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} assume !(~cond == 0); {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} is VALID [2018-11-14 18:53:13,844 INFO L273 TraceCheckUtils]: 33: Hoare triple {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} assume true; {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} is VALID [2018-11-14 18:53:13,845 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {3386#(exists ((|v_main_~#a~0.base_BEFORE_CALL_4| Int)) (not (= 0 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_4|) 8))))} {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} #81#return; {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,846 INFO L273 TraceCheckUtils]: 35: Hoare triple {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} havoc #t~mem7; {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,846 INFO L273 TraceCheckUtils]: 36: Hoare triple {3405#(and (= main_~i~0 1) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {3433#(and (= main_~i~0 2) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,847 INFO L273 TraceCheckUtils]: 37: Hoare triple {3433#(and (= main_~i~0 2) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume true; {3433#(and (= main_~i~0 2) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} is VALID [2018-11-14 18:53:13,847 INFO L273 TraceCheckUtils]: 38: Hoare triple {3433#(and (= main_~i~0 2) (not (= main_~DEFAULTVAL~0 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8)))) (= main_~DEFAULTVAL~0 0) (= |main_~#a~0.offset| 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {3440#(and (not (= main_~DEFAULTVAL~0 |main_#t~mem7|)) (= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:13,848 INFO L256 TraceCheckUtils]: 39: Hoare triple {3440#(and (not (= main_~DEFAULTVAL~0 |main_#t~mem7|)) (= main_~DEFAULTVAL~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {3444#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 18:53:13,849 INFO L273 TraceCheckUtils]: 40: Hoare triple {3444#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {3448#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-14 18:53:13,850 INFO L273 TraceCheckUtils]: 41: Hoare triple {3448#(= 1 __VERIFIER_assert_~cond)} assume ~cond == 0; {3304#false} is VALID [2018-11-14 18:53:13,850 INFO L273 TraceCheckUtils]: 42: Hoare triple {3304#false} assume !false; {3304#false} is VALID [2018-11-14 18:53:13,857 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 0 proven. 17 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 18:53:13,878 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 18:53:13,878 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 12] total 23 [2018-11-14 18:53:13,879 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 43 [2018-11-14 18:53:13,879 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:53:13,879 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states. [2018-11-14 18:53:14,020 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:53:14,020 INFO L459 AbstractCegarLoop]: Interpolant automaton has 23 states [2018-11-14 18:53:14,021 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2018-11-14 18:53:14,021 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=442, Unknown=0, NotChecked=0, Total=506 [2018-11-14 18:53:14,022 INFO L87 Difference]: Start difference. First operand 77 states and 92 transitions. Second operand 23 states. [2018-11-14 18:53:44,230 WARN L179 SmtUtils]: Spent 150.00 ms on a formula simplification that was a NOOP. DAG size: 22 [2018-11-14 18:53:44,639 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:44,640 INFO L93 Difference]: Finished difference Result 211 states and 256 transitions. [2018-11-14 18:53:44,640 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2018-11-14 18:53:44,640 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 43 [2018-11-14 18:53:44,640 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:53:44,641 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2018-11-14 18:53:44,644 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 133 transitions. [2018-11-14 18:53:44,644 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2018-11-14 18:53:44,648 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 133 transitions. [2018-11-14 18:53:44,648 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 26 states and 133 transitions. [2018-11-14 18:53:45,350 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 133 edges. 133 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:53:45,357 INFO L225 Difference]: With dead ends: 211 [2018-11-14 18:53:45,357 INFO L226 Difference]: Without dead ends: 184 [2018-11-14 18:53:45,359 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 79 GetRequests, 33 SyntacticMatches, 3 SemanticMatches, 43 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 433 ImplicationChecksByTransitivity, 2.4s TimeCoverageRelationStatistics Valid=321, Invalid=1659, Unknown=0, NotChecked=0, Total=1980 [2018-11-14 18:53:45,359 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 184 states. [2018-11-14 18:53:46,006 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 184 to 175. [2018-11-14 18:53:46,007 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:53:46,007 INFO L82 GeneralOperation]: Start isEquivalent. First operand 184 states. Second operand 175 states. [2018-11-14 18:53:46,007 INFO L74 IsIncluded]: Start isIncluded. First operand 184 states. Second operand 175 states. [2018-11-14 18:53:46,007 INFO L87 Difference]: Start difference. First operand 184 states. Second operand 175 states. [2018-11-14 18:53:46,013 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:46,013 INFO L93 Difference]: Finished difference Result 184 states and 222 transitions. [2018-11-14 18:53:46,013 INFO L276 IsEmpty]: Start isEmpty. Operand 184 states and 222 transitions. [2018-11-14 18:53:46,014 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:53:46,014 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:53:46,014 INFO L74 IsIncluded]: Start isIncluded. First operand 175 states. Second operand 184 states. [2018-11-14 18:53:46,015 INFO L87 Difference]: Start difference. First operand 175 states. Second operand 184 states. [2018-11-14 18:53:46,021 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:53:46,022 INFO L93 Difference]: Finished difference Result 184 states and 222 transitions. [2018-11-14 18:53:46,022 INFO L276 IsEmpty]: Start isEmpty. Operand 184 states and 222 transitions. [2018-11-14 18:53:46,022 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:53:46,023 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:53:46,023 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:53:46,023 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:53:46,023 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 175 states. [2018-11-14 18:53:46,029 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 175 states to 175 states and 214 transitions. [2018-11-14 18:53:46,029 INFO L78 Accepts]: Start accepts. Automaton has 175 states and 214 transitions. Word has length 43 [2018-11-14 18:53:46,030 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:53:46,030 INFO L480 AbstractCegarLoop]: Abstraction has 175 states and 214 transitions. [2018-11-14 18:53:46,030 INFO L481 AbstractCegarLoop]: Interpolant automaton has 23 states. [2018-11-14 18:53:46,030 INFO L276 IsEmpty]: Start isEmpty. Operand 175 states and 214 transitions. [2018-11-14 18:53:46,031 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2018-11-14 18:53:46,031 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:53:46,031 INFO L375 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:53:46,031 INFO L423 AbstractCegarLoop]: === Iteration 9 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:53:46,032 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:53:46,032 INFO L82 PathProgramCache]: Analyzing trace with hash 1104062146, now seen corresponding path program 1 times [2018-11-14 18:53:46,032 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:53:46,032 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:53:46,033 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:53:46,033 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-14 18:53:46,033 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:53:46,044 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:53:46,574 INFO L256 TraceCheckUtils]: 0: Hoare triple {4356#true} call ULTIMATE.init(); {4356#true} is VALID [2018-11-14 18:53:46,574 INFO L273 TraceCheckUtils]: 1: Hoare triple {4356#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {4356#true} is VALID [2018-11-14 18:53:46,575 INFO L273 TraceCheckUtils]: 2: Hoare triple {4356#true} assume true; {4356#true} is VALID [2018-11-14 18:53:46,575 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {4356#true} {4356#true} #83#return; {4356#true} is VALID [2018-11-14 18:53:46,575 INFO L256 TraceCheckUtils]: 4: Hoare triple {4356#true} call #t~ret8 := main(); {4356#true} is VALID [2018-11-14 18:53:46,575 INFO L273 TraceCheckUtils]: 5: Hoare triple {4356#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {4356#true} is VALID [2018-11-14 18:53:46,576 INFO L273 TraceCheckUtils]: 6: Hoare triple {4356#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {4358#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (<= 2 ~SIZE~0))} is VALID [2018-11-14 18:53:46,577 INFO L273 TraceCheckUtils]: 7: Hoare triple {4358#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (<= 2 ~SIZE~0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:46,578 INFO L273 TraceCheckUtils]: 8: Hoare triple {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume true; {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:46,579 INFO L273 TraceCheckUtils]: 9: Hoare triple {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:46,579 INFO L273 TraceCheckUtils]: 10: Hoare triple {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:46,580 INFO L273 TraceCheckUtils]: 11: Hoare triple {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:46,580 INFO L273 TraceCheckUtils]: 12: Hoare triple {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:46,581 INFO L273 TraceCheckUtils]: 13: Hoare triple {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:53:46,582 INFO L273 TraceCheckUtils]: 14: Hoare triple {4359#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {4360#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 12 main_~i~0) (- 4))) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:53:46,584 INFO L273 TraceCheckUtils]: 15: Hoare triple {4360#(and (= (* 3 (div ~SIZE~0 3)) ~SIZE~0) (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (* 12 main_~i~0) (- 4))) main_~DEFAULTVAL~0)))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {4361#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= (* 3 main_~i~0) 5)) (<= (* 3 main_~i~0) 6))} is VALID [2018-11-14 18:53:46,584 INFO L273 TraceCheckUtils]: 16: Hoare triple {4361#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= (* 3 main_~i~0) 5)) (<= (* 3 main_~i~0) 6))} assume true; {4361#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= (* 3 main_~i~0) 5)) (<= (* 3 main_~i~0) 6))} is VALID [2018-11-14 18:53:46,586 INFO L273 TraceCheckUtils]: 17: Hoare triple {4361#(and (= ~SIZE~0 (* 3 (div ~SIZE~0 3))) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= (* 3 main_~i~0) 5)) (<= (* 3 main_~i~0) 6))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {4362#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3))} is VALID [2018-11-14 18:53:46,587 INFO L273 TraceCheckUtils]: 18: Hoare triple {4362#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3))} ~i~0 := 0; {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:46,587 INFO L273 TraceCheckUtils]: 19: Hoare triple {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} assume true; {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:46,588 INFO L273 TraceCheckUtils]: 20: Hoare triple {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:46,588 INFO L256 TraceCheckUtils]: 21: Hoare triple {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {4356#true} is VALID [2018-11-14 18:53:46,589 INFO L273 TraceCheckUtils]: 22: Hoare triple {4356#true} ~cond := #in~cond; {4356#true} is VALID [2018-11-14 18:53:46,589 INFO L273 TraceCheckUtils]: 23: Hoare triple {4356#true} assume !(~cond == 0); {4356#true} is VALID [2018-11-14 18:53:46,589 INFO L273 TraceCheckUtils]: 24: Hoare triple {4356#true} assume true; {4356#true} is VALID [2018-11-14 18:53:46,590 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {4356#true} {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} #81#return; {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:46,591 INFO L273 TraceCheckUtils]: 26: Hoare triple {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} havoc #t~mem7; {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} is VALID [2018-11-14 18:53:46,592 INFO L273 TraceCheckUtils]: 27: Hoare triple {4363#(and (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 2)) (<= ~SIZE~0 3) (= main_~i~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-14 18:53:46,593 INFO L273 TraceCheckUtils]: 28: Hoare triple {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} assume true; {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-14 18:53:46,594 INFO L273 TraceCheckUtils]: 29: Hoare triple {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-14 18:53:46,594 INFO L256 TraceCheckUtils]: 30: Hoare triple {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {4356#true} is VALID [2018-11-14 18:53:46,594 INFO L273 TraceCheckUtils]: 31: Hoare triple {4356#true} ~cond := #in~cond; {4356#true} is VALID [2018-11-14 18:53:46,594 INFO L273 TraceCheckUtils]: 32: Hoare triple {4356#true} assume !(~cond == 0); {4356#true} is VALID [2018-11-14 18:53:46,595 INFO L273 TraceCheckUtils]: 33: Hoare triple {4356#true} assume true; {4356#true} is VALID [2018-11-14 18:53:46,595 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {4356#true} {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} #81#return; {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-14 18:53:46,596 INFO L273 TraceCheckUtils]: 35: Hoare triple {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} havoc #t~mem7; {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} is VALID [2018-11-14 18:53:46,597 INFO L273 TraceCheckUtils]: 36: Hoare triple {4364#(and (<= ~SIZE~0 (+ main_~i~0 2)) (or (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 (+ main_~i~0 2)) (- 4)))) main_~DEFAULTVAL~0)) (<= ~SIZE~0 (+ main_~i~0 1))))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {4365#(or (<= ~SIZE~0 main_~i~0) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:53:46,598 INFO L273 TraceCheckUtils]: 37: Hoare triple {4365#(or (<= ~SIZE~0 main_~i~0) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0)))} assume true; {4365#(or (<= ~SIZE~0 main_~i~0) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:53:46,599 INFO L273 TraceCheckUtils]: 38: Hoare triple {4365#(or (<= ~SIZE~0 main_~i~0) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 4 main_~i~0) |main_~#a~0.offset|)) main_~DEFAULTVAL~0)))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {4366#(not (= |main_#t~mem7| main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:53:46,599 INFO L256 TraceCheckUtils]: 39: Hoare triple {4366#(not (= |main_#t~mem7| main_~DEFAULTVAL~0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {4367#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2018-11-14 18:53:46,600 INFO L273 TraceCheckUtils]: 40: Hoare triple {4367#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {4368#(not (= __VERIFIER_assert_~cond 0))} is VALID [2018-11-14 18:53:46,600 INFO L273 TraceCheckUtils]: 41: Hoare triple {4368#(not (= __VERIFIER_assert_~cond 0))} assume ~cond == 0; {4357#false} is VALID [2018-11-14 18:53:46,601 INFO L273 TraceCheckUtils]: 42: Hoare triple {4357#false} assume !false; {4357#false} is VALID [2018-11-14 18:53:46,607 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 13 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 18:53:46,607 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2018-11-14 18:53:46,607 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-14 18:53:46,616 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:53:46,632 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:53:46,646 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:53:46,647 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-14 18:53:46,733 INFO L477 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-14 18:53:46,736 INFO L477 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-14 18:53:46,742 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:46,744 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:46,752 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-14 18:53:46,753 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:23, output treesize:16 [2018-11-14 18:53:46,756 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:47,052 INFO L477 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 11 [2018-11-14 18:53:47,057 INFO L477 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 11 treesize of output 7 [2018-11-14 18:53:47,059 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-14 18:53:47,062 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-14 18:53:47,067 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-14 18:53:47,068 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:18, output treesize:7 [2018-11-14 18:53:47,072 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-14 18:53:47,143 INFO L256 TraceCheckUtils]: 0: Hoare triple {4356#true} call ULTIMATE.init(); {4356#true} is VALID [2018-11-14 18:53:47,144 INFO L273 TraceCheckUtils]: 1: Hoare triple {4356#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {4356#true} is VALID [2018-11-14 18:53:47,144 INFO L273 TraceCheckUtils]: 2: Hoare triple {4356#true} assume true; {4356#true} is VALID [2018-11-14 18:53:47,144 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {4356#true} {4356#true} #83#return; {4356#true} is VALID [2018-11-14 18:53:47,144 INFO L256 TraceCheckUtils]: 4: Hoare triple {4356#true} call #t~ret8 := main(); {4356#true} is VALID [2018-11-14 18:53:47,144 INFO L273 TraceCheckUtils]: 5: Hoare triple {4356#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {4356#true} is VALID [2018-11-14 18:53:47,145 INFO L273 TraceCheckUtils]: 6: Hoare triple {4356#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {4390#(and (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,146 INFO L273 TraceCheckUtils]: 7: Hoare triple {4390#(and (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,147 INFO L273 TraceCheckUtils]: 8: Hoare triple {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,148 INFO L273 TraceCheckUtils]: 9: Hoare triple {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,149 INFO L273 TraceCheckUtils]: 10: Hoare triple {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,149 INFO L273 TraceCheckUtils]: 11: Hoare triple {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,150 INFO L273 TraceCheckUtils]: 12: Hoare triple {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,151 INFO L273 TraceCheckUtils]: 13: Hoare triple {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,152 INFO L273 TraceCheckUtils]: 14: Hoare triple {4394#(and (= main_~i~0 1) (<= 10 main_~FIXEDVAL~0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {4416#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,153 INFO L273 TraceCheckUtils]: 15: Hoare triple {4416#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {4416#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,154 INFO L273 TraceCheckUtils]: 16: Hoare triple {4416#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {4416#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,155 INFO L273 TraceCheckUtils]: 17: Hoare triple {4416#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3)); {4416#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,155 INFO L273 TraceCheckUtils]: 18: Hoare triple {4416#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} ~i~0 := 0; {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,156 INFO L273 TraceCheckUtils]: 19: Hoare triple {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,157 INFO L273 TraceCheckUtils]: 20: Hoare triple {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,159 INFO L256 TraceCheckUtils]: 21: Hoare triple {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} is VALID [2018-11-14 18:53:47,159 INFO L273 TraceCheckUtils]: 22: Hoare triple {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} ~cond := #in~cond; {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} is VALID [2018-11-14 18:53:47,160 INFO L273 TraceCheckUtils]: 23: Hoare triple {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} assume !(~cond == 0); {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} is VALID [2018-11-14 18:53:47,160 INFO L273 TraceCheckUtils]: 24: Hoare triple {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} assume true; {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} is VALID [2018-11-14 18:53:47,161 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #81#return; {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,161 INFO L273 TraceCheckUtils]: 26: Hoare triple {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} havoc #t~mem7; {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,162 INFO L273 TraceCheckUtils]: 27: Hoare triple {4429#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 0) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,162 INFO L273 TraceCheckUtils]: 28: Hoare triple {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,163 INFO L273 TraceCheckUtils]: 29: Hoare triple {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,165 INFO L256 TraceCheckUtils]: 30: Hoare triple {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} is VALID [2018-11-14 18:53:47,166 INFO L273 TraceCheckUtils]: 31: Hoare triple {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} ~cond := #in~cond; {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} is VALID [2018-11-14 18:53:47,166 INFO L273 TraceCheckUtils]: 32: Hoare triple {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} assume !(~cond == 0); {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} is VALID [2018-11-14 18:53:47,167 INFO L273 TraceCheckUtils]: 33: Hoare triple {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} assume true; {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} is VALID [2018-11-14 18:53:47,168 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {4439#(exists ((|v_main_~#a~0.base_BEFORE_CALL_6| Int)) (<= 10 (select (select |#memory_int| |v_main_~#a~0.base_BEFORE_CALL_6|) 8)))} {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #81#return; {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,169 INFO L273 TraceCheckUtils]: 35: Hoare triple {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} havoc #t~mem7; {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,170 INFO L273 TraceCheckUtils]: 36: Hoare triple {4458#(and (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= main_~i~0 1) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} #t~post6 := ~i~0;~i~0 := #t~post6 + 1;havoc #t~post6; {4486#(and (= main_~i~0 2) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,170 INFO L273 TraceCheckUtils]: 37: Hoare triple {4486#(and (= main_~i~0 2) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume true; {4486#(and (= main_~i~0 2) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,171 INFO L273 TraceCheckUtils]: 38: Hoare triple {4486#(and (= main_~i~0 2) (<= 10 (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| 8))) (= |main_~#a~0.offset| 0) (<= main_~DEFAULTVAL~0 0))} assume !!(~i~0 < ~SIZE~0);call #t~mem7 := read~int(~#a~0.base, ~#a~0.offset + ~i~0 * 4, 4); {4493#(and (<= 10 |main_#t~mem7|) (<= main_~DEFAULTVAL~0 0))} is VALID [2018-11-14 18:53:47,173 INFO L256 TraceCheckUtils]: 39: Hoare triple {4493#(and (<= 10 |main_#t~mem7|) (<= main_~DEFAULTVAL~0 0))} call __VERIFIER_assert((if #t~mem7 != ~DEFAULTVAL~0 then 1 else 0)); {4497#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2018-11-14 18:53:47,173 INFO L273 TraceCheckUtils]: 40: Hoare triple {4497#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {4501#(= 1 __VERIFIER_assert_~cond)} is VALID [2018-11-14 18:53:47,193 INFO L273 TraceCheckUtils]: 41: Hoare triple {4501#(= 1 __VERIFIER_assert_~cond)} assume ~cond == 0; {4357#false} is VALID [2018-11-14 18:53:47,193 INFO L273 TraceCheckUtils]: 42: Hoare triple {4357#false} assume !false; {4357#false} is VALID [2018-11-14 18:53:47,199 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 0 proven. 17 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-14 18:53:47,230 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-14 18:53:47,230 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 12] total 23 [2018-11-14 18:53:47,231 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 43 [2018-11-14 18:53:47,231 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-14 18:53:47,231 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states. [2018-11-14 18:53:47,333 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:53:47,334 INFO L459 AbstractCegarLoop]: Interpolant automaton has 23 states [2018-11-14 18:53:47,334 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2018-11-14 18:53:47,334 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=58, Invalid=448, Unknown=0, NotChecked=0, Total=506 [2018-11-14 18:53:47,335 INFO L87 Difference]: Start difference. First operand 175 states and 214 transitions. Second operand 23 states. [2018-11-14 18:54:01,123 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:54:01,123 INFO L93 Difference]: Finished difference Result 306 states and 373 transitions. [2018-11-14 18:54:01,123 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2018-11-14 18:54:01,123 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 43 [2018-11-14 18:54:01,124 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-14 18:54:01,124 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2018-11-14 18:54:01,127 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 139 transitions. [2018-11-14 18:54:01,127 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2018-11-14 18:54:01,130 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 139 transitions. [2018-11-14 18:54:01,130 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 26 states and 139 transitions. [2018-11-14 18:54:01,731 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 139 edges. 139 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-14 18:54:01,740 INFO L225 Difference]: With dead ends: 306 [2018-11-14 18:54:01,741 INFO L226 Difference]: Without dead ends: 279 [2018-11-14 18:54:01,742 INFO L604 BasicCegarLoop]: 0 DeclaredPredicates, 77 GetRequests, 32 SyntacticMatches, 3 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 356 ImplicationChecksByTransitivity, 2.0s TimeCoverageRelationStatistics Valid=293, Invalid=1599, Unknown=0, NotChecked=0, Total=1892 [2018-11-14 18:54:01,742 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 279 states. [2018-11-14 18:54:02,260 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 279 to 217. [2018-11-14 18:54:02,260 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-14 18:54:02,260 INFO L82 GeneralOperation]: Start isEquivalent. First operand 279 states. Second operand 217 states. [2018-11-14 18:54:02,260 INFO L74 IsIncluded]: Start isIncluded. First operand 279 states. Second operand 217 states. [2018-11-14 18:54:02,260 INFO L87 Difference]: Start difference. First operand 279 states. Second operand 217 states. [2018-11-14 18:54:02,269 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:54:02,269 INFO L93 Difference]: Finished difference Result 279 states and 339 transitions. [2018-11-14 18:54:02,269 INFO L276 IsEmpty]: Start isEmpty. Operand 279 states and 339 transitions. [2018-11-14 18:54:02,270 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:54:02,270 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:54:02,270 INFO L74 IsIncluded]: Start isIncluded. First operand 217 states. Second operand 279 states. [2018-11-14 18:54:02,270 INFO L87 Difference]: Start difference. First operand 217 states. Second operand 279 states. [2018-11-14 18:54:02,279 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-14 18:54:02,279 INFO L93 Difference]: Finished difference Result 279 states and 339 transitions. [2018-11-14 18:54:02,279 INFO L276 IsEmpty]: Start isEmpty. Operand 279 states and 339 transitions. [2018-11-14 18:54:02,280 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-14 18:54:02,280 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-14 18:54:02,280 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-14 18:54:02,280 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-14 18:54:02,281 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 217 states. [2018-11-14 18:54:02,286 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 217 states to 217 states and 275 transitions. [2018-11-14 18:54:02,287 INFO L78 Accepts]: Start accepts. Automaton has 217 states and 275 transitions. Word has length 43 [2018-11-14 18:54:02,287 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-14 18:54:02,287 INFO L480 AbstractCegarLoop]: Abstraction has 217 states and 275 transitions. [2018-11-14 18:54:02,287 INFO L481 AbstractCegarLoop]: Interpolant automaton has 23 states. [2018-11-14 18:54:02,287 INFO L276 IsEmpty]: Start isEmpty. Operand 217 states and 275 transitions. [2018-11-14 18:54:02,288 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2018-11-14 18:54:02,288 INFO L367 BasicCegarLoop]: Found error trace [2018-11-14 18:54:02,288 INFO L375 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-14 18:54:02,289 INFO L423 AbstractCegarLoop]: === Iteration 10 === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-14 18:54:02,289 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-14 18:54:02,289 INFO L82 PathProgramCache]: Analyzing trace with hash 542076702, now seen corresponding path program 2 times [2018-11-14 18:54:02,289 INFO L223 ckRefinementStrategy]: Switched to mode SMTINTERPOL_TREE_INTERPOLANTS [2018-11-14 18:54:02,289 INFO L69 tionRefinementEngine]: Using refinement strategy CamelRefinementStrategy [2018-11-14 18:54:02,290 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:54:02,290 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-14 18:54:02,290 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2018-11-14 18:54:02,302 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-14 18:54:02,766 WARN L179 SmtUtils]: Spent 260.00 ms on a formula simplification. DAG size of input: 12 DAG size of output: 7 [2018-11-14 18:54:03,087 INFO L256 TraceCheckUtils]: 0: Hoare triple {5762#true} call ULTIMATE.init(); {5762#true} is VALID [2018-11-14 18:54:03,088 INFO L273 TraceCheckUtils]: 1: Hoare triple {5762#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~SIZE~0 := 0; {5762#true} is VALID [2018-11-14 18:54:03,088 INFO L273 TraceCheckUtils]: 2: Hoare triple {5762#true} assume true; {5762#true} is VALID [2018-11-14 18:54:03,088 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {5762#true} {5762#true} #83#return; {5762#true} is VALID [2018-11-14 18:54:03,088 INFO L256 TraceCheckUtils]: 4: Hoare triple {5762#true} call #t~ret8 := main(); {5762#true} is VALID [2018-11-14 18:54:03,089 INFO L273 TraceCheckUtils]: 5: Hoare triple {5762#true} assume -2147483648 <= #t~nondet1 && #t~nondet1 <= 2147483647;~SIZE~0 := #t~nondet1;havoc #t~nondet1; {5762#true} is VALID [2018-11-14 18:54:03,089 INFO L273 TraceCheckUtils]: 6: Hoare triple {5762#true} assume ~SIZE~0 > 1;havoc ~i~0;havoc ~value~0;call ~#a~0.base, ~#a~0.offset := #Ultimate.alloc(~SIZE~0 * 4);~DEFAULTVAL~0 := 0;~FIXEDVAL~0 := 10; {5764#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:54:03,090 INFO L273 TraceCheckUtils]: 7: Hoare triple {5764#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0))} assume !((if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) != 0);assume (if (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 % 3 - 3 else ~SIZE~0 % 3) == 0 then 1 else 0) != 0;~i~0 := 1; {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:54:03,090 INFO L273 TraceCheckUtils]: 8: Hoare triple {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume true; {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:54:03,091 INFO L273 TraceCheckUtils]: 9: Hoare triple {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:54:03,091 INFO L273 TraceCheckUtils]: 10: Hoare triple {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:54:03,092 INFO L273 TraceCheckUtils]: 11: Hoare triple {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} is VALID [2018-11-14 18:54:03,093 INFO L273 TraceCheckUtils]: 12: Hoare triple {5765#(and (not (= main_~FIXEDVAL~0 0)) (= 0 main_~DEFAULTVAL~0) (= main_~i~0 1))} assume !(~value~0 != ~DEFAULTVAL~0);call write~int(~FIXEDVAL~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {5766#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:54:03,093 INFO L273 TraceCheckUtils]: 13: Hoare triple {5766#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {5766#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:54:03,095 INFO L273 TraceCheckUtils]: 14: Hoare triple {5766#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {5766#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:54:03,096 INFO L273 TraceCheckUtils]: 15: Hoare triple {5766#(and (= main_~i~0 1) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8))) main_~DEFAULTVAL~0)))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {5767#(and (not (= (* 12 main_~i~0) 12)) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:54:03,096 INFO L273 TraceCheckUtils]: 16: Hoare triple {5767#(and (not (= (* 12 main_~i~0) 12)) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)))} assume true; {5767#(and (not (= (* 12 main_~i~0) 12)) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:54:03,097 INFO L273 TraceCheckUtils]: 17: Hoare triple {5767#(and (not (= (* 12 main_~i~0) 12)) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)))} assume !!(~i~0 <= (if ~SIZE~0 < 0 && ~SIZE~0 % 3 != 0 then ~SIZE~0 / 3 + 1 else ~SIZE~0 / 3));call #t~ret3 := ReadFromPort();assume -2147483648 <= #t~ret3 && #t~ret3 <= 2147483647;~value~0 := #t~ret3;havoc #t~ret3; {5767#(and (not (= (* 12 main_~i~0) 12)) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:54:03,099 INFO L273 TraceCheckUtils]: 18: Hoare triple {5767#(and (not (= (* 12 main_~i~0) 12)) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 3) * 4, 4); {5767#(and (not (= (* 12 main_~i~0) 12)) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)))} is VALID [2018-11-14 18:54:03,099 INFO L273 TraceCheckUtils]: 19: Hoare triple {5767#(and (not (= (* 12 main_~i~0) 12)) (not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0)))} call #t~ret4 := ReadFromPort();assume -2147483648 <= #t~ret4 && #t~ret4 <= 2147483647;~value~0 := #t~ret4;havoc #t~ret4; {5768#(not (= (select (store (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)) main_~value~0) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:54:03,101 INFO L273 TraceCheckUtils]: 20: Hoare triple {5768#(not (= (select (store (select |#memory_int| |main_~#a~0.base|) (+ (* 12 main_~i~0) |main_~#a~0.offset| (- 8)) main_~value~0) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 2) * 4, 4); {5769#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:54:03,101 INFO L273 TraceCheckUtils]: 21: Hoare triple {5769#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} call #t~ret5 := ReadFromPort();assume -2147483648 <= #t~ret5 && #t~ret5 <= 2147483647;~value~0 := #t~ret5;havoc #t~ret5; {5769#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:54:03,102 INFO L273 TraceCheckUtils]: 22: Hoare triple {5769#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} assume ~value~0 != ~DEFAULTVAL~0;call write~int(~value~0, ~#a~0.base, ~#a~0.offset + (~i~0 * 3 - 1) * 4, 4); {5769#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} is VALID [2018-11-14 18:54:03,120 INFO L273 TraceCheckUtils]: 23: Hoare triple {5769#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} #t~post2 := ~i~0;~i~0 := #t~post2 + 1;havoc #t~post2; {5769#(not (= (select (select |#memory_int| |main_~#a~0.base|) (+ |main_~#a~0.offset| (+ (* 4 3) (- 8)))) main_~DEFAULTVAL~0))} is VALID