java -ea -Xmx8000000000 -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc ../../../trunk/examples/toolchains/AutomizerCInline_WitnessPrinter.xml -s ../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Bitvector.epf -i ../../../trunk/examples/svcomp/ldv-regression/test22_true-unreach-call.c -------------------------------------------------------------------------------- This is Ultimate 0.1.23-61f4311 [2018-11-23 11:07:47,816 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 11:07:47,818 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 11:07:47,831 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 11:07:47,832 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 11:07:47,833 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 11:07:47,834 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 11:07:47,836 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 11:07:47,838 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 11:07:47,839 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 11:07:47,840 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 11:07:47,841 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 11:07:47,842 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 11:07:47,843 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 11:07:47,846 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 11:07:47,847 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 11:07:47,850 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 11:07:47,852 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 11:07:47,855 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 11:07:47,856 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 11:07:47,857 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 11:07:47,859 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 11:07:47,861 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 11:07:47,861 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 11:07:47,862 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 11:07:47,863 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 11:07:47,864 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 11:07:47,864 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 11:07:47,865 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 11:07:47,866 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 11:07:47,866 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 11:07:47,867 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 11:07:47,867 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 11:07:47,867 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 11:07:47,868 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 11:07:47,869 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 11:07:47,869 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Bitvector.epf [2018-11-23 11:07:47,885 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 11:07:47,885 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 11:07:47,886 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 11:07:47,886 INFO L133 SettingsManager]: * ... calls to implemented procedures=ONLY_FOR_CONCURRENT_PROGRAMS [2018-11-23 11:07:47,887 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 11:07:47,887 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 11:07:47,887 INFO L133 SettingsManager]: * Use SBE=true [2018-11-23 11:07:47,887 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 11:07:47,888 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 11:07:47,888 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 11:07:47,888 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 11:07:47,888 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 11:07:47,888 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 11:07:47,888 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 11:07:47,889 INFO L133 SettingsManager]: * Use bitvectors instead of ints=true [2018-11-23 11:07:47,889 INFO L133 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2018-11-23 11:07:47,889 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 11:07:47,889 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 11:07:47,889 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 11:07:47,890 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 11:07:47,890 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 11:07:47,890 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-11-23 11:07:47,890 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 11:07:47,890 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-11-23 11:07:47,891 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 11:07:47,891 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 11:07:47,891 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 11:07:47,891 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 11:07:47,891 INFO L133 SettingsManager]: * Trace refinement strategy=WOLF [2018-11-23 11:07:47,892 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 11:07:47,892 INFO L133 SettingsManager]: * Command for external solver=cvc4nyu --tear-down-incremental --rewrite-divk --print-success --lang smt [2018-11-23 11:07:47,892 INFO L133 SettingsManager]: * Logic for external solver=AUFBV [2018-11-23 11:07:47,892 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-11-23 11:07:47,957 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 11:07:47,970 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 11:07:47,974 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 11:07:47,976 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 11:07:47,976 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 11:07:47,977 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/ldv-regression/test22_true-unreach-call.c [2018-11-23 11:07:48,036 INFO L221 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/af3463c2c/ef22a8e409624a11a61624d15bafb32b/FLAG02a41be1a [2018-11-23 11:07:48,465 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 11:07:48,466 INFO L161 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/ldv-regression/test22_true-unreach-call.c [2018-11-23 11:07:48,472 INFO L355 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/af3463c2c/ef22a8e409624a11a61624d15bafb32b/FLAG02a41be1a [2018-11-23 11:07:48,831 INFO L363 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/af3463c2c/ef22a8e409624a11a61624d15bafb32b [2018-11-23 11:07:48,842 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 11:07:48,844 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 11:07:48,845 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 11:07:48,845 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 11:07:48,849 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 11:07:48,851 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 11:07:48" (1/1) ... [2018-11-23 11:07:48,854 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@11cac8ec and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:48, skipping insertion in model container [2018-11-23 11:07:48,854 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 11:07:48" (1/1) ... [2018-11-23 11:07:48,864 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 11:07:48,886 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 11:07:49,129 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 11:07:49,153 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 11:07:49,179 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 11:07:49,206 INFO L195 MainTranslator]: Completed translation [2018-11-23 11:07:49,206 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49 WrapperNode [2018-11-23 11:07:49,207 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 11:07:49,208 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 11:07:49,208 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 11:07:49,208 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 11:07:49,219 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,233 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,244 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 11:07:49,244 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 11:07:49,245 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 11:07:49,245 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 11:07:49,257 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,257 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,262 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,263 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,300 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,308 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,311 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... [2018-11-23 11:07:49,319 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 11:07:49,323 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 11:07:49,323 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 11:07:49,323 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 11:07:49,325 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-11-23 11:07:49,460 INFO L130 BoogieDeclarations]: Found specification of procedure init [2018-11-23 11:07:49,460 INFO L138 BoogieDeclarations]: Found implementation of procedure init [2018-11-23 11:07:49,461 INFO L130 BoogieDeclarations]: Found specification of procedure main [2018-11-23 11:07:49,461 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2018-11-23 11:07:49,461 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~intINTTYPE4 [2018-11-23 11:07:49,461 INFO L130 BoogieDeclarations]: Found specification of procedure check [2018-11-23 11:07:49,461 INFO L138 BoogieDeclarations]: Found implementation of procedure check [2018-11-23 11:07:49,461 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-11-23 11:07:49,462 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-11-23 11:07:49,462 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 11:07:49,462 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2018-11-23 11:07:49,462 INFO L130 BoogieDeclarations]: Found specification of procedure get_dummy [2018-11-23 11:07:49,462 INFO L138 BoogieDeclarations]: Found implementation of procedure get_dummy [2018-11-23 11:07:49,462 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 11:07:49,463 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 11:07:49,463 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2018-11-23 11:07:50,232 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 11:07:50,233 INFO L280 CfgBuilder]: Removed 1 assue(true) statements. [2018-11-23 11:07:50,233 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 11:07:50 BoogieIcfgContainer [2018-11-23 11:07:50,233 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 11:07:50,234 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2018-11-23 11:07:50,235 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2018-11-23 11:07:50,238 INFO L276 PluginConnector]: TraceAbstraction initialized [2018-11-23 11:07:50,238 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 23.11 11:07:48" (1/3) ... [2018-11-23 11:07:50,239 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7be541b6 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 11:07:50, skipping insertion in model container [2018-11-23 11:07:50,239 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 11:07:49" (2/3) ... [2018-11-23 11:07:50,240 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7be541b6 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 23.11 11:07:50, skipping insertion in model container [2018-11-23 11:07:50,240 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 11:07:50" (3/3) ... [2018-11-23 11:07:50,242 INFO L112 eAbstractionObserver]: Analyzing ICFG test22_true-unreach-call.c [2018-11-23 11:07:50,250 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2018-11-23 11:07:50,259 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2018-11-23 11:07:50,277 INFO L257 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2018-11-23 11:07:50,309 INFO L133 ementStrategyFactory]: Using default assertion order modulation [2018-11-23 11:07:50,309 INFO L382 AbstractCegarLoop]: Interprodecural is true [2018-11-23 11:07:50,310 INFO L383 AbstractCegarLoop]: Hoare is true [2018-11-23 11:07:50,310 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2018-11-23 11:07:50,310 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2018-11-23 11:07:50,310 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2018-11-23 11:07:50,310 INFO L387 AbstractCegarLoop]: Difference is false [2018-11-23 11:07:50,310 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2018-11-23 11:07:50,311 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2018-11-23 11:07:50,328 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states. [2018-11-23 11:07:50,335 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2018-11-23 11:07:50,336 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 11:07:50,337 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 11:07:50,340 INFO L423 AbstractCegarLoop]: === Iteration 1 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 11:07:50,346 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 11:07:50,346 INFO L82 PathProgramCache]: Analyzing trace with hash 80965718, now seen corresponding path program 1 times [2018-11-23 11:07:50,352 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 11:07:50,352 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 2 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 11:07:50,372 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 11:07:50,456 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:07:50,504 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:07:50,509 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 11:07:50,905 INFO L256 TraceCheckUtils]: 0: Hoare triple {38#true} call ULTIMATE.init(); {38#true} is VALID [2018-11-23 11:07:50,908 INFO L273 TraceCheckUtils]: 1: Hoare triple {38#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {38#true} is VALID [2018-11-23 11:07:50,909 INFO L273 TraceCheckUtils]: 2: Hoare triple {38#true} assume true; {38#true} is VALID [2018-11-23 11:07:50,909 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {38#true} {38#true} #60#return; {38#true} is VALID [2018-11-23 11:07:50,910 INFO L256 TraceCheckUtils]: 4: Hoare triple {38#true} call #t~ret17 := main(); {38#true} is VALID [2018-11-23 11:07:50,910 INFO L256 TraceCheckUtils]: 5: Hoare triple {38#true} call init(); {38#true} is VALID [2018-11-23 11:07:50,910 INFO L273 TraceCheckUtils]: 6: Hoare triple {38#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {38#true} is VALID [2018-11-23 11:07:50,911 INFO L273 TraceCheckUtils]: 7: Hoare triple {38#true} assume true; {38#true} is VALID [2018-11-23 11:07:50,911 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {38#true} {38#true} #64#return; {38#true} is VALID [2018-11-23 11:07:50,911 INFO L256 TraceCheckUtils]: 9: Hoare triple {38#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {38#true} is VALID [2018-11-23 11:07:50,912 INFO L273 TraceCheckUtils]: 10: Hoare triple {38#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {38#true} is VALID [2018-11-23 11:07:50,912 INFO L273 TraceCheckUtils]: 11: Hoare triple {38#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {38#true} is VALID [2018-11-23 11:07:50,912 INFO L273 TraceCheckUtils]: 12: Hoare triple {38#true} assume true; {38#true} is VALID [2018-11-23 11:07:50,913 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {38#true} {38#true} #66#return; {38#true} is VALID [2018-11-23 11:07:50,913 INFO L273 TraceCheckUtils]: 14: Hoare triple {38#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {38#true} is VALID [2018-11-23 11:07:50,913 INFO L256 TraceCheckUtils]: 15: Hoare triple {38#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {38#true} is VALID [2018-11-23 11:07:50,914 INFO L273 TraceCheckUtils]: 16: Hoare triple {38#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {38#true} is VALID [2018-11-23 11:07:50,914 INFO L273 TraceCheckUtils]: 17: Hoare triple {38#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {38#true} is VALID [2018-11-23 11:07:50,914 INFO L273 TraceCheckUtils]: 18: Hoare triple {38#true} assume true; {38#true} is VALID [2018-11-23 11:07:50,915 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {38#true} {38#true} #68#return; {38#true} is VALID [2018-11-23 11:07:50,915 INFO L273 TraceCheckUtils]: 20: Hoare triple {38#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {38#true} is VALID [2018-11-23 11:07:50,915 INFO L256 TraceCheckUtils]: 21: Hoare triple {38#true} call #t~ret9.base, #t~ret9.offset := get_dummy(); {38#true} is VALID [2018-11-23 11:07:50,916 INFO L273 TraceCheckUtils]: 22: Hoare triple {38#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {38#true} is VALID [2018-11-23 11:07:50,916 INFO L273 TraceCheckUtils]: 23: Hoare triple {38#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {38#true} is VALID [2018-11-23 11:07:50,917 INFO L273 TraceCheckUtils]: 24: Hoare triple {38#true} assume true; {38#true} is VALID [2018-11-23 11:07:50,917 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {38#true} {38#true} #70#return; {38#true} is VALID [2018-11-23 11:07:50,917 INFO L273 TraceCheckUtils]: 26: Hoare triple {38#true} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {38#true} is VALID [2018-11-23 11:07:50,918 INFO L273 TraceCheckUtils]: 27: Hoare triple {38#true} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {38#true} is VALID [2018-11-23 11:07:50,918 INFO L273 TraceCheckUtils]: 28: Hoare triple {38#true} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {38#true} is VALID [2018-11-23 11:07:50,931 INFO L273 TraceCheckUtils]: 29: Hoare triple {38#true} assume !true; {39#false} is VALID [2018-11-23 11:07:50,932 INFO L256 TraceCheckUtils]: 30: Hoare triple {39#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {39#false} is VALID [2018-11-23 11:07:50,932 INFO L273 TraceCheckUtils]: 31: Hoare triple {39#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {39#false} is VALID [2018-11-23 11:07:50,933 INFO L273 TraceCheckUtils]: 32: Hoare triple {39#false} assume true; {39#false} is VALID [2018-11-23 11:07:50,933 INFO L268 TraceCheckUtils]: 33: Hoare quadruple {39#false} {39#false} #72#return; {39#false} is VALID [2018-11-23 11:07:50,933 INFO L273 TraceCheckUtils]: 34: Hoare triple {39#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {39#false} is VALID [2018-11-23 11:07:50,934 INFO L273 TraceCheckUtils]: 35: Hoare triple {39#false} assume !false; {39#false} is VALID [2018-11-23 11:07:50,943 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2018-11-23 11:07:50,944 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 11:07:50,953 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 11:07:50,954 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2018-11-23 11:07:50,958 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 36 [2018-11-23 11:07:50,962 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 11:07:50,966 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2018-11-23 11:07:51,162 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:07:51,162 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2018-11-23 11:07:51,172 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2018-11-23 11:07:51,173 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2018-11-23 11:07:51,176 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 2 states. [2018-11-23 11:07:51,307 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:07:51,307 INFO L93 Difference]: Finished difference Result 47 states and 54 transitions. [2018-11-23 11:07:51,308 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2018-11-23 11:07:51,308 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 36 [2018-11-23 11:07:51,308 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 11:07:51,310 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 11:07:51,321 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 54 transitions. [2018-11-23 11:07:51,322 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2018-11-23 11:07:51,326 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 54 transitions. [2018-11-23 11:07:51,327 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 54 transitions. [2018-11-23 11:07:51,503 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:07:51,516 INFO L225 Difference]: With dead ends: 47 [2018-11-23 11:07:51,517 INFO L226 Difference]: Without dead ends: 30 [2018-11-23 11:07:51,520 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 35 GetRequests, 35 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-23 11:07:51,538 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 30 states. [2018-11-23 11:07:51,650 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 30 to 30. [2018-11-23 11:07:51,650 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 11:07:51,651 INFO L82 GeneralOperation]: Start isEquivalent. First operand 30 states. Second operand 30 states. [2018-11-23 11:07:51,653 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 30 states. [2018-11-23 11:07:51,653 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 30 states. [2018-11-23 11:07:51,661 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:07:51,662 INFO L93 Difference]: Finished difference Result 30 states and 34 transitions. [2018-11-23 11:07:51,662 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 34 transitions. [2018-11-23 11:07:51,663 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:07:51,663 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:07:51,664 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 30 states. [2018-11-23 11:07:51,665 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 30 states. [2018-11-23 11:07:51,674 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:07:51,674 INFO L93 Difference]: Finished difference Result 30 states and 34 transitions. [2018-11-23 11:07:51,676 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 34 transitions. [2018-11-23 11:07:51,676 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:07:51,677 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:07:51,677 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 11:07:51,677 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 11:07:51,678 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2018-11-23 11:07:51,688 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 34 transitions. [2018-11-23 11:07:51,691 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 34 transitions. Word has length 36 [2018-11-23 11:07:51,691 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 11:07:51,692 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 34 transitions. [2018-11-23 11:07:51,692 INFO L481 AbstractCegarLoop]: Interpolant automaton has 2 states. [2018-11-23 11:07:51,692 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 34 transitions. [2018-11-23 11:07:51,695 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2018-11-23 11:07:51,695 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 11:07:51,696 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 11:07:51,696 INFO L423 AbstractCegarLoop]: === Iteration 2 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 11:07:51,696 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 11:07:51,697 INFO L82 PathProgramCache]: Analyzing trace with hash 76840485, now seen corresponding path program 1 times [2018-11-23 11:07:51,698 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 11:07:51,698 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 3 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 11:07:51,732 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 11:07:51,851 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:07:51,902 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:07:51,905 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 11:07:52,411 WARN L180 SmtUtils]: Spent 108.00 ms on a formula simplification that was a NOOP. DAG size: 9 [2018-11-23 11:07:52,662 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification that was a NOOP. DAG size: 9 [2018-11-23 11:07:53,150 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 18 [2018-11-23 11:07:53,191 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 11 [2018-11-23 11:07:53,194 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 11:07:53,204 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:07:53,223 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:07:53,224 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 2 variables, input treesize:24, output treesize:11 [2018-11-23 11:07:53,237 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 11:07:53,237 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, main_~pa~0.base]. (let ((.cse0 (select (select |#memory_int| main_~pa~0.base) (_ bv0 32)))) (and (bvsgt .cse0 (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) .cse0) (= |main_#t~mem14| .cse0))) [2018-11-23 11:07:53,237 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (bvadd main_~i~0 (_ bv10 32)))) (and (= |main_#t~mem14| .cse0) (bvsgt .cse0 (_ bv0 32)))) [2018-11-23 11:07:53,516 INFO L256 TraceCheckUtils]: 0: Hoare triple {313#true} call ULTIMATE.init(); {313#true} is VALID [2018-11-23 11:07:53,525 INFO L273 TraceCheckUtils]: 1: Hoare triple {313#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,538 INFO L273 TraceCheckUtils]: 2: Hoare triple {321#(= (_ bv0 32) |~#d1~0.offset|)} assume true; {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,555 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {321#(= (_ bv0 32) |~#d1~0.offset|)} {313#true} #60#return; {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,559 INFO L256 TraceCheckUtils]: 4: Hoare triple {321#(= (_ bv0 32) |~#d1~0.offset|)} call #t~ret17 := main(); {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,561 INFO L256 TraceCheckUtils]: 5: Hoare triple {321#(= (_ bv0 32) |~#d1~0.offset|)} call init(); {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,563 INFO L273 TraceCheckUtils]: 6: Hoare triple {321#(= (_ bv0 32) |~#d1~0.offset|)} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,563 INFO L273 TraceCheckUtils]: 7: Hoare triple {321#(= (_ bv0 32) |~#d1~0.offset|)} assume true; {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,566 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {321#(= (_ bv0 32) |~#d1~0.offset|)} {321#(= (_ bv0 32) |~#d1~0.offset|)} #64#return; {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,567 INFO L256 TraceCheckUtils]: 9: Hoare triple {321#(= (_ bv0 32) |~#d1~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,568 INFO L273 TraceCheckUtils]: 10: Hoare triple {321#(= (_ bv0 32) |~#d1~0.offset|)} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {349#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:07:53,578 INFO L273 TraceCheckUtils]: 11: Hoare triple {349#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|) (= (_ bv0 32) |~#d1~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {353#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:07:53,580 INFO L273 TraceCheckUtils]: 12: Hoare triple {353#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} assume true; {353#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:07:53,581 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {353#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} {321#(= (_ bv0 32) |~#d1~0.offset|)} #66#return; {360#(and (= |main_#t~ret7.offset| |~#d1~0.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:07:53,584 INFO L273 TraceCheckUtils]: 14: Hoare triple {360#(and (= |main_#t~ret7.offset| |~#d1~0.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= (_ bv0 32) |~#d1~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {364#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:07:53,585 INFO L256 TraceCheckUtils]: 15: Hoare triple {364#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {321#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:07:53,586 INFO L273 TraceCheckUtils]: 16: Hoare triple {321#(= (_ bv0 32) |~#d1~0.offset|)} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {349#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:07:53,587 INFO L273 TraceCheckUtils]: 17: Hoare triple {349#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|) (= (_ bv0 32) |~#d1~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {353#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:07:53,588 INFO L273 TraceCheckUtils]: 18: Hoare triple {353#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} assume true; {353#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:07:53,590 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {353#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} {364#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} #68#return; {380#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= (_ bv0 32) |main_#t~ret8.offset|) (= main_~pd1~0.offset |main_#t~ret8.offset|))} is VALID [2018-11-23 11:07:53,591 INFO L273 TraceCheckUtils]: 20: Hoare triple {380#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= (_ bv0 32) |main_#t~ret8.offset|) (= main_~pd1~0.offset |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {384#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:07:53,591 INFO L256 TraceCheckUtils]: 21: Hoare triple {384#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {313#true} is VALID [2018-11-23 11:07:53,592 INFO L273 TraceCheckUtils]: 22: Hoare triple {313#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {313#true} is VALID [2018-11-23 11:07:53,592 INFO L273 TraceCheckUtils]: 23: Hoare triple {313#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {313#true} is VALID [2018-11-23 11:07:53,593 INFO L273 TraceCheckUtils]: 24: Hoare triple {313#true} assume true; {313#true} is VALID [2018-11-23 11:07:53,594 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {313#true} {384#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} #70#return; {384#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:07:53,598 INFO L273 TraceCheckUtils]: 26: Hoare triple {384#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {384#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:07:53,601 INFO L273 TraceCheckUtils]: 27: Hoare triple {384#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {406#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} is VALID [2018-11-23 11:07:53,614 INFO L273 TraceCheckUtils]: 28: Hoare triple {406#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {410#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= (_ bv0 32) main_~pa~0.offset))} is VALID [2018-11-23 11:07:53,631 INFO L273 TraceCheckUtils]: 29: Hoare triple {410#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= (_ bv0 32) main_~pa~0.offset))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {414#(and (= (bvadd |main_#t~mem14| (_ bv4294967286 32)) main_~i~0) (bvsgt (bvadd main_~i~0 (_ bv10 32)) (_ bv0 32)))} is VALID [2018-11-23 11:07:53,634 INFO L273 TraceCheckUtils]: 30: Hoare triple {414#(and (= (bvadd |main_#t~mem14| (_ bv4294967286 32)) main_~i~0) (bvsgt (bvadd main_~i~0 (_ bv10 32)) (_ bv0 32)))} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {314#false} is VALID [2018-11-23 11:07:53,635 INFO L256 TraceCheckUtils]: 31: Hoare triple {314#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {314#false} is VALID [2018-11-23 11:07:53,635 INFO L273 TraceCheckUtils]: 32: Hoare triple {314#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {314#false} is VALID [2018-11-23 11:07:53,635 INFO L273 TraceCheckUtils]: 33: Hoare triple {314#false} assume true; {314#false} is VALID [2018-11-23 11:07:53,635 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {314#false} {314#false} #72#return; {314#false} is VALID [2018-11-23 11:07:53,636 INFO L273 TraceCheckUtils]: 35: Hoare triple {314#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {314#false} is VALID [2018-11-23 11:07:53,636 INFO L273 TraceCheckUtils]: 36: Hoare triple {314#false} assume !false; {314#false} is VALID [2018-11-23 11:07:53,642 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 11:07:53,642 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 11:07:53,980 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 22 treesize of output 24 [2018-11-23 11:07:53,991 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 19 treesize of output 15 [2018-11-23 11:07:53,995 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 11:07:54,060 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 13 [2018-11-23 11:07:54,071 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 11:07:54,132 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 11:07:54,137 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 11:07:54,139 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 16 [2018-11-23 11:07:54,143 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 11:07:54,172 INFO L267 ElimStorePlain]: Start of recursive call 2: 3 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 11:07:54,179 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 11:07:54,179 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:22, output treesize:7 [2018-11-23 11:07:54,187 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 11:07:54,187 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|]. (let ((.cse0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))) (or (not (bvsgt .cse0 (_ bv0 32))) (bvslt (bvadd .cse0 (_ bv4294967286 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)))) [2018-11-23 11:07:54,188 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ []. (and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset)) [2018-11-23 11:07:54,750 INFO L273 TraceCheckUtils]: 36: Hoare triple {314#false} assume !false; {314#false} is VALID [2018-11-23 11:07:54,750 INFO L273 TraceCheckUtils]: 35: Hoare triple {314#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {314#false} is VALID [2018-11-23 11:07:54,751 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {313#true} {314#false} #72#return; {314#false} is VALID [2018-11-23 11:07:54,751 INFO L273 TraceCheckUtils]: 33: Hoare triple {313#true} assume true; {313#true} is VALID [2018-11-23 11:07:54,751 INFO L273 TraceCheckUtils]: 32: Hoare triple {313#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {313#true} is VALID [2018-11-23 11:07:54,752 INFO L256 TraceCheckUtils]: 31: Hoare triple {314#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {313#true} is VALID [2018-11-23 11:07:54,752 INFO L273 TraceCheckUtils]: 30: Hoare triple {454#(bvslt main_~i~0 |main_#t~mem14|)} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {314#false} is VALID [2018-11-23 11:07:54,753 INFO L273 TraceCheckUtils]: 29: Hoare triple {458#(bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {454#(bvslt main_~i~0 |main_#t~mem14|)} is VALID [2018-11-23 11:07:54,754 INFO L273 TraceCheckUtils]: 28: Hoare triple {462#(or (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967286 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (not |main_#t~short12|))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {458#(bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-23 11:07:54,761 INFO L273 TraceCheckUtils]: 27: Hoare triple {466#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {462#(or (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967286 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (not |main_#t~short12|))} is VALID [2018-11-23 11:07:54,763 INFO L273 TraceCheckUtils]: 26: Hoare triple {466#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {466#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:07:54,764 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {313#true} {466#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} #70#return; {466#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:07:54,764 INFO L273 TraceCheckUtils]: 24: Hoare triple {313#true} assume true; {313#true} is VALID [2018-11-23 11:07:54,764 INFO L273 TraceCheckUtils]: 23: Hoare triple {313#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {313#true} is VALID [2018-11-23 11:07:54,765 INFO L273 TraceCheckUtils]: 22: Hoare triple {313#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {313#true} is VALID [2018-11-23 11:07:54,765 INFO L256 TraceCheckUtils]: 21: Hoare triple {466#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {313#true} is VALID [2018-11-23 11:07:54,766 INFO L273 TraceCheckUtils]: 20: Hoare triple {488#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= main_~pd1~0.offset |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {466#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:07:54,768 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {496#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} {492#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|))} #68#return; {488#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= main_~pd1~0.offset |main_#t~ret8.offset|))} is VALID [2018-11-23 11:07:54,769 INFO L273 TraceCheckUtils]: 18: Hoare triple {496#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} assume true; {496#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-23 11:07:54,770 INFO L273 TraceCheckUtils]: 17: Hoare triple {503#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {496#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-23 11:07:54,771 INFO L273 TraceCheckUtils]: 16: Hoare triple {313#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {503#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-23 11:07:54,771 INFO L256 TraceCheckUtils]: 15: Hoare triple {492#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {313#true} is VALID [2018-11-23 11:07:54,772 INFO L273 TraceCheckUtils]: 14: Hoare triple {510#(and (= |main_#t~ret7.offset| |~#d1~0.offset|) (= |~#d1~0.base| |main_#t~ret7.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {492#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|))} is VALID [2018-11-23 11:07:54,775 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {496#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} {313#true} #66#return; {510#(and (= |main_#t~ret7.offset| |~#d1~0.offset|) (= |~#d1~0.base| |main_#t~ret7.base|))} is VALID [2018-11-23 11:07:54,776 INFO L273 TraceCheckUtils]: 12: Hoare triple {496#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} assume true; {496#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-23 11:07:54,776 INFO L273 TraceCheckUtils]: 11: Hoare triple {503#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {496#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-23 11:07:54,778 INFO L273 TraceCheckUtils]: 10: Hoare triple {313#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {503#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-23 11:07:54,779 INFO L256 TraceCheckUtils]: 9: Hoare triple {313#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {313#true} is VALID [2018-11-23 11:07:54,779 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {313#true} {313#true} #64#return; {313#true} is VALID [2018-11-23 11:07:54,779 INFO L273 TraceCheckUtils]: 7: Hoare triple {313#true} assume true; {313#true} is VALID [2018-11-23 11:07:54,780 INFO L273 TraceCheckUtils]: 6: Hoare triple {313#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {313#true} is VALID [2018-11-23 11:07:54,780 INFO L256 TraceCheckUtils]: 5: Hoare triple {313#true} call init(); {313#true} is VALID [2018-11-23 11:07:54,781 INFO L256 TraceCheckUtils]: 4: Hoare triple {313#true} call #t~ret17 := main(); {313#true} is VALID [2018-11-23 11:07:54,781 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {313#true} {313#true} #60#return; {313#true} is VALID [2018-11-23 11:07:54,781 INFO L273 TraceCheckUtils]: 2: Hoare triple {313#true} assume true; {313#true} is VALID [2018-11-23 11:07:54,782 INFO L273 TraceCheckUtils]: 1: Hoare triple {313#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {313#true} is VALID [2018-11-23 11:07:54,782 INFO L256 TraceCheckUtils]: 0: Hoare triple {313#true} call ULTIMATE.init(); {313#true} is VALID [2018-11-23 11:07:54,786 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2018-11-23 11:07:54,791 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 11:07:54,791 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 11] total 21 [2018-11-23 11:07:54,794 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 37 [2018-11-23 11:07:54,795 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 11:07:54,795 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states. [2018-11-23 11:07:54,931 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:07:54,931 INFO L459 AbstractCegarLoop]: Interpolant automaton has 21 states [2018-11-23 11:07:54,932 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2018-11-23 11:07:54,932 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=366, Unknown=0, NotChecked=0, Total=420 [2018-11-23 11:07:54,932 INFO L87 Difference]: Start difference. First operand 30 states and 34 transitions. Second operand 21 states. [2018-11-23 11:07:57,511 WARN L180 SmtUtils]: Spent 100.00 ms on a formula simplification. DAG size of input: 24 DAG size of output: 23 [2018-11-23 11:07:58,417 WARN L180 SmtUtils]: Spent 136.00 ms on a formula simplification. DAG size of input: 35 DAG size of output: 34 [2018-11-23 11:07:58,644 WARN L180 SmtUtils]: Spent 130.00 ms on a formula simplification. DAG size of input: 31 DAG size of output: 30 [2018-11-23 11:07:59,481 WARN L180 SmtUtils]: Spent 173.00 ms on a formula simplification. DAG size of input: 39 DAG size of output: 37 [2018-11-23 11:07:59,743 WARN L180 SmtUtils]: Spent 137.00 ms on a formula simplification. DAG size of input: 33 DAG size of output: 32 [2018-11-23 11:08:02,250 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:02,250 INFO L93 Difference]: Finished difference Result 87 states and 108 transitions. [2018-11-23 11:08:02,250 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2018-11-23 11:08:02,251 INFO L78 Accepts]: Start accepts. Automaton has 21 states. Word has length 37 [2018-11-23 11:08:02,251 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 11:08:02,251 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 11:08:02,261 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 108 transitions. [2018-11-23 11:08:02,261 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2018-11-23 11:08:02,270 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 108 transitions. [2018-11-23 11:08:02,270 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states and 108 transitions. [2018-11-23 11:08:02,666 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 108 edges. 108 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:02,672 INFO L225 Difference]: With dead ends: 87 [2018-11-23 11:08:02,672 INFO L226 Difference]: Without dead ends: 80 [2018-11-23 11:08:02,674 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 87 GetRequests, 54 SyntacticMatches, 0 SemanticMatches, 33 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 153 ImplicationChecksByTransitivity, 3.3s TimeCoverageRelationStatistics Valid=214, Invalid=976, Unknown=0, NotChecked=0, Total=1190 [2018-11-23 11:08:02,674 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2018-11-23 11:08:02,739 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 45. [2018-11-23 11:08:02,739 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 11:08:02,739 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 45 states. [2018-11-23 11:08:02,739 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 45 states. [2018-11-23 11:08:02,739 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 45 states. [2018-11-23 11:08:02,748 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:02,749 INFO L93 Difference]: Finished difference Result 80 states and 98 transitions. [2018-11-23 11:08:02,749 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 98 transitions. [2018-11-23 11:08:02,750 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:02,750 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:02,751 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 80 states. [2018-11-23 11:08:02,751 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 80 states. [2018-11-23 11:08:02,759 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:02,759 INFO L93 Difference]: Finished difference Result 80 states and 98 transitions. [2018-11-23 11:08:02,759 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 98 transitions. [2018-11-23 11:08:02,761 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:02,761 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:02,761 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 11:08:02,761 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 11:08:02,761 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2018-11-23 11:08:02,765 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 56 transitions. [2018-11-23 11:08:02,769 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 56 transitions. Word has length 37 [2018-11-23 11:08:02,770 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 11:08:02,770 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 56 transitions. [2018-11-23 11:08:02,770 INFO L481 AbstractCegarLoop]: Interpolant automaton has 21 states. [2018-11-23 11:08:02,770 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 56 transitions. [2018-11-23 11:08:02,772 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2018-11-23 11:08:02,772 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 11:08:02,772 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 11:08:02,772 INFO L423 AbstractCegarLoop]: === Iteration 3 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 11:08:02,775 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 11:08:02,775 INFO L82 PathProgramCache]: Analyzing trace with hash 499542311, now seen corresponding path program 1 times [2018-11-23 11:08:02,775 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 11:08:02,775 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 4 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 11:08:02,797 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2018-11-23 11:08:02,856 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:02,880 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:02,883 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 11:08:02,916 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 14 [2018-11-23 11:08:02,944 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 1 [2018-11-23 11:08:02,946 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:02,948 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:02,950 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:02,951 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:11, output treesize:4 [2018-11-23 11:08:03,132 INFO L256 TraceCheckUtils]: 0: Hoare triple {927#true} call ULTIMATE.init(); {927#true} is VALID [2018-11-23 11:08:03,134 INFO L273 TraceCheckUtils]: 1: Hoare triple {927#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,134 INFO L273 TraceCheckUtils]: 2: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,134 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} {927#true} #60#return; {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,135 INFO L256 TraceCheckUtils]: 4: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret17 := main(); {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,136 INFO L256 TraceCheckUtils]: 5: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} call init(); {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,136 INFO L273 TraceCheckUtils]: 6: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,137 INFO L273 TraceCheckUtils]: 7: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,138 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} {935#(not (= |~#d1~0.base| |~#d2~0.base|))} #64#return; {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,140 INFO L256 TraceCheckUtils]: 9: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret7.base, #t~ret7.offset := get_dummy(); {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,141 INFO L273 TraceCheckUtils]: 10: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {963#(and (not (= |~#d1~0.base| |~#d2~0.base|)) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-23 11:08:03,156 INFO L273 TraceCheckUtils]: 11: Hoare triple {963#(and (not (= |~#d1~0.base| |~#d2~0.base|)) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {967#(and (= |get_dummy_#res.base| |~#d1~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} is VALID [2018-11-23 11:08:03,157 INFO L273 TraceCheckUtils]: 12: Hoare triple {967#(and (= |get_dummy_#res.base| |~#d1~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} assume true; {967#(and (= |get_dummy_#res.base| |~#d1~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} is VALID [2018-11-23 11:08:03,157 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {967#(and (= |get_dummy_#res.base| |~#d1~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} {935#(not (= |~#d1~0.base| |~#d2~0.base|))} #66#return; {974#(not (= |main_#t~ret7.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,158 INFO L273 TraceCheckUtils]: 14: Hoare triple {974#(not (= |main_#t~ret7.base| |~#d2~0.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {978#(not (= main_~pd1~0.base |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,158 INFO L256 TraceCheckUtils]: 15: Hoare triple {978#(not (= main_~pd1~0.base |~#d2~0.base|))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {927#true} is VALID [2018-11-23 11:08:03,159 INFO L273 TraceCheckUtils]: 16: Hoare triple {927#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {985#(= |get_dummy_#t~ite5.base| |~#d2~0.base|)} is VALID [2018-11-23 11:08:03,159 INFO L273 TraceCheckUtils]: 17: Hoare triple {985#(= |get_dummy_#t~ite5.base| |~#d2~0.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {989#(= |get_dummy_#res.base| |~#d2~0.base|)} is VALID [2018-11-23 11:08:03,164 INFO L273 TraceCheckUtils]: 18: Hoare triple {989#(= |get_dummy_#res.base| |~#d2~0.base|)} assume true; {989#(= |get_dummy_#res.base| |~#d2~0.base|)} is VALID [2018-11-23 11:08:03,166 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {989#(= |get_dummy_#res.base| |~#d2~0.base|)} {978#(not (= main_~pd1~0.base |~#d2~0.base|))} #68#return; {996#(not (= main_~pd1~0.base |main_#t~ret8.base|))} is VALID [2018-11-23 11:08:03,166 INFO L273 TraceCheckUtils]: 20: Hoare triple {996#(not (= main_~pd1~0.base |main_#t~ret8.base|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-23 11:08:03,166 INFO L256 TraceCheckUtils]: 21: Hoare triple {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {927#true} is VALID [2018-11-23 11:08:03,166 INFO L273 TraceCheckUtils]: 22: Hoare triple {927#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {927#true} is VALID [2018-11-23 11:08:03,167 INFO L273 TraceCheckUtils]: 23: Hoare triple {927#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {927#true} is VALID [2018-11-23 11:08:03,167 INFO L273 TraceCheckUtils]: 24: Hoare triple {927#true} assume true; {927#true} is VALID [2018-11-23 11:08:03,167 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {927#true} {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} #70#return; {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-23 11:08:03,168 INFO L273 TraceCheckUtils]: 26: Hoare triple {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {1019#(not |main_#t~short12|)} is VALID [2018-11-23 11:08:03,169 INFO L273 TraceCheckUtils]: 27: Hoare triple {1019#(not |main_#t~short12|)} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {928#false} is VALID [2018-11-23 11:08:03,169 INFO L273 TraceCheckUtils]: 28: Hoare triple {928#false} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {928#false} is VALID [2018-11-23 11:08:03,169 INFO L273 TraceCheckUtils]: 29: Hoare triple {928#false} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {928#false} is VALID [2018-11-23 11:08:03,170 INFO L273 TraceCheckUtils]: 30: Hoare triple {928#false} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {928#false} is VALID [2018-11-23 11:08:03,170 INFO L256 TraceCheckUtils]: 31: Hoare triple {928#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {928#false} is VALID [2018-11-23 11:08:03,170 INFO L273 TraceCheckUtils]: 32: Hoare triple {928#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {928#false} is VALID [2018-11-23 11:08:03,170 INFO L273 TraceCheckUtils]: 33: Hoare triple {928#false} assume true; {928#false} is VALID [2018-11-23 11:08:03,170 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {928#false} {928#false} #72#return; {928#false} is VALID [2018-11-23 11:08:03,170 INFO L273 TraceCheckUtils]: 35: Hoare triple {928#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {928#false} is VALID [2018-11-23 11:08:03,171 INFO L273 TraceCheckUtils]: 36: Hoare triple {928#false} assume !false; {928#false} is VALID [2018-11-23 11:08:03,172 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 11 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2018-11-23 11:08:03,172 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 11:08:03,414 INFO L273 TraceCheckUtils]: 36: Hoare triple {928#false} assume !false; {928#false} is VALID [2018-11-23 11:08:03,415 INFO L273 TraceCheckUtils]: 35: Hoare triple {928#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {928#false} is VALID [2018-11-23 11:08:03,415 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {927#true} {928#false} #72#return; {928#false} is VALID [2018-11-23 11:08:03,415 INFO L273 TraceCheckUtils]: 33: Hoare triple {927#true} assume true; {927#true} is VALID [2018-11-23 11:08:03,415 INFO L273 TraceCheckUtils]: 32: Hoare triple {927#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {927#true} is VALID [2018-11-23 11:08:03,415 INFO L256 TraceCheckUtils]: 31: Hoare triple {928#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {927#true} is VALID [2018-11-23 11:08:03,416 INFO L273 TraceCheckUtils]: 30: Hoare triple {928#false} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {928#false} is VALID [2018-11-23 11:08:03,416 INFO L273 TraceCheckUtils]: 29: Hoare triple {928#false} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {928#false} is VALID [2018-11-23 11:08:03,416 INFO L273 TraceCheckUtils]: 28: Hoare triple {928#false} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {928#false} is VALID [2018-11-23 11:08:03,417 INFO L273 TraceCheckUtils]: 27: Hoare triple {1019#(not |main_#t~short12|)} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {928#false} is VALID [2018-11-23 11:08:03,418 INFO L273 TraceCheckUtils]: 26: Hoare triple {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {1019#(not |main_#t~short12|)} is VALID [2018-11-23 11:08:03,420 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {927#true} {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} #70#return; {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-23 11:08:03,420 INFO L273 TraceCheckUtils]: 24: Hoare triple {927#true} assume true; {927#true} is VALID [2018-11-23 11:08:03,420 INFO L273 TraceCheckUtils]: 23: Hoare triple {927#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {927#true} is VALID [2018-11-23 11:08:03,420 INFO L273 TraceCheckUtils]: 22: Hoare triple {927#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {927#true} is VALID [2018-11-23 11:08:03,421 INFO L256 TraceCheckUtils]: 21: Hoare triple {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {927#true} is VALID [2018-11-23 11:08:03,429 INFO L273 TraceCheckUtils]: 20: Hoare triple {996#(not (= main_~pd1~0.base |main_#t~ret8.base|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1000#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-23 11:08:03,430 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {989#(= |get_dummy_#res.base| |~#d2~0.base|)} {978#(not (= main_~pd1~0.base |~#d2~0.base|))} #68#return; {996#(not (= main_~pd1~0.base |main_#t~ret8.base|))} is VALID [2018-11-23 11:08:03,430 INFO L273 TraceCheckUtils]: 18: Hoare triple {989#(= |get_dummy_#res.base| |~#d2~0.base|)} assume true; {989#(= |get_dummy_#res.base| |~#d2~0.base|)} is VALID [2018-11-23 11:08:03,431 INFO L273 TraceCheckUtils]: 17: Hoare triple {985#(= |get_dummy_#t~ite5.base| |~#d2~0.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {989#(= |get_dummy_#res.base| |~#d2~0.base|)} is VALID [2018-11-23 11:08:03,431 INFO L273 TraceCheckUtils]: 16: Hoare triple {927#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {985#(= |get_dummy_#t~ite5.base| |~#d2~0.base|)} is VALID [2018-11-23 11:08:03,431 INFO L256 TraceCheckUtils]: 15: Hoare triple {978#(not (= main_~pd1~0.base |~#d2~0.base|))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {927#true} is VALID [2018-11-23 11:08:03,432 INFO L273 TraceCheckUtils]: 14: Hoare triple {974#(not (= |main_#t~ret7.base| |~#d2~0.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {978#(not (= main_~pd1~0.base |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,432 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1122#(or (not (= |get_dummy_#res.base| |~#d2~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} {935#(not (= |~#d1~0.base| |~#d2~0.base|))} #66#return; {974#(not (= |main_#t~ret7.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,436 INFO L273 TraceCheckUtils]: 12: Hoare triple {1122#(or (not (= |get_dummy_#res.base| |~#d2~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} assume true; {1122#(or (not (= |get_dummy_#res.base| |~#d2~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,437 INFO L273 TraceCheckUtils]: 11: Hoare triple {1129#(or (not (= |get_dummy_#t~ite5.base| |~#d2~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1122#(or (not (= |get_dummy_#res.base| |~#d2~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,438 INFO L273 TraceCheckUtils]: 10: Hoare triple {927#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1129#(or (not (= |get_dummy_#t~ite5.base| |~#d2~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,438 INFO L256 TraceCheckUtils]: 9: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret7.base, #t~ret7.offset := get_dummy(); {927#true} is VALID [2018-11-23 11:08:03,447 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {927#true} {935#(not (= |~#d1~0.base| |~#d2~0.base|))} #64#return; {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,447 INFO L273 TraceCheckUtils]: 7: Hoare triple {927#true} assume true; {927#true} is VALID [2018-11-23 11:08:03,448 INFO L273 TraceCheckUtils]: 6: Hoare triple {927#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {927#true} is VALID [2018-11-23 11:08:03,448 INFO L256 TraceCheckUtils]: 5: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} call init(); {927#true} is VALID [2018-11-23 11:08:03,448 INFO L256 TraceCheckUtils]: 4: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret17 := main(); {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,452 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} {927#true} #60#return; {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,452 INFO L273 TraceCheckUtils]: 2: Hoare triple {935#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,453 INFO L273 TraceCheckUtils]: 1: Hoare triple {927#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {935#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:03,453 INFO L256 TraceCheckUtils]: 0: Hoare triple {927#true} call ULTIMATE.init(); {927#true} is VALID [2018-11-23 11:08:03,454 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2018-11-23 11:08:03,461 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 11:08:03,461 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 12] total 14 [2018-11-23 11:08:03,462 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 37 [2018-11-23 11:08:03,463 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 11:08:03,463 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states. [2018-11-23 11:08:03,549 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:03,549 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2018-11-23 11:08:03,549 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2018-11-23 11:08:03,550 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=29, Invalid=153, Unknown=0, NotChecked=0, Total=182 [2018-11-23 11:08:03,550 INFO L87 Difference]: Start difference. First operand 45 states and 56 transitions. Second operand 14 states. [2018-11-23 11:08:05,853 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:05,853 INFO L93 Difference]: Finished difference Result 69 states and 84 transitions. [2018-11-23 11:08:05,854 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2018-11-23 11:08:05,854 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 37 [2018-11-23 11:08:05,854 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 11:08:05,854 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 11:08:05,859 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 78 transitions. [2018-11-23 11:08:05,859 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 11:08:05,864 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 78 transitions. [2018-11-23 11:08:05,864 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 78 transitions. [2018-11-23 11:08:06,017 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:06,021 INFO L225 Difference]: With dead ends: 69 [2018-11-23 11:08:06,022 INFO L226 Difference]: Without dead ends: 50 [2018-11-23 11:08:06,022 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 82 GetRequests, 60 SyntacticMatches, 1 SemanticMatches, 21 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 52 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=78, Invalid=428, Unknown=0, NotChecked=0, Total=506 [2018-11-23 11:08:06,023 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2018-11-23 11:08:06,138 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 44. [2018-11-23 11:08:06,138 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 11:08:06,138 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand 44 states. [2018-11-23 11:08:06,138 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand 44 states. [2018-11-23 11:08:06,139 INFO L87 Difference]: Start difference. First operand 50 states. Second operand 44 states. [2018-11-23 11:08:06,143 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:06,143 INFO L93 Difference]: Finished difference Result 50 states and 59 transitions. [2018-11-23 11:08:06,143 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 59 transitions. [2018-11-23 11:08:06,144 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:06,144 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:06,145 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 50 states. [2018-11-23 11:08:06,145 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 50 states. [2018-11-23 11:08:06,150 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:06,150 INFO L93 Difference]: Finished difference Result 50 states and 59 transitions. [2018-11-23 11:08:06,150 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 59 transitions. [2018-11-23 11:08:06,152 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:06,152 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:06,152 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 11:08:06,153 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 11:08:06,153 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 44 states. [2018-11-23 11:08:06,156 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 52 transitions. [2018-11-23 11:08:06,157 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 52 transitions. Word has length 37 [2018-11-23 11:08:06,157 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 11:08:06,157 INFO L480 AbstractCegarLoop]: Abstraction has 44 states and 52 transitions. [2018-11-23 11:08:06,157 INFO L481 AbstractCegarLoop]: Interpolant automaton has 14 states. [2018-11-23 11:08:06,157 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 52 transitions. [2018-11-23 11:08:06,159 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2018-11-23 11:08:06,159 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 11:08:06,159 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 11:08:06,160 INFO L423 AbstractCegarLoop]: === Iteration 4 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 11:08:06,160 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 11:08:06,160 INFO L82 PathProgramCache]: Analyzing trace with hash 2000068519, now seen corresponding path program 2 times [2018-11-23 11:08:06,160 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 11:08:06,160 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 5 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 11:08:06,178 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2018-11-23 11:08:06,241 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2018-11-23 11:08:06,241 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 11:08:06,271 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:06,273 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 11:08:06,600 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 22 [2018-11-23 11:08:06,616 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 11 [2018-11-23 11:08:06,618 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:06,630 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:06,672 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 22 [2018-11-23 11:08:06,691 INFO L478 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 18 treesize of output 11 [2018-11-23 11:08:06,692 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:06,701 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:06,749 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 2 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:06,749 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 6 variables, input treesize:57, output treesize:11 [2018-11-23 11:08:06,780 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 11:08:06,780 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, main_~pa~0.base, main_~pa~0.offset, v_prenex_3, v_prenex_4, v_prenex_2]. (let ((.cse1 (bvadd main_~i~0 (_ bv10 32)))) (or (let ((.cse0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (and (bvsgt .cse0 (_ bv0 32)) (= .cse1 .cse0) (= |main_#t~mem14| .cse0) (not (= (_ bv0 32) main_~pa~0.offset)))) (let ((.cse2 (select (select v_prenex_3 v_prenex_4) v_prenex_2))) (and (= |main_#t~mem14| .cse2) (not (= (_ bv0 32) v_prenex_4)) (bvsgt .cse2 (_ bv0 32)) (= .cse1 .cse2))))) [2018-11-23 11:08:06,780 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (bvadd main_~i~0 (_ bv10 32)))) (and (= |main_#t~mem14| .cse0) (bvsgt .cse0 (_ bv0 32)))) [2018-11-23 11:08:06,834 INFO L256 TraceCheckUtils]: 0: Hoare triple {1436#true} call ULTIMATE.init(); {1436#true} is VALID [2018-11-23 11:08:06,834 INFO L273 TraceCheckUtils]: 1: Hoare triple {1436#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {1436#true} is VALID [2018-11-23 11:08:06,835 INFO L273 TraceCheckUtils]: 2: Hoare triple {1436#true} assume true; {1436#true} is VALID [2018-11-23 11:08:06,835 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1436#true} {1436#true} #60#return; {1436#true} is VALID [2018-11-23 11:08:06,835 INFO L256 TraceCheckUtils]: 4: Hoare triple {1436#true} call #t~ret17 := main(); {1436#true} is VALID [2018-11-23 11:08:06,835 INFO L256 TraceCheckUtils]: 5: Hoare triple {1436#true} call init(); {1436#true} is VALID [2018-11-23 11:08:06,836 INFO L273 TraceCheckUtils]: 6: Hoare triple {1436#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {1436#true} is VALID [2018-11-23 11:08:06,836 INFO L273 TraceCheckUtils]: 7: Hoare triple {1436#true} assume true; {1436#true} is VALID [2018-11-23 11:08:06,836 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1436#true} {1436#true} #64#return; {1436#true} is VALID [2018-11-23 11:08:06,837 INFO L256 TraceCheckUtils]: 9: Hoare triple {1436#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1436#true} is VALID [2018-11-23 11:08:06,837 INFO L273 TraceCheckUtils]: 10: Hoare triple {1436#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1436#true} is VALID [2018-11-23 11:08:06,837 INFO L273 TraceCheckUtils]: 11: Hoare triple {1436#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1436#true} is VALID [2018-11-23 11:08:06,838 INFO L273 TraceCheckUtils]: 12: Hoare triple {1436#true} assume true; {1436#true} is VALID [2018-11-23 11:08:06,838 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1436#true} {1436#true} #66#return; {1436#true} is VALID [2018-11-23 11:08:06,838 INFO L273 TraceCheckUtils]: 14: Hoare triple {1436#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1436#true} is VALID [2018-11-23 11:08:06,838 INFO L256 TraceCheckUtils]: 15: Hoare triple {1436#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1436#true} is VALID [2018-11-23 11:08:06,838 INFO L273 TraceCheckUtils]: 16: Hoare triple {1436#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1436#true} is VALID [2018-11-23 11:08:06,839 INFO L273 TraceCheckUtils]: 17: Hoare triple {1436#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1436#true} is VALID [2018-11-23 11:08:06,839 INFO L273 TraceCheckUtils]: 18: Hoare triple {1436#true} assume true; {1436#true} is VALID [2018-11-23 11:08:06,839 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1436#true} {1436#true} #68#return; {1436#true} is VALID [2018-11-23 11:08:06,839 INFO L273 TraceCheckUtils]: 20: Hoare triple {1436#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1436#true} is VALID [2018-11-23 11:08:06,839 INFO L256 TraceCheckUtils]: 21: Hoare triple {1436#true} call #t~ret9.base, #t~ret9.offset := get_dummy(); {1436#true} is VALID [2018-11-23 11:08:06,839 INFO L273 TraceCheckUtils]: 22: Hoare triple {1436#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1436#true} is VALID [2018-11-23 11:08:06,840 INFO L273 TraceCheckUtils]: 23: Hoare triple {1436#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1436#true} is VALID [2018-11-23 11:08:06,840 INFO L273 TraceCheckUtils]: 24: Hoare triple {1436#true} assume true; {1436#true} is VALID [2018-11-23 11:08:06,840 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1436#true} {1436#true} #70#return; {1436#true} is VALID [2018-11-23 11:08:06,841 INFO L273 TraceCheckUtils]: 26: Hoare triple {1436#true} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {1519#(or (and (not |main_#t~short12|) (or (not (= main_~pd1~0.offset main_~pd2~0.offset)) (not (= main_~pd2~0.base main_~pd1~0.base)) (and (= (_ bv0 32) main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32))))) (and (= main_~pd2~0.base main_~pd1~0.base) (or (not (= (_ bv0 32) main_~pd1~0.base)) (not (= main_~pd1~0.offset (_ bv0 32)))) (= main_~pd1~0.offset main_~pd2~0.offset) |main_#t~short12|))} is VALID [2018-11-23 11:08:06,842 INFO L273 TraceCheckUtils]: 27: Hoare triple {1519#(or (and (not |main_#t~short12|) (or (not (= main_~pd1~0.offset main_~pd2~0.offset)) (not (= main_~pd2~0.base main_~pd1~0.base)) (and (= (_ bv0 32) main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32))))) (and (= main_~pd2~0.base main_~pd1~0.base) (or (not (= (_ bv0 32) main_~pd1~0.base)) (not (= main_~pd1~0.offset (_ bv0 32)))) (= main_~pd1~0.offset main_~pd2~0.offset) |main_#t~short12|))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {1523#(and (= main_~pd2~0.base main_~pd1~0.base) (or (not (= (_ bv0 32) main_~pd1~0.base)) (not (= main_~pd1~0.offset (_ bv0 32)))) (= main_~pd1~0.offset main_~pd2~0.offset) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} is VALID [2018-11-23 11:08:06,865 INFO L273 TraceCheckUtils]: 28: Hoare triple {1523#(and (= main_~pd2~0.base main_~pd1~0.base) (or (not (= (_ bv0 32) main_~pd1~0.base)) (not (= main_~pd1~0.offset (_ bv0 32)))) (= main_~pd1~0.offset main_~pd2~0.offset) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {1527#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (or (not (= (_ bv0 32) main_~pa~0.base)) (not (= (_ bv0 32) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:06,884 INFO L273 TraceCheckUtils]: 29: Hoare triple {1527#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (or (not (= (_ bv0 32) main_~pa~0.base)) (not (= (_ bv0 32) main_~pa~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {1531#(and (= (bvadd |main_#t~mem14| (_ bv4294967286 32)) main_~i~0) (bvsgt (bvadd main_~i~0 (_ bv10 32)) (_ bv0 32)))} is VALID [2018-11-23 11:08:06,887 INFO L273 TraceCheckUtils]: 30: Hoare triple {1531#(and (= (bvadd |main_#t~mem14| (_ bv4294967286 32)) main_~i~0) (bvsgt (bvadd main_~i~0 (_ bv10 32)) (_ bv0 32)))} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {1437#false} is VALID [2018-11-23 11:08:06,887 INFO L256 TraceCheckUtils]: 31: Hoare triple {1437#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1437#false} is VALID [2018-11-23 11:08:06,888 INFO L273 TraceCheckUtils]: 32: Hoare triple {1437#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {1437#false} is VALID [2018-11-23 11:08:06,888 INFO L273 TraceCheckUtils]: 33: Hoare triple {1437#false} assume true; {1437#false} is VALID [2018-11-23 11:08:06,888 INFO L268 TraceCheckUtils]: 34: Hoare quadruple {1437#false} {1437#false} #72#return; {1437#false} is VALID [2018-11-23 11:08:06,888 INFO L273 TraceCheckUtils]: 35: Hoare triple {1437#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {1437#false} is VALID [2018-11-23 11:08:06,888 INFO L273 TraceCheckUtils]: 36: Hoare triple {1437#false} assume !false; {1437#false} is VALID [2018-11-23 11:08:06,890 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2018-11-23 11:08:06,890 INFO L312 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2018-11-23 11:08:06,892 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2018-11-23 11:08:06,892 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2018-11-23 11:08:06,892 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 37 [2018-11-23 11:08:06,893 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 11:08:06,893 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2018-11-23 11:08:06,954 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:06,955 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2018-11-23 11:08:06,955 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2018-11-23 11:08:06,955 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2018-11-23 11:08:06,955 INFO L87 Difference]: Start difference. First operand 44 states and 52 transitions. Second operand 6 states. [2018-11-23 11:08:07,610 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:07,610 INFO L93 Difference]: Finished difference Result 53 states and 61 transitions. [2018-11-23 11:08:07,611 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2018-11-23 11:08:07,611 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 37 [2018-11-23 11:08:07,611 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 11:08:07,611 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 11:08:07,613 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2018-11-23 11:08:07,613 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2018-11-23 11:08:07,615 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2018-11-23 11:08:07,615 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2018-11-23 11:08:07,726 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:07,730 INFO L225 Difference]: With dead ends: 53 [2018-11-23 11:08:07,730 INFO L226 Difference]: Without dead ends: 46 [2018-11-23 11:08:07,731 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 37 GetRequests, 32 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2018-11-23 11:08:07,731 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states. [2018-11-23 11:08:07,832 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 44. [2018-11-23 11:08:07,832 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 11:08:07,832 INFO L82 GeneralOperation]: Start isEquivalent. First operand 46 states. Second operand 44 states. [2018-11-23 11:08:07,832 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 44 states. [2018-11-23 11:08:07,833 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 44 states. [2018-11-23 11:08:07,836 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:07,836 INFO L93 Difference]: Finished difference Result 46 states and 54 transitions. [2018-11-23 11:08:07,837 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 54 transitions. [2018-11-23 11:08:07,837 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:07,837 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:07,838 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 46 states. [2018-11-23 11:08:07,838 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 46 states. [2018-11-23 11:08:07,841 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:07,841 INFO L93 Difference]: Finished difference Result 46 states and 54 transitions. [2018-11-23 11:08:07,842 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 54 transitions. [2018-11-23 11:08:07,842 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:07,842 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:07,842 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 11:08:07,842 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 11:08:07,843 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 44 states. [2018-11-23 11:08:07,845 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 52 transitions. [2018-11-23 11:08:07,845 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 52 transitions. Word has length 37 [2018-11-23 11:08:07,845 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 11:08:07,846 INFO L480 AbstractCegarLoop]: Abstraction has 44 states and 52 transitions. [2018-11-23 11:08:07,846 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2018-11-23 11:08:07,846 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 52 transitions. [2018-11-23 11:08:07,847 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 11:08:07,847 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 11:08:07,847 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 11:08:07,847 INFO L423 AbstractCegarLoop]: === Iteration 5 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 11:08:07,848 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 11:08:07,848 INFO L82 PathProgramCache]: Analyzing trace with hash 959865804, now seen corresponding path program 1 times [2018-11-23 11:08:07,848 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 11:08:07,848 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 6 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 11:08:07,871 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 11:08:07,929 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:07,956 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:07,958 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 11:08:07,980 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 14 [2018-11-23 11:08:08,006 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 1 [2018-11-23 11:08:08,007 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:08,009 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:08,011 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:08,012 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:11, output treesize:4 [2018-11-23 11:08:08,225 INFO L256 TraceCheckUtils]: 0: Hoare triple {1781#true} call ULTIMATE.init(); {1781#true} is VALID [2018-11-23 11:08:08,226 INFO L273 TraceCheckUtils]: 1: Hoare triple {1781#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,227 INFO L273 TraceCheckUtils]: 2: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,228 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} {1781#true} #60#return; {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,229 INFO L256 TraceCheckUtils]: 4: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret17 := main(); {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,230 INFO L256 TraceCheckUtils]: 5: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} call init(); {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,231 INFO L273 TraceCheckUtils]: 6: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,232 INFO L273 TraceCheckUtils]: 7: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,232 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} #64#return; {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,234 INFO L256 TraceCheckUtils]: 9: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,235 INFO L273 TraceCheckUtils]: 10: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1817#(and (= |get_dummy_#t~ite5.base| |~#d2~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} is VALID [2018-11-23 11:08:08,236 INFO L273 TraceCheckUtils]: 11: Hoare triple {1817#(and (= |get_dummy_#t~ite5.base| |~#d2~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1821#(and (= |get_dummy_#res.base| |~#d2~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} is VALID [2018-11-23 11:08:08,237 INFO L273 TraceCheckUtils]: 12: Hoare triple {1821#(and (= |get_dummy_#res.base| |~#d2~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} assume true; {1821#(and (= |get_dummy_#res.base| |~#d2~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} is VALID [2018-11-23 11:08:08,238 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1821#(and (= |get_dummy_#res.base| |~#d2~0.base|) (not (= |~#d1~0.base| |~#d2~0.base|)))} {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} #66#return; {1828#(not (= |~#d1~0.base| |main_#t~ret7.base|))} is VALID [2018-11-23 11:08:08,239 INFO L273 TraceCheckUtils]: 14: Hoare triple {1828#(not (= |~#d1~0.base| |main_#t~ret7.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1832#(not (= |~#d1~0.base| main_~pd1~0.base))} is VALID [2018-11-23 11:08:08,239 INFO L256 TraceCheckUtils]: 15: Hoare triple {1832#(not (= |~#d1~0.base| main_~pd1~0.base))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1781#true} is VALID [2018-11-23 11:08:08,240 INFO L273 TraceCheckUtils]: 16: Hoare triple {1781#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1839#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} is VALID [2018-11-23 11:08:08,241 INFO L273 TraceCheckUtils]: 17: Hoare triple {1839#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1843#(= |get_dummy_#res.base| |~#d1~0.base|)} is VALID [2018-11-23 11:08:08,242 INFO L273 TraceCheckUtils]: 18: Hoare triple {1843#(= |get_dummy_#res.base| |~#d1~0.base|)} assume true; {1843#(= |get_dummy_#res.base| |~#d1~0.base|)} is VALID [2018-11-23 11:08:08,243 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1843#(= |get_dummy_#res.base| |~#d1~0.base|)} {1832#(not (= |~#d1~0.base| main_~pd1~0.base))} #68#return; {1850#(not (= main_~pd1~0.base |main_#t~ret8.base|))} is VALID [2018-11-23 11:08:08,244 INFO L273 TraceCheckUtils]: 20: Hoare triple {1850#(not (= main_~pd1~0.base |main_#t~ret8.base|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-23 11:08:08,245 INFO L256 TraceCheckUtils]: 21: Hoare triple {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {1781#true} is VALID [2018-11-23 11:08:08,245 INFO L273 TraceCheckUtils]: 22: Hoare triple {1781#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1781#true} is VALID [2018-11-23 11:08:08,245 INFO L273 TraceCheckUtils]: 23: Hoare triple {1781#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1781#true} is VALID [2018-11-23 11:08:08,245 INFO L273 TraceCheckUtils]: 24: Hoare triple {1781#true} assume true; {1781#true} is VALID [2018-11-23 11:08:08,247 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1781#true} {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} #70#return; {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-23 11:08:08,248 INFO L273 TraceCheckUtils]: 26: Hoare triple {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {1873#(not |main_#t~short12|)} is VALID [2018-11-23 11:08:08,249 INFO L273 TraceCheckUtils]: 27: Hoare triple {1873#(not |main_#t~short12|)} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {1782#false} is VALID [2018-11-23 11:08:08,250 INFO L273 TraceCheckUtils]: 28: Hoare triple {1782#false} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {1782#false} is VALID [2018-11-23 11:08:08,250 INFO L273 TraceCheckUtils]: 29: Hoare triple {1782#false} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {1782#false} is VALID [2018-11-23 11:08:08,251 INFO L273 TraceCheckUtils]: 30: Hoare triple {1782#false} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {1782#false} is VALID [2018-11-23 11:08:08,251 INFO L273 TraceCheckUtils]: 31: Hoare triple {1782#false} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {1782#false} is VALID [2018-11-23 11:08:08,252 INFO L273 TraceCheckUtils]: 32: Hoare triple {1782#false} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {1782#false} is VALID [2018-11-23 11:08:08,252 INFO L256 TraceCheckUtils]: 33: Hoare triple {1782#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1782#false} is VALID [2018-11-23 11:08:08,252 INFO L273 TraceCheckUtils]: 34: Hoare triple {1782#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {1782#false} is VALID [2018-11-23 11:08:08,252 INFO L273 TraceCheckUtils]: 35: Hoare triple {1782#false} assume true; {1782#false} is VALID [2018-11-23 11:08:08,253 INFO L268 TraceCheckUtils]: 36: Hoare quadruple {1782#false} {1782#false} #72#return; {1782#false} is VALID [2018-11-23 11:08:08,253 INFO L273 TraceCheckUtils]: 37: Hoare triple {1782#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {1782#false} is VALID [2018-11-23 11:08:08,253 INFO L273 TraceCheckUtils]: 38: Hoare triple {1782#false} assume !false; {1782#false} is VALID [2018-11-23 11:08:08,255 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 11 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2018-11-23 11:08:08,256 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 11:08:08,507 INFO L273 TraceCheckUtils]: 38: Hoare triple {1782#false} assume !false; {1782#false} is VALID [2018-11-23 11:08:08,507 INFO L273 TraceCheckUtils]: 37: Hoare triple {1782#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {1782#false} is VALID [2018-11-23 11:08:08,507 INFO L268 TraceCheckUtils]: 36: Hoare quadruple {1781#true} {1782#false} #72#return; {1782#false} is VALID [2018-11-23 11:08:08,508 INFO L273 TraceCheckUtils]: 35: Hoare triple {1781#true} assume true; {1781#true} is VALID [2018-11-23 11:08:08,508 INFO L273 TraceCheckUtils]: 34: Hoare triple {1781#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {1781#true} is VALID [2018-11-23 11:08:08,508 INFO L256 TraceCheckUtils]: 33: Hoare triple {1782#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {1781#true} is VALID [2018-11-23 11:08:08,509 INFO L273 TraceCheckUtils]: 32: Hoare triple {1782#false} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {1782#false} is VALID [2018-11-23 11:08:08,509 INFO L273 TraceCheckUtils]: 31: Hoare triple {1782#false} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {1782#false} is VALID [2018-11-23 11:08:08,509 INFO L273 TraceCheckUtils]: 30: Hoare triple {1782#false} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {1782#false} is VALID [2018-11-23 11:08:08,509 INFO L273 TraceCheckUtils]: 29: Hoare triple {1782#false} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {1782#false} is VALID [2018-11-23 11:08:08,510 INFO L273 TraceCheckUtils]: 28: Hoare triple {1782#false} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {1782#false} is VALID [2018-11-23 11:08:08,510 INFO L273 TraceCheckUtils]: 27: Hoare triple {1873#(not |main_#t~short12|)} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {1782#false} is VALID [2018-11-23 11:08:08,511 INFO L273 TraceCheckUtils]: 26: Hoare triple {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {1873#(not |main_#t~short12|)} is VALID [2018-11-23 11:08:08,512 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {1781#true} {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} #70#return; {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-23 11:08:08,512 INFO L273 TraceCheckUtils]: 24: Hoare triple {1781#true} assume true; {1781#true} is VALID [2018-11-23 11:08:08,512 INFO L273 TraceCheckUtils]: 23: Hoare triple {1781#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1781#true} is VALID [2018-11-23 11:08:08,513 INFO L273 TraceCheckUtils]: 22: Hoare triple {1781#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1781#true} is VALID [2018-11-23 11:08:08,513 INFO L256 TraceCheckUtils]: 21: Hoare triple {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {1781#true} is VALID [2018-11-23 11:08:08,513 INFO L273 TraceCheckUtils]: 20: Hoare triple {1850#(not (= main_~pd1~0.base |main_#t~ret8.base|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {1854#(not (= main_~pd2~0.base main_~pd1~0.base))} is VALID [2018-11-23 11:08:08,515 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {1843#(= |get_dummy_#res.base| |~#d1~0.base|)} {1832#(not (= |~#d1~0.base| main_~pd1~0.base))} #68#return; {1850#(not (= main_~pd1~0.base |main_#t~ret8.base|))} is VALID [2018-11-23 11:08:08,515 INFO L273 TraceCheckUtils]: 18: Hoare triple {1843#(= |get_dummy_#res.base| |~#d1~0.base|)} assume true; {1843#(= |get_dummy_#res.base| |~#d1~0.base|)} is VALID [2018-11-23 11:08:08,516 INFO L273 TraceCheckUtils]: 17: Hoare triple {1839#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1843#(= |get_dummy_#res.base| |~#d1~0.base|)} is VALID [2018-11-23 11:08:08,525 INFO L273 TraceCheckUtils]: 16: Hoare triple {1781#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1839#(= |~#d1~0.base| |get_dummy_#t~ite5.base|)} is VALID [2018-11-23 11:08:08,525 INFO L256 TraceCheckUtils]: 15: Hoare triple {1832#(not (= |~#d1~0.base| main_~pd1~0.base))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {1781#true} is VALID [2018-11-23 11:08:08,529 INFO L273 TraceCheckUtils]: 14: Hoare triple {1828#(not (= |~#d1~0.base| |main_#t~ret7.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {1832#(not (= |~#d1~0.base| main_~pd1~0.base))} is VALID [2018-11-23 11:08:08,530 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {1988#(or (not (= |get_dummy_#res.base| |~#d1~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} #66#return; {1828#(not (= |~#d1~0.base| |main_#t~ret7.base|))} is VALID [2018-11-23 11:08:08,531 INFO L273 TraceCheckUtils]: 12: Hoare triple {1988#(or (not (= |get_dummy_#res.base| |~#d1~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} assume true; {1988#(or (not (= |get_dummy_#res.base| |~#d1~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,531 INFO L273 TraceCheckUtils]: 11: Hoare triple {1995#(or (not (= |~#d1~0.base| |get_dummy_#t~ite5.base|)) (= |~#d1~0.base| |~#d2~0.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {1988#(or (not (= |get_dummy_#res.base| |~#d1~0.base|)) (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,532 INFO L273 TraceCheckUtils]: 10: Hoare triple {1781#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1995#(or (not (= |~#d1~0.base| |get_dummy_#t~ite5.base|)) (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,532 INFO L256 TraceCheckUtils]: 9: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret7.base, #t~ret7.offset := get_dummy(); {1781#true} is VALID [2018-11-23 11:08:08,533 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {1781#true} {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} #64#return; {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,533 INFO L273 TraceCheckUtils]: 7: Hoare triple {1781#true} assume true; {1781#true} is VALID [2018-11-23 11:08:08,534 INFO L273 TraceCheckUtils]: 6: Hoare triple {1781#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {1781#true} is VALID [2018-11-23 11:08:08,534 INFO L256 TraceCheckUtils]: 5: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} call init(); {1781#true} is VALID [2018-11-23 11:08:08,535 INFO L256 TraceCheckUtils]: 4: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} call #t~ret17 := main(); {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,536 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} {1781#true} #60#return; {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,536 INFO L273 TraceCheckUtils]: 2: Hoare triple {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} assume true; {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,537 INFO L273 TraceCheckUtils]: 1: Hoare triple {1781#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {1789#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2018-11-23 11:08:08,537 INFO L256 TraceCheckUtils]: 0: Hoare triple {1781#true} call ULTIMATE.init(); {1781#true} is VALID [2018-11-23 11:08:08,539 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2018-11-23 11:08:08,541 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 11:08:08,541 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 12] total 14 [2018-11-23 11:08:08,542 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 39 [2018-11-23 11:08:08,543 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 11:08:08,543 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states. [2018-11-23 11:08:08,646 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:08,646 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2018-11-23 11:08:08,647 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2018-11-23 11:08:08,647 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=29, Invalid=153, Unknown=0, NotChecked=0, Total=182 [2018-11-23 11:08:08,647 INFO L87 Difference]: Start difference. First operand 44 states and 52 transitions. Second operand 14 states. [2018-11-23 11:08:11,114 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:11,114 INFO L93 Difference]: Finished difference Result 68 states and 79 transitions. [2018-11-23 11:08:11,114 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2018-11-23 11:08:11,115 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 39 [2018-11-23 11:08:11,115 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 11:08:11,115 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 11:08:11,118 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 71 transitions. [2018-11-23 11:08:11,118 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 11:08:11,121 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 71 transitions. [2018-11-23 11:08:11,121 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 71 transitions. [2018-11-23 11:08:11,285 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 71 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:11,286 INFO L225 Difference]: With dead ends: 68 [2018-11-23 11:08:11,287 INFO L226 Difference]: Without dead ends: 52 [2018-11-23 11:08:11,287 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 84 GetRequests, 64 SyntacticMatches, 1 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 38 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=65, Invalid=355, Unknown=0, NotChecked=0, Total=420 [2018-11-23 11:08:11,288 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2018-11-23 11:08:11,419 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 44. [2018-11-23 11:08:11,419 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 11:08:11,419 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 44 states. [2018-11-23 11:08:11,420 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 44 states. [2018-11-23 11:08:11,420 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 44 states. [2018-11-23 11:08:11,423 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:11,423 INFO L93 Difference]: Finished difference Result 52 states and 60 transitions. [2018-11-23 11:08:11,424 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 60 transitions. [2018-11-23 11:08:11,424 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:11,424 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:11,424 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 52 states. [2018-11-23 11:08:11,424 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 52 states. [2018-11-23 11:08:11,427 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:11,427 INFO L93 Difference]: Finished difference Result 52 states and 60 transitions. [2018-11-23 11:08:11,427 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 60 transitions. [2018-11-23 11:08:11,428 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:11,428 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:11,428 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 11:08:11,428 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 11:08:11,429 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 44 states. [2018-11-23 11:08:11,431 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 51 transitions. [2018-11-23 11:08:11,431 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 51 transitions. Word has length 39 [2018-11-23 11:08:11,431 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 11:08:11,431 INFO L480 AbstractCegarLoop]: Abstraction has 44 states and 51 transitions. [2018-11-23 11:08:11,431 INFO L481 AbstractCegarLoop]: Interpolant automaton has 14 states. [2018-11-23 11:08:11,432 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 51 transitions. [2018-11-23 11:08:11,434 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2018-11-23 11:08:11,434 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 11:08:11,434 INFO L402 BasicCegarLoop]: trace histogram [3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 11:08:11,435 INFO L423 AbstractCegarLoop]: === Iteration 6 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 11:08:11,435 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 11:08:11,435 INFO L82 PathProgramCache]: Analyzing trace with hash -845572530, now seen corresponding path program 2 times [2018-11-23 11:08:11,435 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 11:08:11,435 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 7 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 11:08:11,457 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2018-11-23 11:08:11,599 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2018-11-23 11:08:11,599 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 11:08:11,659 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:11,662 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 11:08:12,108 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 22 [2018-11-23 11:08:12,131 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 11 [2018-11-23 11:08:12,133 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:12,144 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:12,184 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 22 [2018-11-23 11:08:12,210 INFO L478 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 18 treesize of output 11 [2018-11-23 11:08:12,212 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:12,223 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:12,250 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 2 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:12,250 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 6 variables, input treesize:57, output treesize:11 [2018-11-23 11:08:12,265 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 11:08:12,266 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, main_~pa~0.base, main_~pa~0.offset, v_prenex_6, v_prenex_7, v_prenex_5]. (let ((.cse1 (bvadd main_~i~0 (_ bv9 32)))) (or (let ((.cse0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (and (bvsgt .cse0 (_ bv0 32)) (= |main_#t~mem14| .cse0) (not (= (_ bv0 32) main_~pa~0.offset)) (= .cse1 .cse0))) (let ((.cse2 (select (select v_prenex_6 v_prenex_7) v_prenex_5))) (and (= |main_#t~mem14| .cse2) (= .cse1 .cse2) (bvsgt .cse2 (_ bv0 32)) (not (= (_ bv0 32) v_prenex_7)))))) [2018-11-23 11:08:12,266 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (bvadd main_~i~0 (_ bv9 32)))) (and (= |main_#t~mem14| .cse0) (bvsgt .cse0 (_ bv0 32)))) [2018-11-23 11:08:12,323 INFO L256 TraceCheckUtils]: 0: Hoare triple {2302#true} call ULTIMATE.init(); {2302#true} is VALID [2018-11-23 11:08:12,324 INFO L273 TraceCheckUtils]: 1: Hoare triple {2302#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {2302#true} is VALID [2018-11-23 11:08:12,324 INFO L273 TraceCheckUtils]: 2: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:12,324 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2302#true} {2302#true} #60#return; {2302#true} is VALID [2018-11-23 11:08:12,324 INFO L256 TraceCheckUtils]: 4: Hoare triple {2302#true} call #t~ret17 := main(); {2302#true} is VALID [2018-11-23 11:08:12,324 INFO L256 TraceCheckUtils]: 5: Hoare triple {2302#true} call init(); {2302#true} is VALID [2018-11-23 11:08:12,324 INFO L273 TraceCheckUtils]: 6: Hoare triple {2302#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {2302#true} is VALID [2018-11-23 11:08:12,325 INFO L273 TraceCheckUtils]: 7: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:12,325 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {2302#true} {2302#true} #64#return; {2302#true} is VALID [2018-11-23 11:08:12,325 INFO L256 TraceCheckUtils]: 9: Hoare triple {2302#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {2302#true} is VALID [2018-11-23 11:08:12,325 INFO L273 TraceCheckUtils]: 10: Hoare triple {2302#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {2302#true} is VALID [2018-11-23 11:08:12,325 INFO L273 TraceCheckUtils]: 11: Hoare triple {2302#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2302#true} is VALID [2018-11-23 11:08:12,326 INFO L273 TraceCheckUtils]: 12: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:12,326 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {2302#true} {2302#true} #66#return; {2302#true} is VALID [2018-11-23 11:08:12,326 INFO L273 TraceCheckUtils]: 14: Hoare triple {2302#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {2302#true} is VALID [2018-11-23 11:08:12,326 INFO L256 TraceCheckUtils]: 15: Hoare triple {2302#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {2302#true} is VALID [2018-11-23 11:08:12,326 INFO L273 TraceCheckUtils]: 16: Hoare triple {2302#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {2302#true} is VALID [2018-11-23 11:08:12,326 INFO L273 TraceCheckUtils]: 17: Hoare triple {2302#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2302#true} is VALID [2018-11-23 11:08:12,327 INFO L273 TraceCheckUtils]: 18: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:12,327 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {2302#true} {2302#true} #68#return; {2302#true} is VALID [2018-11-23 11:08:12,327 INFO L273 TraceCheckUtils]: 20: Hoare triple {2302#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {2302#true} is VALID [2018-11-23 11:08:12,327 INFO L256 TraceCheckUtils]: 21: Hoare triple {2302#true} call #t~ret9.base, #t~ret9.offset := get_dummy(); {2302#true} is VALID [2018-11-23 11:08:12,327 INFO L273 TraceCheckUtils]: 22: Hoare triple {2302#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2302#true} is VALID [2018-11-23 11:08:12,327 INFO L273 TraceCheckUtils]: 23: Hoare triple {2302#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2302#true} is VALID [2018-11-23 11:08:12,327 INFO L273 TraceCheckUtils]: 24: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:12,328 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {2302#true} {2302#true} #70#return; {2302#true} is VALID [2018-11-23 11:08:12,349 INFO L273 TraceCheckUtils]: 26: Hoare triple {2302#true} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {2385#(or (and (not |main_#t~short12|) (or (not (= main_~pd1~0.offset main_~pd2~0.offset)) (not (= main_~pd2~0.base main_~pd1~0.base)) (and (= (_ bv0 32) main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32))))) (and (= main_~pd2~0.base main_~pd1~0.base) (or (not (= (_ bv0 32) main_~pd1~0.base)) (not (= main_~pd1~0.offset (_ bv0 32)))) (= main_~pd1~0.offset main_~pd2~0.offset) |main_#t~short12|))} is VALID [2018-11-23 11:08:12,365 INFO L273 TraceCheckUtils]: 27: Hoare triple {2385#(or (and (not |main_#t~short12|) (or (not (= main_~pd1~0.offset main_~pd2~0.offset)) (not (= main_~pd2~0.base main_~pd1~0.base)) (and (= (_ bv0 32) main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32))))) (and (= main_~pd2~0.base main_~pd1~0.base) (or (not (= (_ bv0 32) main_~pd1~0.base)) (not (= main_~pd1~0.offset (_ bv0 32)))) (= main_~pd1~0.offset main_~pd2~0.offset) |main_#t~short12|))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {2389#(and (= main_~pd2~0.base main_~pd1~0.base) (or (not (= (_ bv0 32) main_~pd1~0.base)) (not (= main_~pd1~0.offset (_ bv0 32)))) (= main_~pd1~0.offset main_~pd2~0.offset) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} is VALID [2018-11-23 11:08:12,379 INFO L273 TraceCheckUtils]: 28: Hoare triple {2389#(and (= main_~pd2~0.base main_~pd1~0.base) (or (not (= (_ bv0 32) main_~pd1~0.base)) (not (= main_~pd1~0.offset (_ bv0 32)))) (= main_~pd1~0.offset main_~pd2~0.offset) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {2393#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (or (not (= (_ bv0 32) main_~pa~0.base)) (not (= (_ bv0 32) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:12,379 INFO L273 TraceCheckUtils]: 29: Hoare triple {2393#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (or (not (= (_ bv0 32) main_~pa~0.base)) (not (= (_ bv0 32) main_~pa~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2397#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= |main_#t~mem14| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (or (not (= (_ bv0 32) main_~pa~0.base)) (not (= (_ bv0 32) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:12,406 INFO L273 TraceCheckUtils]: 30: Hoare triple {2397#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= |main_#t~mem14| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (or (not (= (_ bv0 32) main_~pa~0.base)) (not (= (_ bv0 32) main_~pa~0.offset))))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2401#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv9 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (or (not (= (_ bv0 32) main_~pa~0.base)) (not (= (_ bv0 32) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:12,420 INFO L273 TraceCheckUtils]: 31: Hoare triple {2401#(and (bvsgt (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset) (_ bv0 32)) (= (bvadd main_~i~0 (_ bv9 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (or (not (= (_ bv0 32) main_~pa~0.base)) (not (= (_ bv0 32) main_~pa~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2405#(and (= (bvadd |main_#t~mem14| (_ bv4294967287 32)) main_~i~0) (bvsgt (bvadd main_~i~0 (_ bv9 32)) (_ bv0 32)))} is VALID [2018-11-23 11:08:12,428 INFO L273 TraceCheckUtils]: 32: Hoare triple {2405#(and (= (bvadd |main_#t~mem14| (_ bv4294967287 32)) main_~i~0) (bvsgt (bvadd main_~i~0 (_ bv9 32)) (_ bv0 32)))} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {2303#false} is VALID [2018-11-23 11:08:12,429 INFO L256 TraceCheckUtils]: 33: Hoare triple {2303#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {2303#false} is VALID [2018-11-23 11:08:12,429 INFO L273 TraceCheckUtils]: 34: Hoare triple {2303#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {2303#false} is VALID [2018-11-23 11:08:12,429 INFO L273 TraceCheckUtils]: 35: Hoare triple {2303#false} assume true; {2303#false} is VALID [2018-11-23 11:08:12,429 INFO L268 TraceCheckUtils]: 36: Hoare quadruple {2303#false} {2303#false} #72#return; {2303#false} is VALID [2018-11-23 11:08:12,429 INFO L273 TraceCheckUtils]: 37: Hoare triple {2303#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {2303#false} is VALID [2018-11-23 11:08:12,429 INFO L273 TraceCheckUtils]: 38: Hoare triple {2303#false} assume !false; {2303#false} is VALID [2018-11-23 11:08:12,431 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2018-11-23 11:08:12,431 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 11:08:13,160 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 36 treesize of output 34 [2018-11-23 11:08:13,174 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 25 [2018-11-23 11:08:13,179 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 11:08:13,252 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 19 [2018-11-23 11:08:13,256 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 11:08:13,339 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 11:08:13,344 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 11:08:13,346 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 22 [2018-11-23 11:08:13,351 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:13,389 INFO L267 ElimStorePlain]: Start of recursive call 2: 3 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 11:08:13,399 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 11:08:13,399 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:38, output treesize:13 [2018-11-23 11:08:13,419 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 11:08:13,420 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|]. (let ((.cse0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (.cse1 (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))) (or (bvslt (bvadd .cse0 (_ bv4294967287 32)) .cse1) (not (bvsgt .cse0 (_ bv0 32))) (not (bvslt (bvadd .cse0 (_ bv4294967286 32)) .cse1)) (not |main_#t~short12|))) [2018-11-23 11:08:13,420 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ []. (let ((.cse0 (not |main_#t~short12|))) (and (or (= main_~pd2~0.base main_~pd1~0.base) .cse0) (or (= main_~pd1~0.offset main_~pd2~0.offset) .cse0))) [2018-11-23 11:08:13,542 INFO L273 TraceCheckUtils]: 38: Hoare triple {2303#false} assume !false; {2303#false} is VALID [2018-11-23 11:08:13,543 INFO L273 TraceCheckUtils]: 37: Hoare triple {2303#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {2303#false} is VALID [2018-11-23 11:08:13,543 INFO L268 TraceCheckUtils]: 36: Hoare quadruple {2302#true} {2303#false} #72#return; {2303#false} is VALID [2018-11-23 11:08:13,543 INFO L273 TraceCheckUtils]: 35: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:13,543 INFO L273 TraceCheckUtils]: 34: Hoare triple {2302#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {2302#true} is VALID [2018-11-23 11:08:13,543 INFO L256 TraceCheckUtils]: 33: Hoare triple {2303#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {2302#true} is VALID [2018-11-23 11:08:13,543 INFO L273 TraceCheckUtils]: 32: Hoare triple {2445#(bvslt main_~i~0 |main_#t~mem14|)} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {2303#false} is VALID [2018-11-23 11:08:13,544 INFO L273 TraceCheckUtils]: 31: Hoare triple {2449#(bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2445#(bvslt main_~i~0 |main_#t~mem14|)} is VALID [2018-11-23 11:08:13,546 INFO L273 TraceCheckUtils]: 30: Hoare triple {2453#(or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 |main_#t~mem14|)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2449#(bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-23 11:08:13,546 INFO L273 TraceCheckUtils]: 29: Hoare triple {2457#(or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2453#(or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 |main_#t~mem14|)))} is VALID [2018-11-23 11:08:13,584 INFO L273 TraceCheckUtils]: 28: Hoare triple {2461#(or (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967287 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (not (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967286 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))) (not |main_#t~short12|))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {2457#(or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:13,593 INFO L273 TraceCheckUtils]: 27: Hoare triple {2465#(and (or (= main_~pd2~0.base main_~pd1~0.base) (not |main_#t~short12|)) (or (= main_~pd1~0.offset main_~pd2~0.offset) (not |main_#t~short12|)))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {2461#(or (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967287 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (not (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967286 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))) (not |main_#t~short12|))} is VALID [2018-11-23 11:08:13,594 INFO L273 TraceCheckUtils]: 26: Hoare triple {2302#true} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {2465#(and (or (= main_~pd2~0.base main_~pd1~0.base) (not |main_#t~short12|)) (or (= main_~pd1~0.offset main_~pd2~0.offset) (not |main_#t~short12|)))} is VALID [2018-11-23 11:08:13,594 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {2302#true} {2302#true} #70#return; {2302#true} is VALID [2018-11-23 11:08:13,594 INFO L273 TraceCheckUtils]: 24: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:13,595 INFO L273 TraceCheckUtils]: 23: Hoare triple {2302#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2302#true} is VALID [2018-11-23 11:08:13,595 INFO L273 TraceCheckUtils]: 22: Hoare triple {2302#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2302#true} is VALID [2018-11-23 11:08:13,595 INFO L256 TraceCheckUtils]: 21: Hoare triple {2302#true} call #t~ret9.base, #t~ret9.offset := get_dummy(); {2302#true} is VALID [2018-11-23 11:08:13,595 INFO L273 TraceCheckUtils]: 20: Hoare triple {2302#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {2302#true} is VALID [2018-11-23 11:08:13,595 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {2302#true} {2302#true} #68#return; {2302#true} is VALID [2018-11-23 11:08:13,595 INFO L273 TraceCheckUtils]: 18: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:13,596 INFO L273 TraceCheckUtils]: 17: Hoare triple {2302#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2302#true} is VALID [2018-11-23 11:08:13,596 INFO L273 TraceCheckUtils]: 16: Hoare triple {2302#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {2302#true} is VALID [2018-11-23 11:08:13,596 INFO L256 TraceCheckUtils]: 15: Hoare triple {2302#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {2302#true} is VALID [2018-11-23 11:08:13,596 INFO L273 TraceCheckUtils]: 14: Hoare triple {2302#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {2302#true} is VALID [2018-11-23 11:08:13,596 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {2302#true} {2302#true} #66#return; {2302#true} is VALID [2018-11-23 11:08:13,596 INFO L273 TraceCheckUtils]: 12: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:13,596 INFO L273 TraceCheckUtils]: 11: Hoare triple {2302#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2302#true} is VALID [2018-11-23 11:08:13,597 INFO L273 TraceCheckUtils]: 10: Hoare triple {2302#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {2302#true} is VALID [2018-11-23 11:08:13,597 INFO L256 TraceCheckUtils]: 9: Hoare triple {2302#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {2302#true} is VALID [2018-11-23 11:08:13,597 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {2302#true} {2302#true} #64#return; {2302#true} is VALID [2018-11-23 11:08:13,597 INFO L273 TraceCheckUtils]: 7: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:13,597 INFO L273 TraceCheckUtils]: 6: Hoare triple {2302#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {2302#true} is VALID [2018-11-23 11:08:13,598 INFO L256 TraceCheckUtils]: 5: Hoare triple {2302#true} call init(); {2302#true} is VALID [2018-11-23 11:08:13,598 INFO L256 TraceCheckUtils]: 4: Hoare triple {2302#true} call #t~ret17 := main(); {2302#true} is VALID [2018-11-23 11:08:13,598 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2302#true} {2302#true} #60#return; {2302#true} is VALID [2018-11-23 11:08:13,598 INFO L273 TraceCheckUtils]: 2: Hoare triple {2302#true} assume true; {2302#true} is VALID [2018-11-23 11:08:13,598 INFO L273 TraceCheckUtils]: 1: Hoare triple {2302#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {2302#true} is VALID [2018-11-23 11:08:13,598 INFO L256 TraceCheckUtils]: 0: Hoare triple {2302#true} call ULTIMATE.init(); {2302#true} is VALID [2018-11-23 11:08:13,600 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2018-11-23 11:08:13,602 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 11:08:13,602 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 14 [2018-11-23 11:08:13,602 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 39 [2018-11-23 11:08:13,603 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 11:08:13,603 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states. [2018-11-23 11:08:13,754 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:13,755 INFO L459 AbstractCegarLoop]: Interpolant automaton has 14 states [2018-11-23 11:08:13,755 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2018-11-23 11:08:13,755 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=42, Invalid=140, Unknown=0, NotChecked=0, Total=182 [2018-11-23 11:08:13,756 INFO L87 Difference]: Start difference. First operand 44 states and 51 transitions. Second operand 14 states. [2018-11-23 11:08:15,165 WARN L180 SmtUtils]: Spent 106.00 ms on a formula simplification. DAG size of input: 32 DAG size of output: 31 [2018-11-23 11:08:15,711 WARN L180 SmtUtils]: Spent 111.00 ms on a formula simplification. DAG size of input: 27 DAG size of output: 22 [2018-11-23 11:08:16,151 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:16,152 INFO L93 Difference]: Finished difference Result 59 states and 68 transitions. [2018-11-23 11:08:16,152 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2018-11-23 11:08:16,152 INFO L78 Accepts]: Start accepts. Automaton has 14 states. Word has length 39 [2018-11-23 11:08:16,152 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 11:08:16,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 11:08:16,154 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 50 transitions. [2018-11-23 11:08:16,154 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 14 states. [2018-11-23 11:08:16,156 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 50 transitions. [2018-11-23 11:08:16,156 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 50 transitions. [2018-11-23 11:08:16,330 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:16,332 INFO L225 Difference]: With dead ends: 59 [2018-11-23 11:08:16,333 INFO L226 Difference]: Without dead ends: 52 [2018-11-23 11:08:16,333 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 85 GetRequests, 65 SyntacticMatches, 0 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 57 ImplicationChecksByTransitivity, 1.5s TimeCoverageRelationStatistics Valid=123, Invalid=339, Unknown=0, NotChecked=0, Total=462 [2018-11-23 11:08:16,334 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2018-11-23 11:08:16,479 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 43. [2018-11-23 11:08:16,479 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 11:08:16,479 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 43 states. [2018-11-23 11:08:16,479 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 43 states. [2018-11-23 11:08:16,479 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 43 states. [2018-11-23 11:08:16,482 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:16,482 INFO L93 Difference]: Finished difference Result 52 states and 59 transitions. [2018-11-23 11:08:16,482 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 59 transitions. [2018-11-23 11:08:16,482 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:16,482 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:16,482 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 52 states. [2018-11-23 11:08:16,483 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 52 states. [2018-11-23 11:08:16,485 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:16,485 INFO L93 Difference]: Finished difference Result 52 states and 59 transitions. [2018-11-23 11:08:16,486 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 59 transitions. [2018-11-23 11:08:16,486 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:16,486 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:16,486 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 11:08:16,486 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 11:08:16,486 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 43 states. [2018-11-23 11:08:16,488 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 48 transitions. [2018-11-23 11:08:16,488 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 48 transitions. Word has length 39 [2018-11-23 11:08:16,489 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 11:08:16,489 INFO L480 AbstractCegarLoop]: Abstraction has 43 states and 48 transitions. [2018-11-23 11:08:16,489 INFO L481 AbstractCegarLoop]: Interpolant automaton has 14 states. [2018-11-23 11:08:16,489 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 48 transitions. [2018-11-23 11:08:16,490 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 46 [2018-11-23 11:08:16,490 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 11:08:16,490 INFO L402 BasicCegarLoop]: trace histogram [5, 4, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 11:08:16,490 INFO L423 AbstractCegarLoop]: === Iteration 7 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 11:08:16,491 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 11:08:16,491 INFO L82 PathProgramCache]: Analyzing trace with hash 344895801, now seen corresponding path program 1 times [2018-11-23 11:08:16,491 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 11:08:16,491 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 8 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 11:08:16,511 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2018-11-23 11:08:16,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:16,745 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:16,748 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 11:08:17,693 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 18 [2018-11-23 11:08:17,700 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 11 [2018-11-23 11:08:17,702 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:17,713 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:17,728 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:17,729 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 1 variables, input treesize:27, output treesize:14 [2018-11-23 11:08:17,753 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 11:08:17,754 WARN L384 uantifierElimination]: Input elimination task: ∃ [|#memory_int|]. (let ((.cse0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))) (and (= (bvadd .cse0 (_ bv4294967290 32)) main_~i~0) (= |main_#t~mem14| .cse0) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt .cse0 (_ bv0 32)))) [2018-11-23 11:08:17,754 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (bvadd main_~i~0 (_ bv6 32)))) (and (= .cse0 |main_#t~mem14|) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt .cse0 (_ bv0 32)))) [2018-11-23 11:08:17,839 INFO L256 TraceCheckUtils]: 0: Hoare triple {2813#true} call ULTIMATE.init(); {2813#true} is VALID [2018-11-23 11:08:17,840 INFO L273 TraceCheckUtils]: 1: Hoare triple {2813#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,840 INFO L273 TraceCheckUtils]: 2: Hoare triple {2821#(= (_ bv0 32) |~#d1~0.offset|)} assume true; {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,841 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2821#(= (_ bv0 32) |~#d1~0.offset|)} {2813#true} #60#return; {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,842 INFO L256 TraceCheckUtils]: 4: Hoare triple {2821#(= (_ bv0 32) |~#d1~0.offset|)} call #t~ret17 := main(); {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,844 INFO L256 TraceCheckUtils]: 5: Hoare triple {2821#(= (_ bv0 32) |~#d1~0.offset|)} call init(); {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,848 INFO L273 TraceCheckUtils]: 6: Hoare triple {2821#(= (_ bv0 32) |~#d1~0.offset|)} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,856 INFO L273 TraceCheckUtils]: 7: Hoare triple {2821#(= (_ bv0 32) |~#d1~0.offset|)} assume true; {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,857 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {2821#(= (_ bv0 32) |~#d1~0.offset|)} {2821#(= (_ bv0 32) |~#d1~0.offset|)} #64#return; {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,858 INFO L256 TraceCheckUtils]: 9: Hoare triple {2821#(= (_ bv0 32) |~#d1~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,859 INFO L273 TraceCheckUtils]: 10: Hoare triple {2821#(= (_ bv0 32) |~#d1~0.offset|)} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2849#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:08:17,859 INFO L273 TraceCheckUtils]: 11: Hoare triple {2849#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|) (= (_ bv0 32) |~#d1~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2853#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:08:17,860 INFO L273 TraceCheckUtils]: 12: Hoare triple {2853#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} assume true; {2853#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:08:17,861 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {2853#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} {2821#(= (_ bv0 32) |~#d1~0.offset|)} #66#return; {2860#(and (= |main_#t~ret7.offset| |~#d1~0.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:08:17,861 INFO L273 TraceCheckUtils]: 14: Hoare triple {2860#(and (= |main_#t~ret7.offset| |~#d1~0.offset|) (= |~#d1~0.base| |main_#t~ret7.base|) (= (_ bv0 32) |~#d1~0.offset|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {2864#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:08:17,862 INFO L256 TraceCheckUtils]: 15: Hoare triple {2864#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {2821#(= (_ bv0 32) |~#d1~0.offset|)} is VALID [2018-11-23 11:08:17,862 INFO L273 TraceCheckUtils]: 16: Hoare triple {2821#(= (_ bv0 32) |~#d1~0.offset|)} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2849#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:08:17,865 INFO L273 TraceCheckUtils]: 17: Hoare triple {2849#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|) (= (_ bv0 32) |~#d1~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2853#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:08:17,866 INFO L273 TraceCheckUtils]: 18: Hoare triple {2853#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} assume true; {2853#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} is VALID [2018-11-23 11:08:17,867 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {2853#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} {2864#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|) (= (_ bv0 32) |~#d1~0.offset|))} #68#return; {2880#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= (_ bv0 32) |main_#t~ret8.offset|) (= main_~pd1~0.offset |main_#t~ret8.offset|))} is VALID [2018-11-23 11:08:17,867 INFO L273 TraceCheckUtils]: 20: Hoare triple {2880#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= (_ bv0 32) |main_#t~ret8.offset|) (= main_~pd1~0.offset |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {2884#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:08:17,867 INFO L256 TraceCheckUtils]: 21: Hoare triple {2884#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {2813#true} is VALID [2018-11-23 11:08:17,868 INFO L273 TraceCheckUtils]: 22: Hoare triple {2813#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2813#true} is VALID [2018-11-23 11:08:17,868 INFO L273 TraceCheckUtils]: 23: Hoare triple {2813#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2813#true} is VALID [2018-11-23 11:08:17,868 INFO L273 TraceCheckUtils]: 24: Hoare triple {2813#true} assume true; {2813#true} is VALID [2018-11-23 11:08:17,869 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {2813#true} {2884#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} #70#return; {2884#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:08:17,871 INFO L273 TraceCheckUtils]: 26: Hoare triple {2884#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {2884#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:08:17,873 INFO L273 TraceCheckUtils]: 27: Hoare triple {2884#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {2906#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} is VALID [2018-11-23 11:08:17,876 INFO L273 TraceCheckUtils]: 28: Hoare triple {2906#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset (_ bv0 32)) (= main_~pd1~0.offset main_~pd2~0.offset) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {2910#(and (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:17,877 INFO L273 TraceCheckUtils]: 29: Hoare triple {2910#(and (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2910#(and (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:17,905 INFO L273 TraceCheckUtils]: 30: Hoare triple {2910#(and (= (bvadd main_~i~0 (_ bv10 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2917#(and (= (bvadd main_~i~0 (_ bv9 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:17,906 INFO L273 TraceCheckUtils]: 31: Hoare triple {2917#(and (= (bvadd main_~i~0 (_ bv9 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2917#(and (= (bvadd main_~i~0 (_ bv9 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:17,932 INFO L273 TraceCheckUtils]: 32: Hoare triple {2917#(and (= (bvadd main_~i~0 (_ bv9 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2924#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (bvadd main_~i~0 (_ bv8 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:17,933 INFO L273 TraceCheckUtils]: 33: Hoare triple {2924#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (bvadd main_~i~0 (_ bv8 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2924#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (bvadd main_~i~0 (_ bv8 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:17,957 INFO L273 TraceCheckUtils]: 34: Hoare triple {2924#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (bvadd main_~i~0 (_ bv8 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2931#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (= (bvadd main_~i~0 (_ bv7 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:17,959 INFO L273 TraceCheckUtils]: 35: Hoare triple {2931#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (= (bvadd main_~i~0 (_ bv7 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2935#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= |main_#t~mem14| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= (bvadd main_~i~0 (_ bv7 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:18,004 INFO L273 TraceCheckUtils]: 36: Hoare triple {2935#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= |main_#t~mem14| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (= (bvadd main_~i~0 (_ bv7 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2939#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967290 32)) main_~i~0) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:18,019 INFO L273 TraceCheckUtils]: 37: Hoare triple {2939#(and (= main_~pd2~0.offset main_~pa~0.offset) (= (_ bv0 32) main_~pa~0.offset) (= (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967290 32)) main_~i~0) (= main_~pd2~0.base main_~pa~0.base) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2943#(and (= (bvadd main_~i~0 (_ bv6 32)) |main_#t~mem14|) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (bvadd main_~i~0 (_ bv6 32)) (_ bv0 32)))} is VALID [2018-11-23 11:08:18,027 INFO L273 TraceCheckUtils]: 38: Hoare triple {2943#(and (= (bvadd main_~i~0 (_ bv6 32)) |main_#t~mem14|) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (bvadd main_~i~0 (_ bv6 32)) (_ bv0 32)))} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {2814#false} is VALID [2018-11-23 11:08:18,028 INFO L256 TraceCheckUtils]: 39: Hoare triple {2814#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {2814#false} is VALID [2018-11-23 11:08:18,028 INFO L273 TraceCheckUtils]: 40: Hoare triple {2814#false} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {2814#false} is VALID [2018-11-23 11:08:18,028 INFO L273 TraceCheckUtils]: 41: Hoare triple {2814#false} assume true; {2814#false} is VALID [2018-11-23 11:08:18,028 INFO L268 TraceCheckUtils]: 42: Hoare quadruple {2814#false} {2814#false} #72#return; {2814#false} is VALID [2018-11-23 11:08:18,028 INFO L273 TraceCheckUtils]: 43: Hoare triple {2814#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {2814#false} is VALID [2018-11-23 11:08:18,028 INFO L273 TraceCheckUtils]: 44: Hoare triple {2814#false} assume !false; {2814#false} is VALID [2018-11-23 11:08:18,033 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 0 proven. 28 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2018-11-23 11:08:18,033 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 11:08:19,691 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 36 treesize of output 34 [2018-11-23 11:08:19,703 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 25 [2018-11-23 11:08:19,713 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 11:08:19,794 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 11:08:19,797 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 11:08:19,798 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 22 [2018-11-23 11:08:19,803 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:19,842 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 19 [2018-11-23 11:08:19,845 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-0 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-23 11:08:19,890 INFO L267 ElimStorePlain]: Start of recursive call 2: 3 dim-1 vars, End of recursive call: and 2 xjuncts. [2018-11-23 11:08:19,897 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 2 xjuncts. [2018-11-23 11:08:19,898 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:36, output treesize:7 [2018-11-23 11:08:19,917 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 11:08:19,918 WARN L384 uantifierElimination]: Input elimination task: ∀ [|#memory_int|]. (let ((.cse0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (.cse1 (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))) (or (not (bvsgt .cse0 (_ bv0 32))) (bvslt (bvadd .cse0 (_ bv4294967290 32)) .cse1) (not (bvslt (bvadd .cse0 (_ bv4294967289 32)) .cse1)))) [2018-11-23 11:08:19,918 WARN L385 uantifierElimination]: ElimStorePlain result: ∀ []. (and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset)) [2018-11-23 11:08:20,525 INFO L273 TraceCheckUtils]: 44: Hoare triple {2814#false} assume !false; {2814#false} is VALID [2018-11-23 11:08:20,526 INFO L273 TraceCheckUtils]: 43: Hoare triple {2814#false} assume 0bv32 == #t~ret16;havoc #t~ret16; {2814#false} is VALID [2018-11-23 11:08:20,526 INFO L268 TraceCheckUtils]: 42: Hoare quadruple {2813#true} {2814#false} #72#return; {2814#false} is VALID [2018-11-23 11:08:20,526 INFO L273 TraceCheckUtils]: 41: Hoare triple {2813#true} assume true; {2813#true} is VALID [2018-11-23 11:08:20,527 INFO L273 TraceCheckUtils]: 40: Hoare triple {2813#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {2813#true} is VALID [2018-11-23 11:08:20,527 INFO L256 TraceCheckUtils]: 39: Hoare triple {2814#false} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {2813#true} is VALID [2018-11-23 11:08:20,527 INFO L273 TraceCheckUtils]: 38: Hoare triple {2983#(bvslt main_~i~0 |main_#t~mem14|)} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {2814#false} is VALID [2018-11-23 11:08:20,528 INFO L273 TraceCheckUtils]: 37: Hoare triple {2987#(bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2983#(bvslt main_~i~0 |main_#t~mem14|)} is VALID [2018-11-23 11:08:20,530 INFO L273 TraceCheckUtils]: 36: Hoare triple {2991#(or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 |main_#t~mem14|)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2987#(bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))} is VALID [2018-11-23 11:08:20,530 INFO L273 TraceCheckUtils]: 35: Hoare triple {2995#(or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2991#(or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 |main_#t~mem14|)))} is VALID [2018-11-23 11:08:20,551 INFO L273 TraceCheckUtils]: 34: Hoare triple {2999#(or (bvslt (bvadd main_~i~0 (_ bv2 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2995#(or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:20,552 INFO L273 TraceCheckUtils]: 33: Hoare triple {2999#(or (bvslt (bvadd main_~i~0 (_ bv2 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {2999#(or (bvslt (bvadd main_~i~0 (_ bv2 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:20,611 INFO L273 TraceCheckUtils]: 32: Hoare triple {3006#(or (bvslt (bvadd main_~i~0 (_ bv3 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt (bvadd main_~i~0 (_ bv2 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {2999#(or (bvslt (bvadd main_~i~0 (_ bv2 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:20,612 INFO L273 TraceCheckUtils]: 31: Hoare triple {3006#(or (bvslt (bvadd main_~i~0 (_ bv3 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt (bvadd main_~i~0 (_ bv2 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3006#(or (bvslt (bvadd main_~i~0 (_ bv3 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt (bvadd main_~i~0 (_ bv2 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:20,678 INFO L273 TraceCheckUtils]: 30: Hoare triple {3013#(or (not (bvslt (bvadd main_~i~0 (_ bv3 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (bvslt (bvadd main_~i~0 (_ bv4 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3006#(or (bvslt (bvadd main_~i~0 (_ bv3 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt (bvadd main_~i~0 (_ bv2 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))))} is VALID [2018-11-23 11:08:20,678 INFO L273 TraceCheckUtils]: 29: Hoare triple {3013#(or (not (bvslt (bvadd main_~i~0 (_ bv3 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (bvslt (bvadd main_~i~0 (_ bv4 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3013#(or (not (bvslt (bvadd main_~i~0 (_ bv3 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (bvslt (bvadd main_~i~0 (_ bv4 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} is VALID [2018-11-23 11:08:20,733 INFO L273 TraceCheckUtils]: 28: Hoare triple {3020#(or (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967290 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (not |main_#t~short12|) (not (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967289 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {3013#(or (not (bvslt (bvadd main_~i~0 (_ bv3 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (bvslt (bvadd main_~i~0 (_ bv4 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)))} is VALID [2018-11-23 11:08:20,744 INFO L273 TraceCheckUtils]: 27: Hoare triple {3024#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {3020#(or (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967290 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (not |main_#t~short12|) (not (bvslt (bvadd (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv4294967289 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))))} is VALID [2018-11-23 11:08:20,745 INFO L273 TraceCheckUtils]: 26: Hoare triple {3024#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {3024#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:08:20,746 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {2813#true} {3024#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} #70#return; {3024#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:08:20,746 INFO L273 TraceCheckUtils]: 24: Hoare triple {2813#true} assume true; {2813#true} is VALID [2018-11-23 11:08:20,746 INFO L273 TraceCheckUtils]: 23: Hoare triple {2813#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {2813#true} is VALID [2018-11-23 11:08:20,746 INFO L273 TraceCheckUtils]: 22: Hoare triple {2813#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2813#true} is VALID [2018-11-23 11:08:20,746 INFO L256 TraceCheckUtils]: 21: Hoare triple {3024#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {2813#true} is VALID [2018-11-23 11:08:20,747 INFO L273 TraceCheckUtils]: 20: Hoare triple {3046#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= main_~pd1~0.offset |main_#t~ret8.offset|))} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {3024#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset))} is VALID [2018-11-23 11:08:20,748 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {3054#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} {3050#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|))} #68#return; {3046#(and (= main_~pd1~0.base |main_#t~ret8.base|) (= main_~pd1~0.offset |main_#t~ret8.offset|))} is VALID [2018-11-23 11:08:20,749 INFO L273 TraceCheckUtils]: 18: Hoare triple {3054#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} assume true; {3054#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-23 11:08:20,750 INFO L273 TraceCheckUtils]: 17: Hoare triple {3061#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3054#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-23 11:08:20,750 INFO L273 TraceCheckUtils]: 16: Hoare triple {2813#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3061#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-23 11:08:20,751 INFO L256 TraceCheckUtils]: 15: Hoare triple {3050#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|))} call #t~ret8.base, #t~ret8.offset := get_dummy(); {2813#true} is VALID [2018-11-23 11:08:20,751 INFO L273 TraceCheckUtils]: 14: Hoare triple {3068#(and (= |main_#t~ret7.offset| |~#d1~0.offset|) (= |~#d1~0.base| |main_#t~ret7.base|))} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {3050#(and (= |~#d1~0.base| main_~pd1~0.base) (= main_~pd1~0.offset |~#d1~0.offset|))} is VALID [2018-11-23 11:08:20,752 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {3054#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} {2813#true} #66#return; {3068#(and (= |main_#t~ret7.offset| |~#d1~0.offset|) (= |~#d1~0.base| |main_#t~ret7.base|))} is VALID [2018-11-23 11:08:20,753 INFO L273 TraceCheckUtils]: 12: Hoare triple {3054#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} assume true; {3054#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-23 11:08:20,754 INFO L273 TraceCheckUtils]: 11: Hoare triple {3061#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3054#(and (= |get_dummy_#res.base| |~#d1~0.base|) (= |get_dummy_#res.offset| |~#d1~0.offset|))} is VALID [2018-11-23 11:08:20,754 INFO L273 TraceCheckUtils]: 10: Hoare triple {2813#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3061#(and (= |get_dummy_#t~ite5.offset| |~#d1~0.offset|) (= |~#d1~0.base| |get_dummy_#t~ite5.base|))} is VALID [2018-11-23 11:08:20,755 INFO L256 TraceCheckUtils]: 9: Hoare triple {2813#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {2813#true} is VALID [2018-11-23 11:08:20,755 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {2813#true} {2813#true} #64#return; {2813#true} is VALID [2018-11-23 11:08:20,755 INFO L273 TraceCheckUtils]: 7: Hoare triple {2813#true} assume true; {2813#true} is VALID [2018-11-23 11:08:20,755 INFO L273 TraceCheckUtils]: 6: Hoare triple {2813#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {2813#true} is VALID [2018-11-23 11:08:20,756 INFO L256 TraceCheckUtils]: 5: Hoare triple {2813#true} call init(); {2813#true} is VALID [2018-11-23 11:08:20,756 INFO L256 TraceCheckUtils]: 4: Hoare triple {2813#true} call #t~ret17 := main(); {2813#true} is VALID [2018-11-23 11:08:20,756 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {2813#true} {2813#true} #60#return; {2813#true} is VALID [2018-11-23 11:08:20,756 INFO L273 TraceCheckUtils]: 2: Hoare triple {2813#true} assume true; {2813#true} is VALID [2018-11-23 11:08:20,757 INFO L273 TraceCheckUtils]: 1: Hoare triple {2813#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {2813#true} is VALID [2018-11-23 11:08:20,757 INFO L256 TraceCheckUtils]: 0: Hoare triple {2813#true} call ULTIMATE.init(); {2813#true} is VALID [2018-11-23 11:08:20,760 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 0 proven. 26 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2018-11-23 11:08:20,762 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 11:08:20,762 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 16] total 31 [2018-11-23 11:08:20,762 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 45 [2018-11-23 11:08:20,763 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 11:08:20,763 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 31 states. [2018-11-23 11:08:21,379 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:21,380 INFO L459 AbstractCegarLoop]: Interpolant automaton has 31 states [2018-11-23 11:08:21,380 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 31 interpolants. [2018-11-23 11:08:21,380 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=113, Invalid=817, Unknown=0, NotChecked=0, Total=930 [2018-11-23 11:08:21,380 INFO L87 Difference]: Start difference. First operand 43 states and 48 transitions. Second operand 31 states. [2018-11-23 11:08:26,519 WARN L180 SmtUtils]: Spent 102.00 ms on a formula simplification. DAG size of input: 29 DAG size of output: 27 [2018-11-23 11:08:31,154 WARN L180 SmtUtils]: Spent 115.00 ms on a formula simplification. DAG size of input: 33 DAG size of output: 29 [2018-11-23 11:08:32,664 WARN L180 SmtUtils]: Spent 305.00 ms on a formula simplification. DAG size of input: 45 DAG size of output: 32 [2018-11-23 11:08:33,607 WARN L180 SmtUtils]: Spent 289.00 ms on a formula simplification. DAG size of input: 45 DAG size of output: 33 [2018-11-23 11:08:34,387 WARN L180 SmtUtils]: Spent 218.00 ms on a formula simplification. DAG size of input: 40 DAG size of output: 29 [2018-11-23 11:08:35,263 WARN L180 SmtUtils]: Spent 235.00 ms on a formula simplification. DAG size of input: 40 DAG size of output: 30 [2018-11-23 11:08:35,993 WARN L180 SmtUtils]: Spent 138.00 ms on a formula simplification. DAG size of input: 35 DAG size of output: 26 [2018-11-23 11:08:36,630 WARN L180 SmtUtils]: Spent 151.00 ms on a formula simplification. DAG size of input: 35 DAG size of output: 27 [2018-11-23 11:08:37,325 WARN L180 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 23 [2018-11-23 11:08:37,977 WARN L180 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 24 [2018-11-23 11:08:39,093 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:39,094 INFO L93 Difference]: Finished difference Result 83 states and 97 transitions. [2018-11-23 11:08:39,094 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 38 states. [2018-11-23 11:08:39,094 INFO L78 Accepts]: Start accepts. Automaton has 31 states. Word has length 45 [2018-11-23 11:08:39,094 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 11:08:39,094 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2018-11-23 11:08:39,098 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 97 transitions. [2018-11-23 11:08:39,098 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2018-11-23 11:08:39,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 97 transitions. [2018-11-23 11:08:39,101 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 38 states and 97 transitions. [2018-11-23 11:08:40,192 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 97 edges. 97 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:40,194 INFO L225 Difference]: With dead ends: 83 [2018-11-23 11:08:40,194 INFO L226 Difference]: Without dead ends: 76 [2018-11-23 11:08:40,195 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 120 GetRequests, 59 SyntacticMatches, 1 SemanticMatches, 60 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 669 ImplicationChecksByTransitivity, 12.2s TimeCoverageRelationStatistics Valid=733, Invalid=3049, Unknown=0, NotChecked=0, Total=3782 [2018-11-23 11:08:40,196 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 76 states. [2018-11-23 11:08:40,356 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 76 to 60. [2018-11-23 11:08:40,357 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 11:08:40,357 INFO L82 GeneralOperation]: Start isEquivalent. First operand 76 states. Second operand 60 states. [2018-11-23 11:08:40,357 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand 60 states. [2018-11-23 11:08:40,357 INFO L87 Difference]: Start difference. First operand 76 states. Second operand 60 states. [2018-11-23 11:08:40,361 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:40,361 INFO L93 Difference]: Finished difference Result 76 states and 84 transitions. [2018-11-23 11:08:40,361 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 84 transitions. [2018-11-23 11:08:40,362 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:40,362 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:40,362 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 76 states. [2018-11-23 11:08:40,362 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 76 states. [2018-11-23 11:08:40,365 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:08:40,366 INFO L93 Difference]: Finished difference Result 76 states and 84 transitions. [2018-11-23 11:08:40,366 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 84 transitions. [2018-11-23 11:08:40,366 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:08:40,367 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:08:40,367 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 11:08:40,367 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 11:08:40,367 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 60 states. [2018-11-23 11:08:40,369 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 67 transitions. [2018-11-23 11:08:40,369 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 67 transitions. Word has length 45 [2018-11-23 11:08:40,370 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 11:08:40,370 INFO L480 AbstractCegarLoop]: Abstraction has 60 states and 67 transitions. [2018-11-23 11:08:40,370 INFO L481 AbstractCegarLoop]: Interpolant automaton has 31 states. [2018-11-23 11:08:40,370 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 67 transitions. [2018-11-23 11:08:40,371 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 48 [2018-11-23 11:08:40,371 INFO L394 BasicCegarLoop]: Found error trace [2018-11-23 11:08:40,371 INFO L402 BasicCegarLoop]: trace histogram [6, 5, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2018-11-23 11:08:40,371 INFO L423 AbstractCegarLoop]: === Iteration 8 === [mainErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2018-11-23 11:08:40,372 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 11:08:40,372 INFO L82 PathProgramCache]: Analyzing trace with hash 837914722, now seen corresponding path program 3 times [2018-11-23 11:08:40,372 INFO L223 ckRefinementStrategy]: Switched to mode CVC4_FPBP [2018-11-23 11:08:40,372 INFO L69 tionRefinementEngine]: Using refinement strategy WolfRefinementStrategy No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4nyu Starting monitored process 9 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with cvc4nyu --tear-down-incremental --print-success --lang smt --rewrite-divk [2018-11-23 11:08:40,397 INFO L101 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2018-11-23 11:08:40,572 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2018-11-23 11:08:40,573 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2018-11-23 11:08:40,647 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 11:08:40,650 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 11:08:40,911 WARN L180 SmtUtils]: Spent 237.00 ms on a formula simplification that was a NOOP. DAG size: 34 [2018-11-23 11:08:40,927 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 39 [2018-11-23 11:08:40,936 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 35 [2018-11-23 11:08:40,949 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:40,956 INFO L478 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 35 treesize of output 39 [2018-11-23 11:08:40,960 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:40,995 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:41,046 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 29 [2018-11-23 11:08:41,058 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:41,191 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 26 treesize of output 44 [2018-11-23 11:08:41,222 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:41,225 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:41,226 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 11:08:41,240 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 45 [2018-11-23 11:08:41,244 INFO L267 ElimStorePlain]: Start of recursive call 7: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:41,425 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:41,444 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:41,689 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 6 case distinctions, treesize of input 28 treesize of output 59 [2018-11-23 11:08:41,694 INFO L267 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 4 xjuncts. [2018-11-23 11:08:42,019 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:42,022 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:42,025 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:42,043 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 47 [2018-11-23 11:08:42,048 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:42,162 INFO L267 ElimStorePlain]: Start of recursive call 6: 4 dim-1 vars, End of recursive call: and 4 xjuncts. [2018-11-23 11:08:42,274 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 4 xjuncts. [2018-11-23 11:08:42,391 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 4 xjuncts. [2018-11-23 11:08:42,430 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 34 treesize of output 34 [2018-11-23 11:08:42,439 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 16 [2018-11-23 11:08:42,451 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:42,456 INFO L478 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-23 11:08:42,458 INFO L267 ElimStorePlain]: Start of recursive call 12: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:42,480 INFO L267 ElimStorePlain]: Start of recursive call 11: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:42,538 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 34 [2018-11-23 11:08:42,546 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 16 [2018-11-23 11:08:42,556 INFO L701 Elim1Store]: detected not equals via solver [2018-11-23 11:08:42,562 INFO L478 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-23 11:08:42,563 INFO L267 ElimStorePlain]: Start of recursive call 15: End of recursive call: and 1 xjuncts. [2018-11-23 11:08:42,578 INFO L267 ElimStorePlain]: Start of recursive call 14: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:42,607 INFO L267 ElimStorePlain]: Start of recursive call 13: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:42,640 INFO L267 ElimStorePlain]: Start of recursive call 10: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 11:08:42,803 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-2 vars, End of recursive call: and 5 xjuncts. [2018-11-23 11:08:42,803 INFO L202 ElimStorePlain]: Needed 15 recursive calls to eliminate 5 variables, input treesize:46, output treesize:49 [2018-11-23 11:08:42,841 WARN L383 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2018-11-23 11:08:42,841 WARN L384 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_32|, |v_init_#t~nondet0_18|, |v_init_#t~nondet1_18|, |v_init_#t~nondet2_18|, |v_init_#t~nondet3_18|]. (and (= (let ((.cse0 (store |v_#memory_int_32| |~#d1~0.base| (store (store (select |v_#memory_int_32| |~#d1~0.base|) |~#d1~0.offset| |v_init_#t~nondet0_18|) (bvadd |~#d1~0.offset| (_ bv4 32)) |v_init_#t~nondet1_18|)))) (store .cse0 |~#d2~0.base| (store (store (select .cse0 |~#d2~0.base|) |~#d2~0.offset| |v_init_#t~nondet2_18|) (bvadd |~#d2~0.offset| (_ bv4 32)) |v_init_#t~nondet3_18|))) |#memory_int|) (= (_ bv0 32) |~#d2~0.offset|)) [2018-11-23 11:08:42,841 WARN L385 uantifierElimination]: ElimStorePlain result: ∃ []. (let ((.cse0 (= (_ bv0 32) |~#d2~0.offset|)) (.cse2 (bvadd |~#d2~0.offset| (_ bv4 32))) (.cse3 (bvadd |~#d1~0.offset| (_ bv4 32))) (.cse1 (= |~#d1~0.base| |~#d2~0.base|))) (or (and .cse0 .cse1 (= .cse2 |~#d1~0.offset|)) (and .cse0 (= .cse3 |~#d2~0.offset|) .cse1) .cse0 (and .cse0 .cse1) (and .cse0 (= .cse2 .cse3) .cse1))) [2018-11-23 11:08:44,350 WARN L180 SmtUtils]: Spent 236.00 ms on a formula simplification that was a NOOP. DAG size: 30 [2018-11-23 11:08:45,154 INFO L256 TraceCheckUtils]: 0: Hoare triple {3531#true} call ULTIMATE.init(); {3531#true} is VALID [2018-11-23 11:08:45,155 INFO L273 TraceCheckUtils]: 1: Hoare triple {3531#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,156 INFO L273 TraceCheckUtils]: 2: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} assume true; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,156 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3539#(= (_ bv0 32) |~#d2~0.offset|)} {3531#true} #60#return; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,157 INFO L256 TraceCheckUtils]: 4: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} call #t~ret17 := main(); {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,157 INFO L256 TraceCheckUtils]: 5: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} call init(); {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,158 INFO L273 TraceCheckUtils]: 6: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,159 INFO L273 TraceCheckUtils]: 7: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} assume true; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,159 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {3539#(= (_ bv0 32) |~#d2~0.offset|)} {3539#(= (_ bv0 32) |~#d2~0.offset|)} #64#return; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,160 INFO L256 TraceCheckUtils]: 9: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} call #t~ret7.base, #t~ret7.offset := get_dummy(); {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,160 INFO L273 TraceCheckUtils]: 10: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,161 INFO L273 TraceCheckUtils]: 11: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,161 INFO L273 TraceCheckUtils]: 12: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} assume true; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,162 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {3539#(= (_ bv0 32) |~#d2~0.offset|)} {3539#(= (_ bv0 32) |~#d2~0.offset|)} #66#return; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,163 INFO L273 TraceCheckUtils]: 14: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,163 INFO L256 TraceCheckUtils]: 15: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} call #t~ret8.base, #t~ret8.offset := get_dummy(); {3539#(= (_ bv0 32) |~#d2~0.offset|)} is VALID [2018-11-23 11:08:45,164 INFO L273 TraceCheckUtils]: 16: Hoare triple {3539#(= (_ bv0 32) |~#d2~0.offset|)} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3585#(and (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |get_dummy_#t~ite5.base| |~#d2~0.base|) (= (_ bv0 32) |~#d2~0.offset|))} is VALID [2018-11-23 11:08:45,165 INFO L273 TraceCheckUtils]: 17: Hoare triple {3585#(and (= |get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |get_dummy_#t~ite5.base| |~#d2~0.base|) (= (_ bv0 32) |~#d2~0.offset|))} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3589#(and (= |get_dummy_#res.base| |~#d2~0.base|) (= (_ bv0 32) |~#d2~0.offset|) (= |get_dummy_#res.offset| |~#d2~0.offset|))} is VALID [2018-11-23 11:08:45,166 INFO L273 TraceCheckUtils]: 18: Hoare triple {3589#(and (= |get_dummy_#res.base| |~#d2~0.base|) (= (_ bv0 32) |~#d2~0.offset|) (= |get_dummy_#res.offset| |~#d2~0.offset|))} assume true; {3589#(and (= |get_dummy_#res.base| |~#d2~0.base|) (= (_ bv0 32) |~#d2~0.offset|) (= |get_dummy_#res.offset| |~#d2~0.offset|))} is VALID [2018-11-23 11:08:45,167 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {3589#(and (= |get_dummy_#res.base| |~#d2~0.base|) (= (_ bv0 32) |~#d2~0.offset|) (= |get_dummy_#res.offset| |~#d2~0.offset|))} {3539#(= (_ bv0 32) |~#d2~0.offset|)} #68#return; {3596#(= (_ bv0 32) |main_#t~ret8.offset|)} is VALID [2018-11-23 11:08:45,168 INFO L273 TraceCheckUtils]: 20: Hoare triple {3596#(= (_ bv0 32) |main_#t~ret8.offset|)} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {3600#(= main_~pd2~0.offset (_ bv0 32))} is VALID [2018-11-23 11:08:45,168 INFO L256 TraceCheckUtils]: 21: Hoare triple {3600#(= main_~pd2~0.offset (_ bv0 32))} call #t~ret9.base, #t~ret9.offset := get_dummy(); {3531#true} is VALID [2018-11-23 11:08:45,168 INFO L273 TraceCheckUtils]: 22: Hoare triple {3531#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3531#true} is VALID [2018-11-23 11:08:45,168 INFO L273 TraceCheckUtils]: 23: Hoare triple {3531#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3531#true} is VALID [2018-11-23 11:08:45,168 INFO L273 TraceCheckUtils]: 24: Hoare triple {3531#true} assume true; {3531#true} is VALID [2018-11-23 11:08:45,169 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {3531#true} {3600#(= main_~pd2~0.offset (_ bv0 32))} #70#return; {3600#(= main_~pd2~0.offset (_ bv0 32))} is VALID [2018-11-23 11:08:45,171 INFO L273 TraceCheckUtils]: 26: Hoare triple {3600#(= main_~pd2~0.offset (_ bv0 32))} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {3619#(and (or (and (or (not (= main_~pd1~0.offset main_~pd2~0.offset)) (not (= main_~pd2~0.base main_~pd1~0.base)) (= (_ bv0 32) main_~pd1~0.base)) (not |main_#t~short12|)) (and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset) (not (= (_ bv0 32) main_~pd1~0.base)) |main_#t~short12|)) (= main_~pd2~0.offset (_ bv0 32)))} is VALID [2018-11-23 11:08:45,173 INFO L273 TraceCheckUtils]: 27: Hoare triple {3619#(and (or (and (or (not (= main_~pd1~0.offset main_~pd2~0.offset)) (not (= main_~pd2~0.base main_~pd1~0.base)) (= (_ bv0 32) main_~pd1~0.base)) (not |main_#t~short12|)) (and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset) (not (= (_ bv0 32) main_~pd1~0.base)) |main_#t~short12|)) (= main_~pd2~0.offset (_ bv0 32)))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {3623#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset) (= main_~pd2~0.offset (_ bv0 32)) (not (= (_ bv0 32) main_~pd1~0.base)) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} is VALID [2018-11-23 11:08:45,175 INFO L273 TraceCheckUtils]: 28: Hoare triple {3623#(and (= main_~pd2~0.base main_~pd1~0.base) (= main_~pd1~0.offset main_~pd2~0.offset) (= main_~pd2~0.offset (_ bv0 32)) (not (= (_ bv0 32) main_~pd1~0.base)) (or (and (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) |main_#t~short12|) (and (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (not |main_#t~short12|))))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,176 INFO L273 TraceCheckUtils]: 29: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,177 INFO L273 TraceCheckUtils]: 30: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,178 INFO L273 TraceCheckUtils]: 31: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,179 INFO L273 TraceCheckUtils]: 32: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,180 INFO L273 TraceCheckUtils]: 33: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,181 INFO L273 TraceCheckUtils]: 34: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,181 INFO L273 TraceCheckUtils]: 35: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,182 INFO L273 TraceCheckUtils]: 36: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,183 INFO L273 TraceCheckUtils]: 37: Hoare triple {3627#(and (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3655#(and (= main_~pd2~0.offset main_~pa~0.offset) (= |main_#t~mem14| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,203 INFO L273 TraceCheckUtils]: 38: Hoare triple {3655#(and (= main_~pd2~0.offset main_~pa~0.offset) (= |main_#t~mem14| (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3659#(and (bvslt (bvadd main_~i~0 (_ bv4294967295 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,210 INFO L273 TraceCheckUtils]: 39: Hoare triple {3659#(and (bvslt (bvadd main_~i~0 (_ bv4294967295 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~pd2~0.offset main_~pa~0.offset) (= main_~pd2~0.base main_~pa~0.base) (not (= (_ bv0 32) main_~pa~0.base)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3663#(and (not (= main_~pd2~0.base (_ bv0 32))) (= |main_#t~mem14| (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (bvslt (bvadd main_~i~0 (_ bv4294967295 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} is VALID [2018-11-23 11:08:45,232 INFO L273 TraceCheckUtils]: 40: Hoare triple {3663#(and (not (= main_~pd2~0.base (_ bv0 32))) (= |main_#t~mem14| (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (bvslt (bvadd main_~i~0 (_ bv4294967295 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)))} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {3667#(and (not (= main_~pd2~0.base (_ bv0 32))) (bvslt (bvadd main_~i~0 (_ bv4294967295 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:45,260 INFO L256 TraceCheckUtils]: 41: Hoare triple {3667#(and (not (= main_~pd2~0.base (_ bv0 32))) (bvslt (bvadd main_~i~0 (_ bv4294967295 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {3671#(exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))))))} is VALID [2018-11-23 11:08:45,262 INFO L273 TraceCheckUtils]: 42: Hoare triple {3671#(exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))))))} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {3675#(or (and (not (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|))) (exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)))))) (= |check_#res| (_ bv0 32))) (and (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|)) (exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)))))) (= (bvadd |check_#res| (_ bv4294967295 32)) (_ bv0 32))))} is VALID [2018-11-23 11:08:45,263 INFO L273 TraceCheckUtils]: 43: Hoare triple {3675#(or (and (not (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|))) (exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)))))) (= |check_#res| (_ bv0 32))) (and (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|)) (exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)))))) (= (bvadd |check_#res| (_ bv4294967295 32)) (_ bv0 32))))} assume true; {3675#(or (and (not (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|))) (exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)))))) (= |check_#res| (_ bv0 32))) (and (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|)) (exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)))))) (= (bvadd |check_#res| (_ bv4294967295 32)) (_ bv0 32))))} is VALID [2018-11-23 11:08:45,351 INFO L268 TraceCheckUtils]: 44: Hoare quadruple {3675#(or (and (not (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|))) (exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)))))) (= |check_#res| (_ bv0 32))) (and (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|)) (exists ((v_main_~i~0_BEFORE_CALL_3 (_ BitVec 32)) (v_main_~pd2~0.base_BEFORE_CALL_11 (_ BitVec 32))) (and (not (= v_main_~pd2~0.base_BEFORE_CALL_11 (_ bv0 32))) (bvslt (bvadd v_main_~i~0_BEFORE_CALL_3 (_ bv4294967295 32)) (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32))) (bvsgt (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)) (_ bv0 32)) (not (bvslt v_main_~i~0_BEFORE_CALL_3 (select (select |#memory_int| v_main_~pd2~0.base_BEFORE_CALL_11) (_ bv0 32)))))) (= (bvadd |check_#res| (_ bv4294967295 32)) (_ bv0 32))))} {3667#(and (not (= main_~pd2~0.base (_ bv0 32))) (bvslt (bvadd main_~i~0 (_ bv4294967295 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)) (= main_~pd2~0.offset (_ bv0 32)) (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} #72#return; {3682#(= (_ bv1 32) |main_#t~ret16|)} is VALID [2018-11-23 11:08:45,366 INFO L273 TraceCheckUtils]: 45: Hoare triple {3682#(= (_ bv1 32) |main_#t~ret16|)} assume 0bv32 == #t~ret16;havoc #t~ret16; {3532#false} is VALID [2018-11-23 11:08:45,367 INFO L273 TraceCheckUtils]: 46: Hoare triple {3532#false} assume !false; {3532#false} is VALID [2018-11-23 11:08:45,374 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 12 proven. 13 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2018-11-23 11:08:45,375 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2018-11-23 11:08:47,722 WARN L833 TransFormulaUtils]: predicate-based correctness check returned UNKNOWN, hence correctness of interprocedural sequential composition was not checked. [2018-11-23 11:08:47,735 INFO L273 TraceCheckUtils]: 46: Hoare triple {3532#false} assume !false; {3532#false} is VALID [2018-11-23 11:08:47,736 INFO L273 TraceCheckUtils]: 45: Hoare triple {3692#(not (= |main_#t~ret16| (_ bv0 32)))} assume 0bv32 == #t~ret16;havoc #t~ret16; {3532#false} is VALID [2018-11-23 11:08:47,737 INFO L268 TraceCheckUtils]: 44: Hoare quadruple {3700#(or (not (= |check_#res| (_ bv0 32))) (not (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|))))} {3696#(= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))} #72#return; {3692#(not (= |main_#t~ret16| (_ bv0 32)))} is VALID [2018-11-23 11:08:47,738 INFO L273 TraceCheckUtils]: 43: Hoare triple {3700#(or (not (= |check_#res| (_ bv0 32))) (not (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|))))} assume true; {3700#(or (not (= |check_#res| (_ bv0 32))) (not (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|))))} is VALID [2018-11-23 11:08:47,739 INFO L273 TraceCheckUtils]: 42: Hoare triple {3531#true} ~s1.base, ~s1.offset := #in~s1.base, #in~s1.offset;~i := #in~i;call #t~mem6 := read~intINTTYPE4(~s1.base, ~s1.offset, 4bv32);#res := (if #t~mem6 == ~i then 1bv32 else 0bv32);havoc #t~mem6; {3700#(or (not (= |check_#res| (_ bv0 32))) (not (= |check_#in~i| (select (select |#memory_int| |check_#in~s1.base|) |check_#in~s1.offset|))))} is VALID [2018-11-23 11:08:47,740 INFO L256 TraceCheckUtils]: 41: Hoare triple {3696#(= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))} call #t~ret16 := check(~pd2~0.base, ~pd2~0.offset, ~i~0); {3531#true} is VALID [2018-11-23 11:08:47,740 INFO L273 TraceCheckUtils]: 40: Hoare triple {3710#(or (bvslt main_~i~0 |main_#t~mem14|) (= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))} assume !~bvslt32(~i~0, #t~mem14);havoc #t~mem14; {3696#(= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))} is VALID [2018-11-23 11:08:47,741 INFO L273 TraceCheckUtils]: 39: Hoare triple {3714#(or (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3710#(or (bvslt main_~i~0 |main_#t~mem14|) (= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))} is VALID [2018-11-23 11:08:47,755 INFO L273 TraceCheckUtils]: 38: Hoare triple {3718#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 |main_#t~mem14|)) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3714#(or (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))} is VALID [2018-11-23 11:08:47,759 INFO L273 TraceCheckUtils]: 37: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3718#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 |main_#t~mem14|)) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,759 INFO L273 TraceCheckUtils]: 36: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,760 INFO L273 TraceCheckUtils]: 35: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,760 INFO L273 TraceCheckUtils]: 34: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,760 INFO L273 TraceCheckUtils]: 33: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,761 INFO L273 TraceCheckUtils]: 32: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,761 INFO L273 TraceCheckUtils]: 31: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,761 INFO L273 TraceCheckUtils]: 30: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} assume !!~bvslt32(~i~0, #t~mem14);havoc #t~mem14;#t~pre15 := ~bvadd32(1bv32, ~i~0);~i~0 := ~bvadd32(1bv32, ~i~0);havoc #t~pre15; {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,762 INFO L273 TraceCheckUtils]: 29: Hoare triple {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} call #t~mem14 := read~intINTTYPE4(~pa~0.base, ~pa~0.offset, 4bv32); {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,766 INFO L273 TraceCheckUtils]: 28: Hoare triple {3750#(or (forall ((main_~i~0 (_ BitVec 32))) (or (not (bvslt main_~i~0 (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))) (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))) (not |main_#t~short12|))} assume #t~short12;havoc #t~mem11;havoc #t~short12;~pa~0.base, ~pa~0.offset := ~pd1~0.base, ~pd1~0.offset;call #t~mem13 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);~i~0 := ~bvsub32(#t~mem13, 10bv32);havoc #t~mem13; {3722#(forall ((main_~i~0 (_ BitVec 32))) (or (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (not (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset))) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))} is VALID [2018-11-23 11:08:47,768 INFO L273 TraceCheckUtils]: 27: Hoare triple {3754#(or (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (forall ((main_~i~0 (_ BitVec 32))) (or (not (bvslt main_~i~0 (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))) (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))) (not |main_#t~short12|))} assume #t~short12;call #t~mem11 := read~intINTTYPE4(~pd2~0.base, ~pd2~0.offset, 4bv32);#t~short12 := ~bvsgt32(#t~mem11, 0bv32); {3750#(or (forall ((main_~i~0 (_ BitVec 32))) (or (not (bvslt main_~i~0 (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))) (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))) (not |main_#t~short12|))} is VALID [2018-11-23 11:08:47,809 INFO L273 TraceCheckUtils]: 26: Hoare triple {3531#true} ~pd3~0.base, ~pd3~0.offset := #t~ret9.base, #t~ret9.offset;havoc #t~ret9.base, #t~ret9.offset;~i~0 := #t~nondet10;havoc #t~nondet10;#t~short12 := (~pd1~0.base != 0bv32 || ~pd1~0.offset != 0bv32) && ~pd1~0.base == ~pd2~0.base && ~pd1~0.offset == ~pd2~0.offset; {3754#(or (not (bvsgt (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset) (_ bv0 32))) (forall ((main_~i~0 (_ BitVec 32))) (or (not (bvslt main_~i~0 (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset))) (bvslt (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd1~0.base) main_~pd1~0.offset)) (= (bvadd main_~i~0 (_ bv1 32)) (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))) (not |main_#t~short12|))} is VALID [2018-11-23 11:08:47,809 INFO L268 TraceCheckUtils]: 25: Hoare quadruple {3531#true} {3531#true} #70#return; {3531#true} is VALID [2018-11-23 11:08:47,809 INFO L273 TraceCheckUtils]: 24: Hoare triple {3531#true} assume true; {3531#true} is VALID [2018-11-23 11:08:47,809 INFO L273 TraceCheckUtils]: 23: Hoare triple {3531#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3531#true} is VALID [2018-11-23 11:08:47,809 INFO L273 TraceCheckUtils]: 22: Hoare triple {3531#true} assume 0bv8 != #t~nondet4;#t~ite5.base, #t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3531#true} is VALID [2018-11-23 11:08:47,809 INFO L256 TraceCheckUtils]: 21: Hoare triple {3531#true} call #t~ret9.base, #t~ret9.offset := get_dummy(); {3531#true} is VALID [2018-11-23 11:08:47,810 INFO L273 TraceCheckUtils]: 20: Hoare triple {3531#true} ~pd2~0.base, ~pd2~0.offset := #t~ret8.base, #t~ret8.offset;havoc #t~ret8.base, #t~ret8.offset; {3531#true} is VALID [2018-11-23 11:08:47,810 INFO L268 TraceCheckUtils]: 19: Hoare quadruple {3531#true} {3531#true} #68#return; {3531#true} is VALID [2018-11-23 11:08:47,810 INFO L273 TraceCheckUtils]: 18: Hoare triple {3531#true} assume true; {3531#true} is VALID [2018-11-23 11:08:47,810 INFO L273 TraceCheckUtils]: 17: Hoare triple {3531#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3531#true} is VALID [2018-11-23 11:08:47,810 INFO L273 TraceCheckUtils]: 16: Hoare triple {3531#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3531#true} is VALID [2018-11-23 11:08:47,810 INFO L256 TraceCheckUtils]: 15: Hoare triple {3531#true} call #t~ret8.base, #t~ret8.offset := get_dummy(); {3531#true} is VALID [2018-11-23 11:08:47,810 INFO L273 TraceCheckUtils]: 14: Hoare triple {3531#true} ~pd1~0.base, ~pd1~0.offset := #t~ret7.base, #t~ret7.offset;havoc #t~ret7.base, #t~ret7.offset; {3531#true} is VALID [2018-11-23 11:08:47,811 INFO L268 TraceCheckUtils]: 13: Hoare quadruple {3531#true} {3531#true} #66#return; {3531#true} is VALID [2018-11-23 11:08:47,811 INFO L273 TraceCheckUtils]: 12: Hoare triple {3531#true} assume true; {3531#true} is VALID [2018-11-23 11:08:47,811 INFO L273 TraceCheckUtils]: 11: Hoare triple {3531#true} #res.base, #res.offset := #t~ite5.base, #t~ite5.offset;havoc #t~nondet4;havoc #t~ite5.base, #t~ite5.offset; {3531#true} is VALID [2018-11-23 11:08:47,811 INFO L273 TraceCheckUtils]: 10: Hoare triple {3531#true} assume !(0bv8 != #t~nondet4);#t~ite5.base, #t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3531#true} is VALID [2018-11-23 11:08:47,811 INFO L256 TraceCheckUtils]: 9: Hoare triple {3531#true} call #t~ret7.base, #t~ret7.offset := get_dummy(); {3531#true} is VALID [2018-11-23 11:08:47,811 INFO L268 TraceCheckUtils]: 8: Hoare quadruple {3531#true} {3531#true} #64#return; {3531#true} is VALID [2018-11-23 11:08:47,811 INFO L273 TraceCheckUtils]: 7: Hoare triple {3531#true} assume true; {3531#true} is VALID [2018-11-23 11:08:47,811 INFO L273 TraceCheckUtils]: 6: Hoare triple {3531#true} call write~intINTTYPE4(#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4bv32);havoc #t~nondet0;call write~intINTTYPE4(#t~nondet1, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);havoc #t~nondet1;call write~intINTTYPE4(#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4bv32);havoc #t~nondet2;call write~intINTTYPE4(#t~nondet3, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32);havoc #t~nondet3; {3531#true} is VALID [2018-11-23 11:08:47,812 INFO L256 TraceCheckUtils]: 5: Hoare triple {3531#true} call init(); {3531#true} is VALID [2018-11-23 11:08:47,812 INFO L256 TraceCheckUtils]: 4: Hoare triple {3531#true} call #t~ret17 := main(); {3531#true} is VALID [2018-11-23 11:08:47,812 INFO L268 TraceCheckUtils]: 3: Hoare quadruple {3531#true} {3531#true} #60#return; {3531#true} is VALID [2018-11-23 11:08:47,812 INFO L273 TraceCheckUtils]: 2: Hoare triple {3531#true} assume true; {3531#true} is VALID [2018-11-23 11:08:47,812 INFO L273 TraceCheckUtils]: 1: Hoare triple {3531#true} #NULL.base, #NULL.offset := 0bv32, 0bv32;#valid := #valid[0bv32 := 0bv1];call ~#d1~0.base, ~#d1~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~#d1~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d1~0.base, ~bvadd32(4bv32, ~#d1~0.offset), 4bv32);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.alloc(8bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~#d2~0.offset, 4bv32);call write~init~intINTTYPE4(0bv32, ~#d2~0.base, ~bvadd32(4bv32, ~#d2~0.offset), 4bv32); {3531#true} is VALID [2018-11-23 11:08:47,812 INFO L256 TraceCheckUtils]: 0: Hoare triple {3531#true} call ULTIMATE.init(); {3531#true} is VALID [2018-11-23 11:08:47,816 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 0 proven. 14 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2018-11-23 11:08:47,819 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2018-11-23 11:08:47,819 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 11] total 26 [2018-11-23 11:08:47,820 INFO L78 Accepts]: Start accepts. Automaton has 26 states. Word has length 47 [2018-11-23 11:08:47,820 INFO L84 Accepts]: Finished accepts. word is accepted. [2018-11-23 11:08:47,821 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 26 states. [2018-11-23 11:08:48,570 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:08:48,571 INFO L459 AbstractCegarLoop]: Interpolant automaton has 26 states [2018-11-23 11:08:48,571 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 26 interpolants. [2018-11-23 11:08:48,571 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=84, Invalid=566, Unknown=0, NotChecked=0, Total=650 [2018-11-23 11:08:48,572 INFO L87 Difference]: Start difference. First operand 60 states and 67 transitions. Second operand 26 states. [2018-11-23 11:08:52,489 WARN L180 SmtUtils]: Spent 129.00 ms on a formula simplification that was a NOOP. DAG size: 34 [2018-11-23 11:08:52,911 WARN L180 SmtUtils]: Spent 168.00 ms on a formula simplification. DAG size of input: 44 DAG size of output: 40 [2018-11-23 11:08:53,389 WARN L180 SmtUtils]: Spent 165.00 ms on a formula simplification that was a NOOP. DAG size: 39 [2018-11-23 11:08:54,823 WARN L180 SmtUtils]: Spent 109.00 ms on a formula simplification that was a NOOP. DAG size: 36 [2018-11-23 11:08:56,249 WARN L180 SmtUtils]: Spent 414.00 ms on a formula simplification that was a NOOP. DAG size: 42 [2018-11-23 11:08:57,609 WARN L180 SmtUtils]: Spent 184.00 ms on a formula simplification. DAG size of input: 43 DAG size of output: 38 [2018-11-23 11:08:59,440 WARN L180 SmtUtils]: Spent 212.00 ms on a formula simplification. DAG size of input: 45 DAG size of output: 40 [2018-11-23 11:09:01,500 WARN L180 SmtUtils]: Spent 104.00 ms on a formula simplification that was a NOOP. DAG size: 35 [2018-11-23 11:09:03,437 WARN L180 SmtUtils]: Spent 154.00 ms on a formula simplification that was a NOOP. DAG size: 38 [2018-11-23 11:09:03,640 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:09:03,640 INFO L93 Difference]: Finished difference Result 77 states and 85 transitions. [2018-11-23 11:09:03,640 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2018-11-23 11:09:03,640 INFO L78 Accepts]: Start accepts. Automaton has 26 states. Word has length 47 [2018-11-23 11:09:03,641 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2018-11-23 11:09:03,641 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2018-11-23 11:09:03,643 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 55 transitions. [2018-11-23 11:09:03,643 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2018-11-23 11:09:03,645 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 55 transitions. [2018-11-23 11:09:03,645 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states and 55 transitions. [2018-11-23 11:09:04,600 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2018-11-23 11:09:04,601 INFO L225 Difference]: With dead ends: 77 [2018-11-23 11:09:04,601 INFO L226 Difference]: Without dead ends: 0 [2018-11-23 11:09:04,603 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 111 GetRequests, 66 SyntacticMatches, 3 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 417 ImplicationChecksByTransitivity, 11.0s TimeCoverageRelationStatistics Valid=280, Invalid=1612, Unknown=0, NotChecked=0, Total=1892 [2018-11-23 11:09:04,603 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2018-11-23 11:09:04,604 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2018-11-23 11:09:04,604 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2018-11-23 11:09:04,604 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2018-11-23 11:09:04,604 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2018-11-23 11:09:04,604 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2018-11-23 11:09:04,604 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:09:04,604 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2018-11-23 11:09:04,604 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2018-11-23 11:09:04,605 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:09:04,605 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:09:04,605 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2018-11-23 11:09:04,605 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2018-11-23 11:09:04,605 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2018-11-23 11:09:04,605 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2018-11-23 11:09:04,605 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2018-11-23 11:09:04,606 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:09:04,606 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2018-11-23 11:09:04,606 INFO L88 GeneralOperation]: Finished isEquivalent. [2018-11-23 11:09:04,606 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2018-11-23 11:09:04,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2018-11-23 11:09:04,606 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2018-11-23 11:09:04,606 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 47 [2018-11-23 11:09:04,606 INFO L84 Accepts]: Finished accepts. word is rejected. [2018-11-23 11:09:04,607 INFO L480 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2018-11-23 11:09:04,607 INFO L481 AbstractCegarLoop]: Interpolant automaton has 26 states. [2018-11-23 11:09:04,607 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2018-11-23 11:09:04,607 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2018-11-23 11:09:04,611 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2018-11-23 11:09:04,774 WARN L180 SmtUtils]: Spent 125.00 ms on a formula simplification. DAG size of input: 89 DAG size of output: 71 [2018-11-23 11:09:05,031 WARN L180 SmtUtils]: Spent 253.00 ms on a formula simplification. DAG size of input: 169 DAG size of output: 141 [2018-11-23 11:09:06,788 WARN L180 SmtUtils]: Spent 1.57 s on a formula simplification. DAG size of input: 74 DAG size of output: 40 [2018-11-23 11:09:16,447 WARN L180 SmtUtils]: Spent 9.62 s on a formula simplification. DAG size of input: 142 DAG size of output: 41 [2018-11-23 11:09:17,467 WARN L180 SmtUtils]: Spent 220.00 ms on a formula simplification. DAG size of input: 36 DAG size of output: 1 [2018-11-23 11:09:17,679 WARN L180 SmtUtils]: Spent 208.00 ms on a formula simplification. DAG size of input: 33 DAG size of output: 23 [2018-11-23 11:09:17,769 INFO L448 ceAbstractionStarter]: For program point initEXIT(lines 11 18) no Hoare annotation was computed. [2018-11-23 11:09:17,769 INFO L451 ceAbstractionStarter]: At program point initENTRY(lines 11 18) the Hoare annotation is: true [2018-11-23 11:09:17,769 INFO L448 ceAbstractionStarter]: For program point initFINAL(lines 11 18) no Hoare annotation was computed. [2018-11-23 11:09:17,769 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.initFINAL(line -1) no Hoare annotation was computed. [2018-11-23 11:09:17,769 INFO L451 ceAbstractionStarter]: At program point ULTIMATE.initENTRY(line -1) the Hoare annotation is: true [2018-11-23 11:09:17,769 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.initEXIT(line -1) no Hoare annotation was computed. [2018-11-23 11:09:17,769 INFO L448 ceAbstractionStarter]: For program point get_dummyFINAL(lines 20 23) no Hoare annotation was computed. [2018-11-23 11:09:17,770 INFO L451 ceAbstractionStarter]: At program point get_dummyENTRY(lines 20 23) the Hoare annotation is: true [2018-11-23 11:09:17,770 INFO L448 ceAbstractionStarter]: For program point L22-1(line 22) no Hoare annotation was computed. [2018-11-23 11:09:17,770 INFO L448 ceAbstractionStarter]: For program point get_dummyEXIT(lines 20 23) no Hoare annotation was computed. [2018-11-23 11:09:17,770 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2018-11-23 11:09:17,770 INFO L444 ceAbstractionStarter]: At program point L-1(line -1) the Hoare annotation is: (and (= (_ bv0 32) |~#d2~0.offset|) (not (= |~#d1~0.base| |~#d2~0.base|)) (= (_ bv0 32) |~#d1~0.offset|)) [2018-11-23 11:09:17,770 INFO L451 ceAbstractionStarter]: At program point ULTIMATE.startENTRY(line -1) the Hoare annotation is: true [2018-11-23 11:09:17,770 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2018-11-23 11:09:17,770 INFO L448 ceAbstractionStarter]: For program point L33(line 33) no Hoare annotation was computed. [2018-11-23 11:09:17,770 INFO L448 ceAbstractionStarter]: For program point L35-2(lines 35 44) no Hoare annotation was computed. [2018-11-23 11:09:17,770 INFO L444 ceAbstractionStarter]: At program point L33-1(line 33) the Hoare annotation is: (or (= |~#d1~0.base| |~#d2~0.base|) (not (= |~#d2~0.offset| (_ bv0 32))) (not (= (_ bv0 32) |~#d1~0.offset|)) (not (= |~#d1~0.base| main_~pd1~0.base)) (= main_~pd1~0.offset |~#d1~0.offset|)) [2018-11-23 11:09:17,770 INFO L448 ceAbstractionStarter]: For program point L33-2(line 33) no Hoare annotation was computed. [2018-11-23 11:09:17,770 INFO L448 ceAbstractionStarter]: For program point L35-4(lines 35 44) no Hoare annotation was computed. [2018-11-23 11:09:17,771 INFO L444 ceAbstractionStarter]: At program point L33-3(line 33) the Hoare annotation is: (or (= |~#d1~0.base| |~#d2~0.base|) (and (or (not (= |~#d1~0.base| main_~pd1~0.base)) (= main_~pd1~0.offset |~#d1~0.offset|)) (= main_~pd2~0.offset (_ bv0 32))) (not (= main_~pd2~0.base main_~pd1~0.base)) (not (= |~#d2~0.offset| (_ bv0 32))) (not (= (_ bv0 32) |~#d1~0.offset|))) [2018-11-23 11:09:17,771 INFO L448 ceAbstractionStarter]: For program point L33-4(line 33) no Hoare annotation was computed. [2018-11-23 11:09:17,771 INFO L448 ceAbstractionStarter]: For program point mainEXIT(lines 30 50) no Hoare annotation was computed. [2018-11-23 11:09:17,771 INFO L448 ceAbstractionStarter]: For program point mainFINAL(lines 30 50) no Hoare annotation was computed. [2018-11-23 11:09:17,771 INFO L444 ceAbstractionStarter]: At program point L42(lines 31 50) the Hoare annotation is: (or (= |~#d1~0.base| |~#d2~0.base|) (not (= |~#d2~0.offset| (_ bv0 32))) (not (= (_ bv0 32) |~#d1~0.offset|))) [2018-11-23 11:09:17,771 INFO L448 ceAbstractionStarter]: For program point L38-1(lines 38 40) no Hoare annotation was computed. [2018-11-23 11:09:17,771 INFO L444 ceAbstractionStarter]: At program point L38-3(lines 38 40) the Hoare annotation is: (or (and (let ((.cse0 (not |main_#t~short12|))) (and (or (= main_~pd2~0.base main_~pd1~0.base) .cse0) (or (= main_~pd1~0.offset main_~pd2~0.offset) .cse0))) (or (bvslt main_~i~0 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))) (forall ((main_~i~0 (_ BitVec 32))) (let ((.cse2 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (.cse1 (bvadd main_~i~0 (_ bv1 32)))) (or (bvslt .cse1 .cse2) (not (bvslt main_~i~0 .cse2)) (= .cse1 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset)))))) (not (= (_ bv0 32) |~#d1~0.offset|)) (= |~#d1~0.base| |~#d2~0.base|) (not (= |~#d2~0.offset| (_ bv0 32)))) [2018-11-23 11:09:17,771 INFO L444 ceAbstractionStarter]: At program point L38-4(lines 38 40) the Hoare annotation is: (or (= |~#d1~0.base| |~#d2~0.base|) (not (= |~#d2~0.offset| (_ bv0 32))) (and (let ((.cse0 (not |main_#t~short12|))) (and (or (= main_~pd2~0.base main_~pd1~0.base) .cse0) (or (= main_~pd1~0.offset main_~pd2~0.offset) .cse0))) (forall ((main_~i~0 (_ BitVec 32))) (let ((.cse2 (select (select |#memory_int| main_~pa~0.base) main_~pa~0.offset)) (.cse1 (bvadd main_~i~0 (_ bv1 32)))) (or (bvslt .cse1 .cse2) (not (bvslt main_~i~0 .cse2)) (= .cse1 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))))) (= main_~i~0 (select (select |#memory_int| main_~pd2~0.base) main_~pd2~0.offset))) (not (= (_ bv0 32) |~#d1~0.offset|))) [2018-11-23 11:09:17,771 INFO L451 ceAbstractionStarter]: At program point L32(line 32) the Hoare annotation is: true [2018-11-23 11:09:17,772 INFO L451 ceAbstractionStarter]: At program point mainENTRY(lines 30 50) the Hoare annotation is: true [2018-11-23 11:09:17,772 INFO L448 ceAbstractionStarter]: For program point mainErr0ASSERT_VIOLATIONERROR_FUNCTION(line 48) no Hoare annotation was computed. [2018-11-23 11:09:17,772 INFO L448 ceAbstractionStarter]: For program point L41(lines 41 43) no Hoare annotation was computed. [2018-11-23 11:09:17,772 INFO L448 ceAbstractionStarter]: For program point L35(line 35) no Hoare annotation was computed. [2018-11-23 11:09:17,772 INFO L451 ceAbstractionStarter]: At program point checkENTRY(lines 25 28) the Hoare annotation is: true [2018-11-23 11:09:17,772 INFO L448 ceAbstractionStarter]: For program point checkFINAL(lines 25 28) no Hoare annotation was computed. [2018-11-23 11:09:17,772 INFO L448 ceAbstractionStarter]: For program point checkEXIT(lines 25 28) no Hoare annotation was computed. [2018-11-23 11:09:17,774 WARN L170 areAnnotationChecker]: initFINAL has no Hoare annotation [2018-11-23 11:09:17,775 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2018-11-23 11:09:17,775 WARN L170 areAnnotationChecker]: L22-1 has no Hoare annotation [2018-11-23 11:09:17,775 WARN L170 areAnnotationChecker]: L22-1 has no Hoare annotation [2018-11-23 11:09:17,775 WARN L170 areAnnotationChecker]: checkFINAL has no Hoare annotation [2018-11-23 11:09:17,775 WARN L170 areAnnotationChecker]: initFINAL has no Hoare annotation [2018-11-23 11:09:17,775 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2018-11-23 11:09:17,775 WARN L170 areAnnotationChecker]: L22-1 has no Hoare annotation [2018-11-23 11:09:17,775 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: L33 has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: checkFINAL has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: initEXIT has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: get_dummyFINAL has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: L33 has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: checkEXIT has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: get_dummyEXIT has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: get_dummyEXIT has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: get_dummyEXIT has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: L33-2 has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: L41 has no Hoare annotation [2018-11-23 11:09:17,776 WARN L170 areAnnotationChecker]: L41 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: L33-2 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: L33-4 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: mainErr0ASSERT_VIOLATIONERROR_FUNCTION has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: L35-4 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: L33-4 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: L35 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: L35 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: L35-2 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: L35-2 has no Hoare annotation [2018-11-23 11:09:17,777 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2018-11-23 11:09:17,778 WARN L170 areAnnotationChecker]: L38-1 has no Hoare annotation [2018-11-23 11:09:17,778 WARN L170 areAnnotationChecker]: L41 has no Hoare annotation [2018-11-23 11:09:17,778 WARN L170 areAnnotationChecker]: L38-1 has no Hoare annotation [2018-11-23 11:09:17,778 WARN L170 areAnnotationChecker]: L38-1 has no Hoare annotation [2018-11-23 11:09:17,778 INFO L163 areAnnotationChecker]: CFG has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2018-11-23 11:09:17,786 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,787 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,787 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,790 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,791 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,791 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,791 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,791 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,795 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,795 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,799 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,800 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,800 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,800 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,803 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,803 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,810 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 23.11 11:09:17 BoogieIcfgContainer [2018-11-23 11:09:17,810 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2018-11-23 11:09:17,814 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 11:09:17,814 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 11:09:17,814 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 11:09:17,815 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 11:07:50" (3/4) ... [2018-11-23 11:09:17,821 INFO L144 WitnessPrinter]: Generating witness for correct program [2018-11-23 11:09:17,827 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure init [2018-11-23 11:09:17,827 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure ULTIMATE.init [2018-11-23 11:09:17,827 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure get_dummy [2018-11-23 11:09:17,828 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure main [2018-11-23 11:09:17,828 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure check [2018-11-23 11:09:17,832 INFO L879 BoogieBacktranslator]: Reduced CFG by removing 16 nodes and edges [2018-11-23 11:09:17,833 INFO L879 BoogieBacktranslator]: Reduced CFG by removing 6 nodes and edges [2018-11-23 11:09:17,833 INFO L879 BoogieBacktranslator]: Reduced CFG by removing 1 nodes and edges [2018-11-23 11:09:17,833 INFO L879 BoogieBacktranslator]: Reduced CFG by removing 1 nodes and edges [2018-11-23 11:09:17,884 INFO L145 WitnessManager]: Wrote witness to /storage/repos/svcomp/c/ldv-regression/test22_true-unreach-call.c-witness.graphml [2018-11-23 11:09:17,885 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 11:09:17,886 INFO L168 Benchmark]: Toolchain (without parser) took 89043.09 ms. Allocated memory was 1.5 GB in the beginning and 2.6 GB in the end (delta: 1.1 GB). Free memory was 1.4 GB in the beginning and 1.8 GB in the end (delta: -415.3 MB). Peak memory consumption was 703.5 MB. Max. memory is 7.1 GB. [2018-11-23 11:09:17,886 INFO L168 Benchmark]: CDTParser took 0.20 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 11:09:17,887 INFO L168 Benchmark]: CACSL2BoogieTranslator took 362.29 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 10.6 MB). Peak memory consumption was 10.6 MB. Max. memory is 7.1 GB. [2018-11-23 11:09:17,887 INFO L168 Benchmark]: Boogie Procedure Inliner took 36.27 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 11:09:17,887 INFO L168 Benchmark]: Boogie Preprocessor took 78.28 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2018-11-23 11:09:17,887 INFO L168 Benchmark]: RCFGBuilder took 910.45 ms. Allocated memory was 1.5 GB in the beginning and 2.2 GB in the end (delta: 709.9 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -731.6 MB). Peak memory consumption was 15.1 MB. Max. memory is 7.1 GB. [2018-11-23 11:09:17,888 INFO L168 Benchmark]: TraceAbstraction took 87575.90 ms. Allocated memory was 2.2 GB in the beginning and 2.6 GB in the end (delta: 408.9 MB). Free memory was 2.1 GB in the beginning and 1.9 GB in the end (delta: 284.9 MB). Peak memory consumption was 693.8 MB. Max. memory is 7.1 GB. [2018-11-23 11:09:17,888 INFO L168 Benchmark]: Witness Printer took 71.01 ms. Allocated memory is still 2.6 GB. Free memory was 1.9 GB in the beginning and 1.8 GB in the end (delta: 20.8 MB). Peak memory consumption was 20.8 MB. Max. memory is 7.1 GB. [2018-11-23 11:09:17,890 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.20 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * CACSL2BoogieTranslator took 362.29 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 10.6 MB). Peak memory consumption was 10.6 MB. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 36.27 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Preprocessor took 78.28 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 910.45 ms. Allocated memory was 1.5 GB in the beginning and 2.2 GB in the end (delta: 709.9 MB). Free memory was 1.4 GB in the beginning and 2.1 GB in the end (delta: -731.6 MB). Peak memory consumption was 15.1 MB. Max. memory is 7.1 GB. * TraceAbstraction took 87575.90 ms. Allocated memory was 2.2 GB in the beginning and 2.6 GB in the end (delta: 408.9 MB). Free memory was 2.1 GB in the beginning and 1.9 GB in the end (delta: 284.9 MB). Peak memory consumption was 693.8 MB. Max. memory is 7.1 GB. * Witness Printer took 71.01 ms. Allocated memory is still 2.6 GB. Free memory was 1.9 GB in the beginning and 1.8 GB in the end (delta: 20.8 MB). Peak memory consumption was 20.8 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.boogie.preprocessor: - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int - GenericResult: Unfinished Backtranslation unknown boogie variable #memory_int * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - PositiveResult [Line: 48]: call of __VERIFIER_error() unreachable For all program executions holds that call of __VERIFIER_error() unreachable at this location - AllSpecificationsHoldResult: All specifications hold 1 specifications checked. All of them hold - InvariantResult [Line: 38]: Loop Invariant [2018-11-23 11:09:17,896 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,896 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,897 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,898 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,898 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,898 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,898 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,898 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,899 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,900 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,900 WARN L416 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~i~0,QUANTIFIED] [2018-11-23 11:09:17,901 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,901 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,901 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,901 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int [2018-11-23 11:09:17,901 WARN L1272 BoogieBacktranslator]: unknown boogie variable #memory_int Derived loop invariant: ((((((pd2 == pd1 || !aux-pd1 != 0 && pd1 == pd2 && (*pd2).a > 0-aux) && (pd1 == pd2 || !aux-pd1 != 0 && pd1 == pd2 && (*pd2).a > 0-aux)) && (~bvslt32(i, unknown-#memory_int-unknown[pa][pa]) || i == unknown-#memory_int-unknown[pd2][pd2])) && (forall main_~i~0 : bv32 :: (~bvslt32(~bvadd64(main_~i~0, 1bv32), unknown-#memory_int-unknown[pa][pa]) || !~bvslt32(main_~i~0, unknown-#memory_int-unknown[pa][pa])) || ~bvadd64(main_~i~0, 1bv32) == unknown-#memory_int-unknown[pd2][pd2])) || !(0bv32 == d1)) || d1 == d2) || !(d2 == 0bv32) - InvariantResult [Line: 31]: Loop Invariant Derived loop invariant: (d1 == d2 || !(d2 == 0bv32)) || !(0bv32 == d1) - StatisticsResult: Ultimate Automizer benchmark data CFG has 6 procedures, 35 locations, 1 error locations. SAFE Result, 87.4s OverallTime, 8 OverallIterations, 6 TraceHistogramMax, 51.4s AutomataDifference, 0.0s DeadEndRemovalTime, 13.1s HoareAnnotationTime, HoareTripleCheckerStatistics: 271 SDtfs, 279 SDslu, 1837 SDs, 0 SdLazy, 2098 SolverSat, 209 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 9.4s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 641 GetRequests, 435 SyntacticMatches, 6 SemanticMatches, 200 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1386 ImplicationChecksByTransitivity, 29.3s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=60occurred in iteration=7, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s AbstIntTime, 0 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 0.9s AutomataMinimizationTime, 8 MinimizatonAttempts, 76 StatesRemovedByMinimization, 6 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 13 LocationsWithAnnotation, 27 PreInvPairs, 50 NumberOfFragments, 207 HoareAnnotationTreeSize, 27 FomulaSimplifications, 16551 FormulaSimplificationTreeSizeReduction, 0.4s HoareSimplificationTime, 13 FomulaSimplificationsInter, 3894 FormulaSimplificationTreeSizeReductionInter, 11.9s HoareSimplificationTimeInter, RefinementEngineStatistics: TraceCheckStatistics: 0.1s SsaConstructionTime, 0.6s SatisfiabilityAnalysisTime, 18.6s InterpolantComputationTime, 317 NumberOfCodeBlocks, 299 NumberOfCodeBlocksAsserted, 11 NumberOfCheckSat, 547 ConstructedInterpolants, 15 QuantifiedInterpolants, 129941 SizeOfPredicates, 80 NumberOfNonLiveVariables, 853 ConjunctsInSsa, 139 ConjunctsInUnsatCore, 14 InterpolantComputations, 2 PerfectInterpolantSequences, 137/276 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be correct! Received shutdown request...