./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/ldv-regression/test22-1.c --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 8bd4bc60 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx12G -Xms1G -ea -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 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/ldv-regression/test22-1.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash efd11941ceab8dc56d9aa56f1950f714738654ba ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... Execution finished normally Writing output log to file Ultimate.log Result: TRUE --- Real Ultimate output --- This is Ultimate 0.1.25-8bd4bc6 [2020-07-28 17:58:37,499 INFO L177 SettingsManager]: Resetting all preferences to default values... [2020-07-28 17:58:37,502 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2020-07-28 17:58:37,516 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2020-07-28 17:58:37,516 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2020-07-28 17:58:37,518 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2020-07-28 17:58:37,519 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2020-07-28 17:58:37,522 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2020-07-28 17:58:37,524 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2020-07-28 17:58:37,525 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2020-07-28 17:58:37,526 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2020-07-28 17:58:37,528 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2020-07-28 17:58:37,528 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2020-07-28 17:58:37,529 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2020-07-28 17:58:37,531 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2020-07-28 17:58:37,532 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2020-07-28 17:58:37,533 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2020-07-28 17:58:37,535 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2020-07-28 17:58:37,536 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2020-07-28 17:58:37,539 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2020-07-28 17:58:37,540 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2020-07-28 17:58:37,542 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2020-07-28 17:58:37,543 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2020-07-28 17:58:37,544 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2020-07-28 17:58:37,547 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2020-07-28 17:58:37,547 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2020-07-28 17:58:37,547 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2020-07-28 17:58:37,548 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2020-07-28 17:58:37,549 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2020-07-28 17:58:37,550 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2020-07-28 17:58:37,550 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2020-07-28 17:58:37,551 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2020-07-28 17:58:37,552 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2020-07-28 17:58:37,553 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2020-07-28 17:58:37,554 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2020-07-28 17:58:37,554 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2020-07-28 17:58:37,555 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2020-07-28 17:58:37,555 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2020-07-28 17:58:37,556 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2020-07-28 17:58:37,557 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2020-07-28 17:58:37,558 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2020-07-28 17:58:37,559 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2020-07-28 17:58:37,574 INFO L113 SettingsManager]: Loading preferences was successful [2020-07-28 17:58:37,575 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2020-07-28 17:58:37,576 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2020-07-28 17:58:37,577 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2020-07-28 17:58:37,577 INFO L138 SettingsManager]: * Use SBE=true [2020-07-28 17:58:37,577 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2020-07-28 17:58:37,578 INFO L138 SettingsManager]: * sizeof long=4 [2020-07-28 17:58:37,578 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2020-07-28 17:58:37,578 INFO L138 SettingsManager]: * sizeof POINTER=4 [2020-07-28 17:58:37,578 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2020-07-28 17:58:37,579 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2020-07-28 17:58:37,579 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2020-07-28 17:58:37,579 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2020-07-28 17:58:37,579 INFO L138 SettingsManager]: * sizeof long double=12 [2020-07-28 17:58:37,580 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2020-07-28 17:58:37,580 INFO L138 SettingsManager]: * Use constant arrays=true [2020-07-28 17:58:37,580 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2020-07-28 17:58:37,581 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2020-07-28 17:58:37,581 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2020-07-28 17:58:37,581 INFO L138 SettingsManager]: * To the following directory=./dump/ [2020-07-28 17:58:37,582 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2020-07-28 17:58:37,582 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2020-07-28 17:58:37,582 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2020-07-28 17:58:37,583 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2020-07-28 17:58:37,583 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2020-07-28 17:58:37,583 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2020-07-28 17:58:37,583 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2020-07-28 17:58:37,584 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2020-07-28 17:58:37,584 INFO L138 SettingsManager]: * Trace refinement exception blacklist=NONE [2020-07-28 17:58:37,584 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> efd11941ceab8dc56d9aa56f1950f714738654ba [2020-07-28 17:58:37,978 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2020-07-28 17:58:37,993 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2020-07-28 17:58:37,997 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2020-07-28 17:58:37,999 INFO L271 PluginConnector]: Initializing CDTParser... [2020-07-28 17:58:37,999 INFO L275 PluginConnector]: CDTParser initialized [2020-07-28 17:58:38,000 INFO L429 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/ldv-regression/test22-1.c [2020-07-28 17:58:38,062 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4e8907db2/d562e55fbc9541f3902a4049b0ebc6bb/FLAG331050f6a [2020-07-28 17:58:38,539 INFO L306 CDTParser]: Found 1 translation units. [2020-07-28 17:58:38,540 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/ldv-regression/test22-1.c [2020-07-28 17:58:38,548 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4e8907db2/d562e55fbc9541f3902a4049b0ebc6bb/FLAG331050f6a [2020-07-28 17:58:38,948 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4e8907db2/d562e55fbc9541f3902a4049b0ebc6bb [2020-07-28 17:58:38,951 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2020-07-28 17:58:38,953 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2020-07-28 17:58:38,955 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2020-07-28 17:58:38,955 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2020-07-28 17:58:38,959 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2020-07-28 17:58:38,961 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 05:58:38" (1/1) ... [2020-07-28 17:58:38,964 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@18f05669 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:38, skipping insertion in model container [2020-07-28 17:58:38,964 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.07 05:58:38" (1/1) ... [2020-07-28 17:58:38,973 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2020-07-28 17:58:38,992 INFO L178 MainTranslator]: Built tables and reachable declarations [2020-07-28 17:58:39,188 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 17:58:39,200 INFO L203 MainTranslator]: Completed pre-run [2020-07-28 17:58:39,222 INFO L206 PostProcessor]: Analyzing one entry point: main [2020-07-28 17:58:39,241 INFO L208 MainTranslator]: Completed translation [2020-07-28 17:58:39,242 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39 WrapperNode [2020-07-28 17:58:39,242 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2020-07-28 17:58:39,243 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2020-07-28 17:58:39,244 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2020-07-28 17:58:39,244 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2020-07-28 17:58:39,254 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,331 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,366 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2020-07-28 17:58:39,367 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2020-07-28 17:58:39,367 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2020-07-28 17:58:39,367 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2020-07-28 17:58:39,377 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,378 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,381 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,381 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,391 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,396 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,398 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (1/1) ... [2020-07-28 17:58:39,400 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2020-07-28 17:58:39,401 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2020-07-28 17:58:39,401 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2020-07-28 17:58:39,402 INFO L275 PluginConnector]: RCFGBuilder initialized [2020-07-28 17:58:39,403 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (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 [2020-07-28 17:58:39,492 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2020-07-28 17:58:39,493 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2020-07-28 17:58:39,493 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2020-07-28 17:58:39,494 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2020-07-28 17:58:39,494 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2020-07-28 17:58:39,495 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2020-07-28 17:58:39,961 INFO L290 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2020-07-28 17:58:39,962 INFO L295 CfgBuilder]: Removed 15 assume(true) statements. [2020-07-28 17:58:39,966 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 05:58:39 BoogieIcfgContainer [2020-07-28 17:58:39,966 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2020-07-28 17:58:39,967 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2020-07-28 17:58:39,968 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2020-07-28 17:58:39,971 INFO L275 PluginConnector]: TraceAbstraction initialized [2020-07-28 17:58:39,971 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 28.07 05:58:38" (1/3) ... [2020-07-28 17:58:39,973 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@591c27b5 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 05:58:39, skipping insertion in model container [2020-07-28 17:58:39,973 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.07 05:58:39" (2/3) ... [2020-07-28 17:58:39,973 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@591c27b5 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.07 05:58:39, skipping insertion in model container [2020-07-28 17:58:39,974 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 05:58:39" (3/3) ... [2020-07-28 17:58:39,976 INFO L109 eAbstractionObserver]: Analyzing ICFG test22-1.c [2020-07-28 17:58:39,987 INFO L157 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2020-07-28 17:58:39,995 INFO L169 ceAbstractionStarter]: Appying trace abstraction to program that has 1 error locations. [2020-07-28 17:58:40,010 INFO L251 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2020-07-28 17:58:40,036 INFO L375 AbstractCegarLoop]: Interprodecural is true [2020-07-28 17:58:40,036 INFO L376 AbstractCegarLoop]: Hoare is true [2020-07-28 17:58:40,037 INFO L377 AbstractCegarLoop]: Compute interpolants for FPandBP [2020-07-28 17:58:40,037 INFO L378 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2020-07-28 17:58:40,037 INFO L379 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2020-07-28 17:58:40,038 INFO L380 AbstractCegarLoop]: Difference is false [2020-07-28 17:58:40,038 INFO L381 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2020-07-28 17:58:40,038 INFO L385 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2020-07-28 17:58:40,055 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states. [2020-07-28 17:58:40,061 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 20 [2020-07-28 17:58:40,062 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:40,063 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:40,064 INFO L427 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:40,070 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:40,071 INFO L82 PathProgramCache]: Analyzing trace with hash 164664103, now seen corresponding path program 1 times [2020-07-28 17:58:40,082 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:40,083 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [148924914] [2020-07-28 17:58:40,083 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:40,232 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:40,321 INFO L280 TraceCheckUtils]: 0: Hoare triple {28#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {28#true} is VALID [2020-07-28 17:58:40,322 INFO L280 TraceCheckUtils]: 1: Hoare triple {28#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {28#true} is VALID [2020-07-28 17:58:40,322 INFO L280 TraceCheckUtils]: 2: Hoare triple {28#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {28#true} is VALID [2020-07-28 17:58:40,323 INFO L280 TraceCheckUtils]: 3: Hoare triple {28#true} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {28#true} is VALID [2020-07-28 17:58:40,323 INFO L280 TraceCheckUtils]: 4: Hoare triple {28#true} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {28#true} is VALID [2020-07-28 17:58:40,324 INFO L280 TraceCheckUtils]: 5: Hoare triple {28#true} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {28#true} is VALID [2020-07-28 17:58:40,325 INFO L280 TraceCheckUtils]: 6: Hoare triple {28#true} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {28#true} is VALID [2020-07-28 17:58:40,325 INFO L280 TraceCheckUtils]: 7: Hoare triple {28#true} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {28#true} is VALID [2020-07-28 17:58:40,325 INFO L280 TraceCheckUtils]: 8: Hoare triple {28#true} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {28#true} is VALID [2020-07-28 17:58:40,327 INFO L280 TraceCheckUtils]: 9: Hoare triple {28#true} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {28#true} is VALID [2020-07-28 17:58:40,327 INFO L280 TraceCheckUtils]: 10: Hoare triple {28#true} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {28#true} is VALID [2020-07-28 17:58:40,330 INFO L280 TraceCheckUtils]: 11: Hoare triple {28#true} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {28#true} is VALID [2020-07-28 17:58:40,331 INFO L280 TraceCheckUtils]: 12: Hoare triple {28#true} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {28#true} is VALID [2020-07-28 17:58:40,333 INFO L280 TraceCheckUtils]: 13: Hoare triple {28#true} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {28#true} is VALID [2020-07-28 17:58:40,335 INFO L280 TraceCheckUtils]: 14: Hoare triple {28#true} assume !true; {29#false} is VALID [2020-07-28 17:58:40,335 INFO L280 TraceCheckUtils]: 15: Hoare triple {29#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {29#false} is VALID [2020-07-28 17:58:40,337 INFO L280 TraceCheckUtils]: 16: Hoare triple {29#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {29#false} is VALID [2020-07-28 17:58:40,337 INFO L280 TraceCheckUtils]: 17: Hoare triple {29#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {29#false} is VALID [2020-07-28 17:58:40,338 INFO L280 TraceCheckUtils]: 18: Hoare triple {29#false} assume !false; {29#false} is VALID [2020-07-28 17:58:40,344 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:40,346 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [148924914] [2020-07-28 17:58:40,349 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 17:58:40,349 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2020-07-28 17:58:40,351 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [360751326] [2020-07-28 17:58:40,358 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 19 [2020-07-28 17:58:40,360 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:58:40,364 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states. [2020-07-28 17:58:40,442 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 19 edges. 19 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:40,443 INFO L459 AbstractCegarLoop]: Interpolant automaton has 2 states [2020-07-28 17:58:40,443 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:58:40,452 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2020-07-28 17:58:40,454 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2020-07-28 17:58:40,456 INFO L87 Difference]: Start difference. First operand 25 states. Second operand 2 states. [2020-07-28 17:58:40,520 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:40,521 INFO L93 Difference]: Finished difference Result 34 states and 41 transitions. [2020-07-28 17:58:40,521 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2020-07-28 17:58:40,521 INFO L78 Accepts]: Start accepts. Automaton has 2 states. Word has length 19 [2020-07-28 17:58:40,522 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:58:40,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2020-07-28 17:58:40,534 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 41 transitions. [2020-07-28 17:58:40,535 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 2 states. [2020-07-28 17:58:40,538 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 41 transitions. [2020-07-28 17:58:40,539 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 41 transitions. [2020-07-28 17:58:40,603 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:40,615 INFO L225 Difference]: With dead ends: 34 [2020-07-28 17:58:40,615 INFO L226 Difference]: Without dead ends: 21 [2020-07-28 17:58:40,619 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 2 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2020-07-28 17:58:40,637 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2020-07-28 17:58:40,653 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 21. [2020-07-28 17:58:40,653 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:58:40,654 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 21 states. [2020-07-28 17:58:40,655 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 21 states. [2020-07-28 17:58:40,655 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 21 states. [2020-07-28 17:58:40,658 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:40,658 INFO L93 Difference]: Finished difference Result 21 states and 25 transitions. [2020-07-28 17:58:40,658 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 25 transitions. [2020-07-28 17:58:40,659 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:40,659 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:40,660 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 21 states. [2020-07-28 17:58:40,660 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 21 states. [2020-07-28 17:58:40,662 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:40,663 INFO L93 Difference]: Finished difference Result 21 states and 25 transitions. [2020-07-28 17:58:40,663 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 25 transitions. [2020-07-28 17:58:40,664 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:40,664 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:40,664 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:58:40,664 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:58:40,665 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 21 states. [2020-07-28 17:58:40,667 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 25 transitions. [2020-07-28 17:58:40,669 INFO L78 Accepts]: Start accepts. Automaton has 21 states and 25 transitions. Word has length 19 [2020-07-28 17:58:40,669 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:58:40,670 INFO L479 AbstractCegarLoop]: Abstraction has 21 states and 25 transitions. [2020-07-28 17:58:40,670 INFO L480 AbstractCegarLoop]: Interpolant automaton has 2 states. [2020-07-28 17:58:40,670 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 25 transitions. [2020-07-28 17:58:40,671 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2020-07-28 17:58:40,671 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:40,671 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:40,672 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2020-07-28 17:58:40,672 INFO L427 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:40,672 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:40,673 INFO L82 PathProgramCache]: Analyzing trace with hash 603612068, now seen corresponding path program 1 times [2020-07-28 17:58:40,673 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:40,673 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1975897022] [2020-07-28 17:58:40,673 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:40,713 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:41,001 INFO L280 TraceCheckUtils]: 0: Hoare triple {145#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {145#true} is VALID [2020-07-28 17:58:41,002 INFO L280 TraceCheckUtils]: 1: Hoare triple {145#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {145#true} is VALID [2020-07-28 17:58:41,002 INFO L280 TraceCheckUtils]: 2: Hoare triple {145#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {145#true} is VALID [2020-07-28 17:58:41,022 INFO L280 TraceCheckUtils]: 3: Hoare triple {145#true} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {147#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} is VALID [2020-07-28 17:58:41,023 INFO L280 TraceCheckUtils]: 4: Hoare triple {147#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {148#(and (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:41,025 INFO L280 TraceCheckUtils]: 5: Hoare triple {148#(and (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {149#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:41,039 INFO L280 TraceCheckUtils]: 6: Hoare triple {149#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {150#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:41,040 INFO L280 TraceCheckUtils]: 7: Hoare triple {150#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {151#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:41,041 INFO L280 TraceCheckUtils]: 8: Hoare triple {151#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:41,042 INFO L280 TraceCheckUtils]: 9: Hoare triple {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:41,048 INFO L280 TraceCheckUtils]: 10: Hoare triple {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:41,050 INFO L280 TraceCheckUtils]: 11: Hoare triple {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:41,051 INFO L280 TraceCheckUtils]: 12: Hoare triple {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:41,052 INFO L280 TraceCheckUtils]: 13: Hoare triple {152#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {153#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:41,054 INFO L280 TraceCheckUtils]: 14: Hoare triple {153#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {154#(<= (+ ULTIMATE.start_main_~i~0 10) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:58:41,059 INFO L280 TraceCheckUtils]: 15: Hoare triple {154#(<= (+ ULTIMATE.start_main_~i~0 10) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {146#false} is VALID [2020-07-28 17:58:41,060 INFO L280 TraceCheckUtils]: 16: Hoare triple {146#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {146#false} is VALID [2020-07-28 17:58:41,060 INFO L280 TraceCheckUtils]: 17: Hoare triple {146#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {146#false} is VALID [2020-07-28 17:58:41,060 INFO L280 TraceCheckUtils]: 18: Hoare triple {146#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {146#false} is VALID [2020-07-28 17:58:41,061 INFO L280 TraceCheckUtils]: 19: Hoare triple {146#false} assume !false; {146#false} is VALID [2020-07-28 17:58:41,071 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:41,072 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1975897022] [2020-07-28 17:58:41,073 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 17:58:41,073 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2020-07-28 17:58:41,073 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1879342628] [2020-07-28 17:58:41,075 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 20 [2020-07-28 17:58:41,080 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:58:41,080 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2020-07-28 17:58:41,136 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:41,136 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2020-07-28 17:58:41,137 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:58:41,137 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2020-07-28 17:58:41,137 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=73, Unknown=0, NotChecked=0, Total=90 [2020-07-28 17:58:41,138 INFO L87 Difference]: Start difference. First operand 21 states and 25 transitions. Second operand 10 states. [2020-07-28 17:58:42,340 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:42,341 INFO L93 Difference]: Finished difference Result 96 states and 109 transitions. [2020-07-28 17:58:42,341 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2020-07-28 17:58:42,341 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 20 [2020-07-28 17:58:42,342 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:58:42,342 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 17:58:42,347 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 109 transitions. [2020-07-28 17:58:42,347 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 17:58:42,351 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 109 transitions. [2020-07-28 17:58:42,351 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 109 transitions. [2020-07-28 17:58:42,503 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 109 edges. 109 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:42,508 INFO L225 Difference]: With dead ends: 96 [2020-07-28 17:58:42,509 INFO L226 Difference]: Without dead ends: 91 [2020-07-28 17:58:42,510 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 22 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=86, Invalid=256, Unknown=0, NotChecked=0, Total=342 [2020-07-28 17:58:42,511 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 91 states. [2020-07-28 17:58:42,532 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 91 to 33. [2020-07-28 17:58:42,533 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:58:42,533 INFO L82 GeneralOperation]: Start isEquivalent. First operand 91 states. Second operand 33 states. [2020-07-28 17:58:42,533 INFO L74 IsIncluded]: Start isIncluded. First operand 91 states. Second operand 33 states. [2020-07-28 17:58:42,533 INFO L87 Difference]: Start difference. First operand 91 states. Second operand 33 states. [2020-07-28 17:58:42,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:42,541 INFO L93 Difference]: Finished difference Result 91 states and 103 transitions. [2020-07-28 17:58:42,542 INFO L276 IsEmpty]: Start isEmpty. Operand 91 states and 103 transitions. [2020-07-28 17:58:42,543 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:42,543 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:42,543 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 91 states. [2020-07-28 17:58:42,544 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 91 states. [2020-07-28 17:58:42,550 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:42,551 INFO L93 Difference]: Finished difference Result 91 states and 103 transitions. [2020-07-28 17:58:42,551 INFO L276 IsEmpty]: Start isEmpty. Operand 91 states and 103 transitions. [2020-07-28 17:58:42,552 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:42,552 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:42,553 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:58:42,553 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:58:42,553 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2020-07-28 17:58:42,555 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 40 transitions. [2020-07-28 17:58:42,556 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 40 transitions. Word has length 20 [2020-07-28 17:58:42,556 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:58:42,556 INFO L479 AbstractCegarLoop]: Abstraction has 33 states and 40 transitions. [2020-07-28 17:58:42,557 INFO L480 AbstractCegarLoop]: Interpolant automaton has 10 states. [2020-07-28 17:58:42,557 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 40 transitions. [2020-07-28 17:58:42,558 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2020-07-28 17:58:42,558 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:42,558 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:42,558 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2020-07-28 17:58:42,559 INFO L427 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:42,559 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:42,559 INFO L82 PathProgramCache]: Analyzing trace with hash -407505182, now seen corresponding path program 1 times [2020-07-28 17:58:42,560 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:42,560 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1285916625] [2020-07-28 17:58:42,560 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:42,584 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:42,759 INFO L280 TraceCheckUtils]: 0: Hoare triple {530#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {532#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:42,760 INFO L280 TraceCheckUtils]: 1: Hoare triple {532#(not (= |~#d1~0.base| |~#d2~0.base|))} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {532#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:42,760 INFO L280 TraceCheckUtils]: 2: Hoare triple {532#(not (= |~#d1~0.base| |~#d2~0.base|))} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {532#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:42,761 INFO L280 TraceCheckUtils]: 3: Hoare triple {532#(not (= |~#d1~0.base| |~#d2~0.base|))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {533#(not (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:42,762 INFO L280 TraceCheckUtils]: 4: Hoare triple {533#(not (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {534#(not (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:42,762 INFO L280 TraceCheckUtils]: 5: Hoare triple {534#(not (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {535#(not (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} is VALID [2020-07-28 17:58:42,763 INFO L280 TraceCheckUtils]: 6: Hoare triple {535#(not (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {536#(not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|))} is VALID [2020-07-28 17:58:42,764 INFO L280 TraceCheckUtils]: 7: Hoare triple {536#(not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {537#(not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:42,765 INFO L280 TraceCheckUtils]: 8: Hoare triple {537#(not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {538#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} is VALID [2020-07-28 17:58:42,765 INFO L280 TraceCheckUtils]: 9: Hoare triple {538#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {538#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} is VALID [2020-07-28 17:58:42,766 INFO L280 TraceCheckUtils]: 10: Hoare triple {538#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {538#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} is VALID [2020-07-28 17:58:42,767 INFO L280 TraceCheckUtils]: 11: Hoare triple {538#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {539#(not |ULTIMATE.start_main_#t~short12|)} is VALID [2020-07-28 17:58:42,768 INFO L280 TraceCheckUtils]: 12: Hoare triple {539#(not |ULTIMATE.start_main_#t~short12|)} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {531#false} is VALID [2020-07-28 17:58:42,768 INFO L280 TraceCheckUtils]: 13: Hoare triple {531#false} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {531#false} is VALID [2020-07-28 17:58:42,770 INFO L280 TraceCheckUtils]: 14: Hoare triple {531#false} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {531#false} is VALID [2020-07-28 17:58:42,771 INFO L280 TraceCheckUtils]: 15: Hoare triple {531#false} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {531#false} is VALID [2020-07-28 17:58:42,771 INFO L280 TraceCheckUtils]: 16: Hoare triple {531#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {531#false} is VALID [2020-07-28 17:58:42,771 INFO L280 TraceCheckUtils]: 17: Hoare triple {531#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {531#false} is VALID [2020-07-28 17:58:42,771 INFO L280 TraceCheckUtils]: 18: Hoare triple {531#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {531#false} is VALID [2020-07-28 17:58:42,772 INFO L280 TraceCheckUtils]: 19: Hoare triple {531#false} assume !false; {531#false} is VALID [2020-07-28 17:58:42,773 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:42,775 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1285916625] [2020-07-28 17:58:42,776 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 17:58:42,776 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2020-07-28 17:58:42,776 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [467404787] [2020-07-28 17:58:42,777 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 20 [2020-07-28 17:58:42,777 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:58:42,777 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2020-07-28 17:58:42,799 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:42,800 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2020-07-28 17:58:42,800 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:58:42,800 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2020-07-28 17:58:42,800 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=73, Unknown=0, NotChecked=0, Total=90 [2020-07-28 17:58:42,800 INFO L87 Difference]: Start difference. First operand 33 states and 40 transitions. Second operand 10 states. [2020-07-28 17:58:43,822 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:43,822 INFO L93 Difference]: Finished difference Result 91 states and 103 transitions. [2020-07-28 17:58:43,823 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2020-07-28 17:58:43,823 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 20 [2020-07-28 17:58:43,823 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:58:43,823 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 17:58:43,827 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 97 transitions. [2020-07-28 17:58:43,827 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 17:58:43,830 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 97 transitions. [2020-07-28 17:58:43,830 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states and 97 transitions. [2020-07-28 17:58:43,938 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 97 edges. 97 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:43,941 INFO L225 Difference]: With dead ends: 91 [2020-07-28 17:58:43,941 INFO L226 Difference]: Without dead ends: 66 [2020-07-28 17:58:43,942 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 27 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 26 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 117 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=158, Invalid=598, Unknown=0, NotChecked=0, Total=756 [2020-07-28 17:58:43,943 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 66 states. [2020-07-28 17:58:43,976 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 66 to 33. [2020-07-28 17:58:43,976 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:58:43,976 INFO L82 GeneralOperation]: Start isEquivalent. First operand 66 states. Second operand 33 states. [2020-07-28 17:58:43,976 INFO L74 IsIncluded]: Start isIncluded. First operand 66 states. Second operand 33 states. [2020-07-28 17:58:43,977 INFO L87 Difference]: Start difference. First operand 66 states. Second operand 33 states. [2020-07-28 17:58:43,980 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:43,980 INFO L93 Difference]: Finished difference Result 66 states and 70 transitions. [2020-07-28 17:58:43,981 INFO L276 IsEmpty]: Start isEmpty. Operand 66 states and 70 transitions. [2020-07-28 17:58:43,981 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:43,982 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:43,982 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 66 states. [2020-07-28 17:58:43,982 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 66 states. [2020-07-28 17:58:43,986 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:43,986 INFO L93 Difference]: Finished difference Result 66 states and 70 transitions. [2020-07-28 17:58:43,986 INFO L276 IsEmpty]: Start isEmpty. Operand 66 states and 70 transitions. [2020-07-28 17:58:43,987 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:43,988 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:43,988 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:58:43,988 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:58:43,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2020-07-28 17:58:43,990 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 37 transitions. [2020-07-28 17:58:43,990 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 37 transitions. Word has length 20 [2020-07-28 17:58:43,990 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:58:43,991 INFO L479 AbstractCegarLoop]: Abstraction has 33 states and 37 transitions. [2020-07-28 17:58:43,991 INFO L480 AbstractCegarLoop]: Interpolant automaton has 10 states. [2020-07-28 17:58:43,991 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 37 transitions. [2020-07-28 17:58:43,992 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2020-07-28 17:58:43,992 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:43,992 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:43,992 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2020-07-28 17:58:43,993 INFO L427 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:43,993 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:43,993 INFO L82 PathProgramCache]: Analyzing trace with hash -984735834, now seen corresponding path program 1 times [2020-07-28 17:58:43,994 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:43,994 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [657538868] [2020-07-28 17:58:43,994 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:44,015 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:44,124 INFO L280 TraceCheckUtils]: 0: Hoare triple {874#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {876#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:44,125 INFO L280 TraceCheckUtils]: 1: Hoare triple {876#(not (= |~#d1~0.base| |~#d2~0.base|))} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {876#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:44,126 INFO L280 TraceCheckUtils]: 2: Hoare triple {876#(not (= |~#d1~0.base| |~#d2~0.base|))} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {876#(not (= |~#d1~0.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:44,127 INFO L280 TraceCheckUtils]: 3: Hoare triple {876#(not (= |~#d1~0.base| |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {877#(not (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|))} is VALID [2020-07-28 17:58:44,127 INFO L280 TraceCheckUtils]: 4: Hoare triple {877#(not (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {878#(not (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:44,128 INFO L280 TraceCheckUtils]: 5: Hoare triple {878#(not (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {879#(not (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|))} is VALID [2020-07-28 17:58:44,129 INFO L280 TraceCheckUtils]: 6: Hoare triple {879#(not (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {880#(not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|))} is VALID [2020-07-28 17:58:44,130 INFO L280 TraceCheckUtils]: 7: Hoare triple {880#(not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {881#(not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:44,131 INFO L280 TraceCheckUtils]: 8: Hoare triple {881#(not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {882#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} is VALID [2020-07-28 17:58:44,131 INFO L280 TraceCheckUtils]: 9: Hoare triple {882#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {882#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} is VALID [2020-07-28 17:58:44,132 INFO L280 TraceCheckUtils]: 10: Hoare triple {882#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {882#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} is VALID [2020-07-28 17:58:44,133 INFO L280 TraceCheckUtils]: 11: Hoare triple {882#(not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {883#(not |ULTIMATE.start_main_#t~short12|)} is VALID [2020-07-28 17:58:44,134 INFO L280 TraceCheckUtils]: 12: Hoare triple {883#(not |ULTIMATE.start_main_#t~short12|)} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {875#false} is VALID [2020-07-28 17:58:44,135 INFO L280 TraceCheckUtils]: 13: Hoare triple {875#false} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {875#false} is VALID [2020-07-28 17:58:44,135 INFO L280 TraceCheckUtils]: 14: Hoare triple {875#false} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {875#false} is VALID [2020-07-28 17:58:44,135 INFO L280 TraceCheckUtils]: 15: Hoare triple {875#false} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {875#false} is VALID [2020-07-28 17:58:44,135 INFO L280 TraceCheckUtils]: 16: Hoare triple {875#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {875#false} is VALID [2020-07-28 17:58:44,136 INFO L280 TraceCheckUtils]: 17: Hoare triple {875#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {875#false} is VALID [2020-07-28 17:58:44,136 INFO L280 TraceCheckUtils]: 18: Hoare triple {875#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {875#false} is VALID [2020-07-28 17:58:44,136 INFO L280 TraceCheckUtils]: 19: Hoare triple {875#false} assume !false; {875#false} is VALID [2020-07-28 17:58:44,137 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:44,138 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [657538868] [2020-07-28 17:58:44,138 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 17:58:44,138 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2020-07-28 17:58:44,139 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [407462635] [2020-07-28 17:58:44,139 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 20 [2020-07-28 17:58:44,140 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:58:44,140 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2020-07-28 17:58:44,163 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:44,164 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2020-07-28 17:58:44,164 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:58:44,164 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2020-07-28 17:58:44,164 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=73, Unknown=0, NotChecked=0, Total=90 [2020-07-28 17:58:44,165 INFO L87 Difference]: Start difference. First operand 33 states and 37 transitions. Second operand 10 states. [2020-07-28 17:58:45,178 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:45,179 INFO L93 Difference]: Finished difference Result 81 states and 86 transitions. [2020-07-28 17:58:45,179 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2020-07-28 17:58:45,179 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 20 [2020-07-28 17:58:45,179 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:58:45,179 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 17:58:45,182 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 82 transitions. [2020-07-28 17:58:45,182 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 17:58:45,184 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 82 transitions. [2020-07-28 17:58:45,185 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 17 states and 82 transitions. [2020-07-28 17:58:45,292 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 82 edges. 82 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:45,296 INFO L225 Difference]: With dead ends: 81 [2020-07-28 17:58:45,297 INFO L226 Difference]: Without dead ends: 64 [2020-07-28 17:58:45,298 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 23 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 22 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 61 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=122, Invalid=430, Unknown=0, NotChecked=0, Total=552 [2020-07-28 17:58:45,298 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 64 states. [2020-07-28 17:58:45,341 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 64 to 33. [2020-07-28 17:58:45,341 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:58:45,341 INFO L82 GeneralOperation]: Start isEquivalent. First operand 64 states. Second operand 33 states. [2020-07-28 17:58:45,341 INFO L74 IsIncluded]: Start isIncluded. First operand 64 states. Second operand 33 states. [2020-07-28 17:58:45,342 INFO L87 Difference]: Start difference. First operand 64 states. Second operand 33 states. [2020-07-28 17:58:45,344 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:45,344 INFO L93 Difference]: Finished difference Result 64 states and 67 transitions. [2020-07-28 17:58:45,345 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 67 transitions. [2020-07-28 17:58:45,345 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:45,345 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:45,346 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 64 states. [2020-07-28 17:58:45,346 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 64 states. [2020-07-28 17:58:45,348 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:45,348 INFO L93 Difference]: Finished difference Result 64 states and 67 transitions. [2020-07-28 17:58:45,349 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 67 transitions. [2020-07-28 17:58:45,349 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:45,349 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:45,349 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:58:45,350 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:58:45,350 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2020-07-28 17:58:45,351 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 36 transitions. [2020-07-28 17:58:45,351 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 36 transitions. Word has length 20 [2020-07-28 17:58:45,351 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:58:45,352 INFO L479 AbstractCegarLoop]: Abstraction has 33 states and 36 transitions. [2020-07-28 17:58:45,352 INFO L480 AbstractCegarLoop]: Interpolant automaton has 10 states. [2020-07-28 17:58:45,352 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 36 transitions. [2020-07-28 17:58:45,352 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 21 [2020-07-28 17:58:45,352 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:45,353 INFO L422 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:45,353 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3 [2020-07-28 17:58:45,353 INFO L427 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:45,353 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:45,353 INFO L82 PathProgramCache]: Analyzing trace with hash -1995853084, now seen corresponding path program 1 times [2020-07-28 17:58:45,354 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:45,354 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [562671270] [2020-07-28 17:58:45,354 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:45,400 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:45,581 INFO L280 TraceCheckUtils]: 0: Hoare triple {1194#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {1194#true} is VALID [2020-07-28 17:58:45,581 INFO L280 TraceCheckUtils]: 1: Hoare triple {1194#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {1194#true} is VALID [2020-07-28 17:58:45,582 INFO L280 TraceCheckUtils]: 2: Hoare triple {1194#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1194#true} is VALID [2020-07-28 17:58:45,583 INFO L280 TraceCheckUtils]: 3: Hoare triple {1194#true} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1196#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:45,584 INFO L280 TraceCheckUtils]: 4: Hoare triple {1196#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1197#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:45,584 INFO L280 TraceCheckUtils]: 5: Hoare triple {1197#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1198#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} is VALID [2020-07-28 17:58:45,585 INFO L280 TraceCheckUtils]: 6: Hoare triple {1198#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1199#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:45,591 INFO L280 TraceCheckUtils]: 7: Hoare triple {1199#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1200#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:45,592 INFO L280 TraceCheckUtils]: 8: Hoare triple {1200#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:45,595 INFO L280 TraceCheckUtils]: 9: Hoare triple {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:45,596 INFO L280 TraceCheckUtils]: 10: Hoare triple {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:45,597 INFO L280 TraceCheckUtils]: 11: Hoare triple {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:45,598 INFO L280 TraceCheckUtils]: 12: Hoare triple {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:45,599 INFO L280 TraceCheckUtils]: 13: Hoare triple {1201#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {1202#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:45,600 INFO L280 TraceCheckUtils]: 14: Hoare triple {1202#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1203#(<= (+ ULTIMATE.start_main_~i~0 10) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:58:45,601 INFO L280 TraceCheckUtils]: 15: Hoare triple {1203#(<= (+ ULTIMATE.start_main_~i~0 10) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {1195#false} is VALID [2020-07-28 17:58:45,601 INFO L280 TraceCheckUtils]: 16: Hoare triple {1195#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {1195#false} is VALID [2020-07-28 17:58:45,601 INFO L280 TraceCheckUtils]: 17: Hoare triple {1195#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {1195#false} is VALID [2020-07-28 17:58:45,601 INFO L280 TraceCheckUtils]: 18: Hoare triple {1195#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {1195#false} is VALID [2020-07-28 17:58:45,602 INFO L280 TraceCheckUtils]: 19: Hoare triple {1195#false} assume !false; {1195#false} is VALID [2020-07-28 17:58:45,603 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:45,603 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [562671270] [2020-07-28 17:58:45,603 INFO L220 FreeRefinementEngine]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2020-07-28 17:58:45,603 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2020-07-28 17:58:45,603 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1494485009] [2020-07-28 17:58:45,604 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 20 [2020-07-28 17:58:45,604 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:58:45,604 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2020-07-28 17:58:45,626 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:45,626 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2020-07-28 17:58:45,627 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:58:45,627 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2020-07-28 17:58:45,627 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=73, Unknown=0, NotChecked=0, Total=90 [2020-07-28 17:58:45,627 INFO L87 Difference]: Start difference. First operand 33 states and 36 transitions. Second operand 10 states. [2020-07-28 17:58:46,764 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:46,764 INFO L93 Difference]: Finished difference Result 73 states and 77 transitions. [2020-07-28 17:58:46,764 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2020-07-28 17:58:46,764 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 20 [2020-07-28 17:58:46,764 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:58:46,764 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 17:58:46,767 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 73 transitions. [2020-07-28 17:58:46,767 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2020-07-28 17:58:46,768 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 73 transitions. [2020-07-28 17:58:46,769 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 73 transitions. [2020-07-28 17:58:46,844 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:46,846 INFO L225 Difference]: With dead ends: 73 [2020-07-28 17:58:46,846 INFO L226 Difference]: Without dead ends: 68 [2020-07-28 17:58:46,847 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 19 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=86, Invalid=256, Unknown=0, NotChecked=0, Total=342 [2020-07-28 17:58:46,847 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2020-07-28 17:58:46,894 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 26. [2020-07-28 17:58:46,894 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:58:46,894 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand 26 states. [2020-07-28 17:58:46,894 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 26 states. [2020-07-28 17:58:46,894 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 26 states. [2020-07-28 17:58:46,896 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:46,896 INFO L93 Difference]: Finished difference Result 68 states and 71 transitions. [2020-07-28 17:58:46,896 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 71 transitions. [2020-07-28 17:58:46,896 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:46,897 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:46,897 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 68 states. [2020-07-28 17:58:46,897 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 68 states. [2020-07-28 17:58:46,899 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:46,899 INFO L93 Difference]: Finished difference Result 68 states and 71 transitions. [2020-07-28 17:58:46,899 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 71 transitions. [2020-07-28 17:58:46,899 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:46,900 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:46,900 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:58:46,900 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:58:46,900 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2020-07-28 17:58:46,901 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 28 transitions. [2020-07-28 17:58:46,901 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 28 transitions. Word has length 20 [2020-07-28 17:58:46,901 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:58:46,901 INFO L479 AbstractCegarLoop]: Abstraction has 26 states and 28 transitions. [2020-07-28 17:58:46,901 INFO L480 AbstractCegarLoop]: Interpolant automaton has 10 states. [2020-07-28 17:58:46,902 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 28 transitions. [2020-07-28 17:58:46,902 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2020-07-28 17:58:46,902 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:46,902 INFO L422 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:46,902 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4 [2020-07-28 17:58:46,903 INFO L427 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:46,903 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:46,903 INFO L82 PathProgramCache]: Analyzing trace with hash 1760411593, now seen corresponding path program 1 times [2020-07-28 17:58:46,903 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:46,903 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1073362836] [2020-07-28 17:58:46,904 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:46,925 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:47,102 INFO L280 TraceCheckUtils]: 0: Hoare triple {1493#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {1493#true} is VALID [2020-07-28 17:58:47,102 INFO L280 TraceCheckUtils]: 1: Hoare triple {1493#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {1493#true} is VALID [2020-07-28 17:58:47,103 INFO L280 TraceCheckUtils]: 2: Hoare triple {1493#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1493#true} is VALID [2020-07-28 17:58:47,105 INFO L280 TraceCheckUtils]: 3: Hoare triple {1493#true} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1495#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} is VALID [2020-07-28 17:58:47,106 INFO L280 TraceCheckUtils]: 4: Hoare triple {1495#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1496#(and (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:47,107 INFO L280 TraceCheckUtils]: 5: Hoare triple {1496#(and (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1497#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,107 INFO L280 TraceCheckUtils]: 6: Hoare triple {1497#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1498#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,108 INFO L280 TraceCheckUtils]: 7: Hoare triple {1498#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1499#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,110 INFO L280 TraceCheckUtils]: 8: Hoare triple {1499#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,112 INFO L280 TraceCheckUtils]: 9: Hoare triple {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,113 INFO L280 TraceCheckUtils]: 10: Hoare triple {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,114 INFO L280 TraceCheckUtils]: 11: Hoare triple {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,115 INFO L280 TraceCheckUtils]: 12: Hoare triple {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,115 INFO L280 TraceCheckUtils]: 13: Hoare triple {1500#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {1501#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:47,116 INFO L280 TraceCheckUtils]: 14: Hoare triple {1501#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1501#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:47,118 INFO L280 TraceCheckUtils]: 15: Hoare triple {1501#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {1502#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:47,119 INFO L280 TraceCheckUtils]: 16: Hoare triple {1502#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1503#(<= (+ ULTIMATE.start_main_~i~0 9) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:58:47,120 INFO L280 TraceCheckUtils]: 17: Hoare triple {1503#(<= (+ ULTIMATE.start_main_~i~0 9) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {1494#false} is VALID [2020-07-28 17:58:47,120 INFO L280 TraceCheckUtils]: 18: Hoare triple {1494#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {1494#false} is VALID [2020-07-28 17:58:47,120 INFO L280 TraceCheckUtils]: 19: Hoare triple {1494#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {1494#false} is VALID [2020-07-28 17:58:47,120 INFO L280 TraceCheckUtils]: 20: Hoare triple {1494#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {1494#false} is VALID [2020-07-28 17:58:47,120 INFO L280 TraceCheckUtils]: 21: Hoare triple {1494#false} assume !false; {1494#false} is VALID [2020-07-28 17:58:47,122 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:47,122 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1073362836] [2020-07-28 17:58:47,122 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [343768498] [2020-07-28 17:58:47,123 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:58:47,184 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:47,187 INFO L263 TraceCheckSpWp]: Trace formula consists of 123 conjuncts, 39 conjunts are in the unsatisfiable core [2020-07-28 17:58:47,205 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:47,211 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 17:58:47,277 INFO L384 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 9 treesize of output 3 [2020-07-28 17:58:47,278 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2020-07-28 17:58:47,282 INFO L624 ElimStorePlain]: treesize reduction 0, result has 100.0 percent of original size [2020-07-28 17:58:47,282 INFO L544 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2020-07-28 17:58:47,283 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:13, output treesize:3 [2020-07-28 17:58:47,286 WARN L406 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2020-07-28 17:58:47,286 WARN L407 uantifierElimination]: Input elimination task: ∃ [|#memory_int|]. (and (= 0 |~#d1~0.offset|) (= (select (select |#memory_int| |~#d1~0.base|) (+ |~#d1~0.offset| 4)) 0)) [2020-07-28 17:58:47,286 WARN L408 uantifierElimination]: ElimStorePlain result: ∃ []. (= 0 |~#d1~0.offset|) [2020-07-28 17:58:47,841 INFO L280 TraceCheckUtils]: 0: Hoare triple {1493#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {1507#(= 0 |~#d1~0.offset|)} is VALID [2020-07-28 17:58:47,842 INFO L280 TraceCheckUtils]: 1: Hoare triple {1507#(= 0 |~#d1~0.offset|)} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {1507#(= 0 |~#d1~0.offset|)} is VALID [2020-07-28 17:58:47,842 INFO L280 TraceCheckUtils]: 2: Hoare triple {1507#(= 0 |~#d1~0.offset|)} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1507#(= 0 |~#d1~0.offset|)} is VALID [2020-07-28 17:58:47,843 INFO L280 TraceCheckUtils]: 3: Hoare triple {1507#(= 0 |~#d1~0.offset|)} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1517#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 |ULTIMATE.start_get_dummy_#t~ite5.offset|))} is VALID [2020-07-28 17:58:47,843 INFO L280 TraceCheckUtils]: 4: Hoare triple {1517#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 |ULTIMATE.start_get_dummy_#t~ite5.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1521#(and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:47,844 INFO L280 TraceCheckUtils]: 5: Hoare triple {1521#(and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1525#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,845 INFO L280 TraceCheckUtils]: 6: Hoare triple {1525#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1529#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,848 INFO L280 TraceCheckUtils]: 7: Hoare triple {1529#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1533#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:47,849 INFO L280 TraceCheckUtils]: 8: Hoare triple {1533#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1537#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,850 INFO L280 TraceCheckUtils]: 9: Hoare triple {1537#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1537#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,850 INFO L280 TraceCheckUtils]: 10: Hoare triple {1537#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1537#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:47,851 INFO L280 TraceCheckUtils]: 11: Hoare triple {1537#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {1547#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (or (and (or (not (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset)) (= ULTIMATE.start_main_~pd1~0.base 0)) (not |ULTIMATE.start_main_#t~short12|)) (and (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) (not (= ULTIMATE.start_main_~pd1~0.base 0)) |ULTIMATE.start_main_#t~short12|)))} is VALID [2020-07-28 17:58:47,852 INFO L280 TraceCheckUtils]: 12: Hoare triple {1547#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (or (and (or (not (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset)) (= ULTIMATE.start_main_~pd1~0.base 0)) (not |ULTIMATE.start_main_#t~short12|)) (and (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) (not (= ULTIMATE.start_main_~pd1~0.base 0)) |ULTIMATE.start_main_#t~short12|)))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {1551#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) (not (= ULTIMATE.start_main_~pd1~0.base 0)))} is VALID [2020-07-28 17:58:47,854 INFO L280 TraceCheckUtils]: 13: Hoare triple {1551#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) (not (= ULTIMATE.start_main_~pd1~0.base 0)))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {1555#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (not (= 0 ULTIMATE.start_main_~pd2~0.base)) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:47,855 INFO L280 TraceCheckUtils]: 14: Hoare triple {1555#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (not (= 0 ULTIMATE.start_main_~pd2~0.base)) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1555#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (not (= 0 ULTIMATE.start_main_~pd2~0.base)) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:47,856 INFO L280 TraceCheckUtils]: 15: Hoare triple {1555#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (not (= 0 ULTIMATE.start_main_~pd2~0.base)) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {1562#(and (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (not (= 0 ULTIMATE.start_main_~pd2~0.base)) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:47,857 INFO L280 TraceCheckUtils]: 16: Hoare triple {1562#(and (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (not (= 0 ULTIMATE.start_main_~pd2~0.base)) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1566#(and (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (not (= 0 ULTIMATE.start_main_~pd2~0.base)) (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) |ULTIMATE.start_main_#t~mem14|))} is VALID [2020-07-28 17:58:47,858 INFO L280 TraceCheckUtils]: 17: Hoare triple {1566#(and (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (not (= 0 ULTIMATE.start_main_~pd2~0.base)) (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) |ULTIMATE.start_main_#t~mem14|))} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {1494#false} is VALID [2020-07-28 17:58:47,858 INFO L280 TraceCheckUtils]: 18: Hoare triple {1494#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {1494#false} is VALID [2020-07-28 17:58:47,858 INFO L280 TraceCheckUtils]: 19: Hoare triple {1494#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {1494#false} is VALID [2020-07-28 17:58:47,858 INFO L280 TraceCheckUtils]: 20: Hoare triple {1494#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {1494#false} is VALID [2020-07-28 17:58:47,859 INFO L280 TraceCheckUtils]: 21: Hoare triple {1494#false} assume !false; {1494#false} is VALID [2020-07-28 17:58:47,862 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:47,862 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 17:58:47,862 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 23 [2020-07-28 17:58:47,863 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [931653306] [2020-07-28 17:58:47,879 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 22 [2020-07-28 17:58:47,879 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:58:47,880 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states. [2020-07-28 17:58:47,929 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:47,929 INFO L459 AbstractCegarLoop]: Interpolant automaton has 23 states [2020-07-28 17:58:47,929 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:58:47,930 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2020-07-28 17:58:47,930 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=454, Unknown=0, NotChecked=0, Total=506 [2020-07-28 17:58:47,930 INFO L87 Difference]: Start difference. First operand 26 states and 28 transitions. Second operand 23 states. [2020-07-28 17:58:50,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:50,655 INFO L93 Difference]: Finished difference Result 77 states and 81 transitions. [2020-07-28 17:58:50,655 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2020-07-28 17:58:50,655 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 22 [2020-07-28 17:58:50,656 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:58:50,656 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2020-07-28 17:58:50,657 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 77 transitions. [2020-07-28 17:58:50,658 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2020-07-28 17:58:50,659 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 77 transitions. [2020-07-28 17:58:50,659 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states and 77 transitions. [2020-07-28 17:58:50,785 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:50,787 INFO L225 Difference]: With dead ends: 77 [2020-07-28 17:58:50,788 INFO L226 Difference]: Without dead ends: 72 [2020-07-28 17:58:50,789 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 53 GetRequests, 12 SyntacticMatches, 0 SemanticMatches, 41 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 204 ImplicationChecksByTransitivity, 1.6s TimeCoverageRelationStatistics Valid=354, Invalid=1452, Unknown=0, NotChecked=0, Total=1806 [2020-07-28 17:58:50,790 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 72 states. [2020-07-28 17:58:50,885 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 72 to 35. [2020-07-28 17:58:50,886 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:58:50,886 INFO L82 GeneralOperation]: Start isEquivalent. First operand 72 states. Second operand 35 states. [2020-07-28 17:58:50,886 INFO L74 IsIncluded]: Start isIncluded. First operand 72 states. Second operand 35 states. [2020-07-28 17:58:50,886 INFO L87 Difference]: Start difference. First operand 72 states. Second operand 35 states. [2020-07-28 17:58:50,888 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:50,888 INFO L93 Difference]: Finished difference Result 72 states and 75 transitions. [2020-07-28 17:58:50,889 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 75 transitions. [2020-07-28 17:58:50,889 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:50,889 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:50,889 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 72 states. [2020-07-28 17:58:50,889 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 72 states. [2020-07-28 17:58:50,892 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:50,892 INFO L93 Difference]: Finished difference Result 72 states and 75 transitions. [2020-07-28 17:58:50,892 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 75 transitions. [2020-07-28 17:58:50,893 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:50,893 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:50,893 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:58:50,893 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:58:50,894 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2020-07-28 17:58:50,895 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 35 states and 38 transitions. [2020-07-28 17:58:50,895 INFO L78 Accepts]: Start accepts. Automaton has 35 states and 38 transitions. Word has length 22 [2020-07-28 17:58:50,895 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:58:50,895 INFO L479 AbstractCegarLoop]: Abstraction has 35 states and 38 transitions. [2020-07-28 17:58:50,896 INFO L480 AbstractCegarLoop]: Interpolant automaton has 23 states. [2020-07-28 17:58:50,896 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 38 transitions. [2020-07-28 17:58:50,896 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2020-07-28 17:58:50,896 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:50,897 INFO L422 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:51,109 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable5 [2020-07-28 17:58:51,110 INFO L427 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:51,111 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:51,111 INFO L82 PathProgramCache]: Analyzing trace with hash -949600503, now seen corresponding path program 1 times [2020-07-28 17:58:51,111 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:51,112 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1133479753] [2020-07-28 17:58:51,112 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:51,128 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:51,305 INFO L280 TraceCheckUtils]: 0: Hoare triple {1916#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {1916#true} is VALID [2020-07-28 17:58:51,306 INFO L280 TraceCheckUtils]: 1: Hoare triple {1916#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {1916#true} is VALID [2020-07-28 17:58:51,306 INFO L280 TraceCheckUtils]: 2: Hoare triple {1916#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1916#true} is VALID [2020-07-28 17:58:51,307 INFO L280 TraceCheckUtils]: 3: Hoare triple {1916#true} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1918#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:51,307 INFO L280 TraceCheckUtils]: 4: Hoare triple {1918#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1919#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:51,308 INFO L280 TraceCheckUtils]: 5: Hoare triple {1919#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1920#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} is VALID [2020-07-28 17:58:51,309 INFO L280 TraceCheckUtils]: 6: Hoare triple {1920#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1921#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,309 INFO L280 TraceCheckUtils]: 7: Hoare triple {1921#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1922#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,310 INFO L280 TraceCheckUtils]: 8: Hoare triple {1922#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,311 INFO L280 TraceCheckUtils]: 9: Hoare triple {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,311 INFO L280 TraceCheckUtils]: 10: Hoare triple {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,312 INFO L280 TraceCheckUtils]: 11: Hoare triple {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,313 INFO L280 TraceCheckUtils]: 12: Hoare triple {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,314 INFO L280 TraceCheckUtils]: 13: Hoare triple {1923#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {1924#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:51,314 INFO L280 TraceCheckUtils]: 14: Hoare triple {1924#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1924#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:51,315 INFO L280 TraceCheckUtils]: 15: Hoare triple {1924#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {1925#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:51,316 INFO L280 TraceCheckUtils]: 16: Hoare triple {1925#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1926#(<= (+ ULTIMATE.start_main_~i~0 9) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:58:51,317 INFO L280 TraceCheckUtils]: 17: Hoare triple {1926#(<= (+ ULTIMATE.start_main_~i~0 9) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {1917#false} is VALID [2020-07-28 17:58:51,317 INFO L280 TraceCheckUtils]: 18: Hoare triple {1917#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {1917#false} is VALID [2020-07-28 17:58:51,317 INFO L280 TraceCheckUtils]: 19: Hoare triple {1917#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {1917#false} is VALID [2020-07-28 17:58:51,317 INFO L280 TraceCheckUtils]: 20: Hoare triple {1917#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {1917#false} is VALID [2020-07-28 17:58:51,318 INFO L280 TraceCheckUtils]: 21: Hoare triple {1917#false} assume !false; {1917#false} is VALID [2020-07-28 17:58:51,319 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:51,319 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1133479753] [2020-07-28 17:58:51,319 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1811182732] [2020-07-28 17:58:51,320 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:58:51,373 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:51,374 INFO L263 TraceCheckSpWp]: Trace formula consists of 125 conjuncts, 35 conjunts are in the unsatisfiable core [2020-07-28 17:58:51,390 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:51,391 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 17:58:51,961 INFO L280 TraceCheckUtils]: 0: Hoare triple {1916#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {1930#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:58:51,962 INFO L280 TraceCheckUtils]: 1: Hoare triple {1930#(= 0 |~#d2~0.offset|)} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {1930#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:58:51,962 INFO L280 TraceCheckUtils]: 2: Hoare triple {1930#(= 0 |~#d2~0.offset|)} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1930#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:58:51,963 INFO L280 TraceCheckUtils]: 3: Hoare triple {1930#(= 0 |~#d2~0.offset|)} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1940#(and (= 0 |ULTIMATE.start_get_dummy_#t~ite5.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:51,964 INFO L280 TraceCheckUtils]: 4: Hoare triple {1940#(and (= 0 |ULTIMATE.start_get_dummy_#t~ite5.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1944#(and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} is VALID [2020-07-28 17:58:51,965 INFO L280 TraceCheckUtils]: 5: Hoare triple {1944#(and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1948#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} is VALID [2020-07-28 17:58:51,966 INFO L280 TraceCheckUtils]: 6: Hoare triple {1948#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {1952#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,966 INFO L280 TraceCheckUtils]: 7: Hoare triple {1952#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1956#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:51,967 INFO L280 TraceCheckUtils]: 8: Hoare triple {1956#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1960#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,968 INFO L280 TraceCheckUtils]: 9: Hoare triple {1960#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {1960#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,969 INFO L280 TraceCheckUtils]: 10: Hoare triple {1960#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {1960#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:51,971 INFO L280 TraceCheckUtils]: 11: Hoare triple {1960#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {1970#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (or (and (or (not (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset)) (= ULTIMATE.start_main_~pd1~0.base 0)) (not |ULTIMATE.start_main_#t~short12|)) (and (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) (not (= ULTIMATE.start_main_~pd1~0.base 0)) |ULTIMATE.start_main_#t~short12|)))} is VALID [2020-07-28 17:58:51,972 INFO L280 TraceCheckUtils]: 12: Hoare triple {1970#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (or (and (or (not (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset)) (= ULTIMATE.start_main_~pd1~0.base 0)) (not |ULTIMATE.start_main_#t~short12|)) (and (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) (not (= ULTIMATE.start_main_~pd1~0.base 0)) |ULTIMATE.start_main_#t~short12|)))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {1974#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) (not (= ULTIMATE.start_main_~pd1~0.base 0)))} is VALID [2020-07-28 17:58:51,973 INFO L280 TraceCheckUtils]: 13: Hoare triple {1974#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) (not (= ULTIMATE.start_main_~pd1~0.base 0)))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {1978#(and (not (= 0 ULTIMATE.start_main_~pa~0.base)) (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:51,974 INFO L280 TraceCheckUtils]: 14: Hoare triple {1978#(and (not (= 0 ULTIMATE.start_main_~pa~0.base)) (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1978#(and (not (= 0 ULTIMATE.start_main_~pa~0.base)) (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:51,975 INFO L280 TraceCheckUtils]: 15: Hoare triple {1978#(and (not (= 0 ULTIMATE.start_main_~pa~0.base)) (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {1985#(and (not (= 0 ULTIMATE.start_main_~pa~0.base)) (= 0 ULTIMATE.start_main_~pa~0.offset) (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)))} is VALID [2020-07-28 17:58:51,977 INFO L280 TraceCheckUtils]: 16: Hoare triple {1985#(and (not (= 0 ULTIMATE.start_main_~pa~0.base)) (= 0 ULTIMATE.start_main_~pa~0.offset) (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {1989#(exists ((ULTIMATE.start_main_~pa~0.base Int)) (and (not (= 0 ULTIMATE.start_main_~pa~0.base)) (<= (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0) |ULTIMATE.start_main_#t~mem14|) (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0))))} is VALID [2020-07-28 17:58:51,978 INFO L280 TraceCheckUtils]: 17: Hoare triple {1989#(exists ((ULTIMATE.start_main_~pa~0.base Int)) (and (not (= 0 ULTIMATE.start_main_~pa~0.base)) (<= (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0) |ULTIMATE.start_main_#t~mem14|) (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0))))} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {1917#false} is VALID [2020-07-28 17:58:51,979 INFO L280 TraceCheckUtils]: 18: Hoare triple {1917#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {1917#false} is VALID [2020-07-28 17:58:51,979 INFO L280 TraceCheckUtils]: 19: Hoare triple {1917#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {1917#false} is VALID [2020-07-28 17:58:51,979 INFO L280 TraceCheckUtils]: 20: Hoare triple {1917#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {1917#false} is VALID [2020-07-28 17:58:51,979 INFO L280 TraceCheckUtils]: 21: Hoare triple {1917#false} assume !false; {1917#false} is VALID [2020-07-28 17:58:51,982 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:51,982 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 17:58:51,982 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 13] total 23 [2020-07-28 17:58:51,983 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1908749202] [2020-07-28 17:58:51,983 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 22 [2020-07-28 17:58:51,983 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:58:51,984 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states. [2020-07-28 17:58:52,032 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:52,032 INFO L459 AbstractCegarLoop]: Interpolant automaton has 23 states [2020-07-28 17:58:52,032 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:58:52,033 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2020-07-28 17:58:52,033 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=454, Unknown=0, NotChecked=0, Total=506 [2020-07-28 17:58:52,033 INFO L87 Difference]: Start difference. First operand 35 states and 38 transitions. Second operand 23 states. [2020-07-28 17:58:55,398 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:55,398 INFO L93 Difference]: Finished difference Result 81 states and 85 transitions. [2020-07-28 17:58:55,398 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2020-07-28 17:58:55,398 INFO L78 Accepts]: Start accepts. Automaton has 23 states. Word has length 22 [2020-07-28 17:58:55,399 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:58:55,399 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2020-07-28 17:58:55,401 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 77 transitions. [2020-07-28 17:58:55,401 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2020-07-28 17:58:55,402 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 77 transitions. [2020-07-28 17:58:55,403 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states and 77 transitions. [2020-07-28 17:58:55,517 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:55,519 INFO L225 Difference]: With dead ends: 81 [2020-07-28 17:58:55,519 INFO L226 Difference]: Without dead ends: 76 [2020-07-28 17:58:55,521 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 53 GetRequests, 12 SyntacticMatches, 0 SemanticMatches, 41 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 194 ImplicationChecksByTransitivity, 1.6s TimeCoverageRelationStatistics Valid=354, Invalid=1452, Unknown=0, NotChecked=0, Total=1806 [2020-07-28 17:58:55,521 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 76 states. [2020-07-28 17:58:55,627 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 76 to 28. [2020-07-28 17:58:55,627 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:58:55,628 INFO L82 GeneralOperation]: Start isEquivalent. First operand 76 states. Second operand 28 states. [2020-07-28 17:58:55,628 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand 28 states. [2020-07-28 17:58:55,628 INFO L87 Difference]: Start difference. First operand 76 states. Second operand 28 states. [2020-07-28 17:58:55,631 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:55,631 INFO L93 Difference]: Finished difference Result 76 states and 79 transitions. [2020-07-28 17:58:55,631 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 79 transitions. [2020-07-28 17:58:55,631 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:55,632 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:55,632 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 76 states. [2020-07-28 17:58:55,632 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 76 states. [2020-07-28 17:58:55,634 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:55,635 INFO L93 Difference]: Finished difference Result 76 states and 79 transitions. [2020-07-28 17:58:55,635 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 79 transitions. [2020-07-28 17:58:55,635 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:55,635 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:55,636 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:58:55,636 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:58:55,636 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-28 17:58:55,639 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 30 transitions. [2020-07-28 17:58:55,640 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 30 transitions. Word has length 22 [2020-07-28 17:58:55,640 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:58:55,640 INFO L479 AbstractCegarLoop]: Abstraction has 28 states and 30 transitions. [2020-07-28 17:58:55,641 INFO L480 AbstractCegarLoop]: Interpolant automaton has 23 states. [2020-07-28 17:58:55,641 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 30 transitions. [2020-07-28 17:58:55,641 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 25 [2020-07-28 17:58:55,642 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:55,642 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:55,855 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,3 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:58:55,856 INFO L427 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:55,856 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:55,856 INFO L82 PathProgramCache]: Analyzing trace with hash 1048225454, now seen corresponding path program 2 times [2020-07-28 17:58:55,857 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:55,857 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1848481345] [2020-07-28 17:58:55,857 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:55,879 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:56,055 INFO L280 TraceCheckUtils]: 0: Hoare triple {2344#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {2344#true} is VALID [2020-07-28 17:58:56,056 INFO L280 TraceCheckUtils]: 1: Hoare triple {2344#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {2344#true} is VALID [2020-07-28 17:58:56,056 INFO L280 TraceCheckUtils]: 2: Hoare triple {2344#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2344#true} is VALID [2020-07-28 17:58:56,057 INFO L280 TraceCheckUtils]: 3: Hoare triple {2344#true} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2346#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} is VALID [2020-07-28 17:58:56,058 INFO L280 TraceCheckUtils]: 4: Hoare triple {2346#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2347#(and (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:56,059 INFO L280 TraceCheckUtils]: 5: Hoare triple {2347#(and (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2348#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,060 INFO L280 TraceCheckUtils]: 6: Hoare triple {2348#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2349#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,061 INFO L280 TraceCheckUtils]: 7: Hoare triple {2349#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2350#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,062 INFO L280 TraceCheckUtils]: 8: Hoare triple {2350#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,063 INFO L280 TraceCheckUtils]: 9: Hoare triple {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,064 INFO L280 TraceCheckUtils]: 10: Hoare triple {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,065 INFO L280 TraceCheckUtils]: 11: Hoare triple {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,065 INFO L280 TraceCheckUtils]: 12: Hoare triple {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,066 INFO L280 TraceCheckUtils]: 13: Hoare triple {2351#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {2352#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,067 INFO L280 TraceCheckUtils]: 14: Hoare triple {2352#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2352#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,067 INFO L280 TraceCheckUtils]: 15: Hoare triple {2352#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {2353#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,068 INFO L280 TraceCheckUtils]: 16: Hoare triple {2353#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2353#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,069 INFO L280 TraceCheckUtils]: 17: Hoare triple {2353#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {2354#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,073 INFO L280 TraceCheckUtils]: 18: Hoare triple {2354#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2355#(<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:58:56,074 INFO L280 TraceCheckUtils]: 19: Hoare triple {2355#(<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {2345#false} is VALID [2020-07-28 17:58:56,074 INFO L280 TraceCheckUtils]: 20: Hoare triple {2345#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {2345#false} is VALID [2020-07-28 17:58:56,075 INFO L280 TraceCheckUtils]: 21: Hoare triple {2345#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {2345#false} is VALID [2020-07-28 17:58:56,075 INFO L280 TraceCheckUtils]: 22: Hoare triple {2345#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {2345#false} is VALID [2020-07-28 17:58:56,075 INFO L280 TraceCheckUtils]: 23: Hoare triple {2345#false} assume !false; {2345#false} is VALID [2020-07-28 17:58:56,076 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:56,076 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1848481345] [2020-07-28 17:58:56,077 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [805812285] [2020-07-28 17:58:56,077 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:58:56,128 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2020-07-28 17:58:56,128 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-28 17:58:56,130 INFO L263 TraceCheckSpWp]: Trace formula consists of 128 conjuncts, 45 conjunts are in the unsatisfiable core [2020-07-28 17:58:56,148 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:58:56,150 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 17:58:56,177 INFO L384 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 23 treesize of output 21 [2020-07-28 17:58:56,185 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2020-07-28 17:58:56,198 INFO L624 ElimStorePlain]: treesize reduction 14, result has 36.4 percent of original size [2020-07-28 17:58:56,198 INFO L544 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2020-07-28 17:58:56,199 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:15, output treesize:8 [2020-07-28 17:58:56,264 INFO L190 IndexEqualityManager]: detected not equals via solver [2020-07-28 17:58:56,281 INFO L350 Elim1Store]: treesize reduction 21, result has 25.0 percent of original size [2020-07-28 17:58:56,281 INFO L384 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 1 case distinctions, treesize of input 42 treesize of output 33 [2020-07-28 17:58:56,282 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2020-07-28 17:58:56,294 INFO L624 ElimStorePlain]: treesize reduction 0, result has 100.0 percent of original size [2020-07-28 17:58:56,306 INFO L544 ElimStorePlain]: Start of recursive call 1: 6 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2020-07-28 17:58:56,306 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 7 variables, input treesize:50, output treesize:3 [2020-07-28 17:58:56,315 WARN L406 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2020-07-28 17:58:56,315 WARN L407 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_11|, |v_ULTIMATE.start_init_#t~nondet0_4|, |v_ULTIMATE.start_init_#t~nondet1_4|, |~#d2~0.base|, |~#d2~0.offset|, |v_ULTIMATE.start_init_#t~nondet2_4|, |v_ULTIMATE.start_init_#t~nondet3_4|]. (and (= 0 |~#d1~0.offset|) (not (= |~#d1~0.base| |~#d2~0.base|)) (= (let ((.cse0 (store |v_#memory_int_11| |~#d1~0.base| (store (store (select |v_#memory_int_11| |~#d1~0.base|) |~#d1~0.offset| |v_ULTIMATE.start_init_#t~nondet0_4|) (+ |~#d1~0.offset| 4) |v_ULTIMATE.start_init_#t~nondet1_4|)))) (store .cse0 |~#d2~0.base| (store (store (select .cse0 |~#d2~0.base|) |~#d2~0.offset| |v_ULTIMATE.start_init_#t~nondet2_4|) (+ |~#d2~0.offset| 4) |v_ULTIMATE.start_init_#t~nondet3_4|))) |#memory_int|)) [2020-07-28 17:58:56,315 WARN L408 uantifierElimination]: ElimStorePlain result: ∃ []. (= 0 |~#d1~0.offset|) [2020-07-28 17:58:56,704 INFO L350 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2020-07-28 17:58:56,704 INFO L384 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 17 treesize of output 12 [2020-07-28 17:58:56,724 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2020-07-28 17:58:56,728 INFO L624 ElimStorePlain]: treesize reduction 0, result has 100.0 percent of original size [2020-07-28 17:58:56,728 INFO L544 ElimStorePlain]: Start of recursive call 1: 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2020-07-28 17:58:56,728 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:20, output treesize:9 [2020-07-28 17:58:56,731 WARN L406 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2020-07-28 17:58:56,731 WARN L407 uantifierElimination]: Input elimination task: ∃ [|#memory_int|]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_~pd2~0.base))) (and (<= (+ ULTIMATE.start_main_~i~0 8) (select .cse0 ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (<= (select .cse0 0) |ULTIMATE.start_main_#t~mem14|))) [2020-07-28 17:58:56,731 WARN L408 uantifierElimination]: ElimStorePlain result: ∃ []. (and (<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|) (= 0 ULTIMATE.start_main_~pd2~0.offset)) [2020-07-28 17:58:56,806 INFO L280 TraceCheckUtils]: 0: Hoare triple {2344#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {2359#(and (= 0 |~#d1~0.offset|) (not (= |~#d1~0.base| |~#d2~0.base|)))} is VALID [2020-07-28 17:58:56,807 INFO L280 TraceCheckUtils]: 1: Hoare triple {2359#(and (= 0 |~#d1~0.offset|) (not (= |~#d1~0.base| |~#d2~0.base|)))} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {2363#(= 0 |~#d1~0.offset|)} is VALID [2020-07-28 17:58:56,808 INFO L280 TraceCheckUtils]: 2: Hoare triple {2363#(= 0 |~#d1~0.offset|)} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2363#(= 0 |~#d1~0.offset|)} is VALID [2020-07-28 17:58:56,808 INFO L280 TraceCheckUtils]: 3: Hoare triple {2363#(= 0 |~#d1~0.offset|)} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2370#(and (= 0 |~#d1~0.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} is VALID [2020-07-28 17:58:56,809 INFO L280 TraceCheckUtils]: 4: Hoare triple {2370#(and (= 0 |~#d1~0.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2374#(and (= 0 |~#d1~0.offset|) (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:56,810 INFO L280 TraceCheckUtils]: 5: Hoare triple {2374#(and (= 0 |~#d1~0.offset|) (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2378#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= 0 |~#d1~0.offset|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:58:56,810 INFO L280 TraceCheckUtils]: 6: Hoare triple {2378#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= 0 |~#d1~0.offset|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2382#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 |ULTIMATE.start_get_dummy_#t~ite5.offset|))} is VALID [2020-07-28 17:58:56,811 INFO L280 TraceCheckUtils]: 7: Hoare triple {2382#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 |ULTIMATE.start_get_dummy_#t~ite5.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2386#(and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:58:56,812 INFO L280 TraceCheckUtils]: 8: Hoare triple {2386#(and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:58:56,812 INFO L280 TraceCheckUtils]: 9: Hoare triple {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:58:56,813 INFO L280 TraceCheckUtils]: 10: Hoare triple {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:58:56,814 INFO L280 TraceCheckUtils]: 11: Hoare triple {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:58:56,814 INFO L280 TraceCheckUtils]: 12: Hoare triple {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:58:56,815 INFO L280 TraceCheckUtils]: 13: Hoare triple {2390#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {2406#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,816 INFO L280 TraceCheckUtils]: 14: Hoare triple {2406#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2406#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,817 INFO L280 TraceCheckUtils]: 15: Hoare triple {2406#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {2413#(and (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,817 INFO L280 TraceCheckUtils]: 16: Hoare triple {2413#(and (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2413#(and (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,819 INFO L280 TraceCheckUtils]: 17: Hoare triple {2413#(and (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {2420#(and (<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:58:56,819 INFO L280 TraceCheckUtils]: 18: Hoare triple {2420#(and (<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) ULTIMATE.start_main_~pd2~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2424#(and (<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:58:56,820 INFO L280 TraceCheckUtils]: 19: Hoare triple {2424#(and (<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|) (= 0 ULTIMATE.start_main_~pd2~0.offset))} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {2345#false} is VALID [2020-07-28 17:58:56,820 INFO L280 TraceCheckUtils]: 20: Hoare triple {2345#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {2345#false} is VALID [2020-07-28 17:58:56,820 INFO L280 TraceCheckUtils]: 21: Hoare triple {2345#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {2345#false} is VALID [2020-07-28 17:58:56,821 INFO L280 TraceCheckUtils]: 22: Hoare triple {2345#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {2345#false} is VALID [2020-07-28 17:58:56,821 INFO L280 TraceCheckUtils]: 23: Hoare triple {2345#false} assume !false; {2345#false} is VALID [2020-07-28 17:58:56,822 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:58:56,822 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 17:58:56,823 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 13] total 24 [2020-07-28 17:58:56,823 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1339765617] [2020-07-28 17:58:56,823 INFO L78 Accepts]: Start accepts. Automaton has 24 states. Word has length 24 [2020-07-28 17:58:56,824 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:58:56,824 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 24 states. [2020-07-28 17:58:56,879 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:56,880 INFO L459 AbstractCegarLoop]: Interpolant automaton has 24 states [2020-07-28 17:58:56,880 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:58:56,880 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 24 interpolants. [2020-07-28 17:58:56,881 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=68, Invalid=484, Unknown=0, NotChecked=0, Total=552 [2020-07-28 17:58:56,881 INFO L87 Difference]: Start difference. First operand 28 states and 30 transitions. Second operand 24 states. [2020-07-28 17:58:59,483 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:59,483 INFO L93 Difference]: Finished difference Result 85 states and 89 transitions. [2020-07-28 17:58:59,483 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2020-07-28 17:58:59,484 INFO L78 Accepts]: Start accepts. Automaton has 24 states. Word has length 24 [2020-07-28 17:58:59,484 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:58:59,486 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2020-07-28 17:58:59,488 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 81 transitions. [2020-07-28 17:58:59,488 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2020-07-28 17:58:59,490 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 81 transitions. [2020-07-28 17:58:59,493 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states and 81 transitions. [2020-07-28 17:58:59,600 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 81 edges. 81 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:58:59,602 INFO L225 Difference]: With dead ends: 85 [2020-07-28 17:58:59,602 INFO L226 Difference]: Without dead ends: 80 [2020-07-28 17:58:59,604 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 56 GetRequests, 14 SyntacticMatches, 0 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 339 ImplicationChecksByTransitivity, 1.5s TimeCoverageRelationStatistics Valid=415, Invalid=1477, Unknown=0, NotChecked=0, Total=1892 [2020-07-28 17:58:59,605 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2020-07-28 17:58:59,707 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 37. [2020-07-28 17:58:59,707 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:58:59,707 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 37 states. [2020-07-28 17:58:59,707 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 37 states. [2020-07-28 17:58:59,708 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 37 states. [2020-07-28 17:58:59,711 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:59,711 INFO L93 Difference]: Finished difference Result 80 states and 83 transitions. [2020-07-28 17:58:59,711 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 83 transitions. [2020-07-28 17:58:59,711 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:59,712 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:59,712 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 80 states. [2020-07-28 17:58:59,712 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 80 states. [2020-07-28 17:58:59,714 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:58:59,714 INFO L93 Difference]: Finished difference Result 80 states and 83 transitions. [2020-07-28 17:58:59,714 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 83 transitions. [2020-07-28 17:58:59,715 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:58:59,715 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:58:59,715 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:58:59,715 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:58:59,715 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2020-07-28 17:58:59,716 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 40 transitions. [2020-07-28 17:58:59,716 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 40 transitions. Word has length 24 [2020-07-28 17:58:59,716 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:58:59,716 INFO L479 AbstractCegarLoop]: Abstraction has 37 states and 40 transitions. [2020-07-28 17:58:59,717 INFO L480 AbstractCegarLoop]: Interpolant automaton has 24 states. [2020-07-28 17:58:59,717 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 40 transitions. [2020-07-28 17:58:59,717 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 25 [2020-07-28 17:58:59,717 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:58:59,717 INFO L422 BasicCegarLoop]: trace histogram [3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:58:59,930 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,4 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:58:59,931 INFO L427 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:58:59,932 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:58:59,932 INFO L82 PathProgramCache]: Analyzing trace with hash -523217426, now seen corresponding path program 2 times [2020-07-28 17:58:59,932 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:58:59,933 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [681546612] [2020-07-28 17:58:59,933 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:58:59,957 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:59:00,157 INFO L280 TraceCheckUtils]: 0: Hoare triple {2805#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {2805#true} is VALID [2020-07-28 17:59:00,157 INFO L280 TraceCheckUtils]: 1: Hoare triple {2805#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {2805#true} is VALID [2020-07-28 17:59:00,157 INFO L280 TraceCheckUtils]: 2: Hoare triple {2805#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2805#true} is VALID [2020-07-28 17:59:00,164 INFO L280 TraceCheckUtils]: 3: Hoare triple {2805#true} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {2807#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} is VALID [2020-07-28 17:59:00,164 INFO L280 TraceCheckUtils]: 4: Hoare triple {2807#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2808#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} is VALID [2020-07-28 17:59:00,165 INFO L280 TraceCheckUtils]: 5: Hoare triple {2808#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2809#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} is VALID [2020-07-28 17:59:00,165 INFO L280 TraceCheckUtils]: 6: Hoare triple {2809#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {2810#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,166 INFO L280 TraceCheckUtils]: 7: Hoare triple {2810#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2811#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,166 INFO L280 TraceCheckUtils]: 8: Hoare triple {2811#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,167 INFO L280 TraceCheckUtils]: 9: Hoare triple {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,167 INFO L280 TraceCheckUtils]: 10: Hoare triple {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,168 INFO L280 TraceCheckUtils]: 11: Hoare triple {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,169 INFO L280 TraceCheckUtils]: 12: Hoare triple {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,169 INFO L280 TraceCheckUtils]: 13: Hoare triple {2812#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {2813#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:00,171 INFO L280 TraceCheckUtils]: 14: Hoare triple {2813#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2813#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:00,172 INFO L280 TraceCheckUtils]: 15: Hoare triple {2813#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {2814#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:00,173 INFO L280 TraceCheckUtils]: 16: Hoare triple {2814#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2814#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:00,173 INFO L280 TraceCheckUtils]: 17: Hoare triple {2814#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {2815#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:00,176 INFO L280 TraceCheckUtils]: 18: Hoare triple {2815#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2816#(<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:59:00,176 INFO L280 TraceCheckUtils]: 19: Hoare triple {2816#(<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {2806#false} is VALID [2020-07-28 17:59:00,177 INFO L280 TraceCheckUtils]: 20: Hoare triple {2806#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {2806#false} is VALID [2020-07-28 17:59:00,177 INFO L280 TraceCheckUtils]: 21: Hoare triple {2806#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {2806#false} is VALID [2020-07-28 17:59:00,177 INFO L280 TraceCheckUtils]: 22: Hoare triple {2806#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {2806#false} is VALID [2020-07-28 17:59:00,178 INFO L280 TraceCheckUtils]: 23: Hoare triple {2806#false} assume !false; {2806#false} is VALID [2020-07-28 17:59:00,179 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:59:00,179 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [681546612] [2020-07-28 17:59:00,179 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [545311187] [2020-07-28 17:59:00,180 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:59:00,229 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2020-07-28 17:59:00,230 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-28 17:59:00,231 INFO L263 TraceCheckSpWp]: Trace formula consists of 130 conjuncts, 35 conjunts are in the unsatisfiable core [2020-07-28 17:59:00,249 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:59:00,251 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 17:59:00,622 INFO L384 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 9 [2020-07-28 17:59:00,637 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2020-07-28 17:59:00,639 INFO L624 ElimStorePlain]: treesize reduction 0, result has 100.0 percent of original size [2020-07-28 17:59:00,640 INFO L544 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2020-07-28 17:59:00,640 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:17, output treesize:5 [2020-07-28 17:59:00,643 WARN L406 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2020-07-28 17:59:00,643 WARN L407 uantifierElimination]: Input elimination task: ∃ [|#memory_int|, ULTIMATE.start_main_~pa~0.base]. (let ((.cse0 (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0))) (and (<= (+ ULTIMATE.start_main_~i~0 8) .cse0) (<= .cse0 |ULTIMATE.start_main_#t~mem14|))) [2020-07-28 17:59:00,643 WARN L408 uantifierElimination]: ElimStorePlain result: ∃ []. (<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|) [2020-07-28 17:59:00,686 INFO L280 TraceCheckUtils]: 0: Hoare triple {2805#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {2820#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:59:00,687 INFO L280 TraceCheckUtils]: 1: Hoare triple {2820#(= 0 |~#d2~0.offset|)} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {2820#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:59:00,687 INFO L280 TraceCheckUtils]: 2: Hoare triple {2820#(= 0 |~#d2~0.offset|)} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2820#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:59:00,688 INFO L280 TraceCheckUtils]: 3: Hoare triple {2820#(= 0 |~#d2~0.offset|)} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {2830#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= 0 |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} is VALID [2020-07-28 17:59:00,689 INFO L280 TraceCheckUtils]: 4: Hoare triple {2830#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= 0 |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2834#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|) (= 0 |~#d2~0.offset|))} is VALID [2020-07-28 17:59:00,690 INFO L280 TraceCheckUtils]: 5: Hoare triple {2834#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|) (= 0 |~#d2~0.offset|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2838#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= 0 |~#d2~0.offset|) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} is VALID [2020-07-28 17:59:00,691 INFO L280 TraceCheckUtils]: 6: Hoare triple {2838#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= 0 |~#d2~0.offset|) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {2842#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,692 INFO L280 TraceCheckUtils]: 7: Hoare triple {2842#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2846#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,693 INFO L280 TraceCheckUtils]: 8: Hoare triple {2846#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,694 INFO L280 TraceCheckUtils]: 9: Hoare triple {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,695 INFO L280 TraceCheckUtils]: 10: Hoare triple {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,696 INFO L280 TraceCheckUtils]: 11: Hoare triple {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,697 INFO L280 TraceCheckUtils]: 12: Hoare triple {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:00,699 INFO L280 TraceCheckUtils]: 13: Hoare triple {2850#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {2866#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:00,700 INFO L280 TraceCheckUtils]: 14: Hoare triple {2866#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2866#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:00,701 INFO L280 TraceCheckUtils]: 15: Hoare triple {2866#(and (<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {2873#(and (= 0 ULTIMATE.start_main_~pa~0.offset) (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)))} is VALID [2020-07-28 17:59:00,702 INFO L280 TraceCheckUtils]: 16: Hoare triple {2873#(and (= 0 ULTIMATE.start_main_~pa~0.offset) (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2873#(and (= 0 ULTIMATE.start_main_~pa~0.offset) (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)))} is VALID [2020-07-28 17:59:00,703 INFO L280 TraceCheckUtils]: 17: Hoare triple {2873#(and (= 0 ULTIMATE.start_main_~pa~0.offset) (<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {2880#(and (<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:00,704 INFO L280 TraceCheckUtils]: 18: Hoare triple {2880#(and (<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) 0)) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {2816#(<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:59:00,705 INFO L280 TraceCheckUtils]: 19: Hoare triple {2816#(<= (+ ULTIMATE.start_main_~i~0 8) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {2806#false} is VALID [2020-07-28 17:59:00,706 INFO L280 TraceCheckUtils]: 20: Hoare triple {2806#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {2806#false} is VALID [2020-07-28 17:59:00,706 INFO L280 TraceCheckUtils]: 21: Hoare triple {2806#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {2806#false} is VALID [2020-07-28 17:59:00,706 INFO L280 TraceCheckUtils]: 22: Hoare triple {2806#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {2806#false} is VALID [2020-07-28 17:59:00,707 INFO L280 TraceCheckUtils]: 23: Hoare triple {2806#false} assume !false; {2806#false} is VALID [2020-07-28 17:59:00,709 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:59:00,710 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 17:59:00,710 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 12] total 22 [2020-07-28 17:59:00,710 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [712112947] [2020-07-28 17:59:00,711 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 24 [2020-07-28 17:59:00,711 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:59:00,711 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 22 states. [2020-07-28 17:59:00,772 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:59:00,772 INFO L459 AbstractCegarLoop]: Interpolant automaton has 22 states [2020-07-28 17:59:00,773 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:59:00,773 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2020-07-28 17:59:00,774 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=400, Unknown=0, NotChecked=0, Total=462 [2020-07-28 17:59:00,774 INFO L87 Difference]: Start difference. First operand 37 states and 40 transitions. Second operand 22 states. [2020-07-28 17:59:03,526 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:03,527 INFO L93 Difference]: Finished difference Result 89 states and 93 transitions. [2020-07-28 17:59:03,527 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2020-07-28 17:59:03,527 INFO L78 Accepts]: Start accepts. Automaton has 22 states. Word has length 24 [2020-07-28 17:59:03,527 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:59:03,527 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2020-07-28 17:59:03,528 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 81 transitions. [2020-07-28 17:59:03,528 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2020-07-28 17:59:03,530 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 81 transitions. [2020-07-28 17:59:03,530 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 23 states and 81 transitions. [2020-07-28 17:59:03,648 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 81 edges. 81 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:59:03,650 INFO L225 Difference]: With dead ends: 89 [2020-07-28 17:59:03,650 INFO L226 Difference]: Without dead ends: 84 [2020-07-28 17:59:03,651 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 53 GetRequests, 16 SyntacticMatches, 0 SemanticMatches, 37 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 246 ImplicationChecksByTransitivity, 1.2s TimeCoverageRelationStatistics Valid=341, Invalid=1141, Unknown=0, NotChecked=0, Total=1482 [2020-07-28 17:59:03,651 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2020-07-28 17:59:03,745 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 30. [2020-07-28 17:59:03,745 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:59:03,745 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand 30 states. [2020-07-28 17:59:03,745 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand 30 states. [2020-07-28 17:59:03,745 INFO L87 Difference]: Start difference. First operand 84 states. Second operand 30 states. [2020-07-28 17:59:03,749 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:03,749 INFO L93 Difference]: Finished difference Result 84 states and 87 transitions. [2020-07-28 17:59:03,749 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 87 transitions. [2020-07-28 17:59:03,749 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:59:03,749 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:59:03,749 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 84 states. [2020-07-28 17:59:03,750 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 84 states. [2020-07-28 17:59:03,752 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:03,752 INFO L93 Difference]: Finished difference Result 84 states and 87 transitions. [2020-07-28 17:59:03,752 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 87 transitions. [2020-07-28 17:59:03,753 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:59:03,753 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:59:03,753 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:59:03,753 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:59:03,753 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2020-07-28 17:59:03,754 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 32 transitions. [2020-07-28 17:59:03,754 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 32 transitions. Word has length 24 [2020-07-28 17:59:03,754 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:59:03,755 INFO L479 AbstractCegarLoop]: Abstraction has 30 states and 32 transitions. [2020-07-28 17:59:03,755 INFO L480 AbstractCegarLoop]: Interpolant automaton has 22 states. [2020-07-28 17:59:03,755 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 32 transitions. [2020-07-28 17:59:03,755 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2020-07-28 17:59:03,755 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:59:03,755 INFO L422 BasicCegarLoop]: trace histogram [4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:59:03,967 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8,5 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:59:03,968 INFO L427 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:59:03,968 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:59:03,969 INFO L82 PathProgramCache]: Analyzing trace with hash -462854061, now seen corresponding path program 3 times [2020-07-28 17:59:03,969 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:59:03,970 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [501116495] [2020-07-28 17:59:03,970 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:59:03,987 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:59:04,194 INFO L280 TraceCheckUtils]: 0: Hoare triple {3263#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {3263#true} is VALID [2020-07-28 17:59:04,195 INFO L280 TraceCheckUtils]: 1: Hoare triple {3263#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {3263#true} is VALID [2020-07-28 17:59:04,195 INFO L280 TraceCheckUtils]: 2: Hoare triple {3263#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3263#true} is VALID [2020-07-28 17:59:04,196 INFO L280 TraceCheckUtils]: 3: Hoare triple {3263#true} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3265#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} is VALID [2020-07-28 17:59:04,197 INFO L280 TraceCheckUtils]: 4: Hoare triple {3265#(and (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3266#(and (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:59:04,197 INFO L280 TraceCheckUtils]: 5: Hoare triple {3266#(and (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3267#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:04,198 INFO L280 TraceCheckUtils]: 6: Hoare triple {3267#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3268#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:04,198 INFO L280 TraceCheckUtils]: 7: Hoare triple {3268#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3269#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:04,199 INFO L280 TraceCheckUtils]: 8: Hoare triple {3269#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:04,199 INFO L280 TraceCheckUtils]: 9: Hoare triple {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:04,200 INFO L280 TraceCheckUtils]: 10: Hoare triple {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:04,201 INFO L280 TraceCheckUtils]: 11: Hoare triple {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:04,201 INFO L280 TraceCheckUtils]: 12: Hoare triple {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:04,202 INFO L280 TraceCheckUtils]: 13: Hoare triple {3270#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {3271#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:04,202 INFO L280 TraceCheckUtils]: 14: Hoare triple {3271#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3271#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:04,203 INFO L280 TraceCheckUtils]: 15: Hoare triple {3271#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3272#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:04,204 INFO L280 TraceCheckUtils]: 16: Hoare triple {3272#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3272#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:04,204 INFO L280 TraceCheckUtils]: 17: Hoare triple {3272#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3273#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:04,205 INFO L280 TraceCheckUtils]: 18: Hoare triple {3273#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3273#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:04,209 INFO L280 TraceCheckUtils]: 19: Hoare triple {3273#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3274#(<= (+ ULTIMATE.start_main_~i~0 7) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:04,210 INFO L280 TraceCheckUtils]: 20: Hoare triple {3274#(<= (+ ULTIMATE.start_main_~i~0 7) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3275#(<= (+ ULTIMATE.start_main_~i~0 7) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:59:04,211 INFO L280 TraceCheckUtils]: 21: Hoare triple {3275#(<= (+ ULTIMATE.start_main_~i~0 7) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {3264#false} is VALID [2020-07-28 17:59:04,211 INFO L280 TraceCheckUtils]: 22: Hoare triple {3264#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {3264#false} is VALID [2020-07-28 17:59:04,211 INFO L280 TraceCheckUtils]: 23: Hoare triple {3264#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {3264#false} is VALID [2020-07-28 17:59:04,211 INFO L280 TraceCheckUtils]: 24: Hoare triple {3264#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {3264#false} is VALID [2020-07-28 17:59:04,212 INFO L280 TraceCheckUtils]: 25: Hoare triple {3264#false} assume !false; {3264#false} is VALID [2020-07-28 17:59:04,214 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 12 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:59:04,214 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [501116495] [2020-07-28 17:59:04,214 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [702398723] [2020-07-28 17:59:04,215 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:59:04,270 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2020-07-28 17:59:04,270 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-28 17:59:04,272 INFO L263 TraceCheckSpWp]: Trace formula consists of 128 conjuncts, 53 conjunts are in the unsatisfiable core [2020-07-28 17:59:04,284 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:59:04,287 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 17:59:04,298 INFO L384 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 23 treesize of output 21 [2020-07-28 17:59:04,299 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2020-07-28 17:59:04,313 INFO L624 ElimStorePlain]: treesize reduction 14, result has 36.4 percent of original size [2020-07-28 17:59:04,314 INFO L544 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2020-07-28 17:59:04,314 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:15, output treesize:8 [2020-07-28 17:59:04,366 INFO L190 IndexEqualityManager]: detected not equals via solver [2020-07-28 17:59:04,378 INFO L350 Elim1Store]: treesize reduction 21, result has 25.0 percent of original size [2020-07-28 17:59:04,378 INFO L384 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 1 case distinctions, treesize of input 42 treesize of output 33 [2020-07-28 17:59:04,379 INFO L544 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2020-07-28 17:59:04,391 INFO L624 ElimStorePlain]: treesize reduction 0, result has 100.0 percent of original size [2020-07-28 17:59:04,402 INFO L544 ElimStorePlain]: Start of recursive call 1: 6 dim-0 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2020-07-28 17:59:04,402 INFO L244 ElimStorePlain]: Needed 2 recursive calls to eliminate 7 variables, input treesize:50, output treesize:3 [2020-07-28 17:59:04,409 WARN L406 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2020-07-28 17:59:04,409 WARN L407 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_12|, |v_ULTIMATE.start_init_#t~nondet0_5|, |v_ULTIMATE.start_init_#t~nondet1_5|, |~#d2~0.base|, |~#d2~0.offset|, |v_ULTIMATE.start_init_#t~nondet2_5|, |v_ULTIMATE.start_init_#t~nondet3_5|]. (and (= 0 |~#d1~0.offset|) (not (= |~#d1~0.base| |~#d2~0.base|)) (= (let ((.cse0 (store |v_#memory_int_12| |~#d1~0.base| (store (store (select |v_#memory_int_12| |~#d1~0.base|) |~#d1~0.offset| |v_ULTIMATE.start_init_#t~nondet0_5|) (+ |~#d1~0.offset| 4) |v_ULTIMATE.start_init_#t~nondet1_5|)))) (store .cse0 |~#d2~0.base| (store (store (select .cse0 |~#d2~0.base|) |~#d2~0.offset| |v_ULTIMATE.start_init_#t~nondet2_5|) (+ |~#d2~0.offset| 4) |v_ULTIMATE.start_init_#t~nondet3_5|))) |#memory_int|)) [2020-07-28 17:59:04,409 WARN L408 uantifierElimination]: ElimStorePlain result: ∃ []. (= 0 |~#d1~0.offset|) [2020-07-28 17:59:04,956 INFO L523 QuantifierPusher]: Distributing 2 conjuncts over 3 disjuncts [2020-07-28 17:59:05,072 INFO L280 TraceCheckUtils]: 0: Hoare triple {3263#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {3279#(and (= 0 |~#d1~0.offset|) (not (= |~#d1~0.base| |~#d2~0.base|)))} is VALID [2020-07-28 17:59:05,073 INFO L280 TraceCheckUtils]: 1: Hoare triple {3279#(and (= 0 |~#d1~0.offset|) (not (= |~#d1~0.base| |~#d2~0.base|)))} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {3283#(= 0 |~#d1~0.offset|)} is VALID [2020-07-28 17:59:05,073 INFO L280 TraceCheckUtils]: 2: Hoare triple {3283#(= 0 |~#d1~0.offset|)} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3283#(= 0 |~#d1~0.offset|)} is VALID [2020-07-28 17:59:05,074 INFO L280 TraceCheckUtils]: 3: Hoare triple {3283#(= 0 |~#d1~0.offset|)} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3290#(and (= 0 |~#d1~0.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} is VALID [2020-07-28 17:59:05,074 INFO L280 TraceCheckUtils]: 4: Hoare triple {3290#(and (= 0 |~#d1~0.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d1~0.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3294#(and (= 0 |~#d1~0.offset|) (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:59:05,075 INFO L280 TraceCheckUtils]: 5: Hoare triple {3294#(and (= 0 |~#d1~0.offset|) (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3298#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= 0 |~#d1~0.offset|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:05,075 INFO L280 TraceCheckUtils]: 6: Hoare triple {3298#(and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) (= 0 |~#d1~0.offset|) (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3302#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 |ULTIMATE.start_get_dummy_#t~ite5.offset|))} is VALID [2020-07-28 17:59:05,076 INFO L280 TraceCheckUtils]: 7: Hoare triple {3302#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 |ULTIMATE.start_get_dummy_#t~ite5.offset|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3306#(and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} is VALID [2020-07-28 17:59:05,077 INFO L280 TraceCheckUtils]: 8: Hoare triple {3306#(and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:59:05,077 INFO L280 TraceCheckUtils]: 9: Hoare triple {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:59:05,078 INFO L280 TraceCheckUtils]: 10: Hoare triple {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:59:05,079 INFO L280 TraceCheckUtils]: 11: Hoare triple {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:59:05,079 INFO L280 TraceCheckUtils]: 12: Hoare triple {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:59:05,080 INFO L280 TraceCheckUtils]: 13: Hoare triple {3310#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= 0 ULTIMATE.start_main_~pd2~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:05,080 INFO L280 TraceCheckUtils]: 14: Hoare triple {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:05,081 INFO L280 TraceCheckUtils]: 15: Hoare triple {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:05,082 INFO L280 TraceCheckUtils]: 16: Hoare triple {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:05,082 INFO L280 TraceCheckUtils]: 17: Hoare triple {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:05,083 INFO L280 TraceCheckUtils]: 18: Hoare triple {3326#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3342#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset) (<= |ULTIMATE.start_main_#t~mem14| (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset)))} is VALID [2020-07-28 17:59:05,084 INFO L280 TraceCheckUtils]: 19: Hoare triple {3342#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset) (<= |ULTIMATE.start_main_#t~mem14| (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset)))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3346#(and (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:05,084 INFO L280 TraceCheckUtils]: 20: Hoare triple {3346#(and (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3350#(and (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) |ULTIMATE.start_main_#t~mem14|))} is VALID [2020-07-28 17:59:05,085 INFO L280 TraceCheckUtils]: 21: Hoare triple {3350#(and (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) |ULTIMATE.start_main_#t~mem14|))} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {3354#(and (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) ULTIMATE.start_main_~i~0) (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:59:05,086 INFO L280 TraceCheckUtils]: 22: Hoare triple {3354#(and (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) ULTIMATE.start_main_~i~0) (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (= 0 ULTIMATE.start_main_~pd2~0.offset))} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {3358#(<= 1 |ULTIMATE.start_check_#res|)} is VALID [2020-07-28 17:59:05,087 INFO L280 TraceCheckUtils]: 23: Hoare triple {3358#(<= 1 |ULTIMATE.start_check_#res|)} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {3362#(<= 1 |ULTIMATE.start_main_#t~ret16|)} is VALID [2020-07-28 17:59:05,087 INFO L280 TraceCheckUtils]: 24: Hoare triple {3362#(<= 1 |ULTIMATE.start_main_#t~ret16|)} assume 0 == main_#t~ret16;havoc main_#t~ret16; {3264#false} is VALID [2020-07-28 17:59:05,087 INFO L280 TraceCheckUtils]: 25: Hoare triple {3264#false} assume !false; {3264#false} is VALID [2020-07-28 17:59:05,089 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 5 proven. 3 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2020-07-28 17:59:05,089 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 17:59:05,090 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 16] total 28 [2020-07-28 17:59:05,090 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [556416848] [2020-07-28 17:59:05,090 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 26 [2020-07-28 17:59:05,090 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:59:05,090 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 28 states. [2020-07-28 17:59:05,156 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:59:05,156 INFO L459 AbstractCegarLoop]: Interpolant automaton has 28 states [2020-07-28 17:59:05,156 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:59:05,156 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 28 interpolants. [2020-07-28 17:59:05,157 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=685, Unknown=0, NotChecked=0, Total=756 [2020-07-28 17:59:05,157 INFO L87 Difference]: Start difference. First operand 30 states and 32 transitions. Second operand 28 states. [2020-07-28 17:59:09,649 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:09,649 INFO L93 Difference]: Finished difference Result 89 states and 95 transitions. [2020-07-28 17:59:09,649 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 37 states. [2020-07-28 17:59:09,649 INFO L78 Accepts]: Start accepts. Automaton has 28 states. Word has length 26 [2020-07-28 17:59:09,650 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:59:09,650 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-28 17:59:09,651 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 83 transitions. [2020-07-28 17:59:09,651 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2020-07-28 17:59:09,652 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 83 transitions. [2020-07-28 17:59:09,653 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 37 states and 83 transitions. [2020-07-28 17:59:09,803 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:59:09,804 INFO L225 Difference]: With dead ends: 89 [2020-07-28 17:59:09,804 INFO L226 Difference]: Without dead ends: 44 [2020-07-28 17:59:09,807 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 73 GetRequests, 13 SyntacticMatches, 0 SemanticMatches, 60 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 714 ImplicationChecksByTransitivity, 3.2s TimeCoverageRelationStatistics Valid=773, Invalid=3009, Unknown=0, NotChecked=0, Total=3782 [2020-07-28 17:59:09,807 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2020-07-28 17:59:09,903 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 27. [2020-07-28 17:59:09,903 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:59:09,903 INFO L82 GeneralOperation]: Start isEquivalent. First operand 44 states. Second operand 27 states. [2020-07-28 17:59:09,904 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 27 states. [2020-07-28 17:59:09,904 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 27 states. [2020-07-28 17:59:09,905 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:09,905 INFO L93 Difference]: Finished difference Result 44 states and 45 transitions. [2020-07-28 17:59:09,905 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 45 transitions. [2020-07-28 17:59:09,905 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:59:09,905 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:59:09,905 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 44 states. [2020-07-28 17:59:09,906 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 44 states. [2020-07-28 17:59:09,908 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:09,909 INFO L93 Difference]: Finished difference Result 44 states and 45 transitions. [2020-07-28 17:59:09,909 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 45 transitions. [2020-07-28 17:59:09,909 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:59:09,910 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:59:09,910 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:59:09,910 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:59:09,910 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2020-07-28 17:59:09,911 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 28 transitions. [2020-07-28 17:59:09,911 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 28 transitions. Word has length 26 [2020-07-28 17:59:09,911 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:59:09,912 INFO L479 AbstractCegarLoop]: Abstraction has 27 states and 28 transitions. [2020-07-28 17:59:09,912 INFO L480 AbstractCegarLoop]: Interpolant automaton has 28 states. [2020-07-28 17:59:09,912 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 28 transitions. [2020-07-28 17:59:09,913 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 27 [2020-07-28 17:59:09,913 INFO L414 BasicCegarLoop]: Found error trace [2020-07-28 17:59:09,913 INFO L422 BasicCegarLoop]: trace histogram [4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2020-07-28 17:59:10,122 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable9 [2020-07-28 17:59:10,123 INFO L427 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION]=== [2020-07-28 17:59:10,124 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2020-07-28 17:59:10,124 INFO L82 PathProgramCache]: Analyzing trace with hash 1209026451, now seen corresponding path program 3 times [2020-07-28 17:59:10,124 INFO L163 FreeRefinementEngine]: Executing refinement strategy CAMEL [2020-07-28 17:59:10,125 INFO L354 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1991569215] [2020-07-28 17:59:10,125 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2020-07-28 17:59:10,143 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:59:10,364 INFO L280 TraceCheckUtils]: 0: Hoare triple {3683#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {3683#true} is VALID [2020-07-28 17:59:10,364 INFO L280 TraceCheckUtils]: 1: Hoare triple {3683#true} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {3683#true} is VALID [2020-07-28 17:59:10,365 INFO L280 TraceCheckUtils]: 2: Hoare triple {3683#true} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3683#true} is VALID [2020-07-28 17:59:10,366 INFO L280 TraceCheckUtils]: 3: Hoare triple {3683#true} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3685#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} is VALID [2020-07-28 17:59:10,366 INFO L280 TraceCheckUtils]: 4: Hoare triple {3685#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3686#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} is VALID [2020-07-28 17:59:10,367 INFO L280 TraceCheckUtils]: 5: Hoare triple {3686#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3687#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} is VALID [2020-07-28 17:59:10,367 INFO L280 TraceCheckUtils]: 6: Hoare triple {3687#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3688#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:10,368 INFO L280 TraceCheckUtils]: 7: Hoare triple {3688#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3689#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:10,368 INFO L280 TraceCheckUtils]: 8: Hoare triple {3689#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:10,369 INFO L280 TraceCheckUtils]: 9: Hoare triple {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:10,369 INFO L280 TraceCheckUtils]: 10: Hoare triple {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:10,370 INFO L280 TraceCheckUtils]: 11: Hoare triple {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:10,371 INFO L280 TraceCheckUtils]: 12: Hoare triple {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:10,371 INFO L280 TraceCheckUtils]: 13: Hoare triple {3690#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {3691#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:10,372 INFO L280 TraceCheckUtils]: 14: Hoare triple {3691#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3691#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:10,373 INFO L280 TraceCheckUtils]: 15: Hoare triple {3691#(<= (+ ULTIMATE.start_main_~i~0 10) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3692#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:10,373 INFO L280 TraceCheckUtils]: 16: Hoare triple {3692#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3692#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:10,375 INFO L280 TraceCheckUtils]: 17: Hoare triple {3692#(<= (+ ULTIMATE.start_main_~i~0 9) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3693#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:10,375 INFO L280 TraceCheckUtils]: 18: Hoare triple {3693#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3693#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:10,376 INFO L280 TraceCheckUtils]: 19: Hoare triple {3693#(<= (+ ULTIMATE.start_main_~i~0 8) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3694#(<= (+ ULTIMATE.start_main_~i~0 7) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:10,376 INFO L280 TraceCheckUtils]: 20: Hoare triple {3694#(<= (+ ULTIMATE.start_main_~i~0 7) (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3695#(<= (+ ULTIMATE.start_main_~i~0 7) |ULTIMATE.start_main_#t~mem14|)} is VALID [2020-07-28 17:59:10,377 INFO L280 TraceCheckUtils]: 21: Hoare triple {3695#(<= (+ ULTIMATE.start_main_~i~0 7) |ULTIMATE.start_main_#t~mem14|)} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {3684#false} is VALID [2020-07-28 17:59:10,377 INFO L280 TraceCheckUtils]: 22: Hoare triple {3684#false} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {3684#false} is VALID [2020-07-28 17:59:10,377 INFO L280 TraceCheckUtils]: 23: Hoare triple {3684#false} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {3684#false} is VALID [2020-07-28 17:59:10,377 INFO L280 TraceCheckUtils]: 24: Hoare triple {3684#false} assume 0 == main_#t~ret16;havoc main_#t~ret16; {3684#false} is VALID [2020-07-28 17:59:10,378 INFO L280 TraceCheckUtils]: 25: Hoare triple {3684#false} assume !false; {3684#false} is VALID [2020-07-28 17:59:10,379 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 12 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2020-07-28 17:59:10,379 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1991569215] [2020-07-28 17:59:10,379 INFO L354 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1583221608] [2020-07-28 17:59:10,380 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:59:10,433 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2020-07-28 17:59:10,433 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2020-07-28 17:59:10,435 INFO L263 TraceCheckSpWp]: Trace formula consists of 130 conjuncts, 50 conjunts are in the unsatisfiable core [2020-07-28 17:59:10,449 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2020-07-28 17:59:10,450 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2020-07-28 17:59:11,015 INFO L523 QuantifierPusher]: Distributing 2 conjuncts over 3 disjuncts [2020-07-28 17:59:11,139 INFO L280 TraceCheckUtils]: 0: Hoare triple {3683#true} #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];assume 0 < #StackHeapBarrier;call ~#d1~0.base, ~#d1~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d1~0.base, ~#d1~0.offset, 4);call write~init~int(0, ~#d1~0.base, 4 + ~#d1~0.offset, 4);call ~#d2~0.base, ~#d2~0.offset := #Ultimate.allocOnStack(8);call write~init~int(0, ~#d2~0.base, ~#d2~0.offset, 4);call write~init~int(0, ~#d2~0.base, 4 + ~#d2~0.offset, 4); {3699#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:59:11,140 INFO L280 TraceCheckUtils]: 1: Hoare triple {3699#(= 0 |~#d2~0.offset|)} havoc main_#res;havoc main_#t~ret7.base, main_#t~ret7.offset, main_#t~ret8.base, main_#t~ret8.offset, main_#t~ret9.base, main_#t~ret9.offset, main_#t~nondet10, main_#t~mem11, main_#t~short12, main_#t~mem13, main_#t~pre15, main_#t~mem14, main_#t~ret16, main_~pa~0.base, main_~pa~0.offset, main_~pd1~0.base, main_~pd1~0.offset, main_~pd2~0.base, main_~pd2~0.offset, main_~pd3~0.base, main_~pd3~0.offset, main_~i~0;havoc init_#t~nondet0, init_#t~nondet1, init_#t~nondet2, init_#t~nondet3;assume -2147483648 <= init_#t~nondet0 && init_#t~nondet0 <= 2147483647;call write~int(init_#t~nondet0, ~#d1~0.base, ~#d1~0.offset, 4);havoc init_#t~nondet0;assume -2147483648 <= init_#t~nondet1 && init_#t~nondet1 <= 2147483647;call write~int(init_#t~nondet1, ~#d1~0.base, 4 + ~#d1~0.offset, 4);havoc init_#t~nondet1;assume -2147483648 <= init_#t~nondet2 && init_#t~nondet2 <= 2147483647;call write~int(init_#t~nondet2, ~#d2~0.base, ~#d2~0.offset, 4);havoc init_#t~nondet2;assume -2147483648 <= init_#t~nondet3 && init_#t~nondet3 <= 2147483647;call write~int(init_#t~nondet3, ~#d2~0.base, 4 + ~#d2~0.offset, 4);havoc init_#t~nondet3; {3699#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:59:11,140 INFO L280 TraceCheckUtils]: 2: Hoare triple {3699#(= 0 |~#d2~0.offset|)} havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3699#(= 0 |~#d2~0.offset|)} is VALID [2020-07-28 17:59:11,141 INFO L280 TraceCheckUtils]: 3: Hoare triple {3699#(= 0 |~#d2~0.offset|)} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3709#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= 0 |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} is VALID [2020-07-28 17:59:11,142 INFO L280 TraceCheckUtils]: 4: Hoare triple {3709#(and (= |ULTIMATE.start_get_dummy_#t~ite5.offset| |~#d2~0.offset|) (= 0 |~#d2~0.offset|) (= |ULTIMATE.start_get_dummy_#t~ite5.base| |~#d2~0.base|))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3713#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|) (= 0 |~#d2~0.offset|))} is VALID [2020-07-28 17:59:11,143 INFO L280 TraceCheckUtils]: 5: Hoare triple {3713#(and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|) (= 0 |~#d2~0.offset|))} main_#t~ret7.base, main_#t~ret7.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd1~0.base, main_~pd1~0.offset := main_#t~ret7.base, main_#t~ret7.offset;havoc main_#t~ret7.base, main_#t~ret7.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3717#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= 0 |~#d2~0.offset|) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} is VALID [2020-07-28 17:59:11,143 INFO L280 TraceCheckUtils]: 6: Hoare triple {3717#(and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) (= 0 |~#d2~0.offset|) (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|))} assume !(0 != get_dummy_#t~nondet4 % 256);get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d2~0.base, ~#d2~0.offset; {3721#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:11,144 INFO L280 TraceCheckUtils]: 7: Hoare triple {3721#(and (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#t~ite5.base|) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= |ULTIMATE.start_get_dummy_#t~ite5.offset| ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3725#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:11,145 INFO L280 TraceCheckUtils]: 8: Hoare triple {3725#(and (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|) (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret8.base, main_#t~ret8.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd2~0.base, main_~pd2~0.offset := main_#t~ret8.base, main_#t~ret8.offset;havoc main_#t~ret8.base, main_#t~ret8.offset;havoc get_dummy_#res.base, get_dummy_#res.offset;havoc get_dummy_#t~nondet4, get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:11,145 INFO L280 TraceCheckUtils]: 9: Hoare triple {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume 0 != get_dummy_#t~nondet4 % 256;get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset := ~#d1~0.base, ~#d1~0.offset; {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:11,146 INFO L280 TraceCheckUtils]: 10: Hoare triple {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} get_dummy_#res.base, get_dummy_#res.offset := get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset;havoc get_dummy_#t~nondet4;havoc get_dummy_#t~ite5.base, get_dummy_#t~ite5.offset; {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:11,147 INFO L280 TraceCheckUtils]: 11: Hoare triple {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} main_#t~ret9.base, main_#t~ret9.offset := get_dummy_#res.base, get_dummy_#res.offset;main_~pd3~0.base, main_~pd3~0.offset := main_#t~ret9.base, main_#t~ret9.offset;havoc main_#t~ret9.base, main_#t~ret9.offset;assume -2147483648 <= main_#t~nondet10 && main_#t~nondet10 <= 2147483647;main_~i~0 := main_#t~nondet10;havoc main_#t~nondet10;main_#t~short12 := (main_~pd1~0.base != 0 || main_~pd1~0.offset != 0) && main_~pd1~0.base == main_~pd2~0.base && main_~pd1~0.offset == main_~pd2~0.offset; {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:11,147 INFO L280 TraceCheckUtils]: 12: Hoare triple {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;call main_#t~mem11 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_#t~short12 := main_#t~mem11 > 0; {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} is VALID [2020-07-28 17:59:11,148 INFO L280 TraceCheckUtils]: 13: Hoare triple {3729#(and (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base) (= 0 ULTIMATE.start_main_~pd1~0.offset) (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))} assume main_#t~short12;havoc main_#t~mem11;havoc main_#t~short12;main_~pa~0.base, main_~pa~0.offset := main_~pd1~0.base, main_~pd1~0.offset;call main_#t~mem13 := read~int(main_~pd2~0.base, main_~pd2~0.offset, 4);main_~i~0 := main_#t~mem13 - 10;havoc main_#t~mem13; {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:11,149 INFO L280 TraceCheckUtils]: 14: Hoare triple {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:11,150 INFO L280 TraceCheckUtils]: 15: Hoare triple {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:11,153 INFO L280 TraceCheckUtils]: 16: Hoare triple {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:11,153 INFO L280 TraceCheckUtils]: 17: Hoare triple {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:11,154 INFO L280 TraceCheckUtils]: 18: Hoare triple {3745#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3761#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset) (<= |ULTIMATE.start_main_#t~mem14| (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset)))} is VALID [2020-07-28 17:59:11,155 INFO L280 TraceCheckUtils]: 19: Hoare triple {3761#(and (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset) (<= |ULTIMATE.start_main_#t~mem14| (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset)))} assume !!(main_~i~0 < main_#t~mem14);havoc main_#t~mem14;main_#t~pre15 := 1 + main_~i~0;main_~i~0 := 1 + main_~i~0;havoc main_#t~pre15; {3765#(and (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} is VALID [2020-07-28 17:59:11,156 INFO L280 TraceCheckUtils]: 20: Hoare triple {3765#(and (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base) (= 0 ULTIMATE.start_main_~pa~0.offset))} call main_#t~mem14 := read~int(main_~pa~0.base, main_~pa~0.offset, 4); {3769#(and (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) |ULTIMATE.start_main_#t~mem14|))} is VALID [2020-07-28 17:59:11,157 INFO L280 TraceCheckUtils]: 21: Hoare triple {3769#(and (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (= 0 ULTIMATE.start_main_~pd2~0.offset) (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) |ULTIMATE.start_main_#t~mem14|))} assume !(main_~i~0 < main_#t~mem14);havoc main_#t~mem14; {3773#(and (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) ULTIMATE.start_main_~i~0) (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (= 0 ULTIMATE.start_main_~pd2~0.offset))} is VALID [2020-07-28 17:59:11,157 INFO L280 TraceCheckUtils]: 22: Hoare triple {3773#(and (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) ULTIMATE.start_main_~i~0) (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0)) (= 0 ULTIMATE.start_main_~pd2~0.offset))} check_#in~s1.base, check_#in~s1.offset, check_#in~i := main_~pd2~0.base, main_~pd2~0.offset, main_~i~0;havoc check_#res;havoc check_#t~mem6, check_~s1.base, check_~s1.offset, check_~i;check_~s1.base, check_~s1.offset := check_#in~s1.base, check_#in~s1.offset;check_~i := check_#in~i;call check_#t~mem6 := read~int(check_~s1.base, check_~s1.offset, 4);check_#res := (if check_#t~mem6 == check_~i then 1 else 0);havoc check_#t~mem6; {3777#(<= 1 |ULTIMATE.start_check_#res|)} is VALID [2020-07-28 17:59:11,159 INFO L280 TraceCheckUtils]: 23: Hoare triple {3777#(<= 1 |ULTIMATE.start_check_#res|)} main_#t~ret16 := check_#res;assume -2147483648 <= main_#t~ret16 && main_#t~ret16 <= 2147483647; {3781#(<= 1 |ULTIMATE.start_main_#t~ret16|)} is VALID [2020-07-28 17:59:11,160 INFO L280 TraceCheckUtils]: 24: Hoare triple {3781#(<= 1 |ULTIMATE.start_main_#t~ret16|)} assume 0 == main_#t~ret16;havoc main_#t~ret16; {3684#false} is VALID [2020-07-28 17:59:11,160 INFO L280 TraceCheckUtils]: 25: Hoare triple {3684#false} assume !false; {3684#false} is VALID [2020-07-28 17:59:11,162 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 5 proven. 3 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2020-07-28 17:59:11,162 INFO L220 FreeRefinementEngine]: Constructing automaton from 0 perfect and 2 imperfect interpolant sequences. [2020-07-28 17:59:11,163 INFO L233 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 15] total 27 [2020-07-28 17:59:11,163 INFO L156 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1668235416] [2020-07-28 17:59:11,163 INFO L78 Accepts]: Start accepts. Automaton has 27 states. Word has length 26 [2020-07-28 17:59:11,164 INFO L84 Accepts]: Finished accepts. word is accepted. [2020-07-28 17:59:11,164 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 27 states. [2020-07-28 17:59:11,232 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:59:11,232 INFO L459 AbstractCegarLoop]: Interpolant automaton has 27 states [2020-07-28 17:59:11,233 INFO L143 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2020-07-28 17:59:11,233 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2020-07-28 17:59:11,234 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=68, Invalid=634, Unknown=0, NotChecked=0, Total=702 [2020-07-28 17:59:11,234 INFO L87 Difference]: Start difference. First operand 27 states and 28 transitions. Second operand 27 states. [2020-07-28 17:59:15,138 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:15,138 INFO L93 Difference]: Finished difference Result 49 states and 53 transitions. [2020-07-28 17:59:15,138 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 37 states. [2020-07-28 17:59:15,139 INFO L78 Accepts]: Start accepts. Automaton has 27 states. Word has length 26 [2020-07-28 17:59:15,139 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2020-07-28 17:59:15,139 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2020-07-28 17:59:15,140 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 53 transitions. [2020-07-28 17:59:15,140 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2020-07-28 17:59:15,141 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 53 transitions. [2020-07-28 17:59:15,141 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 37 states and 53 transitions. [2020-07-28 17:59:15,239 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2020-07-28 17:59:15,239 INFO L225 Difference]: With dead ends: 49 [2020-07-28 17:59:15,239 INFO L226 Difference]: Without dead ends: 0 [2020-07-28 17:59:15,242 INFO L675 BasicCegarLoop]: 0 DeclaredPredicates, 70 GetRequests, 14 SyntacticMatches, 0 SemanticMatches, 56 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 625 ImplicationChecksByTransitivity, 2.9s TimeCoverageRelationStatistics Valid=673, Invalid=2633, Unknown=0, NotChecked=0, Total=3306 [2020-07-28 17:59:15,242 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2020-07-28 17:59:15,242 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2020-07-28 17:59:15,242 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2020-07-28 17:59:15,242 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2020-07-28 17:59:15,242 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2020-07-28 17:59:15,243 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2020-07-28 17:59:15,243 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:15,243 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2020-07-28 17:59:15,243 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-28 17:59:15,243 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:59:15,243 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:59:15,243 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2020-07-28 17:59:15,243 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2020-07-28 17:59:15,243 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2020-07-28 17:59:15,244 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2020-07-28 17:59:15,244 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-28 17:59:15,244 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:59:15,244 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2020-07-28 17:59:15,244 INFO L88 GeneralOperation]: Finished isEquivalent. [2020-07-28 17:59:15,244 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2020-07-28 17:59:15,244 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2020-07-28 17:59:15,244 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2020-07-28 17:59:15,244 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 26 [2020-07-28 17:59:15,245 INFO L84 Accepts]: Finished accepts. word is rejected. [2020-07-28 17:59:15,245 INFO L479 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2020-07-28 17:59:15,245 INFO L480 AbstractCegarLoop]: Interpolant automaton has 27 states. [2020-07-28 17:59:15,245 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2020-07-28 17:59:15,245 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2020-07-28 17:59:15,446 WARN L516 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable10,7 z3 -smt2 -in SMTLIB2_COMPLIANT=true [2020-07-28 17:59:15,450 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2020-07-28 17:59:15,729 WARN L193 SmtUtils]: Spent 135.00 ms on a formula simplification. DAG size of input: 88 DAG size of output: 82 [2020-07-28 17:59:16,649 WARN L193 SmtUtils]: Spent 917.00 ms on a formula simplification. DAG size of input: 197 DAG size of output: 177 [2020-07-28 17:59:16,842 WARN L193 SmtUtils]: Spent 177.00 ms on a formula simplification. DAG size of input: 42 DAG size of output: 28 [2020-07-28 17:59:17,128 WARN L193 SmtUtils]: Spent 278.00 ms on a formula simplification. DAG size of input: 72 DAG size of output: 39 [2020-07-28 17:59:17,489 WARN L193 SmtUtils]: Spent 353.00 ms on a formula simplification. DAG size of input: 82 DAG size of output: 28 [2020-07-28 17:59:18,308 WARN L193 SmtUtils]: Spent 810.00 ms on a formula simplification. DAG size of input: 177 DAG size of output: 33 [2020-07-28 17:59:18,369 INFO L268 CegarLoopResult]: For program point L35-2(lines 35 44) no Hoare annotation was computed. [2020-07-28 17:59:18,369 INFO L268 CegarLoopResult]: For program point L35-4(lines 35 44) no Hoare annotation was computed. [2020-07-28 17:59:18,369 INFO L264 CegarLoopResult]: At program point L27(lines 25 28) the Hoare annotation is: (let ((.cse0 (<= (select (select |#memory_int| ULTIMATE.start_main_~pd2~0.base) 0) ULTIMATE.start_main_~i~0)) (.cse1 (= 0 |~#d1~0.offset|)) (.cse2 (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base)) (.cse3 (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))) (.cse4 (= 0 ULTIMATE.start_main_~pd2~0.offset)) (.cse5 (not (= |~#d1~0.base| |~#d2~0.base|))) (.cse6 (= 0 |~#d2~0.offset|)) (.cse7 (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base)) (.cse8 (= 0 ULTIMATE.start_main_~pa~0.offset)) (.cse9 (<= 1 |ULTIMATE.start_check_#res|))) (or (and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) .cse0 .cse1 .cse2 .cse3 .cse4 .cse5 (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset) .cse6 .cse7 .cse8 .cse9) (and .cse0 .cse1 .cse2 .cse3 .cse4 .cse5 (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) .cse6 .cse7 .cse8 (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|) .cse9))) [2020-07-28 17:59:18,369 INFO L268 CegarLoopResult]: For program point L11(lines 11 18) no Hoare annotation was computed. [2020-07-28 17:59:18,369 INFO L268 CegarLoopResult]: For program point L-1(line -1) no Hoare annotation was computed. [2020-07-28 17:59:18,369 INFO L268 CegarLoopResult]: For program point ULTIMATE.startENTRY(line -1) no Hoare annotation was computed. [2020-07-28 17:59:18,369 INFO L268 CegarLoopResult]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2020-07-28 17:59:18,370 INFO L268 CegarLoopResult]: For program point ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION(line 48) no Hoare annotation was computed. [2020-07-28 17:59:18,370 INFO L271 CegarLoopResult]: At program point L49(lines 30 50) the Hoare annotation is: true [2020-07-28 17:59:18,370 INFO L268 CegarLoopResult]: For program point L41(lines 41 43) no Hoare annotation was computed. [2020-07-28 17:59:18,370 INFO L268 CegarLoopResult]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2020-07-28 17:59:18,370 INFO L264 CegarLoopResult]: At program point L42(lines 31 50) the Hoare annotation is: false [2020-07-28 17:59:18,370 INFO L268 CegarLoopResult]: For program point L38-1(lines 38 40) no Hoare annotation was computed. [2020-07-28 17:59:18,370 INFO L264 CegarLoopResult]: At program point L38-3(lines 38 40) the Hoare annotation is: (let ((.cse0 (= 0 |~#d1~0.offset|)) (.cse1 (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base)) (.cse2 (<= ULTIMATE.start_main_~i~0 (select (select |#memory_int| ULTIMATE.start_main_~pa~0.base) ULTIMATE.start_main_~pa~0.offset))) (.cse3 (= 0 ULTIMATE.start_main_~pd2~0.offset)) (.cse4 (not (= |~#d1~0.base| |~#d2~0.base|))) (.cse5 (= 0 |~#d2~0.offset|)) (.cse6 (= ULTIMATE.start_main_~pd2~0.base ULTIMATE.start_main_~pa~0.base)) (.cse7 (= 0 ULTIMATE.start_main_~pa~0.offset))) (or (and .cse0 .cse1 .cse2 .cse3 .cse4 (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset) .cse5 .cse6 .cse7 (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|)) (and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) .cse0 .cse1 .cse2 .cse3 .cse4 (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset) .cse5 .cse6 .cse7))) [2020-07-28 17:59:18,371 INFO L268 CegarLoopResult]: For program point L38-4(lines 38 40) no Hoare annotation was computed. [2020-07-28 17:59:18,371 INFO L268 CegarLoopResult]: For program point L22(line 22) no Hoare annotation was computed. [2020-07-28 17:59:18,371 INFO L268 CegarLoopResult]: For program point L22-2(line 22) no Hoare annotation was computed. [2020-07-28 17:59:18,371 INFO L264 CegarLoopResult]: At program point L22-3(lines 20 23) the Hoare annotation is: (let ((.cse0 (= |ULTIMATE.start_get_dummy_#res.base| |~#d2~0.base|)) (.cse1 (= 0 |~#d2~0.offset|)) (.cse2 (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))) (or (and (= 0 |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (not .cse0) .cse1 .cse2) (and (= 0 |~#d1~0.offset|) (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) .cse0 .cse1 (not .cse2)))) [2020-07-28 17:59:18,371 INFO L268 CegarLoopResult]: For program point L22-4(line 22) no Hoare annotation was computed. [2020-07-28 17:59:18,371 INFO L268 CegarLoopResult]: For program point L22-6(line 22) no Hoare annotation was computed. [2020-07-28 17:59:18,371 INFO L264 CegarLoopResult]: At program point L22-7(lines 20 23) the Hoare annotation is: (let ((.cse0 (not (= |~#d1~0.base| |~#d2~0.base|)))) (or (and (= 0 |~#d1~0.offset|) .cse0 (= 0 |~#d2~0.offset|) (let ((.cse1 (= |ULTIMATE.start_get_dummy_#res.offset| ULTIMATE.start_main_~pd1~0.offset))) (or (and (= |~#d2~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) .cse1 (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|)) (and .cse1 (= |~#d1~0.offset| |ULTIMATE.start_get_dummy_#res.offset|) (= |~#d1~0.base| |ULTIMATE.start_get_dummy_#res.base|))))) (and (not (= ULTIMATE.start_main_~pd1~0.base |ULTIMATE.start_get_dummy_#res.base|)) .cse0))) [2020-07-28 17:59:18,371 INFO L268 CegarLoopResult]: For program point L22-8(line 22) no Hoare annotation was computed. [2020-07-28 17:59:18,371 INFO L268 CegarLoopResult]: For program point L22-10(line 22) no Hoare annotation was computed. [2020-07-28 17:59:18,372 INFO L264 CegarLoopResult]: At program point L22-11(lines 20 23) the Hoare annotation is: (let ((.cse1 (not (= |~#d1~0.base| |~#d2~0.base|)))) (or (and (= 0 |~#d1~0.offset|) (let ((.cse0 (= ULTIMATE.start_main_~pd2~0.offset ULTIMATE.start_main_~pd1~0.offset))) (or (and (= |~#d2~0.offset| ULTIMATE.start_main_~pd1~0.offset) .cse0 (= ULTIMATE.start_main_~pd1~0.base |~#d2~0.base|)) (and (= ULTIMATE.start_main_~pd1~0.base |~#d1~0.base|) .cse0 (= |~#d1~0.offset| ULTIMATE.start_main_~pd1~0.offset)))) .cse1 (= 0 |~#d2~0.offset|)) (and .cse1 (not (= ULTIMATE.start_main_~pd1~0.base ULTIMATE.start_main_~pd2~0.base))))) [2020-07-28 17:59:18,372 INFO L268 CegarLoopResult]: For program point L35(line 35) no Hoare annotation was computed. [2020-07-28 17:59:18,378 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L22 has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L22 has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L22-2 has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L22-4 has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L22-4 has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L22-4 has no Hoare annotation [2020-07-28 17:59:18,379 WARN L170 areAnnotationChecker]: L22-6 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L22-8 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L22-8 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L22-8 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L22-10 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L35 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L35 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L35 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L35-2 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L35-2 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L38-4 has no Hoare annotation [2020-07-28 17:59:18,380 WARN L170 areAnnotationChecker]: L38-1 has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: L35-4 has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: L38-4 has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: L38-1 has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: L38-1 has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: L41 has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: L41 has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: L41 has no Hoare annotation [2020-07-28 17:59:18,381 WARN L170 areAnnotationChecker]: ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION has no Hoare annotation [2020-07-28 17:59:18,382 INFO L163 areAnnotationChecker]: CFG has 1 edges. 1 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2020-07-28 17:59:18,415 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,416 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,417 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,417 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,421 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,421 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,422 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,422 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,428 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,428 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,431 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,431 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,434 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 28.07 05:59:18 BoogieIcfgContainer [2020-07-28 17:59:18,434 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2020-07-28 17:59:18,434 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2020-07-28 17:59:18,434 INFO L271 PluginConnector]: Initializing Witness Printer... [2020-07-28 17:59:18,435 INFO L275 PluginConnector]: Witness Printer initialized [2020-07-28 17:59:18,435 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.07 05:58:39" (3/4) ... [2020-07-28 17:59:18,439 INFO L137 WitnessPrinter]: Generating witness for correct program [2020-07-28 17:59:18,452 INFO L902 BoogieBacktranslator]: Reduced CFG by removing 5 nodes and edges [2020-07-28 17:59:18,452 INFO L902 BoogieBacktranslator]: Reduced CFG by removing 4 nodes and edges [2020-07-28 17:59:18,452 INFO L902 BoogieBacktranslator]: Reduced CFG by removing 1 nodes and edges [2020-07-28 17:59:18,483 WARN L221 nessWitnessGenerator]: Not writing invariant because ACSL is forbidden: ((((0 == \result && d1 == \result) && !(\result == d2)) && 0 == d2) && d1 == \result) || ((((0 == d1 && d2 == \result) && \result == d2) && 0 == d2) && !(d1 == \result)) [2020-07-28 17:59:18,484 WARN L221 nessWitnessGenerator]: Not writing invariant because ACSL is forbidden: (((0 == d1 && !(d1 == d2)) && 0 == d2) && (((d2 == \result && \result == pd1) && pd1 == d2) || ((\result == pd1 && d1 == \result) && d1 == \result))) || (!(pd1 == \result) && !(d1 == d2)) [2020-07-28 17:59:18,485 WARN L221 nessWitnessGenerator]: Not writing invariant because ACSL is forbidden: (((((((((((pd1 == d1 && unknown-#memory_int-unknown[pd2][0] <= i) && 0 == d1) && pd1 == pd2) && i <= unknown-#memory_int-unknown[pa][pa]) && 0 == pd2) && !(d1 == d2)) && d1 == pd1) && 0 == d2) && pd2 == pa) && 0 == pa) && 1 <= \result) || (((((((((((unknown-#memory_int-unknown[pd2][0] <= i && 0 == d1) && pd1 == pd2) && i <= unknown-#memory_int-unknown[pa][pa]) && 0 == pd2) && !(d1 == d2)) && pd2 == pd1) && 0 == d2) && pd2 == pa) && 0 == pa) && pd1 == d2) && 1 <= \result) [2020-07-28 17:59:18,527 INFO L141 WitnessManager]: Wrote witness to /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/witness.graphml [2020-07-28 17:59:18,528 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2020-07-28 17:59:18,530 INFO L168 Benchmark]: Toolchain (without parser) took 39577.38 ms. Allocated memory was 1.0 GB in the beginning and 1.5 GB in the end (delta: 475.0 MB). Free memory was 960.2 MB in the beginning and 1.0 GB in the end (delta: -70.1 MB). Peak memory consumption was 404.9 MB. Max. memory is 11.5 GB. [2020-07-28 17:59:18,530 INFO L168 Benchmark]: CDTParser took 0.37 ms. Allocated memory is still 1.0 GB. Free memory is still 987.1 MB. There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 17:59:18,530 INFO L168 Benchmark]: CACSL2BoogieTranslator took 288.31 ms. Allocated memory is still 1.0 GB. Free memory was 960.2 MB in the beginning and 949.5 MB in the end (delta: 10.7 MB). Peak memory consumption was 10.7 MB. Max. memory is 11.5 GB. [2020-07-28 17:59:18,531 INFO L168 Benchmark]: Boogie Procedure Inliner took 123.37 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 142.1 MB). Free memory was 949.5 MB in the beginning and 1.1 GB in the end (delta: -181.0 MB). Peak memory consumption was 9.8 MB. Max. memory is 11.5 GB. [2020-07-28 17:59:18,531 INFO L168 Benchmark]: Boogie Preprocessor took 33.79 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. [2020-07-28 17:59:18,532 INFO L168 Benchmark]: RCFGBuilder took 565.19 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 31.3 MB). Peak memory consumption was 31.3 MB. Max. memory is 11.5 GB. [2020-07-28 17:59:18,532 INFO L168 Benchmark]: TraceAbstraction took 38466.47 ms. Allocated memory was 1.2 GB in the beginning and 1.5 GB in the end (delta: 332.9 MB). Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 56.1 MB). Peak memory consumption was 389.0 MB. Max. memory is 11.5 GB. [2020-07-28 17:59:18,533 INFO L168 Benchmark]: Witness Printer took 93.59 ms. Allocated memory is still 1.5 GB. Free memory was 1.0 GB in the beginning and 1.0 GB in the end (delta: 12.8 MB). Peak memory consumption was 12.8 MB. Max. memory is 11.5 GB. [2020-07-28 17:59:18,536 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.37 ms. Allocated memory is still 1.0 GB. Free memory is still 987.1 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 288.31 ms. Allocated memory is still 1.0 GB. Free memory was 960.2 MB in the beginning and 949.5 MB in the end (delta: 10.7 MB). Peak memory consumption was 10.7 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 123.37 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 142.1 MB). Free memory was 949.5 MB in the beginning and 1.1 GB in the end (delta: -181.0 MB). Peak memory consumption was 9.8 MB. Max. memory is 11.5 GB. * Boogie Preprocessor took 33.79 ms. Allocated memory is still 1.2 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. * RCFGBuilder took 565.19 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 31.3 MB). Peak memory consumption was 31.3 MB. Max. memory is 11.5 GB. * TraceAbstraction took 38466.47 ms. Allocated memory was 1.2 GB in the beginning and 1.5 GB in the end (delta: 332.9 MB). Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 56.1 MB). Peak memory consumption was 389.0 MB. Max. memory is 11.5 GB. * Witness Printer took 93.59 ms. Allocated memory is still 1.5 GB. Free memory was 1.0 GB in the beginning and 1.0 GB in the end (delta: 12.8 MB). Peak memory consumption was 12.8 MB. Max. memory is 11.5 GB. * 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 - 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: 20]: Loop Invariant Derived loop invariant: (((0 == d1 && !(d1 == d2)) && 0 == d2) && (((d2 == \result && \result == pd1) && pd1 == d2) || ((\result == pd1 && d1 == \result) && d1 == \result))) || (!(pd1 == \result) && !(d1 == d2)) - InvariantResult [Line: 31]: Loop Invariant Derived loop invariant: 0 - InvariantResult [Line: 20]: Loop Invariant Derived loop invariant: (((0 == d1 && (((d2 == pd1 && pd2 == pd1) && pd1 == d2) || ((pd1 == d1 && pd2 == pd1) && d1 == pd1))) && !(d1 == d2)) && 0 == d2) || (!(d1 == d2) && !(pd1 == pd2)) - InvariantResult [Line: 25]: Loop Invariant [2020-07-28 17:59:18,566 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,567 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,567 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,567 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,569 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,570 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,570 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,570 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int Derived loop invariant: (((((((((((pd1 == d1 && unknown-#memory_int-unknown[pd2][0] <= i) && 0 == d1) && pd1 == pd2) && i <= unknown-#memory_int-unknown[pa][pa]) && 0 == pd2) && !(d1 == d2)) && d1 == pd1) && 0 == d2) && pd2 == pa) && 0 == pa) && 1 <= \result) || (((((((((((unknown-#memory_int-unknown[pd2][0] <= i && 0 == d1) && pd1 == pd2) && i <= unknown-#memory_int-unknown[pa][pa]) && 0 == pd2) && !(d1 == d2)) && pd2 == pd1) && 0 == d2) && pd2 == pa) && 0 == pa) && pd1 == d2) && 1 <= \result) - InvariantResult [Line: 30]: Loop Invariant Derived loop invariant: 1 - InvariantResult [Line: 20]: Loop Invariant Derived loop invariant: ((((0 == \result && d1 == \result) && !(\result == d2)) && 0 == d2) && d1 == \result) || ((((0 == d1 && d2 == \result) && \result == d2) && 0 == d2) && !(d1 == \result)) - InvariantResult [Line: 38]: Loop Invariant [2020-07-28 17:59:18,574 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,574 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,576 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int [2020-07-28 17:59:18,576 WARN L1295 BoogieBacktranslator]: unknown boogie variable #memory_int Derived loop invariant: (((((((((0 == d1 && pd1 == pd2) && i <= unknown-#memory_int-unknown[pa][pa]) && 0 == pd2) && !(d1 == d2)) && pd2 == pd1) && 0 == d2) && pd2 == pa) && 0 == pa) && pd1 == d2) || (((((((((pd1 == d1 && 0 == d1) && pd1 == pd2) && i <= unknown-#memory_int-unknown[pa][pa]) && 0 == pd2) && !(d1 == d2)) && d1 == pd1) && 0 == d2) && pd2 == pa) && 0 == pa) - StatisticsResult: Ultimate Automizer benchmark data CFG has 1 procedures, 25 locations, 1 error locations. Started 1 CEGAR loops. VerificationResult: SAFE, OverallTime: 35.4s, OverallIterations: 11, TraceHistogramMax: 4, AutomataDifference: 25.6s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 2.9s, InitialAbstractionConstructionTime: 0.0s, HoareTripleCheckerStatistics: 260 SDtfs, 1190 SDslu, 1812 SDs, 0 SdLazy, 3220 SolverSat, 400 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 4.7s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 450 GetRequests, 91 SyntacticMatches, 0 SemanticMatches, 359 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2541 ImplicationChecksByTransitivity, 13.9s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=37occurred in iteration=8, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: 0.7s AutomataMinimizationTime, 11 MinimizatonAttempts, 363 StatesRemovedByMinimization, 9 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 7 LocationsWithAnnotation, 7 PreInvPairs, 43 NumberOfFragments, 287 HoareAnnotationTreeSize, 7 FomulaSimplifications, 7232052 FormulaSimplificationTreeSizeReduction, 1.2s HoareSimplificationTime, 7 FomulaSimplificationsInter, 548470 FormulaSimplificationTreeSizeReductionInter, 1.6s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.0s SsaConstructionTime, 0.4s SatisfiabilityAnalysisTime, 6.2s InterpolantComputationTime, 387 NumberOfCodeBlocks, 383 NumberOfCodeBlocksAsserted, 23 NumberOfCheckSat, 370 ConstructedInterpolants, 1 QuantifiedInterpolants, 52602 SizeOfPredicates, 77 NumberOfNonLiveVariables, 764 ConjunctsInSsa, 257 ConjunctsInUnsatCore, 17 InterpolantComputations, 5 PerfectInterpolantSequences, 18/80 InterpolantCoveringCapability, INVARIANT_SYNTHESIS: No data available, INTERPOLANT_CONSOLIDATION: No data available, ABSTRACT_INTERPRETATION: No data available, PDR: No data available, ACCELERATED_INTERPOLATION: No data available, SIFA: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be correct! Received shutdown request...