./Ultimate.py --spec ../sv-benchmarks/c/properties/valid-memsafety.prp --file ../sv-benchmarks/c/verifythis/elimination_max_rec_onepoint.c --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for memory safety (deref-memtrack) Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerMemDerefMemtrack.xml -i ../sv-benchmarks/c/verifythis/elimination_max_rec_onepoint.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-DerefFreeMemtrack-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 valid-free) ) CHECK( init(main()), LTL(G valid-deref) ) CHECK( init(main()), LTL(G valid-memtrack) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 3a80fea07b3dad363ac033c87feb8bfcf28a57d2e75bc95b67f90908b133efe1 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 23:43:33,444 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 23:43:33,447 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 23:43:33,493 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 23:43:33,495 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 23:43:33,499 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 23:43:33,500 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 23:43:33,503 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 23:43:33,505 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 23:43:33,510 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 23:43:33,511 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 23:43:33,513 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 23:43:33,513 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 23:43:33,515 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 23:43:33,517 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 23:43:33,521 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 23:43:33,521 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 23:43:33,522 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 23:43:33,525 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 23:43:33,529 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 23:43:33,531 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 23:43:33,532 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 23:43:33,533 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 23:43:33,534 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 23:43:33,538 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 23:43:33,539 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 23:43:33,539 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 23:43:33,540 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 23:43:33,541 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 23:43:33,542 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 23:43:33,542 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 23:43:33,543 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 23:43:33,544 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 23:43:33,545 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 23:43:33,546 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 23:43:33,547 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 23:43:33,547 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 23:43:33,547 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 23:43:33,548 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 23:43:33,548 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 23:43:33,549 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 23:43:33,551 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-DerefFreeMemtrack-32bit-Automizer_Default.epf [2022-02-20 23:43:33,586 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 23:43:33,586 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 23:43:33,587 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 23:43:33,587 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 23:43:33,588 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 23:43:33,588 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 23:43:33,589 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 23:43:33,589 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 23:43:33,589 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 23:43:33,590 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 23:43:33,590 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 23:43:33,591 INFO L138 SettingsManager]: * Check unreachability of error function in SV-COMP mode=false [2022-02-20 23:43:33,591 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 23:43:33,591 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 23:43:33,591 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 23:43:33,591 INFO L138 SettingsManager]: * Check for the main procedure if all allocated memory was freed=true [2022-02-20 23:43:33,592 INFO L138 SettingsManager]: * Bitprecise bitfields=true [2022-02-20 23:43:33,592 INFO L138 SettingsManager]: * SV-COMP memtrack compatibility mode=true [2022-02-20 23:43:33,592 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 23:43:33,592 INFO L138 SettingsManager]: * Adapt memory model on pointer casts if necessary=true [2022-02-20 23:43:33,592 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 23:43:33,593 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 23:43:33,593 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 23:43:33,593 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 23:43:33,593 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 23:43:33,593 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 23:43:33,594 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 23:43:33,594 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 23:43:33,594 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 23:43:33,594 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 23:43:33,594 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 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 valid-free) ) CHECK( init(main()), LTL(G valid-deref) ) CHECK( init(main()), LTL(G valid-memtrack) ) 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 -> 3a80fea07b3dad363ac033c87feb8bfcf28a57d2e75bc95b67f90908b133efe1 [2022-02-20 23:43:33,813 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 23:43:33,838 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 23:43:33,840 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 23:43:33,841 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 23:43:33,842 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 23:43:33,844 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/verifythis/elimination_max_rec_onepoint.c [2022-02-20 23:43:33,908 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f6f033fbb/40a9d052d2c245bca2261737c8ccf1f3/FLAG2ed3a933a [2022-02-20 23:43:34,314 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 23:43:34,315 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/elimination_max_rec_onepoint.c [2022-02-20 23:43:34,320 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f6f033fbb/40a9d052d2c245bca2261737c8ccf1f3/FLAG2ed3a933a [2022-02-20 23:43:34,330 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f6f033fbb/40a9d052d2c245bca2261737c8ccf1f3 [2022-02-20 23:43:34,332 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 23:43:34,333 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 23:43:34,334 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 23:43:34,335 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 23:43:34,338 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 23:43:34,339 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,340 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@686dc819 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34, skipping insertion in model container [2022-02-20 23:43:34,340 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,346 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 23:43:34,359 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 23:43:34,499 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/elimination_max_rec_onepoint.c[502,515] [2022-02-20 23:43:34,520 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 23:43:34,539 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 23:43:34,549 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/verifythis/elimination_max_rec_onepoint.c[502,515] [2022-02-20 23:43:34,558 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 23:43:34,570 INFO L208 MainTranslator]: Completed translation [2022-02-20 23:43:34,571 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34 WrapperNode [2022-02-20 23:43:34,571 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 23:43:34,572 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 23:43:34,572 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 23:43:34,572 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 23:43:34,579 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,596 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,614 INFO L137 Inliner]: procedures = 19, calls = 24, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 39 [2022-02-20 23:43:34,615 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 23:43:34,615 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 23:43:34,616 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 23:43:34,616 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 23:43:34,622 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,623 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,624 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,625 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,631 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,634 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,635 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,637 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 23:43:34,638 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 23:43:34,638 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 23:43:34,638 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 23:43:34,639 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (1/1) ... [2022-02-20 23:43:34,647 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 23:43:34,658 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:43:34,673 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 23:43:34,700 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 23:43:34,717 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 23:43:34,719 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-02-20 23:43:34,719 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-02-20 23:43:34,719 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 23:43:34,719 INFO L130 BoogieDeclarations]: Found specification of procedure check [2022-02-20 23:43:34,719 INFO L138 BoogieDeclarations]: Found implementation of procedure check [2022-02-20 23:43:34,720 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-02-20 23:43:34,720 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 23:43:34,720 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 23:43:34,720 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-02-20 23:43:34,720 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-02-20 23:43:34,721 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-02-20 23:43:34,721 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 23:43:34,807 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 23:43:34,809 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 23:43:35,157 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 23:43:35,164 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 23:43:35,165 INFO L299 CfgBuilder]: Removed 0 assume(true) statements. [2022-02-20 23:43:35,166 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 11:43:35 BoogieIcfgContainer [2022-02-20 23:43:35,167 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 23:43:35,168 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 23:43:35,168 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 23:43:35,172 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 23:43:35,172 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 11:43:34" (1/3) ... [2022-02-20 23:43:35,173 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@f9bc3ac and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 11:43:35, skipping insertion in model container [2022-02-20 23:43:35,173 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 11:43:34" (2/3) ... [2022-02-20 23:43:35,174 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@f9bc3ac and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 11:43:35, skipping insertion in model container [2022-02-20 23:43:35,174 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 11:43:35" (3/3) ... [2022-02-20 23:43:35,175 INFO L111 eAbstractionObserver]: Analyzing ICFG elimination_max_rec_onepoint.c [2022-02-20 23:43:35,180 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:false NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 23:43:35,181 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 17 error locations. [2022-02-20 23:43:35,220 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 23:43:35,225 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=false, mAutomataTypeConcurrency=FINITE_AUTOMATA, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=All, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 23:43:35,226 INFO L340 AbstractCegarLoop]: Starting to check reachability of 17 error locations. [2022-02-20 23:43:35,241 INFO L276 IsEmpty]: Start isEmpty. Operand has 64 states, 35 states have (on average 1.6) internal successors, (56), 52 states have internal predecessors, (56), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 23:43:35,248 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2022-02-20 23:43:35,248 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:35,249 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:35,250 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONMEMORY_LEAK === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:35,254 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:35,254 INFO L85 PathProgramCache]: Analyzing trace with hash -724999257, now seen corresponding path program 1 times [2022-02-20 23:43:35,261 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:35,261 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1063338786] [2022-02-20 23:43:35,262 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:35,262 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:35,377 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:35,438 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:35,447 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:35,464 INFO L290 TraceCheckUtils]: 0: Hoare triple {67#true} ~cond := #in~cond; {67#true} is VALID [2022-02-20 23:43:35,465 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume 0 == ~cond;assume false; {68#false} is VALID [2022-02-20 23:43:35,465 INFO L290 TraceCheckUtils]: 2: Hoare triple {68#false} assume true; {68#false} is VALID [2022-02-20 23:43:35,466 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {68#false} {67#true} #82#return; {68#false} is VALID [2022-02-20 23:43:35,467 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:35,471 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:35,479 INFO L290 TraceCheckUtils]: 0: Hoare triple {67#true} ~cond := #in~cond; {67#true} is VALID [2022-02-20 23:43:35,479 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume 0 == ~cond;assume false; {68#false} is VALID [2022-02-20 23:43:35,480 INFO L290 TraceCheckUtils]: 2: Hoare triple {68#false} assume true; {68#false} is VALID [2022-02-20 23:43:35,480 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {68#false} {68#false} #84#return; {68#false} is VALID [2022-02-20 23:43:35,481 INFO L290 TraceCheckUtils]: 0: Hoare triple {67#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {67#true} is VALID [2022-02-20 23:43:35,481 INFO L290 TraceCheckUtils]: 1: Hoare triple {67#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {67#true} is VALID [2022-02-20 23:43:35,482 INFO L272 TraceCheckUtils]: 2: Hoare triple {67#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {67#true} is VALID [2022-02-20 23:43:35,482 INFO L290 TraceCheckUtils]: 3: Hoare triple {67#true} ~cond := #in~cond; {67#true} is VALID [2022-02-20 23:43:35,483 INFO L290 TraceCheckUtils]: 4: Hoare triple {67#true} assume 0 == ~cond;assume false; {68#false} is VALID [2022-02-20 23:43:35,484 INFO L290 TraceCheckUtils]: 5: Hoare triple {68#false} assume true; {68#false} is VALID [2022-02-20 23:43:35,485 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {68#false} {67#true} #82#return; {68#false} is VALID [2022-02-20 23:43:35,485 INFO L290 TraceCheckUtils]: 7: Hoare triple {68#false} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {68#false} is VALID [2022-02-20 23:43:35,485 INFO L272 TraceCheckUtils]: 8: Hoare triple {68#false} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {67#true} is VALID [2022-02-20 23:43:35,486 INFO L290 TraceCheckUtils]: 9: Hoare triple {67#true} ~cond := #in~cond; {67#true} is VALID [2022-02-20 23:43:35,486 INFO L290 TraceCheckUtils]: 10: Hoare triple {67#true} assume 0 == ~cond;assume false; {68#false} is VALID [2022-02-20 23:43:35,486 INFO L290 TraceCheckUtils]: 11: Hoare triple {68#false} assume true; {68#false} is VALID [2022-02-20 23:43:35,487 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {68#false} {68#false} #84#return; {68#false} is VALID [2022-02-20 23:43:35,488 INFO L290 TraceCheckUtils]: 13: Hoare triple {68#false} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {68#false} is VALID [2022-02-20 23:43:35,488 INFO L290 TraceCheckUtils]: 14: Hoare triple {68#false} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {68#false} is VALID [2022-02-20 23:43:35,488 INFO L272 TraceCheckUtils]: 15: Hoare triple {68#false} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {68#false} is VALID [2022-02-20 23:43:35,489 INFO L290 TraceCheckUtils]: 16: Hoare triple {68#false} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {68#false} is VALID [2022-02-20 23:43:35,489 INFO L290 TraceCheckUtils]: 17: Hoare triple {68#false} assume !(~x >= ~y); {68#false} is VALID [2022-02-20 23:43:35,490 INFO L272 TraceCheckUtils]: 18: Hoare triple {68#false} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {68#false} is VALID [2022-02-20 23:43:35,490 INFO L290 TraceCheckUtils]: 19: Hoare triple {68#false} ~cond := #in~cond; {68#false} is VALID [2022-02-20 23:43:35,490 INFO L290 TraceCheckUtils]: 20: Hoare triple {68#false} assume 0 == ~cond; {68#false} is VALID [2022-02-20 23:43:35,490 INFO L290 TraceCheckUtils]: 21: Hoare triple {68#false} assume !false; {68#false} is VALID [2022-02-20 23:43:35,491 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 23:43:35,491 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:35,492 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1063338786] [2022-02-20 23:43:35,493 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1063338786] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:35,493 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:35,493 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2022-02-20 23:43:35,495 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [222980961] [2022-02-20 23:43:35,497 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:35,503 INFO L78 Accepts]: Start accepts. Automaton has has 2 states, 2 states have (on average 6.5) internal successors, (13), 2 states have internal predecessors, (13), 2 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 2 states have call successors, (2) Word has length 22 [2022-02-20 23:43:35,505 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:35,508 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 2 states, 2 states have (on average 6.5) internal successors, (13), 2 states have internal predecessors, (13), 2 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 23:43:35,539 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 19 edges. 19 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:35,540 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 2 states [2022-02-20 23:43:35,541 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:35,569 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2022-02-20 23:43:35,570 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2022-02-20 23:43:35,574 INFO L87 Difference]: Start difference. First operand has 64 states, 35 states have (on average 1.6) internal successors, (56), 52 states have internal predecessors, (56), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand has 2 states, 2 states have (on average 6.5) internal successors, (13), 2 states have internal predecessors, (13), 2 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 23:43:35,667 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:35,668 INFO L93 Difference]: Finished difference Result 64 states and 70 transitions. [2022-02-20 23:43:35,668 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2022-02-20 23:43:35,668 INFO L78 Accepts]: Start accepts. Automaton has has 2 states, 2 states have (on average 6.5) internal successors, (13), 2 states have internal predecessors, (13), 2 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 2 states have call successors, (2) Word has length 22 [2022-02-20 23:43:35,669 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:35,670 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2 states, 2 states have (on average 6.5) internal successors, (13), 2 states have internal predecessors, (13), 2 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 23:43:35,677 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 72 transitions. [2022-02-20 23:43:35,677 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2 states, 2 states have (on average 6.5) internal successors, (13), 2 states have internal predecessors, (13), 2 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 23:43:35,681 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 72 transitions. [2022-02-20 23:43:35,682 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 72 transitions. [2022-02-20 23:43:35,749 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:35,759 INFO L225 Difference]: With dead ends: 64 [2022-02-20 23:43:35,759 INFO L226 Difference]: Without dead ends: 62 [2022-02-20 23:43:35,761 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 8 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2022-02-20 23:43:35,764 INFO L933 BasicCegarLoop]: 70 mSDtfsCounter, 0 mSDsluCounter, 0 mSDsCounter, 0 mSdLazyCounter, 0 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 70 SdHoareTripleChecker+Invalid, 0 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 0 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:35,765 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 70 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 0 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 23:43:35,777 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 62 states. [2022-02-20 23:43:35,793 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 62 to 62. [2022-02-20 23:43:35,793 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:35,794 INFO L82 GeneralOperation]: Start isEquivalent. First operand 62 states. Second operand has 62 states, 34 states have (on average 1.5294117647058822) internal successors, (52), 50 states have internal predecessors, (52), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 23:43:35,797 INFO L74 IsIncluded]: Start isIncluded. First operand 62 states. Second operand has 62 states, 34 states have (on average 1.5294117647058822) internal successors, (52), 50 states have internal predecessors, (52), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 23:43:35,800 INFO L87 Difference]: Start difference. First operand 62 states. Second operand has 62 states, 34 states have (on average 1.5294117647058822) internal successors, (52), 50 states have internal predecessors, (52), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 23:43:35,809 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:35,809 INFO L93 Difference]: Finished difference Result 62 states and 68 transitions. [2022-02-20 23:43:35,809 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 68 transitions. [2022-02-20 23:43:35,810 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:35,810 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:35,811 INFO L74 IsIncluded]: Start isIncluded. First operand has 62 states, 34 states have (on average 1.5294117647058822) internal successors, (52), 50 states have internal predecessors, (52), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 62 states. [2022-02-20 23:43:35,811 INFO L87 Difference]: Start difference. First operand has 62 states, 34 states have (on average 1.5294117647058822) internal successors, (52), 50 states have internal predecessors, (52), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 62 states. [2022-02-20 23:43:35,816 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:35,817 INFO L93 Difference]: Finished difference Result 62 states and 68 transitions. [2022-02-20 23:43:35,817 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 68 transitions. [2022-02-20 23:43:35,818 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:35,818 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:35,818 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:35,819 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:35,819 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 62 states, 34 states have (on average 1.5294117647058822) internal successors, (52), 50 states have internal predecessors, (52), 8 states have call successors, (8), 3 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 23:43:35,823 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 62 states to 62 states and 68 transitions. [2022-02-20 23:43:35,824 INFO L78 Accepts]: Start accepts. Automaton has 62 states and 68 transitions. Word has length 22 [2022-02-20 23:43:35,825 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:35,825 INFO L470 AbstractCegarLoop]: Abstraction has 62 states and 68 transitions. [2022-02-20 23:43:35,827 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 2 states, 2 states have (on average 6.5) internal successors, (13), 2 states have internal predecessors, (13), 2 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 2 states have call successors, (2) [2022-02-20 23:43:35,828 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 68 transitions. [2022-02-20 23:43:35,828 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2022-02-20 23:43:35,829 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:35,829 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:35,830 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 23:43:35,830 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONMEMORY_LEAK === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:35,831 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:35,831 INFO L85 PathProgramCache]: Analyzing trace with hash 1833988771, now seen corresponding path program 1 times [2022-02-20 23:43:35,832 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:35,832 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [848997458] [2022-02-20 23:43:35,832 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:35,832 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:35,904 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:36,019 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:36,023 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:36,034 INFO L290 TraceCheckUtils]: 0: Hoare triple {329#true} ~cond := #in~cond; {329#true} is VALID [2022-02-20 23:43:36,034 INFO L290 TraceCheckUtils]: 1: Hoare triple {329#true} assume !(0 == ~cond); {329#true} is VALID [2022-02-20 23:43:36,035 INFO L290 TraceCheckUtils]: 2: Hoare triple {329#true} assume true; {329#true} is VALID [2022-02-20 23:43:36,035 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {329#true} {329#true} #82#return; {329#true} is VALID [2022-02-20 23:43:36,035 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:36,040 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:36,048 INFO L290 TraceCheckUtils]: 0: Hoare triple {329#true} ~cond := #in~cond; {329#true} is VALID [2022-02-20 23:43:36,048 INFO L290 TraceCheckUtils]: 1: Hoare triple {329#true} assume !(0 == ~cond); {329#true} is VALID [2022-02-20 23:43:36,049 INFO L290 TraceCheckUtils]: 2: Hoare triple {329#true} assume true; {329#true} is VALID [2022-02-20 23:43:36,049 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {329#true} {329#true} #84#return; {329#true} is VALID [2022-02-20 23:43:36,049 INFO L290 TraceCheckUtils]: 0: Hoare triple {329#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {329#true} is VALID [2022-02-20 23:43:36,050 INFO L290 TraceCheckUtils]: 1: Hoare triple {329#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {329#true} is VALID [2022-02-20 23:43:36,050 INFO L272 TraceCheckUtils]: 2: Hoare triple {329#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {329#true} is VALID [2022-02-20 23:43:36,077 INFO L290 TraceCheckUtils]: 3: Hoare triple {329#true} ~cond := #in~cond; {329#true} is VALID [2022-02-20 23:43:36,077 INFO L290 TraceCheckUtils]: 4: Hoare triple {329#true} assume !(0 == ~cond); {329#true} is VALID [2022-02-20 23:43:36,077 INFO L290 TraceCheckUtils]: 5: Hoare triple {329#true} assume true; {329#true} is VALID [2022-02-20 23:43:36,078 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {329#true} {329#true} #82#return; {329#true} is VALID [2022-02-20 23:43:36,078 INFO L290 TraceCheckUtils]: 7: Hoare triple {329#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {329#true} is VALID [2022-02-20 23:43:36,078 INFO L272 TraceCheckUtils]: 8: Hoare triple {329#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {329#true} is VALID [2022-02-20 23:43:36,078 INFO L290 TraceCheckUtils]: 9: Hoare triple {329#true} ~cond := #in~cond; {329#true} is VALID [2022-02-20 23:43:36,082 INFO L290 TraceCheckUtils]: 10: Hoare triple {329#true} assume !(0 == ~cond); {329#true} is VALID [2022-02-20 23:43:36,083 INFO L290 TraceCheckUtils]: 11: Hoare triple {329#true} assume true; {329#true} is VALID [2022-02-20 23:43:36,084 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {329#true} {329#true} #84#return; {329#true} is VALID [2022-02-20 23:43:36,084 INFO L290 TraceCheckUtils]: 13: Hoare triple {329#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {329#true} is VALID [2022-02-20 23:43:36,086 INFO L290 TraceCheckUtils]: 14: Hoare triple {329#true} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {329#true} is VALID [2022-02-20 23:43:36,090 INFO L272 TraceCheckUtils]: 15: Hoare triple {329#true} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {339#(and (<= (+ |check_#in~y| 1) |check_#in~n|) (= |check_#in~x| 0))} is VALID [2022-02-20 23:43:36,091 INFO L290 TraceCheckUtils]: 16: Hoare triple {339#(and (<= (+ |check_#in~y| 1) |check_#in~n|) (= |check_#in~x| 0))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {340#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:36,113 INFO L290 TraceCheckUtils]: 17: Hoare triple {340#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} assume !(~x >= ~y); {340#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:36,115 INFO L272 TraceCheckUtils]: 18: Hoare triple {340#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {341#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-02-20 23:43:36,116 INFO L290 TraceCheckUtils]: 19: Hoare triple {341#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {342#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-02-20 23:43:36,116 INFO L290 TraceCheckUtils]: 20: Hoare triple {342#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {330#false} is VALID [2022-02-20 23:43:36,116 INFO L290 TraceCheckUtils]: 21: Hoare triple {330#false} assume !false; {330#false} is VALID [2022-02-20 23:43:36,117 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 23:43:36,117 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:36,117 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [848997458] [2022-02-20 23:43:36,117 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [848997458] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:36,117 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:36,117 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-02-20 23:43:36,118 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2055872664] [2022-02-20 23:43:36,118 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:36,119 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) Word has length 22 [2022-02-20 23:43:36,119 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:36,119 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 23:43:36,149 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 19 edges. 19 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:36,149 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-02-20 23:43:36,150 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:36,151 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-02-20 23:43:36,153 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-02-20 23:43:36,153 INFO L87 Difference]: Start difference. First operand 62 states and 68 transitions. Second operand has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 23:43:36,634 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:36,634 INFO L93 Difference]: Finished difference Result 106 states and 119 transitions. [2022-02-20 23:43:36,634 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 23:43:36,634 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) Word has length 22 [2022-02-20 23:43:36,635 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:36,635 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 23:43:36,639 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 120 transitions. [2022-02-20 23:43:36,640 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 23:43:36,643 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 120 transitions. [2022-02-20 23:43:36,643 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 120 transitions. [2022-02-20 23:43:36,770 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 120 edges. 120 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:36,774 INFO L225 Difference]: With dead ends: 106 [2022-02-20 23:43:36,775 INFO L226 Difference]: Without dead ends: 106 [2022-02-20 23:43:36,775 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 6 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-02-20 23:43:36,776 INFO L933 BasicCegarLoop]: 71 mSDtfsCounter, 47 mSDsluCounter, 254 mSDsCounter, 0 mSdLazyCounter, 72 mSolverCounterSat, 15 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 49 SdHoareTripleChecker+Valid, 325 SdHoareTripleChecker+Invalid, 87 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 15 IncrementalHoareTripleChecker+Valid, 72 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:36,777 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [49 Valid, 325 Invalid, 87 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [15 Valid, 72 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 23:43:36,778 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 106 states. [2022-02-20 23:43:36,785 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 106 to 85. [2022-02-20 23:43:36,786 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:36,786 INFO L82 GeneralOperation]: Start isEquivalent. First operand 106 states. Second operand has 85 states, 50 states have (on average 1.56) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:36,787 INFO L74 IsIncluded]: Start isIncluded. First operand 106 states. Second operand has 85 states, 50 states have (on average 1.56) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:36,789 INFO L87 Difference]: Start difference. First operand 106 states. Second operand has 85 states, 50 states have (on average 1.56) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:36,795 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:36,796 INFO L93 Difference]: Finished difference Result 106 states and 119 transitions. [2022-02-20 23:43:36,797 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 119 transitions. [2022-02-20 23:43:36,800 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:36,801 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:36,803 INFO L74 IsIncluded]: Start isIncluded. First operand has 85 states, 50 states have (on average 1.56) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) Second operand 106 states. [2022-02-20 23:43:36,803 INFO L87 Difference]: Start difference. First operand has 85 states, 50 states have (on average 1.56) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) Second operand 106 states. [2022-02-20 23:43:36,809 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:36,811 INFO L93 Difference]: Finished difference Result 106 states and 119 transitions. [2022-02-20 23:43:36,812 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 119 transitions. [2022-02-20 23:43:36,816 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:36,816 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:36,816 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:36,817 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:36,817 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 85 states, 50 states have (on average 1.56) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:36,826 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 85 states to 85 states and 104 transitions. [2022-02-20 23:43:36,826 INFO L78 Accepts]: Start accepts. Automaton has 85 states and 104 transitions. Word has length 22 [2022-02-20 23:43:36,826 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:36,827 INFO L470 AbstractCegarLoop]: Abstraction has 85 states and 104 transitions. [2022-02-20 23:43:36,827 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 6 states have (on average 2.1666666666666665) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-02-20 23:43:36,827 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 104 transitions. [2022-02-20 23:43:36,828 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2022-02-20 23:43:36,828 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:36,828 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:36,828 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2022-02-20 23:43:36,828 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:36,829 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:36,829 INFO L85 PathProgramCache]: Analyzing trace with hash 1832511589, now seen corresponding path program 1 times [2022-02-20 23:43:36,829 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:36,829 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1748045563] [2022-02-20 23:43:36,830 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:36,830 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:36,862 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:36,898 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:36,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:36,912 INFO L290 TraceCheckUtils]: 0: Hoare triple {752#true} ~cond := #in~cond; {752#true} is VALID [2022-02-20 23:43:36,913 INFO L290 TraceCheckUtils]: 1: Hoare triple {752#true} assume !(0 == ~cond); {752#true} is VALID [2022-02-20 23:43:36,914 INFO L290 TraceCheckUtils]: 2: Hoare triple {752#true} assume true; {752#true} is VALID [2022-02-20 23:43:36,914 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {752#true} {752#true} #82#return; {752#true} is VALID [2022-02-20 23:43:36,914 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:36,917 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:36,933 INFO L290 TraceCheckUtils]: 0: Hoare triple {752#true} ~cond := #in~cond; {752#true} is VALID [2022-02-20 23:43:36,933 INFO L290 TraceCheckUtils]: 1: Hoare triple {752#true} assume !(0 == ~cond); {752#true} is VALID [2022-02-20 23:43:36,933 INFO L290 TraceCheckUtils]: 2: Hoare triple {752#true} assume true; {752#true} is VALID [2022-02-20 23:43:36,934 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {752#true} {752#true} #84#return; {752#true} is VALID [2022-02-20 23:43:36,934 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 15 [2022-02-20 23:43:36,937 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:36,947 INFO L290 TraceCheckUtils]: 0: Hoare triple {752#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {752#true} is VALID [2022-02-20 23:43:36,947 INFO L290 TraceCheckUtils]: 1: Hoare triple {752#true} assume ~x >= ~y;#res := ~x; {752#true} is VALID [2022-02-20 23:43:36,948 INFO L290 TraceCheckUtils]: 2: Hoare triple {752#true} assume true; {752#true} is VALID [2022-02-20 23:43:36,949 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {752#true} {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} #86#return; {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} is VALID [2022-02-20 23:43:36,949 INFO L290 TraceCheckUtils]: 0: Hoare triple {752#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {752#true} is VALID [2022-02-20 23:43:36,950 INFO L290 TraceCheckUtils]: 1: Hoare triple {752#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {752#true} is VALID [2022-02-20 23:43:36,950 INFO L272 TraceCheckUtils]: 2: Hoare triple {752#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {752#true} is VALID [2022-02-20 23:43:36,950 INFO L290 TraceCheckUtils]: 3: Hoare triple {752#true} ~cond := #in~cond; {752#true} is VALID [2022-02-20 23:43:36,950 INFO L290 TraceCheckUtils]: 4: Hoare triple {752#true} assume !(0 == ~cond); {752#true} is VALID [2022-02-20 23:43:36,950 INFO L290 TraceCheckUtils]: 5: Hoare triple {752#true} assume true; {752#true} is VALID [2022-02-20 23:43:36,951 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {752#true} {752#true} #82#return; {752#true} is VALID [2022-02-20 23:43:36,951 INFO L290 TraceCheckUtils]: 7: Hoare triple {752#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {752#true} is VALID [2022-02-20 23:43:36,955 INFO L272 TraceCheckUtils]: 8: Hoare triple {752#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {752#true} is VALID [2022-02-20 23:43:36,955 INFO L290 TraceCheckUtils]: 9: Hoare triple {752#true} ~cond := #in~cond; {752#true} is VALID [2022-02-20 23:43:36,956 INFO L290 TraceCheckUtils]: 10: Hoare triple {752#true} assume !(0 == ~cond); {752#true} is VALID [2022-02-20 23:43:36,956 INFO L290 TraceCheckUtils]: 11: Hoare triple {752#true} assume true; {752#true} is VALID [2022-02-20 23:43:36,956 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {752#true} {752#true} #84#return; {752#true} is VALID [2022-02-20 23:43:36,958 INFO L290 TraceCheckUtils]: 13: Hoare triple {752#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {762#(= (select |#valid| |ULTIMATE.start_main_#t~malloc14#1.base|) 1)} is VALID [2022-02-20 23:43:36,959 INFO L290 TraceCheckUtils]: 14: Hoare triple {762#(= (select |#valid| |ULTIMATE.start_main_#t~malloc14#1.base|) 1)} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} is VALID [2022-02-20 23:43:36,959 INFO L272 TraceCheckUtils]: 15: Hoare triple {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {752#true} is VALID [2022-02-20 23:43:36,959 INFO L290 TraceCheckUtils]: 16: Hoare triple {752#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {752#true} is VALID [2022-02-20 23:43:36,959 INFO L290 TraceCheckUtils]: 17: Hoare triple {752#true} assume ~x >= ~y;#res := ~x; {752#true} is VALID [2022-02-20 23:43:36,960 INFO L290 TraceCheckUtils]: 18: Hoare triple {752#true} assume true; {752#true} is VALID [2022-02-20 23:43:36,961 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {752#true} {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} #86#return; {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} is VALID [2022-02-20 23:43:36,961 INFO L290 TraceCheckUtils]: 20: Hoare triple {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} assume -2147483648 <= main_#t~ret15#1 && main_#t~ret15#1 <= 2147483647;main_~x~0#1 := main_#t~ret15#1;havoc main_#t~ret15#1; {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} is VALID [2022-02-20 23:43:36,962 INFO L290 TraceCheckUtils]: 21: Hoare triple {763#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} assume !(1 == #valid[main_~a~0#1.base]); {753#false} is VALID [2022-02-20 23:43:36,962 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 23:43:36,963 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:36,963 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1748045563] [2022-02-20 23:43:36,963 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1748045563] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:36,963 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:36,963 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-02-20 23:43:36,964 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1729934775] [2022-02-20 23:43:36,964 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:36,964 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 3 states have (on average 4.333333333333333) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 22 [2022-02-20 23:43:36,965 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:36,965 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 3 states have (on average 4.333333333333333) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:36,987 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 19 edges. 19 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:36,988 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 23:43:36,988 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:36,988 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 23:43:36,989 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 23:43:36,989 INFO L87 Difference]: Start difference. First operand 85 states and 104 transitions. Second operand has 4 states, 3 states have (on average 4.333333333333333) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:37,171 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:37,171 INFO L93 Difference]: Finished difference Result 82 states and 101 transitions. [2022-02-20 23:43:37,171 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 23:43:37,172 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 3 states have (on average 4.333333333333333) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 22 [2022-02-20 23:43:37,172 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:37,172 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 3 states have (on average 4.333333333333333) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:37,175 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 68 transitions. [2022-02-20 23:43:37,176 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 3 states have (on average 4.333333333333333) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:37,179 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 68 transitions. [2022-02-20 23:43:37,180 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 68 transitions. [2022-02-20 23:43:37,240 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:37,242 INFO L225 Difference]: With dead ends: 82 [2022-02-20 23:43:37,243 INFO L226 Difference]: Without dead ends: 82 [2022-02-20 23:43:37,243 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2022-02-20 23:43:37,244 INFO L933 BasicCegarLoop]: 57 mSDtfsCounter, 22 mSDsluCounter, 72 mSDsCounter, 0 mSdLazyCounter, 37 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 22 SdHoareTripleChecker+Valid, 129 SdHoareTripleChecker+Invalid, 42 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 37 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:37,245 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [22 Valid, 129 Invalid, 42 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 37 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 23:43:37,246 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2022-02-20 23:43:37,250 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 82. [2022-02-20 23:43:37,251 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:37,251 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand has 82 states, 50 states have (on average 1.5) internal successors, (75), 64 states have internal predecessors, (75), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:37,252 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand has 82 states, 50 states have (on average 1.5) internal successors, (75), 64 states have internal predecessors, (75), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:37,252 INFO L87 Difference]: Start difference. First operand 82 states. Second operand has 82 states, 50 states have (on average 1.5) internal successors, (75), 64 states have internal predecessors, (75), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:37,256 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:37,256 INFO L93 Difference]: Finished difference Result 82 states and 101 transitions. [2022-02-20 23:43:37,256 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 101 transitions. [2022-02-20 23:43:37,257 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:37,257 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:37,258 INFO L74 IsIncluded]: Start isIncluded. First operand has 82 states, 50 states have (on average 1.5) internal successors, (75), 64 states have internal predecessors, (75), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) Second operand 82 states. [2022-02-20 23:43:37,258 INFO L87 Difference]: Start difference. First operand has 82 states, 50 states have (on average 1.5) internal successors, (75), 64 states have internal predecessors, (75), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) Second operand 82 states. [2022-02-20 23:43:37,262 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:37,262 INFO L93 Difference]: Finished difference Result 82 states and 101 transitions. [2022-02-20 23:43:37,262 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 101 transitions. [2022-02-20 23:43:37,263 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:37,263 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:37,263 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:37,263 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:37,264 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 82 states, 50 states have (on average 1.5) internal successors, (75), 64 states have internal predecessors, (75), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:37,267 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 101 transitions. [2022-02-20 23:43:37,267 INFO L78 Accepts]: Start accepts. Automaton has 82 states and 101 transitions. Word has length 22 [2022-02-20 23:43:37,268 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:37,268 INFO L470 AbstractCegarLoop]: Abstraction has 82 states and 101 transitions. [2022-02-20 23:43:37,268 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 3 states have (on average 4.333333333333333) internal successors, (13), 4 states have internal predecessors, (13), 2 states have call successors, (3), 1 states have call predecessors, (3), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:37,268 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 101 transitions. [2022-02-20 23:43:37,269 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2022-02-20 23:43:37,269 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:37,269 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:37,269 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-02-20 23:43:37,269 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr1REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:37,270 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:37,270 INFO L85 PathProgramCache]: Analyzing trace with hash 1832511590, now seen corresponding path program 1 times [2022-02-20 23:43:37,270 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:37,270 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1124406636] [2022-02-20 23:43:37,271 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:37,271 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:37,312 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:37,392 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:37,393 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:37,396 INFO L290 TraceCheckUtils]: 0: Hoare triple {1100#true} ~cond := #in~cond; {1100#true} is VALID [2022-02-20 23:43:37,397 INFO L290 TraceCheckUtils]: 1: Hoare triple {1100#true} assume !(0 == ~cond); {1100#true} is VALID [2022-02-20 23:43:37,397 INFO L290 TraceCheckUtils]: 2: Hoare triple {1100#true} assume true; {1100#true} is VALID [2022-02-20 23:43:37,397 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1100#true} {1100#true} #82#return; {1100#true} is VALID [2022-02-20 23:43:37,407 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:37,410 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:37,443 INFO L290 TraceCheckUtils]: 0: Hoare triple {1100#true} ~cond := #in~cond; {1117#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-02-20 23:43:37,444 INFO L290 TraceCheckUtils]: 1: Hoare triple {1117#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1118#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:37,444 INFO L290 TraceCheckUtils]: 2: Hoare triple {1118#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1118#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:37,451 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1118#(not (= |assume_abort_if_not_#in~cond| 0))} {1100#true} #84#return; {1110#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 23:43:37,451 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 15 [2022-02-20 23:43:37,455 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:37,474 INFO L290 TraceCheckUtils]: 0: Hoare triple {1100#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {1100#true} is VALID [2022-02-20 23:43:37,475 INFO L290 TraceCheckUtils]: 1: Hoare triple {1100#true} assume ~x >= ~y;#res := ~x; {1100#true} is VALID [2022-02-20 23:43:37,475 INFO L290 TraceCheckUtils]: 2: Hoare triple {1100#true} assume true; {1100#true} is VALID [2022-02-20 23:43:37,476 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1100#true} {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} #86#return; {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:43:37,476 INFO L290 TraceCheckUtils]: 0: Hoare triple {1100#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {1100#true} is VALID [2022-02-20 23:43:37,477 INFO L290 TraceCheckUtils]: 1: Hoare triple {1100#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {1100#true} is VALID [2022-02-20 23:43:37,477 INFO L272 TraceCheckUtils]: 2: Hoare triple {1100#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {1100#true} is VALID [2022-02-20 23:43:37,477 INFO L290 TraceCheckUtils]: 3: Hoare triple {1100#true} ~cond := #in~cond; {1100#true} is VALID [2022-02-20 23:43:37,477 INFO L290 TraceCheckUtils]: 4: Hoare triple {1100#true} assume !(0 == ~cond); {1100#true} is VALID [2022-02-20 23:43:37,477 INFO L290 TraceCheckUtils]: 5: Hoare triple {1100#true} assume true; {1100#true} is VALID [2022-02-20 23:43:37,477 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1100#true} {1100#true} #82#return; {1100#true} is VALID [2022-02-20 23:43:37,478 INFO L290 TraceCheckUtils]: 7: Hoare triple {1100#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {1100#true} is VALID [2022-02-20 23:43:37,478 INFO L272 TraceCheckUtils]: 8: Hoare triple {1100#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {1100#true} is VALID [2022-02-20 23:43:37,478 INFO L290 TraceCheckUtils]: 9: Hoare triple {1100#true} ~cond := #in~cond; {1117#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-02-20 23:43:37,479 INFO L290 TraceCheckUtils]: 10: Hoare triple {1117#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1118#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:37,479 INFO L290 TraceCheckUtils]: 11: Hoare triple {1118#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1118#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:37,480 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1118#(not (= |assume_abort_if_not_#in~cond| 0))} {1100#true} #84#return; {1110#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 23:43:37,481 INFO L290 TraceCheckUtils]: 13: Hoare triple {1110#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {1111#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)))} is VALID [2022-02-20 23:43:37,482 INFO L290 TraceCheckUtils]: 14: Hoare triple {1111#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:43:37,482 INFO L272 TraceCheckUtils]: 15: Hoare triple {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {1100#true} is VALID [2022-02-20 23:43:37,483 INFO L290 TraceCheckUtils]: 16: Hoare triple {1100#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {1100#true} is VALID [2022-02-20 23:43:37,483 INFO L290 TraceCheckUtils]: 17: Hoare triple {1100#true} assume ~x >= ~y;#res := ~x; {1100#true} is VALID [2022-02-20 23:43:37,483 INFO L290 TraceCheckUtils]: 18: Hoare triple {1100#true} assume true; {1100#true} is VALID [2022-02-20 23:43:37,484 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {1100#true} {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} #86#return; {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:43:37,485 INFO L290 TraceCheckUtils]: 20: Hoare triple {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} assume -2147483648 <= main_#t~ret15#1 && main_#t~ret15#1 <= 2147483647;main_~x~0#1 := main_#t~ret15#1;havoc main_#t~ret15#1; {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:43:37,486 INFO L290 TraceCheckUtils]: 21: Hoare triple {1112#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ (* |ULTIMATE.start_main_~i~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} assume !(4 + (main_~a~0#1.offset + 4 * main_~i~0#1) <= #length[main_~a~0#1.base] && 0 <= main_~a~0#1.offset + 4 * main_~i~0#1); {1101#false} is VALID [2022-02-20 23:43:37,486 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-02-20 23:43:37,486 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:37,486 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1124406636] [2022-02-20 23:43:37,487 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1124406636] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:37,487 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:37,487 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-02-20 23:43:37,487 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [590971203] [2022-02-20 23:43:37,487 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:37,488 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 6 states have internal predecessors, (16), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 3 states have call predecessors, (3), 2 states have call successors, (3) Word has length 22 [2022-02-20 23:43:37,488 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:37,488 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 6 states have internal predecessors, (16), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 3 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:37,509 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 22 edges. 22 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:37,509 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 23:43:37,510 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:37,510 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 23:43:37,511 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 23:43:37,512 INFO L87 Difference]: Start difference. First operand 82 states and 101 transitions. Second operand has 7 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 6 states have internal predecessors, (16), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 3 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:37,937 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:37,937 INFO L93 Difference]: Finished difference Result 80 states and 99 transitions. [2022-02-20 23:43:37,937 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 23:43:37,938 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 6 states have internal predecessors, (16), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 3 states have call predecessors, (3), 2 states have call successors, (3) Word has length 22 [2022-02-20 23:43:37,938 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:37,938 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 6 states have internal predecessors, (16), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 3 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:37,940 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 65 transitions. [2022-02-20 23:43:37,940 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 6 states have internal predecessors, (16), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 3 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:37,941 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 65 transitions. [2022-02-20 23:43:37,942 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 65 transitions. [2022-02-20 23:43:37,999 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:38,003 INFO L225 Difference]: With dead ends: 80 [2022-02-20 23:43:38,003 INFO L226 Difference]: Without dead ends: 80 [2022-02-20 23:43:38,004 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 6 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=25, Invalid=65, Unknown=0, NotChecked=0, Total=90 [2022-02-20 23:43:38,011 INFO L933 BasicCegarLoop]: 50 mSDtfsCounter, 37 mSDsluCounter, 194 mSDsCounter, 0 mSdLazyCounter, 84 mSolverCounterSat, 6 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 37 SdHoareTripleChecker+Valid, 244 SdHoareTripleChecker+Invalid, 90 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 6 IncrementalHoareTripleChecker+Valid, 84 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:38,012 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [37 Valid, 244 Invalid, 90 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [6 Valid, 84 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 23:43:38,015 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2022-02-20 23:43:38,023 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 80. [2022-02-20 23:43:38,029 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:38,029 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand has 80 states, 50 states have (on average 1.46) internal successors, (73), 62 states have internal predecessors, (73), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:38,031 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand has 80 states, 50 states have (on average 1.46) internal successors, (73), 62 states have internal predecessors, (73), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:38,032 INFO L87 Difference]: Start difference. First operand 80 states. Second operand has 80 states, 50 states have (on average 1.46) internal successors, (73), 62 states have internal predecessors, (73), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:38,035 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:38,036 INFO L93 Difference]: Finished difference Result 80 states and 99 transitions. [2022-02-20 23:43:38,037 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 99 transitions. [2022-02-20 23:43:38,038 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:38,038 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:38,038 INFO L74 IsIncluded]: Start isIncluded. First operand has 80 states, 50 states have (on average 1.46) internal successors, (73), 62 states have internal predecessors, (73), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) Second operand 80 states. [2022-02-20 23:43:38,039 INFO L87 Difference]: Start difference. First operand has 80 states, 50 states have (on average 1.46) internal successors, (73), 62 states have internal predecessors, (73), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) Second operand 80 states. [2022-02-20 23:43:38,045 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:38,046 INFO L93 Difference]: Finished difference Result 80 states and 99 transitions. [2022-02-20 23:43:38,046 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 99 transitions. [2022-02-20 23:43:38,047 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:38,047 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:38,047 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:38,047 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:38,048 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 80 states, 50 states have (on average 1.46) internal successors, (73), 62 states have internal predecessors, (73), 13 states have call successors, (13), 5 states have call predecessors, (13), 5 states have return successors, (13), 12 states have call predecessors, (13), 13 states have call successors, (13) [2022-02-20 23:43:38,054 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 80 states to 80 states and 99 transitions. [2022-02-20 23:43:38,054 INFO L78 Accepts]: Start accepts. Automaton has 80 states and 99 transitions. Word has length 22 [2022-02-20 23:43:38,055 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:38,055 INFO L470 AbstractCegarLoop]: Abstraction has 80 states and 99 transitions. [2022-02-20 23:43:38,056 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 6 states have internal predecessors, (16), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 3 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:38,056 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 99 transitions. [2022-02-20 23:43:38,056 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 25 [2022-02-20 23:43:38,057 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:38,057 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:38,057 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3 [2022-02-20 23:43:38,057 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting ULTIMATE.startErr3REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:38,058 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:38,058 INFO L85 PathProgramCache]: Analyzing trace with hash 107045159, now seen corresponding path program 1 times [2022-02-20 23:43:38,059 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:38,059 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1982305688] [2022-02-20 23:43:38,059 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:38,059 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:38,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:38,189 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:38,190 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:38,197 INFO L290 TraceCheckUtils]: 0: Hoare triple {1447#true} ~cond := #in~cond; {1447#true} is VALID [2022-02-20 23:43:38,197 INFO L290 TraceCheckUtils]: 1: Hoare triple {1447#true} assume !(0 == ~cond); {1447#true} is VALID [2022-02-20 23:43:38,197 INFO L290 TraceCheckUtils]: 2: Hoare triple {1447#true} assume true; {1447#true} is VALID [2022-02-20 23:43:38,197 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1447#true} {1447#true} #82#return; {1447#true} is VALID [2022-02-20 23:43:38,198 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:38,200 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:38,203 INFO L290 TraceCheckUtils]: 0: Hoare triple {1447#true} ~cond := #in~cond; {1447#true} is VALID [2022-02-20 23:43:38,204 INFO L290 TraceCheckUtils]: 1: Hoare triple {1447#true} assume !(0 == ~cond); {1447#true} is VALID [2022-02-20 23:43:38,204 INFO L290 TraceCheckUtils]: 2: Hoare triple {1447#true} assume true; {1447#true} is VALID [2022-02-20 23:43:38,204 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1447#true} {1447#true} #84#return; {1447#true} is VALID [2022-02-20 23:43:38,204 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 15 [2022-02-20 23:43:38,212 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:38,279 INFO L290 TraceCheckUtils]: 0: Hoare triple {1447#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {1466#(or (= |check_#in~x| check_~x) (= check_~x 0))} is VALID [2022-02-20 23:43:38,280 INFO L290 TraceCheckUtils]: 1: Hoare triple {1466#(or (= |check_#in~x| check_~x) (= check_~x 0))} assume ~x >= ~y;#res := ~x; {1467#(or (not (= |check_#in~x| 0)) (and (<= |check_#res| 0) (<= 0 |check_#res|)))} is VALID [2022-02-20 23:43:38,281 INFO L290 TraceCheckUtils]: 2: Hoare triple {1467#(or (not (= |check_#in~x| 0)) (and (<= |check_#res| 0) (<= 0 |check_#res|)))} assume true; {1467#(or (not (= |check_#in~x| 0)) (and (<= |check_#res| 0) (<= 0 |check_#res|)))} is VALID [2022-02-20 23:43:38,282 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1467#(or (not (= |check_#in~x| 0)) (and (<= |check_#res| 0) (<= 0 |check_#res|)))} {1458#(= |ULTIMATE.start_main_~a~0#1.offset| 0)} #86#return; {1463#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_#t~ret15#1| 0))} is VALID [2022-02-20 23:43:38,282 INFO L290 TraceCheckUtils]: 0: Hoare triple {1447#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {1447#true} is VALID [2022-02-20 23:43:38,283 INFO L290 TraceCheckUtils]: 1: Hoare triple {1447#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {1447#true} is VALID [2022-02-20 23:43:38,283 INFO L272 TraceCheckUtils]: 2: Hoare triple {1447#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {1447#true} is VALID [2022-02-20 23:43:38,283 INFO L290 TraceCheckUtils]: 3: Hoare triple {1447#true} ~cond := #in~cond; {1447#true} is VALID [2022-02-20 23:43:38,283 INFO L290 TraceCheckUtils]: 4: Hoare triple {1447#true} assume !(0 == ~cond); {1447#true} is VALID [2022-02-20 23:43:38,283 INFO L290 TraceCheckUtils]: 5: Hoare triple {1447#true} assume true; {1447#true} is VALID [2022-02-20 23:43:38,284 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1447#true} {1447#true} #82#return; {1447#true} is VALID [2022-02-20 23:43:38,284 INFO L290 TraceCheckUtils]: 7: Hoare triple {1447#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {1447#true} is VALID [2022-02-20 23:43:38,284 INFO L272 TraceCheckUtils]: 8: Hoare triple {1447#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {1447#true} is VALID [2022-02-20 23:43:38,284 INFO L290 TraceCheckUtils]: 9: Hoare triple {1447#true} ~cond := #in~cond; {1447#true} is VALID [2022-02-20 23:43:38,284 INFO L290 TraceCheckUtils]: 10: Hoare triple {1447#true} assume !(0 == ~cond); {1447#true} is VALID [2022-02-20 23:43:38,285 INFO L290 TraceCheckUtils]: 11: Hoare triple {1447#true} assume true; {1447#true} is VALID [2022-02-20 23:43:38,285 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1447#true} {1447#true} #84#return; {1447#true} is VALID [2022-02-20 23:43:38,285 INFO L290 TraceCheckUtils]: 13: Hoare triple {1447#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {1457#(= |ULTIMATE.start_main_#t~malloc14#1.offset| 0)} is VALID [2022-02-20 23:43:38,286 INFO L290 TraceCheckUtils]: 14: Hoare triple {1457#(= |ULTIMATE.start_main_#t~malloc14#1.offset| 0)} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {1458#(= |ULTIMATE.start_main_~a~0#1.offset| 0)} is VALID [2022-02-20 23:43:38,286 INFO L272 TraceCheckUtils]: 15: Hoare triple {1458#(= |ULTIMATE.start_main_~a~0#1.offset| 0)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {1447#true} is VALID [2022-02-20 23:43:38,287 INFO L290 TraceCheckUtils]: 16: Hoare triple {1447#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {1466#(or (= |check_#in~x| check_~x) (= check_~x 0))} is VALID [2022-02-20 23:43:38,287 INFO L290 TraceCheckUtils]: 17: Hoare triple {1466#(or (= |check_#in~x| check_~x) (= check_~x 0))} assume ~x >= ~y;#res := ~x; {1467#(or (not (= |check_#in~x| 0)) (and (<= |check_#res| 0) (<= 0 |check_#res|)))} is VALID [2022-02-20 23:43:38,288 INFO L290 TraceCheckUtils]: 18: Hoare triple {1467#(or (not (= |check_#in~x| 0)) (and (<= |check_#res| 0) (<= 0 |check_#res|)))} assume true; {1467#(or (not (= |check_#in~x| 0)) (and (<= |check_#res| 0) (<= 0 |check_#res|)))} is VALID [2022-02-20 23:43:38,289 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {1467#(or (not (= |check_#in~x| 0)) (and (<= |check_#res| 0) (<= 0 |check_#res|)))} {1458#(= |ULTIMATE.start_main_~a~0#1.offset| 0)} #86#return; {1463#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_#t~ret15#1| 0))} is VALID [2022-02-20 23:43:38,290 INFO L290 TraceCheckUtils]: 20: Hoare triple {1463#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_#t~ret15#1| 0))} assume -2147483648 <= main_#t~ret15#1 && main_#t~ret15#1 <= 2147483647;main_~x~0#1 := main_#t~ret15#1;havoc main_#t~ret15#1; {1464#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_~x~0#1| 0))} is VALID [2022-02-20 23:43:38,291 INFO L290 TraceCheckUtils]: 21: Hoare triple {1464#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= |ULTIMATE.start_main_~x~0#1| 0))} SUMMARY for call main_#t~mem16#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~0#1, 4); srcloc: L48 {1465#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 4 (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~x~0#1| 0))} is VALID [2022-02-20 23:43:38,291 INFO L290 TraceCheckUtils]: 22: Hoare triple {1465#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 4 (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~x~0#1| 0))} main_~ai~1#1 := main_#t~mem16#1;havoc main_#t~mem16#1; {1465#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 4 (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~x~0#1| 0))} is VALID [2022-02-20 23:43:38,292 INFO L290 TraceCheckUtils]: 23: Hoare triple {1465#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 4 (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (= |ULTIMATE.start_main_~x~0#1| 0))} assume !(4 + (main_~a~0#1.offset + 4 * main_~x~0#1) <= #length[main_~a~0#1.base] && 0 <= main_~a~0#1.offset + 4 * main_~x~0#1); {1448#false} is VALID [2022-02-20 23:43:38,292 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 23:43:38,292 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:38,293 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1982305688] [2022-02-20 23:43:38,293 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1982305688] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:38,293 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:38,293 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-02-20 23:43:38,293 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1522475220] [2022-02-20 23:43:38,293 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:38,294 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 7 states have (on average 2.142857142857143) internal successors, (15), 8 states have internal predecessors, (15), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 24 [2022-02-20 23:43:38,294 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:38,294 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 9 states, 7 states have (on average 2.142857142857143) internal successors, (15), 8 states have internal predecessors, (15), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:38,310 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:38,310 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-02-20 23:43:38,310 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:38,311 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-02-20 23:43:38,311 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=53, Unknown=0, NotChecked=0, Total=72 [2022-02-20 23:43:38,311 INFO L87 Difference]: Start difference. First operand 80 states and 99 transitions. Second operand has 9 states, 7 states have (on average 2.142857142857143) internal successors, (15), 8 states have internal predecessors, (15), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:38,870 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:38,870 INFO L93 Difference]: Finished difference Result 119 states and 151 transitions. [2022-02-20 23:43:38,870 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-02-20 23:43:38,870 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 7 states have (on average 2.142857142857143) internal successors, (15), 8 states have internal predecessors, (15), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 24 [2022-02-20 23:43:38,871 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:38,871 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 7 states have (on average 2.142857142857143) internal successors, (15), 8 states have internal predecessors, (15), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:38,873 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 98 transitions. [2022-02-20 23:43:38,873 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 7 states have (on average 2.142857142857143) internal successors, (15), 8 states have internal predecessors, (15), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:38,875 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 98 transitions. [2022-02-20 23:43:38,875 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 98 transitions. [2022-02-20 23:43:38,974 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 98 edges. 98 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:38,976 INFO L225 Difference]: With dead ends: 119 [2022-02-20 23:43:38,976 INFO L226 Difference]: Without dead ends: 119 [2022-02-20 23:43:38,977 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 6 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 17 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=47, Invalid=135, Unknown=0, NotChecked=0, Total=182 [2022-02-20 23:43:38,977 INFO L933 BasicCegarLoop]: 60 mSDtfsCounter, 65 mSDsluCounter, 299 mSDsCounter, 0 mSdLazyCounter, 145 mSolverCounterSat, 10 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 70 SdHoareTripleChecker+Valid, 359 SdHoareTripleChecker+Invalid, 155 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 10 IncrementalHoareTripleChecker+Valid, 145 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:38,978 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [70 Valid, 359 Invalid, 155 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [10 Valid, 145 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 23:43:38,983 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2022-02-20 23:43:38,999 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 86. [2022-02-20 23:43:39,000 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:39,001 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand has 86 states, 55 states have (on average 1.4181818181818182) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 6 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:39,001 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand has 86 states, 55 states have (on average 1.4181818181818182) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 6 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:39,004 INFO L87 Difference]: Start difference. First operand 119 states. Second operand has 86 states, 55 states have (on average 1.4181818181818182) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 6 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:39,009 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:39,009 INFO L93 Difference]: Finished difference Result 119 states and 151 transitions. [2022-02-20 23:43:39,009 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 151 transitions. [2022-02-20 23:43:39,010 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:39,010 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:39,011 INFO L74 IsIncluded]: Start isIncluded. First operand has 86 states, 55 states have (on average 1.4181818181818182) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 6 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 119 states. [2022-02-20 23:43:39,011 INFO L87 Difference]: Start difference. First operand has 86 states, 55 states have (on average 1.4181818181818182) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 6 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 119 states. [2022-02-20 23:43:39,016 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:39,016 INFO L93 Difference]: Finished difference Result 119 states and 151 transitions. [2022-02-20 23:43:39,016 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 151 transitions. [2022-02-20 23:43:39,017 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:39,017 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:39,017 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:39,017 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:39,017 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 86 states, 55 states have (on average 1.4181818181818182) internal successors, (78), 67 states have internal predecessors, (78), 13 states have call successors, (13), 5 states have call predecessors, (13), 6 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:39,020 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 86 states to 86 states and 106 transitions. [2022-02-20 23:43:39,020 INFO L78 Accepts]: Start accepts. Automaton has 86 states and 106 transitions. Word has length 24 [2022-02-20 23:43:39,020 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:39,021 INFO L470 AbstractCegarLoop]: Abstraction has 86 states and 106 transitions. [2022-02-20 23:43:39,021 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 7 states have (on average 2.142857142857143) internal successors, (15), 8 states have internal predecessors, (15), 2 states have call successors, (3), 1 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:39,021 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 106 transitions. [2022-02-20 23:43:39,021 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 30 [2022-02-20 23:43:39,021 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:39,022 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:39,022 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4 [2022-02-20 23:43:39,022 INFO L402 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONMEMORY_LEAK === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:39,022 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:39,023 INFO L85 PathProgramCache]: Analyzing trace with hash -1801661154, now seen corresponding path program 1 times [2022-02-20 23:43:39,023 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:39,023 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1152927281] [2022-02-20 23:43:39,023 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:39,023 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:39,047 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:39,189 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:39,190 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:39,194 INFO L290 TraceCheckUtils]: 0: Hoare triple {1923#true} ~cond := #in~cond; {1923#true} is VALID [2022-02-20 23:43:39,194 INFO L290 TraceCheckUtils]: 1: Hoare triple {1923#true} assume !(0 == ~cond); {1923#true} is VALID [2022-02-20 23:43:39,195 INFO L290 TraceCheckUtils]: 2: Hoare triple {1923#true} assume true; {1923#true} is VALID [2022-02-20 23:43:39,195 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1923#true} {1923#true} #82#return; {1923#true} is VALID [2022-02-20 23:43:39,195 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:39,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:39,204 INFO L290 TraceCheckUtils]: 0: Hoare triple {1923#true} ~cond := #in~cond; {1923#true} is VALID [2022-02-20 23:43:39,204 INFO L290 TraceCheckUtils]: 1: Hoare triple {1923#true} assume !(0 == ~cond); {1923#true} is VALID [2022-02-20 23:43:39,205 INFO L290 TraceCheckUtils]: 2: Hoare triple {1923#true} assume true; {1923#true} is VALID [2022-02-20 23:43:39,205 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1923#true} {1923#true} #84#return; {1923#true} is VALID [2022-02-20 23:43:39,205 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 15 [2022-02-20 23:43:39,208 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:39,211 INFO L290 TraceCheckUtils]: 0: Hoare triple {1923#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {1923#true} is VALID [2022-02-20 23:43:39,211 INFO L290 TraceCheckUtils]: 1: Hoare triple {1923#true} assume ~x >= ~y;#res := ~x; {1923#true} is VALID [2022-02-20 23:43:39,212 INFO L290 TraceCheckUtils]: 2: Hoare triple {1923#true} assume true; {1923#true} is VALID [2022-02-20 23:43:39,213 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1923#true} {1934#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} #86#return; {1934#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} is VALID [2022-02-20 23:43:39,213 INFO L290 TraceCheckUtils]: 0: Hoare triple {1923#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {1923#true} is VALID [2022-02-20 23:43:39,213 INFO L290 TraceCheckUtils]: 1: Hoare triple {1923#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {1923#true} is VALID [2022-02-20 23:43:39,213 INFO L272 TraceCheckUtils]: 2: Hoare triple {1923#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {1923#true} is VALID [2022-02-20 23:43:39,214 INFO L290 TraceCheckUtils]: 3: Hoare triple {1923#true} ~cond := #in~cond; {1923#true} is VALID [2022-02-20 23:43:39,214 INFO L290 TraceCheckUtils]: 4: Hoare triple {1923#true} assume !(0 == ~cond); {1923#true} is VALID [2022-02-20 23:43:39,214 INFO L290 TraceCheckUtils]: 5: Hoare triple {1923#true} assume true; {1923#true} is VALID [2022-02-20 23:43:39,214 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {1923#true} {1923#true} #82#return; {1923#true} is VALID [2022-02-20 23:43:39,214 INFO L290 TraceCheckUtils]: 7: Hoare triple {1923#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {1923#true} is VALID [2022-02-20 23:43:39,214 INFO L272 TraceCheckUtils]: 8: Hoare triple {1923#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {1923#true} is VALID [2022-02-20 23:43:39,215 INFO L290 TraceCheckUtils]: 9: Hoare triple {1923#true} ~cond := #in~cond; {1923#true} is VALID [2022-02-20 23:43:39,215 INFO L290 TraceCheckUtils]: 10: Hoare triple {1923#true} assume !(0 == ~cond); {1923#true} is VALID [2022-02-20 23:43:39,215 INFO L290 TraceCheckUtils]: 11: Hoare triple {1923#true} assume true; {1923#true} is VALID [2022-02-20 23:43:39,215 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {1923#true} {1923#true} #84#return; {1923#true} is VALID [2022-02-20 23:43:39,216 INFO L290 TraceCheckUtils]: 13: Hoare triple {1923#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {1933#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} is VALID [2022-02-20 23:43:39,217 INFO L290 TraceCheckUtils]: 14: Hoare triple {1933#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {1934#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} is VALID [2022-02-20 23:43:39,217 INFO L272 TraceCheckUtils]: 15: Hoare triple {1934#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {1923#true} is VALID [2022-02-20 23:43:39,217 INFO L290 TraceCheckUtils]: 16: Hoare triple {1923#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {1923#true} is VALID [2022-02-20 23:43:39,217 INFO L290 TraceCheckUtils]: 17: Hoare triple {1923#true} assume ~x >= ~y;#res := ~x; {1923#true} is VALID [2022-02-20 23:43:39,217 INFO L290 TraceCheckUtils]: 18: Hoare triple {1923#true} assume true; {1923#true} is VALID [2022-02-20 23:43:39,218 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {1923#true} {1934#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} #86#return; {1934#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} is VALID [2022-02-20 23:43:39,219 INFO L290 TraceCheckUtils]: 20: Hoare triple {1934#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} assume -2147483648 <= main_#t~ret15#1 && main_#t~ret15#1 <= 2147483647;main_~x~0#1 := main_#t~ret15#1;havoc main_#t~ret15#1; {1939#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~x~0#1| 4))) 0) (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~i~0#1| 4))) 0))} is VALID [2022-02-20 23:43:39,220 INFO L290 TraceCheckUtils]: 21: Hoare triple {1939#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~x~0#1| 4))) 0) (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~i~0#1| 4))) 0))} SUMMARY for call main_#t~mem16#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~0#1, 4); srcloc: L48 {1940#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~x~0#1| 4))) 0) (= |ULTIMATE.start_main_#t~mem16#1| 0))} is VALID [2022-02-20 23:43:39,220 INFO L290 TraceCheckUtils]: 22: Hoare triple {1940#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~x~0#1| 4))) 0) (= |ULTIMATE.start_main_#t~mem16#1| 0))} main_~ai~1#1 := main_#t~mem16#1;havoc main_#t~mem16#1; {1941#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~x~0#1| 4))) 0) (= |ULTIMATE.start_main_~ai~1#1| 0))} is VALID [2022-02-20 23:43:39,221 INFO L290 TraceCheckUtils]: 23: Hoare triple {1941#(and (= (select (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|) (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~x~0#1| 4))) 0) (= |ULTIMATE.start_main_~ai~1#1| 0))} SUMMARY for call main_#t~mem17#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~x~0#1, 4); srcloc: L49 {1942#(and (= |ULTIMATE.start_main_~ai~1#1| 0) (= |ULTIMATE.start_main_#t~mem17#1| 0))} is VALID [2022-02-20 23:43:39,221 INFO L290 TraceCheckUtils]: 24: Hoare triple {1942#(and (= |ULTIMATE.start_main_~ai~1#1| 0) (= |ULTIMATE.start_main_#t~mem17#1| 0))} main_~ax~1#1 := main_#t~mem17#1;havoc main_#t~mem17#1; {1943#(<= |ULTIMATE.start_main_~ai~1#1| |ULTIMATE.start_main_~ax~1#1|)} is VALID [2022-02-20 23:43:39,222 INFO L272 TraceCheckUtils]: 25: Hoare triple {1943#(<= |ULTIMATE.start_main_~ai~1#1| |ULTIMATE.start_main_~ax~1#1|)} call __VERIFIER_assert((if main_~ai~1#1 <= main_~ax~1#1 then 1 else 0)); {1944#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-02-20 23:43:39,222 INFO L290 TraceCheckUtils]: 26: Hoare triple {1944#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {1945#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-02-20 23:43:39,223 INFO L290 TraceCheckUtils]: 27: Hoare triple {1945#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {1924#false} is VALID [2022-02-20 23:43:39,223 INFO L290 TraceCheckUtils]: 28: Hoare triple {1924#false} assume !false; {1924#false} is VALID [2022-02-20 23:43:39,223 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 23:43:39,223 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:39,224 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1152927281] [2022-02-20 23:43:39,224 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1152927281] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:39,224 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:39,224 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-02-20 23:43:39,224 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1928420835] [2022-02-20 23:43:39,224 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:39,225 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 1.9) internal successors, (19), 10 states have internal predecessors, (19), 3 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 29 [2022-02-20 23:43:39,225 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:39,225 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 11 states, 10 states have (on average 1.9) internal successors, (19), 10 states have internal predecessors, (19), 3 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:39,244 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 26 edges. 26 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:39,245 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-02-20 23:43:39,245 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:39,245 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-02-20 23:43:39,245 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=90, Unknown=0, NotChecked=0, Total=110 [2022-02-20 23:43:39,246 INFO L87 Difference]: Start difference. First operand 86 states and 106 transitions. Second operand has 11 states, 10 states have (on average 1.9) internal successors, (19), 10 states have internal predecessors, (19), 3 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:39,843 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:39,843 INFO L93 Difference]: Finished difference Result 90 states and 109 transitions. [2022-02-20 23:43:39,843 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-02-20 23:43:39,843 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 1.9) internal successors, (19), 10 states have internal predecessors, (19), 3 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 29 [2022-02-20 23:43:39,843 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:39,843 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 1.9) internal successors, (19), 10 states have internal predecessors, (19), 3 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:39,845 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 67 transitions. [2022-02-20 23:43:39,845 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 1.9) internal successors, (19), 10 states have internal predecessors, (19), 3 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:39,846 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 67 transitions. [2022-02-20 23:43:39,846 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 67 transitions. [2022-02-20 23:43:39,903 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:39,904 INFO L225 Difference]: With dead ends: 90 [2022-02-20 23:43:39,904 INFO L226 Difference]: Without dead ends: 90 [2022-02-20 23:43:39,904 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 23 GetRequests, 8 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 15 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=61, Invalid=211, Unknown=0, NotChecked=0, Total=272 [2022-02-20 23:43:39,905 INFO L933 BasicCegarLoop]: 54 mSDtfsCounter, 35 mSDsluCounter, 407 mSDsCounter, 0 mSdLazyCounter, 128 mSolverCounterSat, 13 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 35 SdHoareTripleChecker+Valid, 461 SdHoareTripleChecker+Invalid, 141 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 13 IncrementalHoareTripleChecker+Valid, 128 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:39,905 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [35 Valid, 461 Invalid, 141 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [13 Valid, 128 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 23:43:39,906 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 90 states. [2022-02-20 23:43:39,909 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 90 to 90. [2022-02-20 23:43:39,909 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:39,910 INFO L82 GeneralOperation]: Start isEquivalent. First operand 90 states. Second operand has 90 states, 58 states have (on average 1.396551724137931) internal successors, (81), 70 states have internal predecessors, (81), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:39,910 INFO L74 IsIncluded]: Start isIncluded. First operand 90 states. Second operand has 90 states, 58 states have (on average 1.396551724137931) internal successors, (81), 70 states have internal predecessors, (81), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:39,910 INFO L87 Difference]: Start difference. First operand 90 states. Second operand has 90 states, 58 states have (on average 1.396551724137931) internal successors, (81), 70 states have internal predecessors, (81), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:39,913 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:39,913 INFO L93 Difference]: Finished difference Result 90 states and 109 transitions. [2022-02-20 23:43:39,913 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 109 transitions. [2022-02-20 23:43:39,914 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:39,914 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:39,915 INFO L74 IsIncluded]: Start isIncluded. First operand has 90 states, 58 states have (on average 1.396551724137931) internal successors, (81), 70 states have internal predecessors, (81), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 90 states. [2022-02-20 23:43:39,915 INFO L87 Difference]: Start difference. First operand has 90 states, 58 states have (on average 1.396551724137931) internal successors, (81), 70 states have internal predecessors, (81), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 90 states. [2022-02-20 23:43:39,918 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:39,918 INFO L93 Difference]: Finished difference Result 90 states and 109 transitions. [2022-02-20 23:43:39,918 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 109 transitions. [2022-02-20 23:43:39,918 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:39,918 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:39,919 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:39,919 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:39,919 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 90 states, 58 states have (on average 1.396551724137931) internal successors, (81), 70 states have internal predecessors, (81), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:39,922 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 109 transitions. [2022-02-20 23:43:39,922 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 109 transitions. Word has length 29 [2022-02-20 23:43:39,922 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:39,922 INFO L470 AbstractCegarLoop]: Abstraction has 90 states and 109 transitions. [2022-02-20 23:43:39,922 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 11 states, 10 states have (on average 1.9) internal successors, (19), 10 states have internal predecessors, (19), 3 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 23:43:39,923 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 109 transitions. [2022-02-20 23:43:39,923 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2022-02-20 23:43:39,923 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:39,923 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:39,924 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5 [2022-02-20 23:43:39,924 INFO L402 AbstractCegarLoop]: === Iteration 7 === Targeting checkErr1REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:39,924 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:39,924 INFO L85 PathProgramCache]: Analyzing trace with hash 1023324068, now seen corresponding path program 1 times [2022-02-20 23:43:39,924 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:39,924 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1508332843] [2022-02-20 23:43:39,925 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:39,925 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:39,945 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:40,034 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:40,035 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:40,038 INFO L290 TraceCheckUtils]: 0: Hoare triple {2320#true} ~cond := #in~cond; {2320#true} is VALID [2022-02-20 23:43:40,038 INFO L290 TraceCheckUtils]: 1: Hoare triple {2320#true} assume !(0 == ~cond); {2320#true} is VALID [2022-02-20 23:43:40,038 INFO L290 TraceCheckUtils]: 2: Hoare triple {2320#true} assume true; {2320#true} is VALID [2022-02-20 23:43:40,038 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2320#true} {2320#true} #82#return; {2320#true} is VALID [2022-02-20 23:43:40,039 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:40,040 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:40,043 INFO L290 TraceCheckUtils]: 0: Hoare triple {2320#true} ~cond := #in~cond; {2320#true} is VALID [2022-02-20 23:43:40,044 INFO L290 TraceCheckUtils]: 1: Hoare triple {2320#true} assume !(0 == ~cond); {2320#true} is VALID [2022-02-20 23:43:40,044 INFO L290 TraceCheckUtils]: 2: Hoare triple {2320#true} assume true; {2320#true} is VALID [2022-02-20 23:43:40,044 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2320#true} {2320#true} #84#return; {2320#true} is VALID [2022-02-20 23:43:40,044 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:43:40,046 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:40,051 INFO L290 TraceCheckUtils]: 0: Hoare triple {2320#true} ~cond := #in~cond; {2320#true} is VALID [2022-02-20 23:43:40,051 INFO L290 TraceCheckUtils]: 1: Hoare triple {2320#true} assume !(0 == ~cond); {2320#true} is VALID [2022-02-20 23:43:40,052 INFO L290 TraceCheckUtils]: 2: Hoare triple {2320#true} assume true; {2320#true} is VALID [2022-02-20 23:43:40,053 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2320#true} {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} #90#return; {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:40,053 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:43:40,055 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:40,058 INFO L290 TraceCheckUtils]: 0: Hoare triple {2320#true} ~cond := #in~cond; {2320#true} is VALID [2022-02-20 23:43:40,058 INFO L290 TraceCheckUtils]: 1: Hoare triple {2320#true} assume !(0 == ~cond); {2320#true} is VALID [2022-02-20 23:43:40,058 INFO L290 TraceCheckUtils]: 2: Hoare triple {2320#true} assume true; {2320#true} is VALID [2022-02-20 23:43:40,059 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2320#true} {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} #92#return; {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:40,059 INFO L290 TraceCheckUtils]: 0: Hoare triple {2320#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {2320#true} is VALID [2022-02-20 23:43:40,059 INFO L290 TraceCheckUtils]: 1: Hoare triple {2320#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {2320#true} is VALID [2022-02-20 23:43:40,060 INFO L272 TraceCheckUtils]: 2: Hoare triple {2320#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {2320#true} is VALID [2022-02-20 23:43:40,060 INFO L290 TraceCheckUtils]: 3: Hoare triple {2320#true} ~cond := #in~cond; {2320#true} is VALID [2022-02-20 23:43:40,060 INFO L290 TraceCheckUtils]: 4: Hoare triple {2320#true} assume !(0 == ~cond); {2320#true} is VALID [2022-02-20 23:43:40,060 INFO L290 TraceCheckUtils]: 5: Hoare triple {2320#true} assume true; {2320#true} is VALID [2022-02-20 23:43:40,060 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2320#true} {2320#true} #82#return; {2320#true} is VALID [2022-02-20 23:43:40,060 INFO L290 TraceCheckUtils]: 7: Hoare triple {2320#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {2320#true} is VALID [2022-02-20 23:43:40,061 INFO L272 TraceCheckUtils]: 8: Hoare triple {2320#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {2320#true} is VALID [2022-02-20 23:43:40,061 INFO L290 TraceCheckUtils]: 9: Hoare triple {2320#true} ~cond := #in~cond; {2320#true} is VALID [2022-02-20 23:43:40,061 INFO L290 TraceCheckUtils]: 10: Hoare triple {2320#true} assume !(0 == ~cond); {2320#true} is VALID [2022-02-20 23:43:40,061 INFO L290 TraceCheckUtils]: 11: Hoare triple {2320#true} assume true; {2320#true} is VALID [2022-02-20 23:43:40,061 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {2320#true} {2320#true} #84#return; {2320#true} is VALID [2022-02-20 23:43:40,062 INFO L290 TraceCheckUtils]: 13: Hoare triple {2320#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {2330#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} is VALID [2022-02-20 23:43:40,063 INFO L290 TraceCheckUtils]: 14: Hoare triple {2330#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {2331#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:43:40,064 INFO L272 TraceCheckUtils]: 15: Hoare triple {2331#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {2332#(and (= |check_#in~a.offset| 0) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)) (= |check_#in~x| 0))} is VALID [2022-02-20 23:43:40,066 INFO L290 TraceCheckUtils]: 16: Hoare triple {2332#(and (= |check_#in~a.offset| 0) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)) (= |check_#in~x| 0))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {2333#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:40,066 INFO L290 TraceCheckUtils]: 17: Hoare triple {2333#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume !(~x >= ~y); {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:40,066 INFO L272 TraceCheckUtils]: 18: Hoare triple {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {2320#true} is VALID [2022-02-20 23:43:40,067 INFO L290 TraceCheckUtils]: 19: Hoare triple {2320#true} ~cond := #in~cond; {2320#true} is VALID [2022-02-20 23:43:40,067 INFO L290 TraceCheckUtils]: 20: Hoare triple {2320#true} assume !(0 == ~cond); {2320#true} is VALID [2022-02-20 23:43:40,067 INFO L290 TraceCheckUtils]: 21: Hoare triple {2320#true} assume true; {2320#true} is VALID [2022-02-20 23:43:40,073 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2320#true} {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} #90#return; {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:40,073 INFO L272 TraceCheckUtils]: 23: Hoare triple {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {2320#true} is VALID [2022-02-20 23:43:40,074 INFO L290 TraceCheckUtils]: 24: Hoare triple {2320#true} ~cond := #in~cond; {2320#true} is VALID [2022-02-20 23:43:40,074 INFO L290 TraceCheckUtils]: 25: Hoare triple {2320#true} assume !(0 == ~cond); {2320#true} is VALID [2022-02-20 23:43:40,074 INFO L290 TraceCheckUtils]: 26: Hoare triple {2320#true} assume true; {2320#true} is VALID [2022-02-20 23:43:40,075 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2320#true} {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} #92#return; {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:40,076 INFO L290 TraceCheckUtils]: 28: Hoare triple {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:40,076 INFO L290 TraceCheckUtils]: 29: Hoare triple {2334#(and (= check_~x 0) (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume !(4 + (~a.offset + 4 * ~x) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~x); {2321#false} is VALID [2022-02-20 23:43:40,077 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:40,077 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:40,077 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1508332843] [2022-02-20 23:43:40,077 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1508332843] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:40,077 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:40,077 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-02-20 23:43:40,077 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1917727489] [2022-02-20 23:43:40,078 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:40,078 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 5 states have (on average 3.0) internal successors, (15), 6 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 30 [2022-02-20 23:43:40,078 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:40,079 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 5 states have (on average 3.0) internal successors, (15), 6 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:40,101 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:40,101 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 23:43:40,101 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:40,102 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 23:43:40,102 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 23:43:40,102 INFO L87 Difference]: Start difference. First operand 90 states and 109 transitions. Second operand has 7 states, 5 states have (on average 3.0) internal successors, (15), 6 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:40,906 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:40,906 INFO L93 Difference]: Finished difference Result 110 states and 123 transitions. [2022-02-20 23:43:40,906 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 23:43:40,907 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 5 states have (on average 3.0) internal successors, (15), 6 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 30 [2022-02-20 23:43:40,907 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:40,907 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 5 states have (on average 3.0) internal successors, (15), 6 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:40,910 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 114 transitions. [2022-02-20 23:43:40,910 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 5 states have (on average 3.0) internal successors, (15), 6 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:40,912 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 114 transitions. [2022-02-20 23:43:40,912 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 114 transitions. [2022-02-20 23:43:41,041 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 114 edges. 114 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:41,043 INFO L225 Difference]: With dead ends: 110 [2022-02-20 23:43:41,043 INFO L226 Difference]: Without dead ends: 110 [2022-02-20 23:43:41,044 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=25, Invalid=65, Unknown=0, NotChecked=0, Total=90 [2022-02-20 23:43:41,044 INFO L933 BasicCegarLoop]: 51 mSDtfsCounter, 79 mSDsluCounter, 150 mSDsCounter, 0 mSdLazyCounter, 221 mSolverCounterSat, 24 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 81 SdHoareTripleChecker+Valid, 201 SdHoareTripleChecker+Invalid, 245 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 24 IncrementalHoareTripleChecker+Valid, 221 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:41,045 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [81 Valid, 201 Invalid, 245 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [24 Valid, 221 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-02-20 23:43:41,045 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2022-02-20 23:43:41,048 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 90. [2022-02-20 23:43:41,048 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:41,049 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand has 90 states, 58 states have (on average 1.3793103448275863) internal successors, (80), 70 states have internal predecessors, (80), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:41,049 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand has 90 states, 58 states have (on average 1.3793103448275863) internal successors, (80), 70 states have internal predecessors, (80), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:41,049 INFO L87 Difference]: Start difference. First operand 110 states. Second operand has 90 states, 58 states have (on average 1.3793103448275863) internal successors, (80), 70 states have internal predecessors, (80), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:41,053 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:41,053 INFO L93 Difference]: Finished difference Result 110 states and 123 transitions. [2022-02-20 23:43:41,054 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 123 transitions. [2022-02-20 23:43:41,054 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:41,054 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:41,055 INFO L74 IsIncluded]: Start isIncluded. First operand has 90 states, 58 states have (on average 1.3793103448275863) internal successors, (80), 70 states have internal predecessors, (80), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 110 states. [2022-02-20 23:43:41,055 INFO L87 Difference]: Start difference. First operand has 90 states, 58 states have (on average 1.3793103448275863) internal successors, (80), 70 states have internal predecessors, (80), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 110 states. [2022-02-20 23:43:41,059 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:41,059 INFO L93 Difference]: Finished difference Result 110 states and 123 transitions. [2022-02-20 23:43:41,059 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 123 transitions. [2022-02-20 23:43:41,060 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:41,060 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:41,060 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:41,060 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:41,060 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 90 states, 58 states have (on average 1.3793103448275863) internal successors, (80), 70 states have internal predecessors, (80), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:41,063 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 108 transitions. [2022-02-20 23:43:41,063 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 108 transitions. Word has length 30 [2022-02-20 23:43:41,063 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:41,063 INFO L470 AbstractCegarLoop]: Abstraction has 90 states and 108 transitions. [2022-02-20 23:43:41,063 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 5 states have (on average 3.0) internal successors, (15), 6 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:41,064 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 108 transitions. [2022-02-20 23:43:41,064 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 31 [2022-02-20 23:43:41,064 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:41,064 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:41,065 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6 [2022-02-20 23:43:41,065 INFO L402 AbstractCegarLoop]: === Iteration 8 === Targeting checkErr0REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:41,065 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:41,065 INFO L85 PathProgramCache]: Analyzing trace with hash 1023324067, now seen corresponding path program 1 times [2022-02-20 23:43:41,065 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:41,066 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [26882722] [2022-02-20 23:43:41,066 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:41,066 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:41,086 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,122 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:41,123 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,126 INFO L290 TraceCheckUtils]: 0: Hoare triple {2771#true} ~cond := #in~cond; {2771#true} is VALID [2022-02-20 23:43:41,127 INFO L290 TraceCheckUtils]: 1: Hoare triple {2771#true} assume !(0 == ~cond); {2771#true} is VALID [2022-02-20 23:43:41,127 INFO L290 TraceCheckUtils]: 2: Hoare triple {2771#true} assume true; {2771#true} is VALID [2022-02-20 23:43:41,127 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2771#true} {2771#true} #82#return; {2771#true} is VALID [2022-02-20 23:43:41,127 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:41,128 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,131 INFO L290 TraceCheckUtils]: 0: Hoare triple {2771#true} ~cond := #in~cond; {2771#true} is VALID [2022-02-20 23:43:41,131 INFO L290 TraceCheckUtils]: 1: Hoare triple {2771#true} assume !(0 == ~cond); {2771#true} is VALID [2022-02-20 23:43:41,132 INFO L290 TraceCheckUtils]: 2: Hoare triple {2771#true} assume true; {2771#true} is VALID [2022-02-20 23:43:41,132 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2771#true} {2771#true} #84#return; {2771#true} is VALID [2022-02-20 23:43:41,132 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:43:41,133 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,136 INFO L290 TraceCheckUtils]: 0: Hoare triple {2771#true} ~cond := #in~cond; {2771#true} is VALID [2022-02-20 23:43:41,136 INFO L290 TraceCheckUtils]: 1: Hoare triple {2771#true} assume !(0 == ~cond); {2771#true} is VALID [2022-02-20 23:43:41,137 INFO L290 TraceCheckUtils]: 2: Hoare triple {2771#true} assume true; {2771#true} is VALID [2022-02-20 23:43:41,137 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2771#true} {2784#(= (select |#valid| check_~a.base) 1)} #90#return; {2784#(= (select |#valid| check_~a.base) 1)} is VALID [2022-02-20 23:43:41,138 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:43:41,139 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,142 INFO L290 TraceCheckUtils]: 0: Hoare triple {2771#true} ~cond := #in~cond; {2771#true} is VALID [2022-02-20 23:43:41,142 INFO L290 TraceCheckUtils]: 1: Hoare triple {2771#true} assume !(0 == ~cond); {2771#true} is VALID [2022-02-20 23:43:41,142 INFO L290 TraceCheckUtils]: 2: Hoare triple {2771#true} assume true; {2771#true} is VALID [2022-02-20 23:43:41,143 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2771#true} {2784#(= (select |#valid| check_~a.base) 1)} #92#return; {2784#(= (select |#valid| check_~a.base) 1)} is VALID [2022-02-20 23:43:41,143 INFO L290 TraceCheckUtils]: 0: Hoare triple {2771#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {2771#true} is VALID [2022-02-20 23:43:41,143 INFO L290 TraceCheckUtils]: 1: Hoare triple {2771#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {2771#true} is VALID [2022-02-20 23:43:41,144 INFO L272 TraceCheckUtils]: 2: Hoare triple {2771#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {2771#true} is VALID [2022-02-20 23:43:41,144 INFO L290 TraceCheckUtils]: 3: Hoare triple {2771#true} ~cond := #in~cond; {2771#true} is VALID [2022-02-20 23:43:41,144 INFO L290 TraceCheckUtils]: 4: Hoare triple {2771#true} assume !(0 == ~cond); {2771#true} is VALID [2022-02-20 23:43:41,144 INFO L290 TraceCheckUtils]: 5: Hoare triple {2771#true} assume true; {2771#true} is VALID [2022-02-20 23:43:41,144 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {2771#true} {2771#true} #82#return; {2771#true} is VALID [2022-02-20 23:43:41,144 INFO L290 TraceCheckUtils]: 7: Hoare triple {2771#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {2771#true} is VALID [2022-02-20 23:43:41,145 INFO L272 TraceCheckUtils]: 8: Hoare triple {2771#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {2771#true} is VALID [2022-02-20 23:43:41,145 INFO L290 TraceCheckUtils]: 9: Hoare triple {2771#true} ~cond := #in~cond; {2771#true} is VALID [2022-02-20 23:43:41,145 INFO L290 TraceCheckUtils]: 10: Hoare triple {2771#true} assume !(0 == ~cond); {2771#true} is VALID [2022-02-20 23:43:41,145 INFO L290 TraceCheckUtils]: 11: Hoare triple {2771#true} assume true; {2771#true} is VALID [2022-02-20 23:43:41,145 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {2771#true} {2771#true} #84#return; {2771#true} is VALID [2022-02-20 23:43:41,146 INFO L290 TraceCheckUtils]: 13: Hoare triple {2771#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {2781#(= (select |#valid| |ULTIMATE.start_main_#t~malloc14#1.base|) 1)} is VALID [2022-02-20 23:43:41,147 INFO L290 TraceCheckUtils]: 14: Hoare triple {2781#(= (select |#valid| |ULTIMATE.start_main_#t~malloc14#1.base|) 1)} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {2782#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} is VALID [2022-02-20 23:43:41,148 INFO L272 TraceCheckUtils]: 15: Hoare triple {2782#(= (select |#valid| |ULTIMATE.start_main_~a~0#1.base|) 1)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {2783#(= (select |#valid| |check_#in~a.base|) 1)} is VALID [2022-02-20 23:43:41,149 INFO L290 TraceCheckUtils]: 16: Hoare triple {2783#(= (select |#valid| |check_#in~a.base|) 1)} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {2784#(= (select |#valid| check_~a.base) 1)} is VALID [2022-02-20 23:43:41,149 INFO L290 TraceCheckUtils]: 17: Hoare triple {2784#(= (select |#valid| check_~a.base) 1)} assume !(~x >= ~y); {2784#(= (select |#valid| check_~a.base) 1)} is VALID [2022-02-20 23:43:41,149 INFO L272 TraceCheckUtils]: 18: Hoare triple {2784#(= (select |#valid| check_~a.base) 1)} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {2771#true} is VALID [2022-02-20 23:43:41,149 INFO L290 TraceCheckUtils]: 19: Hoare triple {2771#true} ~cond := #in~cond; {2771#true} is VALID [2022-02-20 23:43:41,149 INFO L290 TraceCheckUtils]: 20: Hoare triple {2771#true} assume !(0 == ~cond); {2771#true} is VALID [2022-02-20 23:43:41,150 INFO L290 TraceCheckUtils]: 21: Hoare triple {2771#true} assume true; {2771#true} is VALID [2022-02-20 23:43:41,150 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2771#true} {2784#(= (select |#valid| check_~a.base) 1)} #90#return; {2784#(= (select |#valid| check_~a.base) 1)} is VALID [2022-02-20 23:43:41,150 INFO L272 TraceCheckUtils]: 23: Hoare triple {2784#(= (select |#valid| check_~a.base) 1)} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {2771#true} is VALID [2022-02-20 23:43:41,151 INFO L290 TraceCheckUtils]: 24: Hoare triple {2771#true} ~cond := #in~cond; {2771#true} is VALID [2022-02-20 23:43:41,151 INFO L290 TraceCheckUtils]: 25: Hoare triple {2771#true} assume !(0 == ~cond); {2771#true} is VALID [2022-02-20 23:43:41,151 INFO L290 TraceCheckUtils]: 26: Hoare triple {2771#true} assume true; {2771#true} is VALID [2022-02-20 23:43:41,152 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2771#true} {2784#(= (select |#valid| check_~a.base) 1)} #92#return; {2784#(= (select |#valid| check_~a.base) 1)} is VALID [2022-02-20 23:43:41,152 INFO L290 TraceCheckUtils]: 28: Hoare triple {2784#(= (select |#valid| check_~a.base) 1)} ~x0~0 := ~x;~y0~0 := ~y; {2784#(= (select |#valid| check_~a.base) 1)} is VALID [2022-02-20 23:43:41,153 INFO L290 TraceCheckUtils]: 29: Hoare triple {2784#(= (select |#valid| check_~a.base) 1)} assume !(1 == #valid[~a.base]); {2772#false} is VALID [2022-02-20 23:43:41,154 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:41,154 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:41,154 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [26882722] [2022-02-20 23:43:41,154 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [26882722] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:41,154 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:41,154 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-02-20 23:43:41,154 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [699973734] [2022-02-20 23:43:41,155 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:41,155 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 4 states have (on average 3.75) internal successors, (15), 5 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 30 [2022-02-20 23:43:41,155 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:41,156 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 6 states, 4 states have (on average 3.75) internal successors, (15), 5 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:41,173 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:41,173 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-02-20 23:43:41,173 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:41,174 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-02-20 23:43:41,174 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-02-20 23:43:41,174 INFO L87 Difference]: Start difference. First operand 90 states and 108 transitions. Second operand has 6 states, 4 states have (on average 3.75) internal successors, (15), 5 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:41,457 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:41,457 INFO L93 Difference]: Finished difference Result 86 states and 100 transitions. [2022-02-20 23:43:41,457 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-02-20 23:43:41,457 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 4 states have (on average 3.75) internal successors, (15), 5 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 30 [2022-02-20 23:43:41,458 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:41,458 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 4 states have (on average 3.75) internal successors, (15), 5 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:41,459 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2022-02-20 23:43:41,459 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 4 states have (on average 3.75) internal successors, (15), 5 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:41,460 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2022-02-20 23:43:41,461 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 63 transitions. [2022-02-20 23:43:41,515 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:41,516 INFO L225 Difference]: With dead ends: 86 [2022-02-20 23:43:41,516 INFO L226 Difference]: Without dead ends: 86 [2022-02-20 23:43:41,517 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-02-20 23:43:41,517 INFO L933 BasicCegarLoop]: 41 mSDtfsCounter, 54 mSDsluCounter, 80 mSDsCounter, 0 mSdLazyCounter, 101 mSolverCounterSat, 14 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 54 SdHoareTripleChecker+Valid, 121 SdHoareTripleChecker+Invalid, 115 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 14 IncrementalHoareTripleChecker+Valid, 101 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:41,518 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [54 Valid, 121 Invalid, 115 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [14 Valid, 101 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 23:43:41,518 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2022-02-20 23:43:41,521 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 86. [2022-02-20 23:43:41,521 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:41,521 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand has 86 states, 58 states have (on average 1.2413793103448276) internal successors, (72), 66 states have internal predecessors, (72), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:41,522 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand has 86 states, 58 states have (on average 1.2413793103448276) internal successors, (72), 66 states have internal predecessors, (72), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:41,522 INFO L87 Difference]: Start difference. First operand 86 states. Second operand has 86 states, 58 states have (on average 1.2413793103448276) internal successors, (72), 66 states have internal predecessors, (72), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:41,525 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:41,525 INFO L93 Difference]: Finished difference Result 86 states and 100 transitions. [2022-02-20 23:43:41,525 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 100 transitions. [2022-02-20 23:43:41,525 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:41,525 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:41,526 INFO L74 IsIncluded]: Start isIncluded. First operand has 86 states, 58 states have (on average 1.2413793103448276) internal successors, (72), 66 states have internal predecessors, (72), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 86 states. [2022-02-20 23:43:41,526 INFO L87 Difference]: Start difference. First operand has 86 states, 58 states have (on average 1.2413793103448276) internal successors, (72), 66 states have internal predecessors, (72), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 86 states. [2022-02-20 23:43:41,529 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:41,529 INFO L93 Difference]: Finished difference Result 86 states and 100 transitions. [2022-02-20 23:43:41,529 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 100 transitions. [2022-02-20 23:43:41,530 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:41,530 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:41,530 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:41,530 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:41,530 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 86 states, 58 states have (on average 1.2413793103448276) internal successors, (72), 66 states have internal predecessors, (72), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:41,532 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 86 states to 86 states and 100 transitions. [2022-02-20 23:43:41,533 INFO L78 Accepts]: Start accepts. Automaton has 86 states and 100 transitions. Word has length 30 [2022-02-20 23:43:41,533 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:41,533 INFO L470 AbstractCegarLoop]: Abstraction has 86 states and 100 transitions. [2022-02-20 23:43:41,534 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 4 states have (on average 3.75) internal successors, (15), 5 states have internal predecessors, (15), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:41,534 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 100 transitions. [2022-02-20 23:43:41,534 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 32 [2022-02-20 23:43:41,535 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:41,535 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:41,535 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7 [2022-02-20 23:43:41,535 INFO L402 AbstractCegarLoop]: === Iteration 9 === Targeting checkErr3REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:41,535 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:41,536 INFO L85 PathProgramCache]: Analyzing trace with hash 1658275025, now seen corresponding path program 1 times [2022-02-20 23:43:41,536 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:41,536 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [898588186] [2022-02-20 23:43:41,536 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:41,536 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:41,552 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,676 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:41,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,693 INFO L290 TraceCheckUtils]: 0: Hoare triple {3143#true} ~cond := #in~cond; {3143#true} is VALID [2022-02-20 23:43:41,693 INFO L290 TraceCheckUtils]: 1: Hoare triple {3143#true} assume !(0 == ~cond); {3143#true} is VALID [2022-02-20 23:43:41,693 INFO L290 TraceCheckUtils]: 2: Hoare triple {3143#true} assume true; {3143#true} is VALID [2022-02-20 23:43:41,693 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3143#true} {3143#true} #82#return; {3143#true} is VALID [2022-02-20 23:43:41,694 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:41,695 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,698 INFO L290 TraceCheckUtils]: 0: Hoare triple {3143#true} ~cond := #in~cond; {3143#true} is VALID [2022-02-20 23:43:41,699 INFO L290 TraceCheckUtils]: 1: Hoare triple {3143#true} assume !(0 == ~cond); {3143#true} is VALID [2022-02-20 23:43:41,699 INFO L290 TraceCheckUtils]: 2: Hoare triple {3143#true} assume true; {3143#true} is VALID [2022-02-20 23:43:41,699 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3143#true} {3143#true} #84#return; {3143#true} is VALID [2022-02-20 23:43:41,699 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:43:41,701 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,704 INFO L290 TraceCheckUtils]: 0: Hoare triple {3143#true} ~cond := #in~cond; {3143#true} is VALID [2022-02-20 23:43:41,704 INFO L290 TraceCheckUtils]: 1: Hoare triple {3143#true} assume !(0 == ~cond); {3143#true} is VALID [2022-02-20 23:43:41,705 INFO L290 TraceCheckUtils]: 2: Hoare triple {3143#true} assume true; {3143#true} is VALID [2022-02-20 23:43:41,707 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3143#true} {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #90#return; {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:41,707 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:43:41,709 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:41,712 INFO L290 TraceCheckUtils]: 0: Hoare triple {3143#true} ~cond := #in~cond; {3143#true} is VALID [2022-02-20 23:43:41,712 INFO L290 TraceCheckUtils]: 1: Hoare triple {3143#true} assume !(0 == ~cond); {3143#true} is VALID [2022-02-20 23:43:41,712 INFO L290 TraceCheckUtils]: 2: Hoare triple {3143#true} assume true; {3143#true} is VALID [2022-02-20 23:43:41,713 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3143#true} {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #92#return; {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:41,713 INFO L290 TraceCheckUtils]: 0: Hoare triple {3143#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {3143#true} is VALID [2022-02-20 23:43:41,713 INFO L290 TraceCheckUtils]: 1: Hoare triple {3143#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {3143#true} is VALID [2022-02-20 23:43:41,714 INFO L272 TraceCheckUtils]: 2: Hoare triple {3143#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {3143#true} is VALID [2022-02-20 23:43:41,714 INFO L290 TraceCheckUtils]: 3: Hoare triple {3143#true} ~cond := #in~cond; {3143#true} is VALID [2022-02-20 23:43:41,714 INFO L290 TraceCheckUtils]: 4: Hoare triple {3143#true} assume !(0 == ~cond); {3143#true} is VALID [2022-02-20 23:43:41,714 INFO L290 TraceCheckUtils]: 5: Hoare triple {3143#true} assume true; {3143#true} is VALID [2022-02-20 23:43:41,714 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {3143#true} {3143#true} #82#return; {3143#true} is VALID [2022-02-20 23:43:41,714 INFO L290 TraceCheckUtils]: 7: Hoare triple {3143#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {3143#true} is VALID [2022-02-20 23:43:41,715 INFO L272 TraceCheckUtils]: 8: Hoare triple {3143#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {3143#true} is VALID [2022-02-20 23:43:41,715 INFO L290 TraceCheckUtils]: 9: Hoare triple {3143#true} ~cond := #in~cond; {3143#true} is VALID [2022-02-20 23:43:41,715 INFO L290 TraceCheckUtils]: 10: Hoare triple {3143#true} assume !(0 == ~cond); {3143#true} is VALID [2022-02-20 23:43:41,715 INFO L290 TraceCheckUtils]: 11: Hoare triple {3143#true} assume true; {3143#true} is VALID [2022-02-20 23:43:41,715 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {3143#true} {3143#true} #84#return; {3143#true} is VALID [2022-02-20 23:43:41,716 INFO L290 TraceCheckUtils]: 13: Hoare triple {3143#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {3153#(and (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0) (= (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|) (* |ULTIMATE.start_main_~n~0#1| 4)))} is VALID [2022-02-20 23:43:41,717 INFO L290 TraceCheckUtils]: 14: Hoare triple {3153#(and (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0) (= (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|) (* |ULTIMATE.start_main_~n~0#1| 4)))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {3154#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= (select |#length| |ULTIMATE.start_main_~a~0#1.base|) (* |ULTIMATE.start_main_~n~0#1| 4)))} is VALID [2022-02-20 23:43:41,718 INFO L272 TraceCheckUtils]: 15: Hoare triple {3154#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= (select |#length| |ULTIMATE.start_main_~a~0#1.base|) (* |ULTIMATE.start_main_~n~0#1| 4)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {3155#(and (= |check_#in~a.offset| 0) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)) (= |check_#in~x| 0))} is VALID [2022-02-20 23:43:41,718 INFO L290 TraceCheckUtils]: 16: Hoare triple {3155#(and (= |check_#in~a.offset| 0) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)) (= |check_#in~x| 0))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {3156#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:41,719 INFO L290 TraceCheckUtils]: 17: Hoare triple {3156#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume !(~x >= ~y); {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:41,719 INFO L272 TraceCheckUtils]: 18: Hoare triple {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {3143#true} is VALID [2022-02-20 23:43:41,719 INFO L290 TraceCheckUtils]: 19: Hoare triple {3143#true} ~cond := #in~cond; {3143#true} is VALID [2022-02-20 23:43:41,720 INFO L290 TraceCheckUtils]: 20: Hoare triple {3143#true} assume !(0 == ~cond); {3143#true} is VALID [2022-02-20 23:43:41,720 INFO L290 TraceCheckUtils]: 21: Hoare triple {3143#true} assume true; {3143#true} is VALID [2022-02-20 23:43:41,720 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {3143#true} {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #90#return; {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:41,721 INFO L272 TraceCheckUtils]: 23: Hoare triple {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {3143#true} is VALID [2022-02-20 23:43:41,721 INFO L290 TraceCheckUtils]: 24: Hoare triple {3143#true} ~cond := #in~cond; {3143#true} is VALID [2022-02-20 23:43:41,721 INFO L290 TraceCheckUtils]: 25: Hoare triple {3143#true} assume !(0 == ~cond); {3143#true} is VALID [2022-02-20 23:43:41,721 INFO L290 TraceCheckUtils]: 26: Hoare triple {3143#true} assume true; {3143#true} is VALID [2022-02-20 23:43:41,722 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3143#true} {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #92#return; {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:41,722 INFO L290 TraceCheckUtils]: 28: Hoare triple {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:41,723 INFO L290 TraceCheckUtils]: 29: Hoare triple {3157#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {3166#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:41,727 INFO L290 TraceCheckUtils]: 30: Hoare triple {3166#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~y) (= check_~a.offset 0))} assume !(4 + (~a.offset + 4 * ~y) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~y); {3144#false} is VALID [2022-02-20 23:43:41,727 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:41,727 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:41,727 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [898588186] [2022-02-20 23:43:41,728 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [898588186] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:41,728 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:41,728 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-02-20 23:43:41,728 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [755678590] [2022-02-20 23:43:41,728 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:41,729 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 7 states have internal predecessors, (16), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 31 [2022-02-20 23:43:41,729 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:41,729 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 8 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 7 states have internal predecessors, (16), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:41,748 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 25 edges. 25 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:41,749 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-02-20 23:43:41,749 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:41,749 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-02-20 23:43:41,749 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=41, Unknown=0, NotChecked=0, Total=56 [2022-02-20 23:43:41,750 INFO L87 Difference]: Start difference. First operand 86 states and 100 transitions. Second operand has 8 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 7 states have internal predecessors, (16), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,513 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:42,513 INFO L93 Difference]: Finished difference Result 99 states and 112 transitions. [2022-02-20 23:43:42,513 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-02-20 23:43:42,514 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 7 states have internal predecessors, (16), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 31 [2022-02-20 23:43:42,514 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:42,514 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 7 states have internal predecessors, (16), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,516 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 100 transitions. [2022-02-20 23:43:42,516 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 7 states have internal predecessors, (16), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,518 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 100 transitions. [2022-02-20 23:43:42,519 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 100 transitions. [2022-02-20 23:43:42,613 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 100 edges. 100 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:42,614 INFO L225 Difference]: With dead ends: 99 [2022-02-20 23:43:42,615 INFO L226 Difference]: Without dead ends: 99 [2022-02-20 23:43:42,615 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 19 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=35, Invalid=97, Unknown=0, NotChecked=0, Total=132 [2022-02-20 23:43:42,615 INFO L933 BasicCegarLoop]: 50 mSDtfsCounter, 71 mSDsluCounter, 174 mSDsCounter, 0 mSdLazyCounter, 245 mSolverCounterSat, 28 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 71 SdHoareTripleChecker+Valid, 224 SdHoareTripleChecker+Invalid, 273 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 28 IncrementalHoareTripleChecker+Valid, 245 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:42,616 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [71 Valid, 224 Invalid, 273 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [28 Valid, 245 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-02-20 23:43:42,616 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 99 states. [2022-02-20 23:43:42,619 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 99 to 86. [2022-02-20 23:43:42,619 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:42,619 INFO L82 GeneralOperation]: Start isEquivalent. First operand 99 states. Second operand has 86 states, 58 states have (on average 1.2241379310344827) internal successors, (71), 66 states have internal predecessors, (71), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:42,619 INFO L74 IsIncluded]: Start isIncluded. First operand 99 states. Second operand has 86 states, 58 states have (on average 1.2241379310344827) internal successors, (71), 66 states have internal predecessors, (71), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:42,620 INFO L87 Difference]: Start difference. First operand 99 states. Second operand has 86 states, 58 states have (on average 1.2241379310344827) internal successors, (71), 66 states have internal predecessors, (71), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:42,623 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:42,623 INFO L93 Difference]: Finished difference Result 99 states and 112 transitions. [2022-02-20 23:43:42,623 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 112 transitions. [2022-02-20 23:43:42,623 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:42,623 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:42,624 INFO L74 IsIncluded]: Start isIncluded. First operand has 86 states, 58 states have (on average 1.2241379310344827) internal successors, (71), 66 states have internal predecessors, (71), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 99 states. [2022-02-20 23:43:42,624 INFO L87 Difference]: Start difference. First operand has 86 states, 58 states have (on average 1.2241379310344827) internal successors, (71), 66 states have internal predecessors, (71), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 99 states. [2022-02-20 23:43:42,627 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:42,628 INFO L93 Difference]: Finished difference Result 99 states and 112 transitions. [2022-02-20 23:43:42,628 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 112 transitions. [2022-02-20 23:43:42,628 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:42,628 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:42,628 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:42,629 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:42,629 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 86 states, 58 states have (on average 1.2241379310344827) internal successors, (71), 66 states have internal predecessors, (71), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:42,631 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 86 states to 86 states and 99 transitions. [2022-02-20 23:43:42,631 INFO L78 Accepts]: Start accepts. Automaton has 86 states and 99 transitions. Word has length 31 [2022-02-20 23:43:42,632 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:42,632 INFO L470 AbstractCegarLoop]: Abstraction has 86 states and 99 transitions. [2022-02-20 23:43:42,632 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 6 states have (on average 2.6666666666666665) internal successors, (16), 7 states have internal predecessors, (16), 3 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,632 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 99 transitions. [2022-02-20 23:43:42,632 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-02-20 23:43:42,633 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:42,633 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:42,633 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8 [2022-02-20 23:43:42,633 INFO L402 AbstractCegarLoop]: === Iteration 10 === Targeting ULTIMATE.startErr5ASSERT_VIOLATIONMEMORY_FREE === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:42,633 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:42,634 INFO L85 PathProgramCache]: Analyzing trace with hash 922787578, now seen corresponding path program 1 times [2022-02-20 23:43:42,634 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:42,634 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [822480072] [2022-02-20 23:43:42,634 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:42,634 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:42,649 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,668 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:42,669 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,671 INFO L290 TraceCheckUtils]: 0: Hoare triple {3560#true} ~cond := #in~cond; {3560#true} is VALID [2022-02-20 23:43:42,671 INFO L290 TraceCheckUtils]: 1: Hoare triple {3560#true} assume !(0 == ~cond); {3560#true} is VALID [2022-02-20 23:43:42,672 INFO L290 TraceCheckUtils]: 2: Hoare triple {3560#true} assume true; {3560#true} is VALID [2022-02-20 23:43:42,672 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3560#true} {3560#true} #82#return; {3560#true} is VALID [2022-02-20 23:43:42,672 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:42,673 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,675 INFO L290 TraceCheckUtils]: 0: Hoare triple {3560#true} ~cond := #in~cond; {3560#true} is VALID [2022-02-20 23:43:42,675 INFO L290 TraceCheckUtils]: 1: Hoare triple {3560#true} assume !(0 == ~cond); {3560#true} is VALID [2022-02-20 23:43:42,675 INFO L290 TraceCheckUtils]: 2: Hoare triple {3560#true} assume true; {3560#true} is VALID [2022-02-20 23:43:42,676 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3560#true} {3560#true} #84#return; {3560#true} is VALID [2022-02-20 23:43:42,676 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 15 [2022-02-20 23:43:42,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,681 INFO L290 TraceCheckUtils]: 0: Hoare triple {3560#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {3560#true} is VALID [2022-02-20 23:43:42,681 INFO L290 TraceCheckUtils]: 1: Hoare triple {3560#true} assume ~x >= ~y;#res := ~x; {3560#true} is VALID [2022-02-20 23:43:42,681 INFO L290 TraceCheckUtils]: 2: Hoare triple {3560#true} assume true; {3560#true} is VALID [2022-02-20 23:43:42,683 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3560#true} {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} #86#return; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,683 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 25 [2022-02-20 23:43:42,684 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,687 INFO L290 TraceCheckUtils]: 0: Hoare triple {3560#true} ~cond := #in~cond; {3560#true} is VALID [2022-02-20 23:43:42,687 INFO L290 TraceCheckUtils]: 1: Hoare triple {3560#true} assume !(0 == ~cond); {3560#true} is VALID [2022-02-20 23:43:42,687 INFO L290 TraceCheckUtils]: 2: Hoare triple {3560#true} assume true; {3560#true} is VALID [2022-02-20 23:43:42,688 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3560#true} {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} #88#return; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,688 INFO L290 TraceCheckUtils]: 0: Hoare triple {3560#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {3560#true} is VALID [2022-02-20 23:43:42,688 INFO L290 TraceCheckUtils]: 1: Hoare triple {3560#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {3560#true} is VALID [2022-02-20 23:43:42,688 INFO L272 TraceCheckUtils]: 2: Hoare triple {3560#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {3560#true} is VALID [2022-02-20 23:43:42,688 INFO L290 TraceCheckUtils]: 3: Hoare triple {3560#true} ~cond := #in~cond; {3560#true} is VALID [2022-02-20 23:43:42,689 INFO L290 TraceCheckUtils]: 4: Hoare triple {3560#true} assume !(0 == ~cond); {3560#true} is VALID [2022-02-20 23:43:42,689 INFO L290 TraceCheckUtils]: 5: Hoare triple {3560#true} assume true; {3560#true} is VALID [2022-02-20 23:43:42,689 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {3560#true} {3560#true} #82#return; {3560#true} is VALID [2022-02-20 23:43:42,689 INFO L290 TraceCheckUtils]: 7: Hoare triple {3560#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {3560#true} is VALID [2022-02-20 23:43:42,689 INFO L272 TraceCheckUtils]: 8: Hoare triple {3560#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {3560#true} is VALID [2022-02-20 23:43:42,689 INFO L290 TraceCheckUtils]: 9: Hoare triple {3560#true} ~cond := #in~cond; {3560#true} is VALID [2022-02-20 23:43:42,690 INFO L290 TraceCheckUtils]: 10: Hoare triple {3560#true} assume !(0 == ~cond); {3560#true} is VALID [2022-02-20 23:43:42,690 INFO L290 TraceCheckUtils]: 11: Hoare triple {3560#true} assume true; {3560#true} is VALID [2022-02-20 23:43:42,690 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {3560#true} {3560#true} #84#return; {3560#true} is VALID [2022-02-20 23:43:42,696 INFO L290 TraceCheckUtils]: 13: Hoare triple {3560#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {3570#(<= (+ |ULTIMATE.start_main_#t~malloc14#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,696 INFO L290 TraceCheckUtils]: 14: Hoare triple {3570#(<= (+ |ULTIMATE.start_main_#t~malloc14#1.base| 1) |#StackHeapBarrier|)} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,697 INFO L272 TraceCheckUtils]: 15: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {3560#true} is VALID [2022-02-20 23:43:42,698 INFO L290 TraceCheckUtils]: 16: Hoare triple {3560#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {3560#true} is VALID [2022-02-20 23:43:42,698 INFO L290 TraceCheckUtils]: 17: Hoare triple {3560#true} assume ~x >= ~y;#res := ~x; {3560#true} is VALID [2022-02-20 23:43:42,699 INFO L290 TraceCheckUtils]: 18: Hoare triple {3560#true} assume true; {3560#true} is VALID [2022-02-20 23:43:42,700 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {3560#true} {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} #86#return; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,700 INFO L290 TraceCheckUtils]: 20: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} assume -2147483648 <= main_#t~ret15#1 && main_#t~ret15#1 <= 2147483647;main_~x~0#1 := main_#t~ret15#1;havoc main_#t~ret15#1; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,700 INFO L290 TraceCheckUtils]: 21: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} SUMMARY for call main_#t~mem16#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~0#1, 4); srcloc: L48 {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,701 INFO L290 TraceCheckUtils]: 22: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} main_~ai~1#1 := main_#t~mem16#1;havoc main_#t~mem16#1; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,703 INFO L290 TraceCheckUtils]: 23: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} SUMMARY for call main_#t~mem17#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~x~0#1, 4); srcloc: L49 {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,704 INFO L290 TraceCheckUtils]: 24: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} main_~ax~1#1 := main_#t~mem17#1;havoc main_#t~mem17#1; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,704 INFO L272 TraceCheckUtils]: 25: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} call __VERIFIER_assert((if main_~ai~1#1 <= main_~ax~1#1 then 1 else 0)); {3560#true} is VALID [2022-02-20 23:43:42,704 INFO L290 TraceCheckUtils]: 26: Hoare triple {3560#true} ~cond := #in~cond; {3560#true} is VALID [2022-02-20 23:43:42,704 INFO L290 TraceCheckUtils]: 27: Hoare triple {3560#true} assume !(0 == ~cond); {3560#true} is VALID [2022-02-20 23:43:42,704 INFO L290 TraceCheckUtils]: 28: Hoare triple {3560#true} assume true; {3560#true} is VALID [2022-02-20 23:43:42,705 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {3560#true} {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} #88#return; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,705 INFO L290 TraceCheckUtils]: 30: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} assume 0 == main_~a~0#1.offset; {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} is VALID [2022-02-20 23:43:42,706 INFO L290 TraceCheckUtils]: 31: Hoare triple {3571#(<= (+ |ULTIMATE.start_main_~a~0#1.base| 1) |#StackHeapBarrier|)} assume !(main_~a~0#1.base < #StackHeapBarrier); {3561#false} is VALID [2022-02-20 23:43:42,706 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 23:43:42,706 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:42,706 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [822480072] [2022-02-20 23:43:42,706 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [822480072] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:42,706 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:42,706 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-02-20 23:43:42,707 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1004377086] [2022-02-20 23:43:42,707 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:42,708 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 3 states have (on average 7.0) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 32 [2022-02-20 23:43:42,708 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:42,708 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 3 states have (on average 7.0) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,728 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 29 edges. 29 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:42,729 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 23:43:42,729 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:42,729 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 23:43:42,730 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 23:43:42,730 INFO L87 Difference]: Start difference. First operand 86 states and 99 transitions. Second operand has 4 states, 3 states have (on average 7.0) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,851 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:42,851 INFO L93 Difference]: Finished difference Result 85 states and 98 transitions. [2022-02-20 23:43:42,851 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 23:43:42,851 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 3 states have (on average 7.0) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 32 [2022-02-20 23:43:42,852 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:42,852 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 3 states have (on average 7.0) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,853 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 59 transitions. [2022-02-20 23:43:42,854 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 3 states have (on average 7.0) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,854 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 59 transitions. [2022-02-20 23:43:42,854 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 59 transitions. [2022-02-20 23:43:42,902 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:42,904 INFO L225 Difference]: With dead ends: 85 [2022-02-20 23:43:42,904 INFO L226 Difference]: Without dead ends: 85 [2022-02-20 23:43:42,904 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2022-02-20 23:43:42,905 INFO L933 BasicCegarLoop]: 52 mSDtfsCounter, 15 mSDsluCounter, 80 mSDsCounter, 0 mSdLazyCounter, 15 mSolverCounterSat, 2 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 15 SdHoareTripleChecker+Valid, 132 SdHoareTripleChecker+Invalid, 17 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 15 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:42,905 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [15 Valid, 132 Invalid, 17 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 15 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 23:43:42,906 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 85 states. [2022-02-20 23:43:42,908 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 85 to 85. [2022-02-20 23:43:42,908 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:42,908 INFO L82 GeneralOperation]: Start isEquivalent. First operand 85 states. Second operand has 85 states, 58 states have (on average 1.206896551724138) internal successors, (70), 65 states have internal predecessors, (70), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:42,909 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand has 85 states, 58 states have (on average 1.206896551724138) internal successors, (70), 65 states have internal predecessors, (70), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:42,909 INFO L87 Difference]: Start difference. First operand 85 states. Second operand has 85 states, 58 states have (on average 1.206896551724138) internal successors, (70), 65 states have internal predecessors, (70), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:42,911 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:42,911 INFO L93 Difference]: Finished difference Result 85 states and 98 transitions. [2022-02-20 23:43:42,911 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 98 transitions. [2022-02-20 23:43:42,911 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:42,912 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:42,912 INFO L74 IsIncluded]: Start isIncluded. First operand has 85 states, 58 states have (on average 1.206896551724138) internal successors, (70), 65 states have internal predecessors, (70), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 85 states. [2022-02-20 23:43:42,912 INFO L87 Difference]: Start difference. First operand has 85 states, 58 states have (on average 1.206896551724138) internal successors, (70), 65 states have internal predecessors, (70), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) Second operand 85 states. [2022-02-20 23:43:42,914 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:42,914 INFO L93 Difference]: Finished difference Result 85 states and 98 transitions. [2022-02-20 23:43:42,914 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 98 transitions. [2022-02-20 23:43:42,915 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:42,915 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:42,915 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:42,915 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:42,915 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 85 states, 58 states have (on average 1.206896551724138) internal successors, (70), 65 states have internal predecessors, (70), 13 states have call successors, (13), 6 states have call predecessors, (13), 7 states have return successors, (15), 13 states have call predecessors, (15), 13 states have call successors, (15) [2022-02-20 23:43:42,917 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 85 states to 85 states and 98 transitions. [2022-02-20 23:43:42,917 INFO L78 Accepts]: Start accepts. Automaton has 85 states and 98 transitions. Word has length 32 [2022-02-20 23:43:42,917 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:42,917 INFO L470 AbstractCegarLoop]: Abstraction has 85 states and 98 transitions. [2022-02-20 23:43:42,918 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 3 states have (on average 7.0) internal successors, (21), 4 states have internal predecessors, (21), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:42,918 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 98 transitions. [2022-02-20 23:43:42,918 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2022-02-20 23:43:42,918 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:42,918 INFO L514 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:42,919 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable9 [2022-02-20 23:43:42,919 INFO L402 AbstractCegarLoop]: === Iteration 11 === Targeting ULTIMATE.startErr7ASSERT_VIOLATIONMEMORY_LEAK === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:42,919 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:42,919 INFO L85 PathProgramCache]: Analyzing trace with hash 2035601245, now seen corresponding path program 1 times [2022-02-20 23:43:42,920 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:42,920 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [594898389] [2022-02-20 23:43:42,920 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:42,920 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:42,940 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,967 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:42,968 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,971 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~cond := #in~cond; {3924#true} is VALID [2022-02-20 23:43:42,971 INFO L290 TraceCheckUtils]: 1: Hoare triple {3924#true} assume !(0 == ~cond); {3924#true} is VALID [2022-02-20 23:43:42,971 INFO L290 TraceCheckUtils]: 2: Hoare triple {3924#true} assume true; {3924#true} is VALID [2022-02-20 23:43:42,972 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3924#true} {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} #82#return; {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} is VALID [2022-02-20 23:43:42,972 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:42,973 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,987 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~cond := #in~cond; {3924#true} is VALID [2022-02-20 23:43:42,987 INFO L290 TraceCheckUtils]: 1: Hoare triple {3924#true} assume !(0 == ~cond); {3924#true} is VALID [2022-02-20 23:43:42,987 INFO L290 TraceCheckUtils]: 2: Hoare triple {3924#true} assume true; {3924#true} is VALID [2022-02-20 23:43:42,988 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3924#true} {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} #84#return; {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} is VALID [2022-02-20 23:43:42,988 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 15 [2022-02-20 23:43:42,990 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,993 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {3924#true} is VALID [2022-02-20 23:43:42,993 INFO L290 TraceCheckUtils]: 1: Hoare triple {3924#true} assume ~x >= ~y;#res := ~x; {3924#true} is VALID [2022-02-20 23:43:42,993 INFO L290 TraceCheckUtils]: 2: Hoare triple {3924#true} assume true; {3924#true} is VALID [2022-02-20 23:43:42,994 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3924#true} {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} #86#return; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:42,994 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 25 [2022-02-20 23:43:42,996 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:42,999 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} ~cond := #in~cond; {3924#true} is VALID [2022-02-20 23:43:42,999 INFO L290 TraceCheckUtils]: 1: Hoare triple {3924#true} assume !(0 == ~cond); {3924#true} is VALID [2022-02-20 23:43:42,999 INFO L290 TraceCheckUtils]: 2: Hoare triple {3924#true} assume true; {3924#true} is VALID [2022-02-20 23:43:43,000 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3924#true} {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} #88#return; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,000 INFO L290 TraceCheckUtils]: 0: Hoare triple {3924#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {3924#true} is VALID [2022-02-20 23:43:43,000 INFO L290 TraceCheckUtils]: 1: Hoare triple {3924#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} is VALID [2022-02-20 23:43:43,001 INFO L272 TraceCheckUtils]: 2: Hoare triple {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {3924#true} is VALID [2022-02-20 23:43:43,001 INFO L290 TraceCheckUtils]: 3: Hoare triple {3924#true} ~cond := #in~cond; {3924#true} is VALID [2022-02-20 23:43:43,001 INFO L290 TraceCheckUtils]: 4: Hoare triple {3924#true} assume !(0 == ~cond); {3924#true} is VALID [2022-02-20 23:43:43,001 INFO L290 TraceCheckUtils]: 5: Hoare triple {3924#true} assume true; {3924#true} is VALID [2022-02-20 23:43:43,002 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {3924#true} {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} #82#return; {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} is VALID [2022-02-20 23:43:43,002 INFO L290 TraceCheckUtils]: 7: Hoare triple {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} is VALID [2022-02-20 23:43:43,002 INFO L272 TraceCheckUtils]: 8: Hoare triple {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {3924#true} is VALID [2022-02-20 23:43:43,002 INFO L290 TraceCheckUtils]: 9: Hoare triple {3924#true} ~cond := #in~cond; {3924#true} is VALID [2022-02-20 23:43:43,002 INFO L290 TraceCheckUtils]: 10: Hoare triple {3924#true} assume !(0 == ~cond); {3924#true} is VALID [2022-02-20 23:43:43,003 INFO L290 TraceCheckUtils]: 11: Hoare triple {3924#true} assume true; {3924#true} is VALID [2022-02-20 23:43:43,003 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {3924#true} {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} #84#return; {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} is VALID [2022-02-20 23:43:43,004 INFO L290 TraceCheckUtils]: 13: Hoare triple {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {3935#(= |ULTIMATE.start_main_old_#valid#1| (store |#valid| |ULTIMATE.start_main_#t~malloc14#1.base| 0))} is VALID [2022-02-20 23:43:43,005 INFO L290 TraceCheckUtils]: 14: Hoare triple {3935#(= |ULTIMATE.start_main_old_#valid#1| (store |#valid| |ULTIMATE.start_main_#t~malloc14#1.base| 0))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,005 INFO L272 TraceCheckUtils]: 15: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {3924#true} is VALID [2022-02-20 23:43:43,005 INFO L290 TraceCheckUtils]: 16: Hoare triple {3924#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {3924#true} is VALID [2022-02-20 23:43:43,005 INFO L290 TraceCheckUtils]: 17: Hoare triple {3924#true} assume ~x >= ~y;#res := ~x; {3924#true} is VALID [2022-02-20 23:43:43,005 INFO L290 TraceCheckUtils]: 18: Hoare triple {3924#true} assume true; {3924#true} is VALID [2022-02-20 23:43:43,006 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {3924#true} {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} #86#return; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,006 INFO L290 TraceCheckUtils]: 20: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} assume -2147483648 <= main_#t~ret15#1 && main_#t~ret15#1 <= 2147483647;main_~x~0#1 := main_#t~ret15#1;havoc main_#t~ret15#1; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,007 INFO L290 TraceCheckUtils]: 21: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} SUMMARY for call main_#t~mem16#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~0#1, 4); srcloc: L48 {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,007 INFO L290 TraceCheckUtils]: 22: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} main_~ai~1#1 := main_#t~mem16#1;havoc main_#t~mem16#1; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,007 INFO L290 TraceCheckUtils]: 23: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} SUMMARY for call main_#t~mem17#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~x~0#1, 4); srcloc: L49 {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,008 INFO L290 TraceCheckUtils]: 24: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} main_~ax~1#1 := main_#t~mem17#1;havoc main_#t~mem17#1; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,008 INFO L272 TraceCheckUtils]: 25: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} call __VERIFIER_assert((if main_~ai~1#1 <= main_~ax~1#1 then 1 else 0)); {3924#true} is VALID [2022-02-20 23:43:43,008 INFO L290 TraceCheckUtils]: 26: Hoare triple {3924#true} ~cond := #in~cond; {3924#true} is VALID [2022-02-20 23:43:43,008 INFO L290 TraceCheckUtils]: 27: Hoare triple {3924#true} assume !(0 == ~cond); {3924#true} is VALID [2022-02-20 23:43:43,008 INFO L290 TraceCheckUtils]: 28: Hoare triple {3924#true} assume true; {3924#true} is VALID [2022-02-20 23:43:43,009 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {3924#true} {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} #88#return; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,009 INFO L290 TraceCheckUtils]: 30: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} assume 0 == main_~a~0#1.offset; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,010 INFO L290 TraceCheckUtils]: 31: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} assume main_~a~0#1.base < #StackHeapBarrier; {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} is VALID [2022-02-20 23:43:43,010 INFO L290 TraceCheckUtils]: 32: Hoare triple {3936#(= (store |#valid| |ULTIMATE.start_main_~a~0#1.base| 0) |ULTIMATE.start_main_old_#valid#1|)} assume 0 == main_~a~0#1.base || 1 == #valid[main_~a~0#1.base];call ULTIMATE.dealloc(main_~a~0#1.base, main_~a~0#1.offset);main_#res#1 := main_~x~0#1; {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} is VALID [2022-02-20 23:43:43,010 INFO L290 TraceCheckUtils]: 33: Hoare triple {3926#(= |ULTIMATE.start_main_old_#valid#1| |#valid|)} assume !(#valid == main_old_#valid#1); {3925#false} is VALID [2022-02-20 23:43:43,011 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 23:43:43,011 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:43,011 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [594898389] [2022-02-20 23:43:43,011 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [594898389] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:43,011 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 23:43:43,011 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 23:43:43,012 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2073216614] [2022-02-20 23:43:43,012 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:43,012 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 4 states have (on average 5.75) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 34 [2022-02-20 23:43:43,012 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:43,013 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 5 states, 4 states have (on average 5.75) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:43,036 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 31 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:43,036 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-02-20 23:43:43,036 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:43,037 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-02-20 23:43:43,037 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 23:43:43,037 INFO L87 Difference]: Start difference. First operand 85 states and 98 transitions. Second operand has 5 states, 4 states have (on average 5.75) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:43,214 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:43,214 INFO L93 Difference]: Finished difference Result 84 states and 97 transitions. [2022-02-20 23:43:43,214 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-02-20 23:43:43,214 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 4 states have (on average 5.75) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 34 [2022-02-20 23:43:43,214 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:43,214 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 4 states have (on average 5.75) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:43,215 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2022-02-20 23:43:43,215 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 4 states have (on average 5.75) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:43,216 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2022-02-20 23:43:43,216 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 58 transitions. [2022-02-20 23:43:43,263 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:43,265 INFO L225 Difference]: With dead ends: 84 [2022-02-20 23:43:43,265 INFO L226 Difference]: Without dead ends: 70 [2022-02-20 23:43:43,265 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 10 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=25, Unknown=0, NotChecked=0, Total=42 [2022-02-20 23:43:43,266 INFO L933 BasicCegarLoop]: 50 mSDtfsCounter, 10 mSDsluCounter, 99 mSDsCounter, 0 mSdLazyCounter, 49 mSolverCounterSat, 4 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 10 SdHoareTripleChecker+Valid, 149 SdHoareTripleChecker+Invalid, 53 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 4 IncrementalHoareTripleChecker+Valid, 49 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:43,266 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [10 Valid, 149 Invalid, 53 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [4 Valid, 49 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 23:43:43,267 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2022-02-20 23:43:43,269 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 70. [2022-02-20 23:43:43,269 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:43,269 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand has 70 states, 46 states have (on average 1.2391304347826086) internal successors, (57), 53 states have internal predecessors, (57), 12 states have call successors, (12), 5 states have call predecessors, (12), 6 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) [2022-02-20 23:43:43,269 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand has 70 states, 46 states have (on average 1.2391304347826086) internal successors, (57), 53 states have internal predecessors, (57), 12 states have call successors, (12), 5 states have call predecessors, (12), 6 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) [2022-02-20 23:43:43,270 INFO L87 Difference]: Start difference. First operand 70 states. Second operand has 70 states, 46 states have (on average 1.2391304347826086) internal successors, (57), 53 states have internal predecessors, (57), 12 states have call successors, (12), 5 states have call predecessors, (12), 6 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) [2022-02-20 23:43:43,271 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:43,271 INFO L93 Difference]: Finished difference Result 70 states and 82 transitions. [2022-02-20 23:43:43,272 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 82 transitions. [2022-02-20 23:43:43,272 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:43,272 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:43,272 INFO L74 IsIncluded]: Start isIncluded. First operand has 70 states, 46 states have (on average 1.2391304347826086) internal successors, (57), 53 states have internal predecessors, (57), 12 states have call successors, (12), 5 states have call predecessors, (12), 6 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) Second operand 70 states. [2022-02-20 23:43:43,272 INFO L87 Difference]: Start difference. First operand has 70 states, 46 states have (on average 1.2391304347826086) internal successors, (57), 53 states have internal predecessors, (57), 12 states have call successors, (12), 5 states have call predecessors, (12), 6 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) Second operand 70 states. [2022-02-20 23:43:43,274 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:43,274 INFO L93 Difference]: Finished difference Result 70 states and 82 transitions. [2022-02-20 23:43:43,274 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 82 transitions. [2022-02-20 23:43:43,274 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:43,275 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:43,275 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:43,275 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:43,275 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 70 states, 46 states have (on average 1.2391304347826086) internal successors, (57), 53 states have internal predecessors, (57), 12 states have call successors, (12), 5 states have call predecessors, (12), 6 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) [2022-02-20 23:43:43,276 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 70 states to 70 states and 82 transitions. [2022-02-20 23:43:43,276 INFO L78 Accepts]: Start accepts. Automaton has 70 states and 82 transitions. Word has length 34 [2022-02-20 23:43:43,276 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:43,277 INFO L470 AbstractCegarLoop]: Abstraction has 70 states and 82 transitions. [2022-02-20 23:43:43,277 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 4 states have (on average 5.75) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (4), 1 states have call predecessors, (4), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:43,277 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 82 transitions. [2022-02-20 23:43:43,277 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-02-20 23:43:43,277 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:43,277 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:43,277 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable10 [2022-02-20 23:43:43,278 INFO L402 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONMEMORY_LEAK === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:43,278 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:43,278 INFO L85 PathProgramCache]: Analyzing trace with hash 287149833, now seen corresponding path program 1 times [2022-02-20 23:43:43,278 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:43,278 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [521951417] [2022-02-20 23:43:43,278 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:43,278 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:43,310 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:43,408 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:43,409 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:43,411 INFO L290 TraceCheckUtils]: 0: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:43,411 INFO L290 TraceCheckUtils]: 1: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:43,411 INFO L290 TraceCheckUtils]: 2: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:43,411 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4245#true} {4245#true} #82#return; {4245#true} is VALID [2022-02-20 23:43:43,411 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:43,412 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:43,414 INFO L290 TraceCheckUtils]: 0: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:43,415 INFO L290 TraceCheckUtils]: 1: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:43,415 INFO L290 TraceCheckUtils]: 2: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:43,415 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4245#true} {4245#true} #84#return; {4245#true} is VALID [2022-02-20 23:43:43,415 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:43:43,416 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:43,422 INFO L290 TraceCheckUtils]: 0: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:43,422 INFO L290 TraceCheckUtils]: 1: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:43,422 INFO L290 TraceCheckUtils]: 2: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:43,423 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4245#true} {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} #90#return; {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,423 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:43:43,424 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:43,427 INFO L290 TraceCheckUtils]: 0: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:43,427 INFO L290 TraceCheckUtils]: 1: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:43,427 INFO L290 TraceCheckUtils]: 2: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:43,427 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4245#true} {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} #92#return; {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,428 INFO L290 TraceCheckUtils]: 0: Hoare triple {4245#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L290 TraceCheckUtils]: 1: Hoare triple {4245#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L272 TraceCheckUtils]: 2: Hoare triple {4245#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L290 TraceCheckUtils]: 3: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L290 TraceCheckUtils]: 4: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L290 TraceCheckUtils]: 5: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {4245#true} {4245#true} #82#return; {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L290 TraceCheckUtils]: 7: Hoare triple {4245#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L272 TraceCheckUtils]: 8: Hoare triple {4245#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {4245#true} is VALID [2022-02-20 23:43:43,428 INFO L290 TraceCheckUtils]: 9: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:43,429 INFO L290 TraceCheckUtils]: 10: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:43,429 INFO L290 TraceCheckUtils]: 11: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:43,429 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {4245#true} {4245#true} #84#return; {4245#true} is VALID [2022-02-20 23:43:43,429 INFO L290 TraceCheckUtils]: 13: Hoare triple {4245#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {4245#true} is VALID [2022-02-20 23:43:43,429 INFO L290 TraceCheckUtils]: 14: Hoare triple {4245#true} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {4245#true} is VALID [2022-02-20 23:43:43,430 INFO L272 TraceCheckUtils]: 15: Hoare triple {4245#true} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {4255#(and (<= (+ |check_#in~y| 1) |check_#in~n|) (= |check_#in~x| 0))} is VALID [2022-02-20 23:43:43,430 INFO L290 TraceCheckUtils]: 16: Hoare triple {4255#(and (<= (+ |check_#in~y| 1) |check_#in~n|) (= |check_#in~x| 0))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,431 INFO L290 TraceCheckUtils]: 17: Hoare triple {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} assume !(~x >= ~y); {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,431 INFO L272 TraceCheckUtils]: 18: Hoare triple {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {4245#true} is VALID [2022-02-20 23:43:43,431 INFO L290 TraceCheckUtils]: 19: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:43,431 INFO L290 TraceCheckUtils]: 20: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:43,431 INFO L290 TraceCheckUtils]: 21: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:43,437 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4245#true} {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} #90#return; {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,437 INFO L272 TraceCheckUtils]: 23: Hoare triple {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {4245#true} is VALID [2022-02-20 23:43:43,437 INFO L290 TraceCheckUtils]: 24: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:43,437 INFO L290 TraceCheckUtils]: 25: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:43,437 INFO L290 TraceCheckUtils]: 26: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:43,438 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4245#true} {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} #92#return; {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,438 INFO L290 TraceCheckUtils]: 28: Hoare triple {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} ~x0~0 := ~x;~y0~0 := ~y; {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,439 INFO L290 TraceCheckUtils]: 29: Hoare triple {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,439 INFO L290 TraceCheckUtils]: 30: Hoare triple {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:43,440 INFO L290 TraceCheckUtils]: 31: Hoare triple {4256#(and (= check_~x 0) (<= (+ check_~y 1) check_~n))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} is VALID [2022-02-20 23:43:43,441 INFO L272 TraceCheckUtils]: 32: Hoare triple {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {4266#(and (<= 1 |check_#in~x|) (<= (+ |check_#in~y| 1) |check_#in~n|))} is VALID [2022-02-20 23:43:43,441 INFO L290 TraceCheckUtils]: 33: Hoare triple {4266#(and (<= 1 |check_#in~x|) (<= (+ |check_#in~y| 1) |check_#in~n|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} is VALID [2022-02-20 23:43:43,442 INFO L290 TraceCheckUtils]: 34: Hoare triple {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} assume !(~x >= ~y); {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} is VALID [2022-02-20 23:43:43,442 INFO L272 TraceCheckUtils]: 35: Hoare triple {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {4267#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-02-20 23:43:43,443 INFO L290 TraceCheckUtils]: 36: Hoare triple {4267#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {4268#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-02-20 23:43:43,443 INFO L290 TraceCheckUtils]: 37: Hoare triple {4268#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {4246#false} is VALID [2022-02-20 23:43:43,443 INFO L290 TraceCheckUtils]: 38: Hoare triple {4246#false} assume !false; {4246#false} is VALID [2022-02-20 23:43:43,443 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 2 proven. 3 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:43,444 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:43,444 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [521951417] [2022-02-20 23:43:43,444 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [521951417] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:43:43,444 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [709032102] [2022-02-20 23:43:43,444 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:43,444 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:43:43,444 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:43:43,451 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:43:43,458 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-02-20 23:43:43,516 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:43,518 INFO L263 TraceCheckSpWp]: Trace formula consists of 178 conjuncts, 16 conjunts are in the unsatisfiable core [2022-02-20 23:43:43,547 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:43,567 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:43:44,046 INFO L290 TraceCheckUtils]: 0: Hoare triple {4245#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {4245#true} is VALID [2022-02-20 23:43:44,046 INFO L290 TraceCheckUtils]: 1: Hoare triple {4245#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {4245#true} is VALID [2022-02-20 23:43:44,046 INFO L272 TraceCheckUtils]: 2: Hoare triple {4245#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {4245#true} is VALID [2022-02-20 23:43:44,046 INFO L290 TraceCheckUtils]: 3: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:44,046 INFO L290 TraceCheckUtils]: 4: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:44,046 INFO L290 TraceCheckUtils]: 5: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:44,046 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {4245#true} {4245#true} #82#return; {4245#true} is VALID [2022-02-20 23:43:44,047 INFO L290 TraceCheckUtils]: 7: Hoare triple {4245#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {4245#true} is VALID [2022-02-20 23:43:44,047 INFO L272 TraceCheckUtils]: 8: Hoare triple {4245#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {4245#true} is VALID [2022-02-20 23:43:44,047 INFO L290 TraceCheckUtils]: 9: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:44,047 INFO L290 TraceCheckUtils]: 10: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:44,047 INFO L290 TraceCheckUtils]: 11: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:44,047 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {4245#true} {4245#true} #84#return; {4245#true} is VALID [2022-02-20 23:43:44,047 INFO L290 TraceCheckUtils]: 13: Hoare triple {4245#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {4245#true} is VALID [2022-02-20 23:43:44,047 INFO L290 TraceCheckUtils]: 14: Hoare triple {4245#true} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {4245#true} is VALID [2022-02-20 23:43:44,048 INFO L272 TraceCheckUtils]: 15: Hoare triple {4245#true} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {4317#(and (<= (+ |check_#in~y| 1) |check_#in~n|) (<= 0 |check_#in~x|))} is VALID [2022-02-20 23:43:44,049 INFO L290 TraceCheckUtils]: 16: Hoare triple {4317#(and (<= (+ |check_#in~y| 1) |check_#in~n|) (<= 0 |check_#in~x|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:44,049 INFO L290 TraceCheckUtils]: 17: Hoare triple {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} assume !(~x >= ~y); {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:44,049 INFO L272 TraceCheckUtils]: 18: Hoare triple {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {4245#true} is VALID [2022-02-20 23:43:44,049 INFO L290 TraceCheckUtils]: 19: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:44,050 INFO L290 TraceCheckUtils]: 20: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:44,050 INFO L290 TraceCheckUtils]: 21: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:44,050 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4245#true} {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} #90#return; {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:44,050 INFO L272 TraceCheckUtils]: 23: Hoare triple {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {4245#true} is VALID [2022-02-20 23:43:44,050 INFO L290 TraceCheckUtils]: 24: Hoare triple {4245#true} ~cond := #in~cond; {4245#true} is VALID [2022-02-20 23:43:44,050 INFO L290 TraceCheckUtils]: 25: Hoare triple {4245#true} assume !(0 == ~cond); {4245#true} is VALID [2022-02-20 23:43:44,051 INFO L290 TraceCheckUtils]: 26: Hoare triple {4245#true} assume true; {4245#true} is VALID [2022-02-20 23:43:44,051 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4245#true} {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} #92#return; {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:44,052 INFO L290 TraceCheckUtils]: 28: Hoare triple {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} ~x0~0 := ~x;~y0~0 := ~y; {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:44,052 INFO L290 TraceCheckUtils]: 29: Hoare triple {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:44,053 INFO L290 TraceCheckUtils]: 30: Hoare triple {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} is VALID [2022-02-20 23:43:44,053 INFO L290 TraceCheckUtils]: 31: Hoare triple {4321#(and (<= 0 check_~x) (<= (+ check_~y 1) check_~n))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} is VALID [2022-02-20 23:43:44,054 INFO L272 TraceCheckUtils]: 32: Hoare triple {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {4266#(and (<= 1 |check_#in~x|) (<= (+ |check_#in~y| 1) |check_#in~n|))} is VALID [2022-02-20 23:43:44,055 INFO L290 TraceCheckUtils]: 33: Hoare triple {4266#(and (<= 1 |check_#in~x|) (<= (+ |check_#in~y| 1) |check_#in~n|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} is VALID [2022-02-20 23:43:44,055 INFO L290 TraceCheckUtils]: 34: Hoare triple {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} assume !(~x >= ~y); {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} is VALID [2022-02-20 23:43:44,056 INFO L272 TraceCheckUtils]: 35: Hoare triple {4265#(and (<= (+ check_~y 1) check_~n) (<= 1 check_~x))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {4379#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-02-20 23:43:44,056 INFO L290 TraceCheckUtils]: 36: Hoare triple {4379#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {4383#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-02-20 23:43:44,057 INFO L290 TraceCheckUtils]: 37: Hoare triple {4383#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4246#false} is VALID [2022-02-20 23:43:44,057 INFO L290 TraceCheckUtils]: 38: Hoare triple {4246#false} assume !false; {4246#false} is VALID [2022-02-20 23:43:44,057 INFO L134 CoverageAnalysis]: Checked inductivity of 17 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:44,057 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 23:43:44,057 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [709032102] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:44,057 INFO L191 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-02-20 23:43:44,057 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [8] total 12 [2022-02-20 23:43:44,058 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1111685432] [2022-02-20 23:43:44,058 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:44,058 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 2.75) internal successors, (22), 5 states have internal predecessors, (22), 3 states have call successors, (7), 4 states have call predecessors, (7), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 39 [2022-02-20 23:43:44,058 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:44,058 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 2.75) internal successors, (22), 5 states have internal predecessors, (22), 3 states have call successors, (7), 4 states have call predecessors, (7), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:44,089 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:44,089 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-02-20 23:43:44,090 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:44,090 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-02-20 23:43:44,090 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2022-02-20 23:43:44,091 INFO L87 Difference]: Start difference. First operand 70 states and 82 transitions. Second operand has 8 states, 8 states have (on average 2.75) internal successors, (22), 5 states have internal predecessors, (22), 3 states have call successors, (7), 4 states have call predecessors, (7), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:44,677 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:44,678 INFO L93 Difference]: Finished difference Result 87 states and 98 transitions. [2022-02-20 23:43:44,678 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-02-20 23:43:44,678 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 2.75) internal successors, (22), 5 states have internal predecessors, (22), 3 states have call successors, (7), 4 states have call predecessors, (7), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 39 [2022-02-20 23:43:44,678 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:44,678 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 2.75) internal successors, (22), 5 states have internal predecessors, (22), 3 states have call successors, (7), 4 states have call predecessors, (7), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:44,679 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 94 transitions. [2022-02-20 23:43:44,679 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 2.75) internal successors, (22), 5 states have internal predecessors, (22), 3 states have call successors, (7), 4 states have call predecessors, (7), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:44,680 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 94 transitions. [2022-02-20 23:43:44,680 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 94 transitions. [2022-02-20 23:43:44,761 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:44,762 INFO L225 Difference]: With dead ends: 87 [2022-02-20 23:43:44,762 INFO L226 Difference]: Without dead ends: 87 [2022-02-20 23:43:44,762 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 59 GetRequests, 45 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 15 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=51, Invalid=189, Unknown=0, NotChecked=0, Total=240 [2022-02-20 23:43:44,763 INFO L933 BasicCegarLoop]: 51 mSDtfsCounter, 73 mSDsluCounter, 190 mSDsCounter, 0 mSdLazyCounter, 129 mSolverCounterSat, 32 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 73 SdHoareTripleChecker+Valid, 241 SdHoareTripleChecker+Invalid, 161 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 32 IncrementalHoareTripleChecker+Valid, 129 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:44,763 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [73 Valid, 241 Invalid, 161 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [32 Valid, 129 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-02-20 23:43:44,763 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 87 states. [2022-02-20 23:43:44,766 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 87 to 74. [2022-02-20 23:43:44,766 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:44,766 INFO L82 GeneralOperation]: Start isEquivalent. First operand 87 states. Second operand has 74 states, 49 states have (on average 1.2244897959183674) internal successors, (60), 56 states have internal predecessors, (60), 12 states have call successors, (12), 6 states have call predecessors, (12), 7 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) [2022-02-20 23:43:44,766 INFO L74 IsIncluded]: Start isIncluded. First operand 87 states. Second operand has 74 states, 49 states have (on average 1.2244897959183674) internal successors, (60), 56 states have internal predecessors, (60), 12 states have call successors, (12), 6 states have call predecessors, (12), 7 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) [2022-02-20 23:43:44,766 INFO L87 Difference]: Start difference. First operand 87 states. Second operand has 74 states, 49 states have (on average 1.2244897959183674) internal successors, (60), 56 states have internal predecessors, (60), 12 states have call successors, (12), 6 states have call predecessors, (12), 7 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) [2022-02-20 23:43:44,768 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:44,768 INFO L93 Difference]: Finished difference Result 87 states and 98 transitions. [2022-02-20 23:43:44,768 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 98 transitions. [2022-02-20 23:43:44,769 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:44,769 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:44,769 INFO L74 IsIncluded]: Start isIncluded. First operand has 74 states, 49 states have (on average 1.2244897959183674) internal successors, (60), 56 states have internal predecessors, (60), 12 states have call successors, (12), 6 states have call predecessors, (12), 7 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) Second operand 87 states. [2022-02-20 23:43:44,769 INFO L87 Difference]: Start difference. First operand has 74 states, 49 states have (on average 1.2244897959183674) internal successors, (60), 56 states have internal predecessors, (60), 12 states have call successors, (12), 6 states have call predecessors, (12), 7 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) Second operand 87 states. [2022-02-20 23:43:44,771 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:44,771 INFO L93 Difference]: Finished difference Result 87 states and 98 transitions. [2022-02-20 23:43:44,772 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 98 transitions. [2022-02-20 23:43:44,772 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:44,772 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:44,772 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:44,772 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:44,772 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 74 states, 49 states have (on average 1.2244897959183674) internal successors, (60), 56 states have internal predecessors, (60), 12 states have call successors, (12), 6 states have call predecessors, (12), 7 states have return successors, (13), 11 states have call predecessors, (13), 12 states have call successors, (13) [2022-02-20 23:43:44,774 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 85 transitions. [2022-02-20 23:43:44,774 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 85 transitions. Word has length 39 [2022-02-20 23:43:44,774 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:44,774 INFO L470 AbstractCegarLoop]: Abstraction has 74 states and 85 transitions. [2022-02-20 23:43:44,774 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 2.75) internal successors, (22), 5 states have internal predecessors, (22), 3 states have call successors, (7), 4 states have call predecessors, (7), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 23:43:44,774 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 85 transitions. [2022-02-20 23:43:44,775 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-02-20 23:43:44,775 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:44,775 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:44,801 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Ended with exit code 0 [2022-02-20 23:43:44,994 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable11 [2022-02-20 23:43:44,994 INFO L402 AbstractCegarLoop]: === Iteration 13 === Targeting checkErr5REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:44,995 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:44,995 INFO L85 PathProgramCache]: Analyzing trace with hash 285681908, now seen corresponding path program 1 times [2022-02-20 23:43:44,995 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:44,995 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [509645661] [2022-02-20 23:43:44,995 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:44,995 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:45,016 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:45,128 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:45,130 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:45,132 INFO L290 TraceCheckUtils]: 0: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:45,132 INFO L290 TraceCheckUtils]: 1: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:45,133 INFO L290 TraceCheckUtils]: 2: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:45,133 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4732#true} {4732#true} #82#return; {4732#true} is VALID [2022-02-20 23:43:45,133 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:45,135 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:45,155 INFO L290 TraceCheckUtils]: 0: Hoare triple {4732#true} ~cond := #in~cond; {4760#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-02-20 23:43:45,156 INFO L290 TraceCheckUtils]: 1: Hoare triple {4760#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4761#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:45,156 INFO L290 TraceCheckUtils]: 2: Hoare triple {4761#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4761#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:45,157 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4761#(not (= |assume_abort_if_not_#in~cond| 0))} {4732#true} #84#return; {4742#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 23:43:45,158 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:43:45,159 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:45,162 INFO L290 TraceCheckUtils]: 0: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:45,162 INFO L290 TraceCheckUtils]: 1: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:45,162 INFO L290 TraceCheckUtils]: 2: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:45,163 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4732#true} {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} #90#return; {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,163 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:43:45,164 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:45,167 INFO L290 TraceCheckUtils]: 0: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:45,167 INFO L290 TraceCheckUtils]: 1: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:45,167 INFO L290 TraceCheckUtils]: 2: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:45,168 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4732#true} {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} #92#return; {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,168 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 32 [2022-02-20 23:43:45,170 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:45,173 INFO L290 TraceCheckUtils]: 0: Hoare triple {4732#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4732#true} is VALID [2022-02-20 23:43:45,173 INFO L290 TraceCheckUtils]: 1: Hoare triple {4732#true} assume ~x >= ~y;#res := ~x; {4732#true} is VALID [2022-02-20 23:43:45,173 INFO L290 TraceCheckUtils]: 2: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:45,174 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4732#true} {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #94#return; {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,174 INFO L290 TraceCheckUtils]: 0: Hoare triple {4732#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {4732#true} is VALID [2022-02-20 23:43:45,174 INFO L290 TraceCheckUtils]: 1: Hoare triple {4732#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {4732#true} is VALID [2022-02-20 23:43:45,175 INFO L272 TraceCheckUtils]: 2: Hoare triple {4732#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:45,175 INFO L290 TraceCheckUtils]: 3: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:45,175 INFO L290 TraceCheckUtils]: 4: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:45,175 INFO L290 TraceCheckUtils]: 5: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:45,175 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {4732#true} {4732#true} #82#return; {4732#true} is VALID [2022-02-20 23:43:45,175 INFO L290 TraceCheckUtils]: 7: Hoare triple {4732#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {4732#true} is VALID [2022-02-20 23:43:45,175 INFO L272 TraceCheckUtils]: 8: Hoare triple {4732#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:45,176 INFO L290 TraceCheckUtils]: 9: Hoare triple {4732#true} ~cond := #in~cond; {4760#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-02-20 23:43:45,176 INFO L290 TraceCheckUtils]: 10: Hoare triple {4760#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4761#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:45,177 INFO L290 TraceCheckUtils]: 11: Hoare triple {4761#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4761#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:45,177 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {4761#(not (= |assume_abort_if_not_#in~cond| 0))} {4732#true} #84#return; {4742#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 23:43:45,178 INFO L290 TraceCheckUtils]: 13: Hoare triple {4742#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {4743#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} is VALID [2022-02-20 23:43:45,179 INFO L290 TraceCheckUtils]: 14: Hoare triple {4743#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {4744#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 23:43:45,180 INFO L272 TraceCheckUtils]: 15: Hoare triple {4744#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {4745#(and (= |check_#in~a.offset| 0) (<= 0 |check_#in~i|) (<= |check_#in~i| |check_#in~y|))} is VALID [2022-02-20 23:43:45,180 INFO L290 TraceCheckUtils]: 16: Hoare triple {4745#(and (= |check_#in~a.offset| 0) (<= 0 |check_#in~i|) (<= |check_#in~i| |check_#in~y|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,181 INFO L290 TraceCheckUtils]: 17: Hoare triple {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} assume !(~x >= ~y); {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,181 INFO L272 TraceCheckUtils]: 18: Hoare triple {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:45,181 INFO L290 TraceCheckUtils]: 19: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:45,181 INFO L290 TraceCheckUtils]: 20: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:45,181 INFO L290 TraceCheckUtils]: 21: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:45,182 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4732#true} {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} #90#return; {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,182 INFO L272 TraceCheckUtils]: 23: Hoare triple {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:45,182 INFO L290 TraceCheckUtils]: 24: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:45,182 INFO L290 TraceCheckUtils]: 25: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:45,182 INFO L290 TraceCheckUtils]: 26: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:45,183 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4732#true} {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} #92#return; {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,183 INFO L290 TraceCheckUtils]: 28: Hoare triple {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,184 INFO L290 TraceCheckUtils]: 29: Hoare triple {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,185 INFO L290 TraceCheckUtils]: 30: Hoare triple {4746#(and (<= 0 check_~i) (<= check_~i check_~y) (= check_~a.offset 0))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,185 INFO L290 TraceCheckUtils]: 31: Hoare triple {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,185 INFO L272 TraceCheckUtils]: 32: Hoare triple {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {4732#true} is VALID [2022-02-20 23:43:45,186 INFO L290 TraceCheckUtils]: 33: Hoare triple {4732#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4732#true} is VALID [2022-02-20 23:43:45,186 INFO L290 TraceCheckUtils]: 34: Hoare triple {4732#true} assume ~x >= ~y;#res := ~x; {4732#true} is VALID [2022-02-20 23:43:45,186 INFO L290 TraceCheckUtils]: 35: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:45,187 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4732#true} {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #94#return; {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,187 INFO L290 TraceCheckUtils]: 37: Hoare triple {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:45,188 INFO L290 TraceCheckUtils]: 38: Hoare triple {4755#(and (<= 0 check_~i) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume !(4 + (~a.offset + 4 * ~i) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~i); {4733#false} is VALID [2022-02-20 23:43:45,188 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 3 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 23:43:45,188 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:45,188 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [509645661] [2022-02-20 23:43:45,189 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [509645661] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:43:45,189 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2033402892] [2022-02-20 23:43:45,189 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:45,189 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:43:45,189 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:43:45,192 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:43:45,222 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-02-20 23:43:45,261 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:45,263 INFO L263 TraceCheckSpWp]: Trace formula consists of 179 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 23:43:45,276 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:45,279 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:43:46,480 INFO L290 TraceCheckUtils]: 0: Hoare triple {4732#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L290 TraceCheckUtils]: 1: Hoare triple {4732#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L272 TraceCheckUtils]: 2: Hoare triple {4732#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L290 TraceCheckUtils]: 3: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L290 TraceCheckUtils]: 4: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L290 TraceCheckUtils]: 5: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {4732#true} {4732#true} #82#return; {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L290 TraceCheckUtils]: 7: Hoare triple {4732#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L272 TraceCheckUtils]: 8: Hoare triple {4732#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:46,481 INFO L290 TraceCheckUtils]: 9: Hoare triple {4732#true} ~cond := #in~cond; {4760#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-02-20 23:43:46,482 INFO L290 TraceCheckUtils]: 10: Hoare triple {4760#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4761#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:46,482 INFO L290 TraceCheckUtils]: 11: Hoare triple {4761#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4761#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:46,483 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {4761#(not (= |assume_abort_if_not_#in~cond| 0))} {4732#true} #84#return; {4801#(and (< |ULTIMATE.start_main_~i~0#1| |ULTIMATE.start_main_~n~0#1|) (<= 0 |ULTIMATE.start_main_~i~0#1|) (< |ULTIMATE.start_main_~n~0#1| 1073741824))} is VALID [2022-02-20 23:43:46,483 INFO L290 TraceCheckUtils]: 13: Hoare triple {4801#(and (< |ULTIMATE.start_main_~i~0#1| |ULTIMATE.start_main_~n~0#1|) (<= 0 |ULTIMATE.start_main_~i~0#1|) (< |ULTIMATE.start_main_~n~0#1| 1073741824))} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {4805#(and (<= 0 |ULTIMATE.start_main_#t~malloc14#1.offset|) (< |ULTIMATE.start_main_~i~0#1| |ULTIMATE.start_main_~n~0#1|) (<= 0 |ULTIMATE.start_main_~i~0#1|) (< |ULTIMATE.start_main_~n~0#1| 1073741824))} is VALID [2022-02-20 23:43:46,484 INFO L290 TraceCheckUtils]: 14: Hoare triple {4805#(and (<= 0 |ULTIMATE.start_main_#t~malloc14#1.offset|) (< |ULTIMATE.start_main_~i~0#1| |ULTIMATE.start_main_~n~0#1|) (<= 0 |ULTIMATE.start_main_~i~0#1|) (< |ULTIMATE.start_main_~n~0#1| 1073741824))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {4809#(and (<= 0 |ULTIMATE.start_main_~a~0#1.offset|) (< |ULTIMATE.start_main_~i~0#1| |ULTIMATE.start_main_~n~0#1|) (<= 0 |ULTIMATE.start_main_~i~0#1|) (< |ULTIMATE.start_main_~n~0#1| 1073741824))} is VALID [2022-02-20 23:43:46,485 INFO L272 TraceCheckUtils]: 15: Hoare triple {4809#(and (<= 0 |ULTIMATE.start_main_~a~0#1.offset|) (< |ULTIMATE.start_main_~i~0#1| |ULTIMATE.start_main_~n~0#1|) (<= 0 |ULTIMATE.start_main_~i~0#1|) (< |ULTIMATE.start_main_~n~0#1| 1073741824))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {4813#(and (< |check_#in~i| (+ |check_#in~y| 1)) (<= 0 |check_#in~i|) (< |check_#in~i| 1073741823) (<= 0 |check_#in~a.offset|))} is VALID [2022-02-20 23:43:46,485 INFO L290 TraceCheckUtils]: 16: Hoare triple {4813#(and (< |check_#in~i| (+ |check_#in~y| 1)) (<= 0 |check_#in~i|) (< |check_#in~i| 1073741823) (<= 0 |check_#in~a.offset|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} is VALID [2022-02-20 23:43:46,485 INFO L290 TraceCheckUtils]: 17: Hoare triple {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} assume !(~x >= ~y); {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} is VALID [2022-02-20 23:43:46,486 INFO L272 TraceCheckUtils]: 18: Hoare triple {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:46,486 INFO L290 TraceCheckUtils]: 19: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:46,486 INFO L290 TraceCheckUtils]: 20: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:46,486 INFO L290 TraceCheckUtils]: 21: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:46,486 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4732#true} {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} #90#return; {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} is VALID [2022-02-20 23:43:46,486 INFO L272 TraceCheckUtils]: 23: Hoare triple {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:46,486 INFO L290 TraceCheckUtils]: 24: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:46,487 INFO L290 TraceCheckUtils]: 25: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:46,487 INFO L290 TraceCheckUtils]: 26: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:46,488 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4732#true} {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} #92#return; {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} is VALID [2022-02-20 23:43:46,488 INFO L290 TraceCheckUtils]: 28: Hoare triple {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} ~x0~0 := ~x;~y0~0 := ~y; {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} is VALID [2022-02-20 23:43:46,489 INFO L290 TraceCheckUtils]: 29: Hoare triple {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} is VALID [2022-02-20 23:43:46,489 INFO L290 TraceCheckUtils]: 30: Hoare triple {4817#(and (<= 0 check_~i) (< check_~i (+ check_~y 1)) (<= 0 check_~a.offset) (< check_~i 1073741823))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} is VALID [2022-02-20 23:43:46,490 INFO L290 TraceCheckUtils]: 31: Hoare triple {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} is VALID [2022-02-20 23:43:46,491 INFO L272 TraceCheckUtils]: 32: Hoare triple {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {4867#(exists ((v_check_~a.base_BEFORE_CALL_1 Int) (aux_div_v_check_~a.offset_BEFORE_CALL_3_108 Int)) (and (<= (+ 4 (* aux_div_v_check_~a.offset_BEFORE_CALL_3_108 4)) (select |#length| v_check_~a.base_BEFORE_CALL_1)) (< 0 (+ aux_div_v_check_~a.offset_BEFORE_CALL_3_108 1))))} is VALID [2022-02-20 23:43:46,492 INFO L290 TraceCheckUtils]: 33: Hoare triple {4867#(exists ((v_check_~a.base_BEFORE_CALL_1 Int) (aux_div_v_check_~a.offset_BEFORE_CALL_3_108 Int)) (and (<= (+ 4 (* aux_div_v_check_~a.offset_BEFORE_CALL_3_108 4)) (select |#length| v_check_~a.base_BEFORE_CALL_1)) (< 0 (+ aux_div_v_check_~a.offset_BEFORE_CALL_3_108 1))))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4867#(exists ((v_check_~a.base_BEFORE_CALL_1 Int) (aux_div_v_check_~a.offset_BEFORE_CALL_3_108 Int)) (and (<= (+ 4 (* aux_div_v_check_~a.offset_BEFORE_CALL_3_108 4)) (select |#length| v_check_~a.base_BEFORE_CALL_1)) (< 0 (+ aux_div_v_check_~a.offset_BEFORE_CALL_3_108 1))))} is VALID [2022-02-20 23:43:46,493 INFO L290 TraceCheckUtils]: 34: Hoare triple {4867#(exists ((v_check_~a.base_BEFORE_CALL_1 Int) (aux_div_v_check_~a.offset_BEFORE_CALL_3_108 Int)) (and (<= (+ 4 (* aux_div_v_check_~a.offset_BEFORE_CALL_3_108 4)) (select |#length| v_check_~a.base_BEFORE_CALL_1)) (< 0 (+ aux_div_v_check_~a.offset_BEFORE_CALL_3_108 1))))} assume ~x >= ~y;#res := ~x; {4867#(exists ((v_check_~a.base_BEFORE_CALL_1 Int) (aux_div_v_check_~a.offset_BEFORE_CALL_3_108 Int)) (and (<= (+ 4 (* aux_div_v_check_~a.offset_BEFORE_CALL_3_108 4)) (select |#length| v_check_~a.base_BEFORE_CALL_1)) (< 0 (+ aux_div_v_check_~a.offset_BEFORE_CALL_3_108 1))))} is VALID [2022-02-20 23:43:46,494 INFO L290 TraceCheckUtils]: 35: Hoare triple {4867#(exists ((v_check_~a.base_BEFORE_CALL_1 Int) (aux_div_v_check_~a.offset_BEFORE_CALL_3_108 Int)) (and (<= (+ 4 (* aux_div_v_check_~a.offset_BEFORE_CALL_3_108 4)) (select |#length| v_check_~a.base_BEFORE_CALL_1)) (< 0 (+ aux_div_v_check_~a.offset_BEFORE_CALL_3_108 1))))} assume true; {4867#(exists ((v_check_~a.base_BEFORE_CALL_1 Int) (aux_div_v_check_~a.offset_BEFORE_CALL_3_108 Int)) (and (<= (+ 4 (* aux_div_v_check_~a.offset_BEFORE_CALL_3_108 4)) (select |#length| v_check_~a.base_BEFORE_CALL_1)) (< 0 (+ aux_div_v_check_~a.offset_BEFORE_CALL_3_108 1))))} is VALID [2022-02-20 23:43:46,495 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4867#(exists ((v_check_~a.base_BEFORE_CALL_1 Int) (aux_div_v_check_~a.offset_BEFORE_CALL_3_108 Int)) (and (<= (+ 4 (* aux_div_v_check_~a.offset_BEFORE_CALL_3_108 4)) (select |#length| v_check_~a.base_BEFORE_CALL_1)) (< 0 (+ aux_div_v_check_~a.offset_BEFORE_CALL_3_108 1))))} {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} #94#return; {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} is VALID [2022-02-20 23:43:46,499 INFO L290 TraceCheckUtils]: 37: Hoare triple {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} is VALID [2022-02-20 23:43:46,500 INFO L290 TraceCheckUtils]: 38: Hoare triple {4860#(and (<= 0 check_~i) (<= 0 check_~a.offset) (< check_~i 1073741823) (< check_~i (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} assume !(4 + (~a.offset + 4 * ~i) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~i); {4733#false} is VALID [2022-02-20 23:43:46,500 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 3 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 23:43:46,501 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 23:43:46,630 INFO L390 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 30 treesize of output 26 [2022-02-20 23:43:47,530 INFO L290 TraceCheckUtils]: 38: Hoare triple {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} assume !(4 + (~a.offset + 4 * ~i) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~i); {4733#false} is VALID [2022-02-20 23:43:47,531 INFO L290 TraceCheckUtils]: 37: Hoare triple {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} is VALID [2022-02-20 23:43:47,532 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4732#true} {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} #94#return; {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} is VALID [2022-02-20 23:43:47,532 INFO L290 TraceCheckUtils]: 35: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:47,532 INFO L290 TraceCheckUtils]: 34: Hoare triple {4732#true} assume ~x >= ~y;#res := ~x; {4732#true} is VALID [2022-02-20 23:43:47,532 INFO L290 TraceCheckUtils]: 33: Hoare triple {4732#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4732#true} is VALID [2022-02-20 23:43:47,533 INFO L272 TraceCheckUtils]: 32: Hoare triple {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {4732#true} is VALID [2022-02-20 23:43:47,533 INFO L290 TraceCheckUtils]: 31: Hoare triple {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} is VALID [2022-02-20 23:43:47,534 INFO L290 TraceCheckUtils]: 30: Hoare triple {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {4886#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (+ check_~a.offset (* 4 check_~i) 4) (select |#length| check_~a.base)))} is VALID [2022-02-20 23:43:47,535 INFO L290 TraceCheckUtils]: 29: Hoare triple {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} is VALID [2022-02-20 23:43:47,535 INFO L290 TraceCheckUtils]: 28: Hoare triple {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} ~x0~0 := ~x;~y0~0 := ~y; {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} is VALID [2022-02-20 23:43:47,536 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4732#true} {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} #92#return; {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} is VALID [2022-02-20 23:43:47,536 INFO L290 TraceCheckUtils]: 26: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:47,536 INFO L290 TraceCheckUtils]: 25: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:47,536 INFO L290 TraceCheckUtils]: 24: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:47,536 INFO L272 TraceCheckUtils]: 23: Hoare triple {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:47,537 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4732#true} {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} #90#return; {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} is VALID [2022-02-20 23:43:47,537 INFO L290 TraceCheckUtils]: 21: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:47,537 INFO L290 TraceCheckUtils]: 20: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:47,537 INFO L290 TraceCheckUtils]: 19: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:47,537 INFO L272 TraceCheckUtils]: 18: Hoare triple {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:47,538 INFO L290 TraceCheckUtils]: 17: Hoare triple {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} assume !(~x >= ~y); {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} is VALID [2022-02-20 23:43:47,538 INFO L290 TraceCheckUtils]: 16: Hoare triple {4954#(and (<= |check_#in~i| |check_#in~y|) (<= 0 (+ (* |check_#in~i| 4) |check_#in~a.offset|)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {4911#(and (<= 0 (+ check_~a.offset (* 4 check_~i))) (<= (* 4 check_~i) (* 4 check_~y)))} is VALID [2022-02-20 23:43:47,539 INFO L272 TraceCheckUtils]: 15: Hoare triple {4958#(and (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|) (<= 0 (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~i~0#1| 4))))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {4954#(and (<= |check_#in~i| |check_#in~y|) (<= 0 (+ (* |check_#in~i| 4) |check_#in~a.offset|)))} is VALID [2022-02-20 23:43:47,540 INFO L290 TraceCheckUtils]: 14: Hoare triple {4962#(and (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|) (<= 0 (+ |ULTIMATE.start_main_#t~malloc14#1.offset| (* |ULTIMATE.start_main_~i~0#1| 4))))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {4958#(and (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|) (<= 0 (+ |ULTIMATE.start_main_~a~0#1.offset| (* |ULTIMATE.start_main_~i~0#1| 4))))} is VALID [2022-02-20 23:43:47,541 INFO L290 TraceCheckUtils]: 13: Hoare triple {4742#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {4962#(and (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|) (<= 0 (+ |ULTIMATE.start_main_#t~malloc14#1.offset| (* |ULTIMATE.start_main_~i~0#1| 4))))} is VALID [2022-02-20 23:43:47,541 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {4761#(not (= |assume_abort_if_not_#in~cond| 0))} {4732#true} #84#return; {4742#(and (<= 0 |ULTIMATE.start_main_~i~0#1|) (<= (+ |ULTIMATE.start_main_~i~0#1| 1) |ULTIMATE.start_main_~n~0#1|))} is VALID [2022-02-20 23:43:47,542 INFO L290 TraceCheckUtils]: 11: Hoare triple {4761#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4761#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:47,542 INFO L290 TraceCheckUtils]: 10: Hoare triple {4978#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {4761#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-02-20 23:43:47,543 INFO L290 TraceCheckUtils]: 9: Hoare triple {4732#true} ~cond := #in~cond; {4978#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-02-20 23:43:47,543 INFO L272 TraceCheckUtils]: 8: Hoare triple {4732#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:47,543 INFO L290 TraceCheckUtils]: 7: Hoare triple {4732#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {4732#true} is VALID [2022-02-20 23:43:47,543 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {4732#true} {4732#true} #82#return; {4732#true} is VALID [2022-02-20 23:43:47,543 INFO L290 TraceCheckUtils]: 5: Hoare triple {4732#true} assume true; {4732#true} is VALID [2022-02-20 23:43:47,543 INFO L290 TraceCheckUtils]: 4: Hoare triple {4732#true} assume !(0 == ~cond); {4732#true} is VALID [2022-02-20 23:43:47,543 INFO L290 TraceCheckUtils]: 3: Hoare triple {4732#true} ~cond := #in~cond; {4732#true} is VALID [2022-02-20 23:43:47,543 INFO L272 TraceCheckUtils]: 2: Hoare triple {4732#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {4732#true} is VALID [2022-02-20 23:43:47,543 INFO L290 TraceCheckUtils]: 1: Hoare triple {4732#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {4732#true} is VALID [2022-02-20 23:43:47,543 INFO L290 TraceCheckUtils]: 0: Hoare triple {4732#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {4732#true} is VALID [2022-02-20 23:43:47,544 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 3 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-02-20 23:43:47,544 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2033402892] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 23:43:47,544 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 23:43:47,544 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10, 9] total 22 [2022-02-20 23:43:47,544 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2116528936] [2022-02-20 23:43:47,544 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 23:43:47,547 INFO L78 Accepts]: Start accepts. Automaton has has 23 states, 19 states have (on average 2.6315789473684212) internal successors, (50), 18 states have internal predecessors, (50), 10 states have call successors, (14), 5 states have call predecessors, (14), 3 states have return successors, (12), 9 states have call predecessors, (12), 7 states have call successors, (12) Word has length 39 [2022-02-20 23:43:47,547 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:47,547 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 23 states, 19 states have (on average 2.6315789473684212) internal successors, (50), 18 states have internal predecessors, (50), 10 states have call successors, (14), 5 states have call predecessors, (14), 3 states have return successors, (12), 9 states have call predecessors, (12), 7 states have call successors, (12) [2022-02-20 23:43:47,624 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:47,625 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 23 states [2022-02-20 23:43:47,625 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:47,625 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2022-02-20 23:43:47,625 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=441, Unknown=0, NotChecked=0, Total=506 [2022-02-20 23:43:47,626 INFO L87 Difference]: Start difference. First operand 74 states and 85 transitions. Second operand has 23 states, 19 states have (on average 2.6315789473684212) internal successors, (50), 18 states have internal predecessors, (50), 10 states have call successors, (14), 5 states have call predecessors, (14), 3 states have return successors, (12), 9 states have call predecessors, (12), 7 states have call successors, (12) [2022-02-20 23:43:48,918 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:48,918 INFO L93 Difference]: Finished difference Result 146 states and 181 transitions. [2022-02-20 23:43:48,918 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-02-20 23:43:48,918 INFO L78 Accepts]: Start accepts. Automaton has has 23 states, 19 states have (on average 2.6315789473684212) internal successors, (50), 18 states have internal predecessors, (50), 10 states have call successors, (14), 5 states have call predecessors, (14), 3 states have return successors, (12), 9 states have call predecessors, (12), 7 states have call successors, (12) Word has length 39 [2022-02-20 23:43:48,918 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:48,918 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 23 states, 19 states have (on average 2.6315789473684212) internal successors, (50), 18 states have internal predecessors, (50), 10 states have call successors, (14), 5 states have call predecessors, (14), 3 states have return successors, (12), 9 states have call predecessors, (12), 7 states have call successors, (12) [2022-02-20 23:43:48,920 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 105 transitions. [2022-02-20 23:43:48,920 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 23 states, 19 states have (on average 2.6315789473684212) internal successors, (50), 18 states have internal predecessors, (50), 10 states have call successors, (14), 5 states have call predecessors, (14), 3 states have return successors, (12), 9 states have call predecessors, (12), 7 states have call successors, (12) [2022-02-20 23:43:48,921 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 105 transitions. [2022-02-20 23:43:48,922 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 105 transitions. [2022-02-20 23:43:49,023 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 105 edges. 105 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:49,026 INFO L225 Difference]: With dead ends: 146 [2022-02-20 23:43:49,026 INFO L226 Difference]: Without dead ends: 144 [2022-02-20 23:43:49,026 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 107 GetRequests, 75 SyntacticMatches, 2 SemanticMatches, 30 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 165 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=144, Invalid=848, Unknown=0, NotChecked=0, Total=992 [2022-02-20 23:43:49,033 INFO L933 BasicCegarLoop]: 44 mSDtfsCounter, 123 mSDsluCounter, 454 mSDsCounter, 0 mSdLazyCounter, 268 mSolverCounterSat, 23 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 123 SdHoareTripleChecker+Valid, 498 SdHoareTripleChecker+Invalid, 351 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 23 IncrementalHoareTripleChecker+Valid, 268 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 60 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:49,034 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [123 Valid, 498 Invalid, 351 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [23 Valid, 268 Invalid, 0 Unknown, 60 Unchecked, 0.3s Time] [2022-02-20 23:43:49,034 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 144 states. [2022-02-20 23:43:49,038 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 144 to 116. [2022-02-20 23:43:49,038 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:49,039 INFO L82 GeneralOperation]: Start isEquivalent. First operand 144 states. Second operand has 116 states, 79 states have (on average 1.2531645569620253) internal successors, (99), 86 states have internal predecessors, (99), 22 states have call successors, (22), 8 states have call predecessors, (22), 9 states have return successors, (27), 21 states have call predecessors, (27), 22 states have call successors, (27) [2022-02-20 23:43:49,039 INFO L74 IsIncluded]: Start isIncluded. First operand 144 states. Second operand has 116 states, 79 states have (on average 1.2531645569620253) internal successors, (99), 86 states have internal predecessors, (99), 22 states have call successors, (22), 8 states have call predecessors, (22), 9 states have return successors, (27), 21 states have call predecessors, (27), 22 states have call successors, (27) [2022-02-20 23:43:49,039 INFO L87 Difference]: Start difference. First operand 144 states. Second operand has 116 states, 79 states have (on average 1.2531645569620253) internal successors, (99), 86 states have internal predecessors, (99), 22 states have call successors, (22), 8 states have call predecessors, (22), 9 states have return successors, (27), 21 states have call predecessors, (27), 22 states have call successors, (27) [2022-02-20 23:43:49,044 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:49,044 INFO L93 Difference]: Finished difference Result 144 states and 179 transitions. [2022-02-20 23:43:49,044 INFO L276 IsEmpty]: Start isEmpty. Operand 144 states and 179 transitions. [2022-02-20 23:43:49,045 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:49,045 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:49,045 INFO L74 IsIncluded]: Start isIncluded. First operand has 116 states, 79 states have (on average 1.2531645569620253) internal successors, (99), 86 states have internal predecessors, (99), 22 states have call successors, (22), 8 states have call predecessors, (22), 9 states have return successors, (27), 21 states have call predecessors, (27), 22 states have call successors, (27) Second operand 144 states. [2022-02-20 23:43:49,046 INFO L87 Difference]: Start difference. First operand has 116 states, 79 states have (on average 1.2531645569620253) internal successors, (99), 86 states have internal predecessors, (99), 22 states have call successors, (22), 8 states have call predecessors, (22), 9 states have return successors, (27), 21 states have call predecessors, (27), 22 states have call successors, (27) Second operand 144 states. [2022-02-20 23:43:49,049 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:49,050 INFO L93 Difference]: Finished difference Result 144 states and 179 transitions. [2022-02-20 23:43:49,050 INFO L276 IsEmpty]: Start isEmpty. Operand 144 states and 179 transitions. [2022-02-20 23:43:49,050 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:49,050 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:49,051 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:49,051 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:49,051 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 116 states, 79 states have (on average 1.2531645569620253) internal successors, (99), 86 states have internal predecessors, (99), 22 states have call successors, (22), 8 states have call predecessors, (22), 9 states have return successors, (27), 21 states have call predecessors, (27), 22 states have call successors, (27) [2022-02-20 23:43:49,054 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 116 states to 116 states and 148 transitions. [2022-02-20 23:43:49,054 INFO L78 Accepts]: Start accepts. Automaton has 116 states and 148 transitions. Word has length 39 [2022-02-20 23:43:49,054 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:49,054 INFO L470 AbstractCegarLoop]: Abstraction has 116 states and 148 transitions. [2022-02-20 23:43:49,054 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 23 states, 19 states have (on average 2.6315789473684212) internal successors, (50), 18 states have internal predecessors, (50), 10 states have call successors, (14), 5 states have call predecessors, (14), 3 states have return successors, (12), 9 states have call predecessors, (12), 7 states have call successors, (12) [2022-02-20 23:43:49,055 INFO L276 IsEmpty]: Start isEmpty. Operand 116 states and 148 transitions. [2022-02-20 23:43:49,055 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-02-20 23:43:49,055 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:49,055 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:49,082 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-02-20 23:43:49,271 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable12 [2022-02-20 23:43:49,271 INFO L402 AbstractCegarLoop]: === Iteration 14 === Targeting checkErr5REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:49,272 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:49,272 INFO L85 PathProgramCache]: Analyzing trace with hash -523664718, now seen corresponding path program 1 times [2022-02-20 23:43:49,272 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:49,272 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1102520357] [2022-02-20 23:43:49,272 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:49,272 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:49,298 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:49,378 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:49,380 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:49,382 INFO L290 TraceCheckUtils]: 0: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:49,382 INFO L290 TraceCheckUtils]: 1: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:49,383 INFO L290 TraceCheckUtils]: 2: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,383 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5577#true} {5577#true} #82#return; {5577#true} is VALID [2022-02-20 23:43:49,383 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:49,384 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:49,387 INFO L290 TraceCheckUtils]: 0: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:49,387 INFO L290 TraceCheckUtils]: 1: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:49,387 INFO L290 TraceCheckUtils]: 2: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,387 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5577#true} {5577#true} #84#return; {5577#true} is VALID [2022-02-20 23:43:49,387 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:43:49,389 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:49,391 INFO L290 TraceCheckUtils]: 0: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:49,391 INFO L290 TraceCheckUtils]: 1: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:49,391 INFO L290 TraceCheckUtils]: 2: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,392 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5577#true} {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} #90#return; {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:43:49,392 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:43:49,395 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:49,397 INFO L290 TraceCheckUtils]: 0: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:49,397 INFO L290 TraceCheckUtils]: 1: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:49,397 INFO L290 TraceCheckUtils]: 2: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,398 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5577#true} {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} #92#return; {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:43:49,398 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 32 [2022-02-20 23:43:49,400 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:49,403 INFO L290 TraceCheckUtils]: 0: Hoare triple {5577#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {5577#true} is VALID [2022-02-20 23:43:49,404 INFO L290 TraceCheckUtils]: 1: Hoare triple {5577#true} assume ~x >= ~y;#res := ~x; {5577#true} is VALID [2022-02-20 23:43:49,404 INFO L290 TraceCheckUtils]: 2: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,404 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5577#true} {5578#false} #94#return; {5578#false} is VALID [2022-02-20 23:43:49,404 INFO L290 TraceCheckUtils]: 0: Hoare triple {5577#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {5577#true} is VALID [2022-02-20 23:43:49,404 INFO L290 TraceCheckUtils]: 1: Hoare triple {5577#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {5577#true} is VALID [2022-02-20 23:43:49,404 INFO L272 TraceCheckUtils]: 2: Hoare triple {5577#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {5577#true} is VALID [2022-02-20 23:43:49,405 INFO L290 TraceCheckUtils]: 3: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:49,405 INFO L290 TraceCheckUtils]: 4: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:49,405 INFO L290 TraceCheckUtils]: 5: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,405 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {5577#true} {5577#true} #82#return; {5577#true} is VALID [2022-02-20 23:43:49,405 INFO L290 TraceCheckUtils]: 7: Hoare triple {5577#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {5577#true} is VALID [2022-02-20 23:43:49,405 INFO L272 TraceCheckUtils]: 8: Hoare triple {5577#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {5577#true} is VALID [2022-02-20 23:43:49,405 INFO L290 TraceCheckUtils]: 9: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:49,406 INFO L290 TraceCheckUtils]: 10: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:49,406 INFO L290 TraceCheckUtils]: 11: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,406 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {5577#true} {5577#true} #84#return; {5577#true} is VALID [2022-02-20 23:43:49,407 INFO L290 TraceCheckUtils]: 13: Hoare triple {5577#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {5587#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} is VALID [2022-02-20 23:43:49,407 INFO L290 TraceCheckUtils]: 14: Hoare triple {5587#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {5588#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} is VALID [2022-02-20 23:43:49,408 INFO L272 TraceCheckUtils]: 15: Hoare triple {5588#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {5589#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} is VALID [2022-02-20 23:43:49,409 INFO L290 TraceCheckUtils]: 16: Hoare triple {5589#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:43:49,410 INFO L290 TraceCheckUtils]: 17: Hoare triple {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} assume !(~x >= ~y); {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:43:49,410 INFO L272 TraceCheckUtils]: 18: Hoare triple {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {5577#true} is VALID [2022-02-20 23:43:49,410 INFO L290 TraceCheckUtils]: 19: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:49,410 INFO L290 TraceCheckUtils]: 20: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:49,410 INFO L290 TraceCheckUtils]: 21: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,411 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {5577#true} {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} #90#return; {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:43:49,411 INFO L272 TraceCheckUtils]: 23: Hoare triple {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {5577#true} is VALID [2022-02-20 23:43:49,411 INFO L290 TraceCheckUtils]: 24: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:49,411 INFO L290 TraceCheckUtils]: 25: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:49,411 INFO L290 TraceCheckUtils]: 26: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,412 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {5577#true} {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} #92#return; {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:43:49,413 INFO L290 TraceCheckUtils]: 28: Hoare triple {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} ~x0~0 := ~x;~y0~0 := ~y; {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:43:49,413 INFO L290 TraceCheckUtils]: 29: Hoare triple {5590#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {5599#(and (= |check_#t~mem5| 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0))} is VALID [2022-02-20 23:43:49,414 INFO L290 TraceCheckUtils]: 30: Hoare triple {5599#(and (= |check_#t~mem5| 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {5600#(and (= |check_#t~mem5| 0) (= |check_#t~mem6| 0))} is VALID [2022-02-20 23:43:49,414 INFO L290 TraceCheckUtils]: 31: Hoare triple {5600#(and (= |check_#t~mem5| 0) (= |check_#t~mem6| 0))} assume !(#t~mem5 <= #t~mem6);havoc #t~mem5;havoc #t~mem6;#t~post8 := ~y;~y := #t~post8 - 1;havoc #t~post8; {5578#false} is VALID [2022-02-20 23:43:49,414 INFO L272 TraceCheckUtils]: 32: Hoare triple {5578#false} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {5577#true} is VALID [2022-02-20 23:43:49,415 INFO L290 TraceCheckUtils]: 33: Hoare triple {5577#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {5577#true} is VALID [2022-02-20 23:43:49,415 INFO L290 TraceCheckUtils]: 34: Hoare triple {5577#true} assume ~x >= ~y;#res := ~x; {5577#true} is VALID [2022-02-20 23:43:49,415 INFO L290 TraceCheckUtils]: 35: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:49,415 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5577#true} {5578#false} #94#return; {5578#false} is VALID [2022-02-20 23:43:49,415 INFO L290 TraceCheckUtils]: 37: Hoare triple {5578#false} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {5578#false} is VALID [2022-02-20 23:43:49,415 INFO L290 TraceCheckUtils]: 38: Hoare triple {5578#false} assume !(4 + (~a.offset + 4 * ~i) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~i); {5578#false} is VALID [2022-02-20 23:43:49,416 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:49,416 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:49,416 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1102520357] [2022-02-20 23:43:49,416 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1102520357] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:43:49,416 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1507225902] [2022-02-20 23:43:49,416 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:49,416 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:43:49,417 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:43:49,418 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:43:49,419 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-02-20 23:43:49,480 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:49,481 INFO L263 TraceCheckSpWp]: Trace formula consists of 179 conjuncts, 13 conjunts are in the unsatisfiable core [2022-02-20 23:43:49,493 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:49,495 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:43:49,533 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 6 [2022-02-20 23:43:51,573 WARN L860 $PredicateComparison]: unable to prove that (exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |c_#memory_int| v_check_~a.base_BEFORE_CALL_3))) is different from true [2022-02-20 23:43:53,620 WARN L860 $PredicateComparison]: unable to prove that (exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |c_#memory_int| v_check_~a.base_BEFORE_CALL_4))) is different from true [2022-02-20 23:43:53,770 INFO L390 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 29 treesize of output 23 [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 0: Hoare triple {5577#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 1: Hoare triple {5577#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L272 TraceCheckUtils]: 2: Hoare triple {5577#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 3: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 4: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 5: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {5577#true} {5577#true} #82#return; {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 7: Hoare triple {5577#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L272 TraceCheckUtils]: 8: Hoare triple {5577#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 9: Hoare triple {5577#true} ~cond := #in~cond; {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 10: Hoare triple {5577#true} assume !(0 == ~cond); {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L290 TraceCheckUtils]: 11: Hoare triple {5577#true} assume true; {5577#true} is VALID [2022-02-20 23:43:53,897 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {5577#true} {5577#true} #84#return; {5577#true} is VALID [2022-02-20 23:43:53,898 INFO L290 TraceCheckUtils]: 13: Hoare triple {5577#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {5587#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} is VALID [2022-02-20 23:43:53,899 INFO L290 TraceCheckUtils]: 14: Hoare triple {5587#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {5588#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} is VALID [2022-02-20 23:43:53,900 INFO L272 TraceCheckUtils]: 15: Hoare triple {5588#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {5589#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} is VALID [2022-02-20 23:43:53,900 INFO L290 TraceCheckUtils]: 16: Hoare triple {5589#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:43:53,900 INFO L290 TraceCheckUtils]: 17: Hoare triple {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume !(~x >= ~y); {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:43:53,901 INFO L272 TraceCheckUtils]: 18: Hoare triple {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {5663#(exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_3)))} is VALID [2022-02-20 23:43:53,902 INFO L290 TraceCheckUtils]: 19: Hoare triple {5663#(exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_3)))} ~cond := #in~cond; {5663#(exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_3)))} is VALID [2022-02-20 23:43:53,902 INFO L290 TraceCheckUtils]: 20: Hoare triple {5663#(exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_3)))} assume !(0 == ~cond); {5663#(exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_3)))} is VALID [2022-02-20 23:43:53,902 INFO L290 TraceCheckUtils]: 21: Hoare triple {5663#(exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_3)))} assume true; {5663#(exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_3)))} is VALID [2022-02-20 23:43:53,903 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {5663#(exists ((v_check_~a.base_BEFORE_CALL_3 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_3)))} {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #90#return; {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:43:53,904 INFO L272 TraceCheckUtils]: 23: Hoare triple {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {5679#(exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_4)))} is VALID [2022-02-20 23:43:53,907 INFO L290 TraceCheckUtils]: 24: Hoare triple {5679#(exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_4)))} ~cond := #in~cond; {5679#(exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_4)))} is VALID [2022-02-20 23:43:53,908 INFO L290 TraceCheckUtils]: 25: Hoare triple {5679#(exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_4)))} assume !(0 == ~cond); {5679#(exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_4)))} is VALID [2022-02-20 23:43:53,908 INFO L290 TraceCheckUtils]: 26: Hoare triple {5679#(exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_4)))} assume true; {5679#(exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_4)))} is VALID [2022-02-20 23:43:53,909 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {5679#(exists ((v_check_~a.base_BEFORE_CALL_4 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_4)))} {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #92#return; {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:43:53,909 INFO L290 TraceCheckUtils]: 28: Hoare triple {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} ~x0~0 := ~x;~y0~0 := ~y; {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:43:53,910 INFO L290 TraceCheckUtils]: 29: Hoare triple {5656#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {5698#(and (exists ((check_~x Int)) (<= |check_#t~mem5| (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base)))} is VALID [2022-02-20 23:43:53,911 INFO L290 TraceCheckUtils]: 30: Hoare triple {5698#(and (exists ((check_~x Int)) (<= |check_#t~mem5| (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)))) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base)))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {5702#(exists ((check_~x Int) (check_~y Int) (check_~a.offset Int)) (and (<= (select ((as const (Array Int Int)) 0) (+ (* 4 check_~y) check_~a.offset)) |check_#t~mem6|) (<= |check_#t~mem5| (select ((as const (Array Int Int)) 0) (+ (* 4 check_~x) check_~a.offset)))))} is VALID [2022-02-20 23:43:53,911 INFO L290 TraceCheckUtils]: 31: Hoare triple {5702#(exists ((check_~x Int) (check_~y Int) (check_~a.offset Int)) (and (<= (select ((as const (Array Int Int)) 0) (+ (* 4 check_~y) check_~a.offset)) |check_#t~mem6|) (<= |check_#t~mem5| (select ((as const (Array Int Int)) 0) (+ (* 4 check_~x) check_~a.offset)))))} assume !(#t~mem5 <= #t~mem6);havoc #t~mem5;havoc #t~mem6;#t~post8 := ~y;~y := #t~post8 - 1;havoc #t~post8; {5578#false} is VALID [2022-02-20 23:43:53,911 INFO L272 TraceCheckUtils]: 32: Hoare triple {5578#false} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {5578#false} is VALID [2022-02-20 23:43:53,912 INFO L290 TraceCheckUtils]: 33: Hoare triple {5578#false} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {5578#false} is VALID [2022-02-20 23:43:53,912 INFO L290 TraceCheckUtils]: 34: Hoare triple {5578#false} assume ~x >= ~y;#res := ~x; {5578#false} is VALID [2022-02-20 23:43:53,912 INFO L290 TraceCheckUtils]: 35: Hoare triple {5578#false} assume true; {5578#false} is VALID [2022-02-20 23:43:53,912 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5578#false} {5578#false} #94#return; {5578#false} is VALID [2022-02-20 23:43:53,912 INFO L290 TraceCheckUtils]: 37: Hoare triple {5578#false} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {5578#false} is VALID [2022-02-20 23:43:53,912 INFO L290 TraceCheckUtils]: 38: Hoare triple {5578#false} assume !(4 + (~a.offset + 4 * ~i) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~i); {5578#false} is VALID [2022-02-20 23:43:53,912 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 10 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-02-20 23:43:53,912 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 23:43:53,912 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1507225902] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 23:43:53,913 INFO L191 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-02-20 23:43:53,913 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [8] total 13 [2022-02-20 23:43:53,913 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [741791929] [2022-02-20 23:43:53,913 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 23:43:53,913 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 9 states have internal predecessors, (25), 4 states have call successors, (6), 5 states have call predecessors, (6), 4 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 39 [2022-02-20 23:43:53,913 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:53,914 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 9 states have internal predecessors, (25), 4 states have call successors, (6), 5 states have call predecessors, (6), 4 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 23:43:53,952 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:53,952 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-02-20 23:43:53,952 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:53,953 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-02-20 23:43:53,953 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=89, Unknown=2, NotChecked=38, Total=156 [2022-02-20 23:43:53,953 INFO L87 Difference]: Start difference. First operand 116 states and 148 transitions. Second operand has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 9 states have internal predecessors, (25), 4 states have call successors, (6), 5 states have call predecessors, (6), 4 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 23:43:54,202 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:54,203 INFO L93 Difference]: Finished difference Result 96 states and 114 transitions. [2022-02-20 23:43:54,203 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-02-20 23:43:54,203 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 9 states have internal predecessors, (25), 4 states have call successors, (6), 5 states have call predecessors, (6), 4 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 39 [2022-02-20 23:43:54,203 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:43:54,203 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 9 states have internal predecessors, (25), 4 states have call successors, (6), 5 states have call predecessors, (6), 4 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 23:43:54,204 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 67 transitions. [2022-02-20 23:43:54,204 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 9 states have internal predecessors, (25), 4 states have call successors, (6), 5 states have call predecessors, (6), 4 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 23:43:54,205 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 67 transitions. [2022-02-20 23:43:54,205 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 67 transitions. [2022-02-20 23:43:54,264 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:54,265 INFO L225 Difference]: With dead ends: 96 [2022-02-20 23:43:54,265 INFO L226 Difference]: Without dead ends: 96 [2022-02-20 23:43:54,266 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 58 GetRequests, 43 SyntacticMatches, 2 SemanticMatches, 13 ConstructedPredicates, 2 IntricatePredicates, 0 DeprecatedPredicates, 5 ImplicationChecksByTransitivity, 4.1s TimeCoverageRelationStatistics Valid=36, Invalid=126, Unknown=2, NotChecked=46, Total=210 [2022-02-20 23:43:54,266 INFO L933 BasicCegarLoop]: 46 mSDtfsCounter, 12 mSDsluCounter, 158 mSDsCounter, 0 mSdLazyCounter, 54 mSolverCounterSat, 2 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 12 SdHoareTripleChecker+Valid, 204 SdHoareTripleChecker+Invalid, 205 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 54 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 149 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 23:43:54,266 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [12 Valid, 204 Invalid, 205 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 54 Invalid, 0 Unknown, 149 Unchecked, 0.0s Time] [2022-02-20 23:43:54,267 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2022-02-20 23:43:54,269 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 96. [2022-02-20 23:43:54,270 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:43:54,270 INFO L82 GeneralOperation]: Start isEquivalent. First operand 96 states. Second operand has 96 states, 66 states have (on average 1.2121212121212122) internal successors, (80), 71 states have internal predecessors, (80), 16 states have call successors, (16), 8 states have call predecessors, (16), 8 states have return successors, (18), 16 states have call predecessors, (18), 16 states have call successors, (18) [2022-02-20 23:43:54,270 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand has 96 states, 66 states have (on average 1.2121212121212122) internal successors, (80), 71 states have internal predecessors, (80), 16 states have call successors, (16), 8 states have call predecessors, (16), 8 states have return successors, (18), 16 states have call predecessors, (18), 16 states have call successors, (18) [2022-02-20 23:43:54,270 INFO L87 Difference]: Start difference. First operand 96 states. Second operand has 96 states, 66 states have (on average 1.2121212121212122) internal successors, (80), 71 states have internal predecessors, (80), 16 states have call successors, (16), 8 states have call predecessors, (16), 8 states have return successors, (18), 16 states have call predecessors, (18), 16 states have call successors, (18) [2022-02-20 23:43:54,273 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:54,273 INFO L93 Difference]: Finished difference Result 96 states and 114 transitions. [2022-02-20 23:43:54,273 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 114 transitions. [2022-02-20 23:43:54,273 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:54,273 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:54,274 INFO L74 IsIncluded]: Start isIncluded. First operand has 96 states, 66 states have (on average 1.2121212121212122) internal successors, (80), 71 states have internal predecessors, (80), 16 states have call successors, (16), 8 states have call predecessors, (16), 8 states have return successors, (18), 16 states have call predecessors, (18), 16 states have call successors, (18) Second operand 96 states. [2022-02-20 23:43:54,274 INFO L87 Difference]: Start difference. First operand has 96 states, 66 states have (on average 1.2121212121212122) internal successors, (80), 71 states have internal predecessors, (80), 16 states have call successors, (16), 8 states have call predecessors, (16), 8 states have return successors, (18), 16 states have call predecessors, (18), 16 states have call successors, (18) Second operand 96 states. [2022-02-20 23:43:54,276 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:43:54,276 INFO L93 Difference]: Finished difference Result 96 states and 114 transitions. [2022-02-20 23:43:54,277 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 114 transitions. [2022-02-20 23:43:54,277 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:43:54,277 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:43:54,277 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:43:54,277 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:43:54,278 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 96 states, 66 states have (on average 1.2121212121212122) internal successors, (80), 71 states have internal predecessors, (80), 16 states have call successors, (16), 8 states have call predecessors, (16), 8 states have return successors, (18), 16 states have call predecessors, (18), 16 states have call successors, (18) [2022-02-20 23:43:54,279 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 96 states to 96 states and 114 transitions. [2022-02-20 23:43:54,280 INFO L78 Accepts]: Start accepts. Automaton has 96 states and 114 transitions. Word has length 39 [2022-02-20 23:43:54,280 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:43:54,280 INFO L470 AbstractCegarLoop]: Abstraction has 96 states and 114 transitions. [2022-02-20 23:43:54,280 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 9 states have internal predecessors, (25), 4 states have call successors, (6), 5 states have call predecessors, (6), 4 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-02-20 23:43:54,280 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 114 transitions. [2022-02-20 23:43:54,281 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-02-20 23:43:54,281 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:43:54,281 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:43:54,309 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-02-20 23:43:54,506 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable13,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:43:54,506 INFO L402 AbstractCegarLoop]: === Iteration 15 === Targeting checkErr7REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:43:54,507 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:43:54,507 INFO L85 PathProgramCache]: Analyzing trace with hash -337593259, now seen corresponding path program 1 times [2022-02-20 23:43:54,507 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:43:54,507 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1091695558] [2022-02-20 23:43:54,507 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:54,507 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:43:54,532 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:54,675 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:43:54,676 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:54,679 INFO L290 TraceCheckUtils]: 0: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:54,679 INFO L290 TraceCheckUtils]: 1: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:54,679 INFO L290 TraceCheckUtils]: 2: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:54,679 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6114#true} {6114#true} #82#return; {6114#true} is VALID [2022-02-20 23:43:54,679 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:43:54,680 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:54,682 INFO L290 TraceCheckUtils]: 0: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:54,682 INFO L290 TraceCheckUtils]: 1: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:54,682 INFO L290 TraceCheckUtils]: 2: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:54,683 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6114#true} {6114#true} #84#return; {6114#true} is VALID [2022-02-20 23:43:54,683 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:43:54,685 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:54,691 INFO L290 TraceCheckUtils]: 0: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:54,691 INFO L290 TraceCheckUtils]: 1: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:54,691 INFO L290 TraceCheckUtils]: 2: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:54,692 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6114#true} {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} #90#return; {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,692 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:43:54,693 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:54,699 INFO L290 TraceCheckUtils]: 0: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:54,699 INFO L290 TraceCheckUtils]: 1: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:54,699 INFO L290 TraceCheckUtils]: 2: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:54,699 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6114#true} {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} #92#return; {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,700 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 32 [2022-02-20 23:43:54,702 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:54,741 INFO L290 TraceCheckUtils]: 0: Hoare triple {6114#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {6145#(and (= |check_#in~x| check_~x) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:43:54,742 INFO L290 TraceCheckUtils]: 1: Hoare triple {6145#(and (= |check_#in~x| check_~x) (= |check_#in~y| check_~y))} assume ~x >= ~y;#res := ~x; {6146#(and (<= |check_#in~y| |check_#res|) (<= |check_#res| |check_#in~x|))} is VALID [2022-02-20 23:43:54,742 INFO L290 TraceCheckUtils]: 2: Hoare triple {6146#(and (<= |check_#in~y| |check_#res|) (<= |check_#res| |check_#in~x|))} assume true; {6146#(and (<= |check_#in~y| |check_#res|) (<= |check_#res| |check_#in~x|))} is VALID [2022-02-20 23:43:54,744 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6146#(and (<= |check_#in~y| |check_#res|) (<= |check_#res| |check_#in~x|))} {6138#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~y) (= check_~a.offset 0))} #94#return; {6143#(and (<= 1 |check_#t~ret9|) (<= (+ (* |check_#t~ret9| 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 0: Hoare triple {6114#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 1: Hoare triple {6114#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L272 TraceCheckUtils]: 2: Hoare triple {6114#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 3: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 4: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 5: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {6114#true} {6114#true} #82#return; {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 7: Hoare triple {6114#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L272 TraceCheckUtils]: 8: Hoare triple {6114#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 9: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 10: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:54,744 INFO L290 TraceCheckUtils]: 11: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:54,745 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {6114#true} {6114#true} #84#return; {6114#true} is VALID [2022-02-20 23:43:54,745 INFO L290 TraceCheckUtils]: 13: Hoare triple {6114#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {6124#(= |ULTIMATE.start_main_#t~malloc14#1.offset| 0)} is VALID [2022-02-20 23:43:54,745 INFO L290 TraceCheckUtils]: 14: Hoare triple {6124#(= |ULTIMATE.start_main_#t~malloc14#1.offset| 0)} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {6125#(= |ULTIMATE.start_main_~a~0#1.offset| 0)} is VALID [2022-02-20 23:43:54,746 INFO L272 TraceCheckUtils]: 15: Hoare triple {6125#(= |ULTIMATE.start_main_~a~0#1.offset| 0)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {6126#(and (= |check_#in~a.offset| 0) (= |check_#in~x| 0))} is VALID [2022-02-20 23:43:54,747 INFO L290 TraceCheckUtils]: 16: Hoare triple {6126#(and (= |check_#in~a.offset| 0) (= |check_#in~x| 0))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {6127#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,747 INFO L290 TraceCheckUtils]: 17: Hoare triple {6127#(and (= check_~x 0) (= check_~a.offset 0))} assume !(~x >= ~y); {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,747 INFO L272 TraceCheckUtils]: 18: Hoare triple {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:54,747 INFO L290 TraceCheckUtils]: 19: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:54,747 INFO L290 TraceCheckUtils]: 20: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:54,747 INFO L290 TraceCheckUtils]: 21: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:54,748 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6114#true} {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} #90#return; {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,748 INFO L272 TraceCheckUtils]: 23: Hoare triple {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:54,748 INFO L290 TraceCheckUtils]: 24: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:54,748 INFO L290 TraceCheckUtils]: 25: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:54,748 INFO L290 TraceCheckUtils]: 26: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:54,749 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {6114#true} {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} #92#return; {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,749 INFO L290 TraceCheckUtils]: 28: Hoare triple {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,750 INFO L290 TraceCheckUtils]: 29: Hoare triple {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,750 INFO L290 TraceCheckUtils]: 30: Hoare triple {6128#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {6137#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0) (<= (+ (* 4 check_~x) check_~a.offset 8) (select |#length| check_~a.base)))} is VALID [2022-02-20 23:43:54,751 INFO L290 TraceCheckUtils]: 31: Hoare triple {6137#(and (<= (+ check_~x 1) check_~y) (= check_~x 0) (= check_~a.offset 0) (<= (+ (* 4 check_~x) check_~a.offset 8) (select |#length| check_~a.base)))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {6138#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,751 INFO L272 TraceCheckUtils]: 32: Hoare triple {6138#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~y) (= check_~a.offset 0))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {6114#true} is VALID [2022-02-20 23:43:54,751 INFO L290 TraceCheckUtils]: 33: Hoare triple {6114#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {6145#(and (= |check_#in~x| check_~x) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:43:54,752 INFO L290 TraceCheckUtils]: 34: Hoare triple {6145#(and (= |check_#in~x| check_~x) (= |check_#in~y| check_~y))} assume ~x >= ~y;#res := ~x; {6146#(and (<= |check_#in~y| |check_#res|) (<= |check_#res| |check_#in~x|))} is VALID [2022-02-20 23:43:54,752 INFO L290 TraceCheckUtils]: 35: Hoare triple {6146#(and (<= |check_#in~y| |check_#res|) (<= |check_#res| |check_#in~x|))} assume true; {6146#(and (<= |check_#in~y| |check_#res|) (<= |check_#res| |check_#in~x|))} is VALID [2022-02-20 23:43:54,753 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {6146#(and (<= |check_#in~y| |check_#res|) (<= |check_#res| |check_#in~x|))} {6138#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~y) (= check_~a.offset 0))} #94#return; {6143#(and (<= 1 |check_#t~ret9|) (<= (+ (* |check_#t~ret9| 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,754 INFO L290 TraceCheckUtils]: 37: Hoare triple {6143#(and (<= 1 |check_#t~ret9|) (<= (+ (* |check_#t~ret9| 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {6144#(and (<= 1 check_~x1~0) (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,754 INFO L290 TraceCheckUtils]: 38: Hoare triple {6144#(and (<= 1 check_~x1~0) (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} SUMMARY for call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i, 4); srcloc: L33 {6144#(and (<= 1 check_~x1~0) (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,755 INFO L290 TraceCheckUtils]: 39: Hoare triple {6144#(and (<= 1 check_~x1~0) (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} ~ai~0 := #t~mem10;havoc #t~mem10; {6144#(and (<= 1 check_~x1~0) (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:43:54,755 INFO L290 TraceCheckUtils]: 40: Hoare triple {6144#(and (<= 1 check_~x1~0) (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume !(4 + (~a.offset + 4 * ~x1~0) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~x1~0); {6115#false} is VALID [2022-02-20 23:43:54,756 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:54,756 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:43:54,756 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1091695558] [2022-02-20 23:43:54,756 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1091695558] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:43:54,756 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1564080006] [2022-02-20 23:43:54,756 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:43:54,756 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:43:54,756 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:43:54,757 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:43:54,758 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-02-20 23:43:54,823 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:54,825 INFO L263 TraceCheckSpWp]: Trace formula consists of 187 conjuncts, 21 conjunts are in the unsatisfiable core [2022-02-20 23:43:54,846 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:43:54,848 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:43:55,982 INFO L290 TraceCheckUtils]: 0: Hoare triple {6114#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {6114#true} is VALID [2022-02-20 23:43:55,983 INFO L290 TraceCheckUtils]: 1: Hoare triple {6114#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {6114#true} is VALID [2022-02-20 23:43:55,983 INFO L272 TraceCheckUtils]: 2: Hoare triple {6114#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:55,983 INFO L290 TraceCheckUtils]: 3: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:55,983 INFO L290 TraceCheckUtils]: 4: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:55,983 INFO L290 TraceCheckUtils]: 5: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:55,983 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {6114#true} {6114#true} #82#return; {6114#true} is VALID [2022-02-20 23:43:55,983 INFO L290 TraceCheckUtils]: 7: Hoare triple {6114#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {6114#true} is VALID [2022-02-20 23:43:55,984 INFO L272 TraceCheckUtils]: 8: Hoare triple {6114#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:55,984 INFO L290 TraceCheckUtils]: 9: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:55,984 INFO L290 TraceCheckUtils]: 10: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:55,984 INFO L290 TraceCheckUtils]: 11: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:55,984 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {6114#true} {6114#true} #84#return; {6114#true} is VALID [2022-02-20 23:43:55,985 INFO L290 TraceCheckUtils]: 13: Hoare triple {6114#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {6189#(<= 0 |ULTIMATE.start_main_#t~malloc14#1.offset|)} is VALID [2022-02-20 23:43:55,985 INFO L290 TraceCheckUtils]: 14: Hoare triple {6189#(<= 0 |ULTIMATE.start_main_#t~malloc14#1.offset|)} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {6193#(<= 0 |ULTIMATE.start_main_~a~0#1.offset|)} is VALID [2022-02-20 23:43:55,987 INFO L272 TraceCheckUtils]: 15: Hoare triple {6193#(<= 0 |ULTIMATE.start_main_~a~0#1.offset|)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {6197#(and (<= 0 |check_#in~x|) (<= 0 |check_#in~a.offset|))} is VALID [2022-02-20 23:43:55,987 INFO L290 TraceCheckUtils]: 16: Hoare triple {6197#(and (<= 0 |check_#in~x|) (<= 0 |check_#in~a.offset|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {6201#(and (<= 0 check_~x) (<= 0 check_~a.offset))} is VALID [2022-02-20 23:43:55,988 INFO L290 TraceCheckUtils]: 17: Hoare triple {6201#(and (<= 0 check_~x) (<= 0 check_~a.offset))} assume !(~x >= ~y); {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} is VALID [2022-02-20 23:43:55,988 INFO L272 TraceCheckUtils]: 18: Hoare triple {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:55,988 INFO L290 TraceCheckUtils]: 19: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:55,988 INFO L290 TraceCheckUtils]: 20: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:55,988 INFO L290 TraceCheckUtils]: 21: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:55,989 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6114#true} {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} #90#return; {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} is VALID [2022-02-20 23:43:55,989 INFO L272 TraceCheckUtils]: 23: Hoare triple {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:55,989 INFO L290 TraceCheckUtils]: 24: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:55,990 INFO L290 TraceCheckUtils]: 25: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:55,990 INFO L290 TraceCheckUtils]: 26: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:55,991 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {6114#true} {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} #92#return; {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} is VALID [2022-02-20 23:43:55,991 INFO L290 TraceCheckUtils]: 28: Hoare triple {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} ~x0~0 := ~x;~y0~0 := ~y; {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} is VALID [2022-02-20 23:43:55,992 INFO L290 TraceCheckUtils]: 29: Hoare triple {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} is VALID [2022-02-20 23:43:55,993 INFO L290 TraceCheckUtils]: 30: Hoare triple {6205#(and (<= 0 check_~x) (<= 0 check_~a.offset) (not (<= check_~y check_~x)))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {6245#(and (<= 0 check_~x) (<= 0 check_~a.offset) (< check_~x (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4)))} is VALID [2022-02-20 23:43:55,994 INFO L290 TraceCheckUtils]: 31: Hoare triple {6245#(and (<= 0 check_~x) (<= 0 check_~a.offset) (< check_~x (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4)))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {6249#(and (<= 0 check_~a.offset) (<= 1 check_~x) (< check_~x (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} is VALID [2022-02-20 23:43:55,996 INFO L272 TraceCheckUtils]: 32: Hoare triple {6249#(and (<= 0 check_~a.offset) (<= 1 check_~x) (< check_~x (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {6253#(exists ((aux_div_v_check_~a.offset_BEFORE_CALL_9_108 Int) (v_check_~a.base_BEFORE_CALL_5 Int)) (and (< 0 aux_div_v_check_~a.offset_BEFORE_CALL_9_108) (<= (+ (* aux_div_v_check_~a.offset_BEFORE_CALL_9_108 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_5))))} is VALID [2022-02-20 23:43:55,996 INFO L290 TraceCheckUtils]: 33: Hoare triple {6253#(exists ((aux_div_v_check_~a.offset_BEFORE_CALL_9_108 Int) (v_check_~a.base_BEFORE_CALL_5 Int)) (and (< 0 aux_div_v_check_~a.offset_BEFORE_CALL_9_108) (<= (+ (* aux_div_v_check_~a.offset_BEFORE_CALL_9_108 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_5))))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {6257#(and (= |check_#in~x| check_~x) (exists ((aux_div_v_check_~a.offset_BEFORE_CALL_9_108 Int) (v_check_~a.base_BEFORE_CALL_5 Int)) (and (< 0 aux_div_v_check_~a.offset_BEFORE_CALL_9_108) (<= (+ (* aux_div_v_check_~a.offset_BEFORE_CALL_9_108 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_5)))))} is VALID [2022-02-20 23:43:55,997 INFO L290 TraceCheckUtils]: 34: Hoare triple {6257#(and (= |check_#in~x| check_~x) (exists ((aux_div_v_check_~a.offset_BEFORE_CALL_9_108 Int) (v_check_~a.base_BEFORE_CALL_5 Int)) (and (< 0 aux_div_v_check_~a.offset_BEFORE_CALL_9_108) (<= (+ (* aux_div_v_check_~a.offset_BEFORE_CALL_9_108 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_5)))))} assume ~x >= ~y;#res := ~x; {6261#(and (exists ((aux_div_v_check_~a.offset_BEFORE_CALL_9_108 Int) (v_check_~a.base_BEFORE_CALL_5 Int)) (and (< 0 aux_div_v_check_~a.offset_BEFORE_CALL_9_108) (<= (+ (* aux_div_v_check_~a.offset_BEFORE_CALL_9_108 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_5)))) (= |check_#res| |check_#in~x|))} is VALID [2022-02-20 23:43:55,998 INFO L290 TraceCheckUtils]: 35: Hoare triple {6261#(and (exists ((aux_div_v_check_~a.offset_BEFORE_CALL_9_108 Int) (v_check_~a.base_BEFORE_CALL_5 Int)) (and (< 0 aux_div_v_check_~a.offset_BEFORE_CALL_9_108) (<= (+ (* aux_div_v_check_~a.offset_BEFORE_CALL_9_108 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_5)))) (= |check_#res| |check_#in~x|))} assume true; {6261#(and (exists ((aux_div_v_check_~a.offset_BEFORE_CALL_9_108 Int) (v_check_~a.base_BEFORE_CALL_5 Int)) (and (< 0 aux_div_v_check_~a.offset_BEFORE_CALL_9_108) (<= (+ (* aux_div_v_check_~a.offset_BEFORE_CALL_9_108 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_5)))) (= |check_#res| |check_#in~x|))} is VALID [2022-02-20 23:43:56,000 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {6261#(and (exists ((aux_div_v_check_~a.offset_BEFORE_CALL_9_108 Int) (v_check_~a.base_BEFORE_CALL_5 Int)) (and (< 0 aux_div_v_check_~a.offset_BEFORE_CALL_9_108) (<= (+ (* aux_div_v_check_~a.offset_BEFORE_CALL_9_108 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_5)))) (= |check_#res| |check_#in~x|))} {6249#(and (<= 0 check_~a.offset) (<= 1 check_~x) (< check_~x (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} #94#return; {6268#(and (<= 0 check_~a.offset) (< |check_#t~ret9| (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)) (<= 1 |check_#t~ret9|))} is VALID [2022-02-20 23:43:56,000 INFO L290 TraceCheckUtils]: 37: Hoare triple {6268#(and (<= 0 check_~a.offset) (< |check_#t~ret9| (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)) (<= 1 |check_#t~ret9|))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {6272#(and (<= 0 check_~a.offset) (<= 1 check_~x1~0) (< check_~x1~0 (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} is VALID [2022-02-20 23:43:56,001 INFO L290 TraceCheckUtils]: 38: Hoare triple {6272#(and (<= 0 check_~a.offset) (<= 1 check_~x1~0) (< check_~x1~0 (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} SUMMARY for call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i, 4); srcloc: L33 {6272#(and (<= 0 check_~a.offset) (<= 1 check_~x1~0) (< check_~x1~0 (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} is VALID [2022-02-20 23:43:56,002 INFO L290 TraceCheckUtils]: 39: Hoare triple {6272#(and (<= 0 check_~a.offset) (<= 1 check_~x1~0) (< check_~x1~0 (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} ~ai~0 := #t~mem10;havoc #t~mem10; {6272#(and (<= 0 check_~a.offset) (<= 1 check_~x1~0) (< check_~x1~0 (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} is VALID [2022-02-20 23:43:56,003 INFO L290 TraceCheckUtils]: 40: Hoare triple {6272#(and (<= 0 check_~a.offset) (<= 1 check_~x1~0) (< check_~x1~0 (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1)))} assume !(4 + (~a.offset + 4 * ~x1~0) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~x1~0); {6115#false} is VALID [2022-02-20 23:43:56,003 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:56,003 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 23:43:56,563 INFO L390 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 31 treesize of output 27 [2022-02-20 23:43:57,273 INFO L290 TraceCheckUtils]: 40: Hoare triple {6282#(and (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* check_~x1~0 4) check_~a.offset)))} assume !(4 + (~a.offset + 4 * ~x1~0) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~x1~0); {6115#false} is VALID [2022-02-20 23:43:57,273 INFO L290 TraceCheckUtils]: 39: Hoare triple {6282#(and (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* check_~x1~0 4) check_~a.offset)))} ~ai~0 := #t~mem10;havoc #t~mem10; {6282#(and (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* check_~x1~0 4) check_~a.offset)))} is VALID [2022-02-20 23:43:57,274 INFO L290 TraceCheckUtils]: 38: Hoare triple {6282#(and (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* check_~x1~0 4) check_~a.offset)))} SUMMARY for call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i, 4); srcloc: L33 {6282#(and (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* check_~x1~0 4) check_~a.offset)))} is VALID [2022-02-20 23:43:57,274 INFO L290 TraceCheckUtils]: 37: Hoare triple {6292#(and (<= 0 (+ (* |check_#t~ret9| 4) check_~a.offset)) (<= (+ (* |check_#t~ret9| 4) check_~a.offset 4) (select |#length| check_~a.base)))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {6282#(and (<= (+ (* check_~x1~0 4) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* check_~x1~0 4) check_~a.offset)))} is VALID [2022-02-20 23:43:57,276 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {6300#(and (or (<= (* |check_#in~x| 4) (* |check_#res| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))) (or (<= (* |check_#res| 4) (* |check_#in~x| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))))} {6296#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} #94#return; {6292#(and (<= 0 (+ (* |check_#t~ret9| 4) check_~a.offset)) (<= (+ (* |check_#t~ret9| 4) check_~a.offset 4) (select |#length| check_~a.base)))} is VALID [2022-02-20 23:43:57,279 INFO L290 TraceCheckUtils]: 35: Hoare triple {6300#(and (or (<= (* |check_#in~x| 4) (* |check_#res| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))) (or (<= (* |check_#res| 4) (* |check_#in~x| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))))} assume true; {6300#(and (or (<= (* |check_#in~x| 4) (* |check_#res| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))) (or (<= (* |check_#res| 4) (* |check_#in~x| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))))} is VALID [2022-02-20 23:43:57,279 INFO L290 TraceCheckUtils]: 34: Hoare triple {6307#(and (or (<= (* 4 check_~x) (* |check_#in~x| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))) (or (<= (* |check_#in~x| 4) (* 4 check_~x)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))))} assume ~x >= ~y;#res := ~x; {6300#(and (or (<= (* |check_#in~x| 4) (* |check_#res| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))) (or (<= (* |check_#res| 4) (* |check_#in~x| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))))} is VALID [2022-02-20 23:43:57,280 INFO L290 TraceCheckUtils]: 33: Hoare triple {6114#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {6307#(and (or (<= (* 4 check_~x) (* |check_#in~x| 4)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))) (or (<= (* |check_#in~x| 4) (* 4 check_~x)) (forall ((v_check_~a.base_BEFORE_CALL_6 Int)) (< (select |#length| v_check_~a.base_BEFORE_CALL_6) 4))))} is VALID [2022-02-20 23:43:57,280 INFO L272 TraceCheckUtils]: 32: Hoare triple {6296#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {6114#true} is VALID [2022-02-20 23:43:57,288 INFO L290 TraceCheckUtils]: 31: Hoare triple {6314#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) check_~a.offset 8) (select |#length| check_~a.base)))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {6296#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} is VALID [2022-02-20 23:43:57,289 INFO L290 TraceCheckUtils]: 30: Hoare triple {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {6314#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) check_~a.offset 8) (select |#length| check_~a.base)))} is VALID [2022-02-20 23:43:57,289 INFO L290 TraceCheckUtils]: 29: Hoare triple {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} is VALID [2022-02-20 23:43:57,290 INFO L290 TraceCheckUtils]: 28: Hoare triple {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} ~x0~0 := ~x;~y0~0 := ~y; {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} is VALID [2022-02-20 23:43:57,291 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {6114#true} {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} #92#return; {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} is VALID [2022-02-20 23:43:57,291 INFO L290 TraceCheckUtils]: 26: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:57,291 INFO L290 TraceCheckUtils]: 25: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:57,291 INFO L290 TraceCheckUtils]: 24: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:57,291 INFO L272 TraceCheckUtils]: 23: Hoare triple {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:57,292 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6114#true} {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} #90#return; {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} is VALID [2022-02-20 23:43:57,292 INFO L290 TraceCheckUtils]: 21: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:57,292 INFO L290 TraceCheckUtils]: 20: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:57,292 INFO L290 TraceCheckUtils]: 19: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:57,292 INFO L272 TraceCheckUtils]: 18: Hoare triple {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:57,293 INFO L290 TraceCheckUtils]: 17: Hoare triple {6358#(<= 0 (+ (* 4 check_~x) check_~a.offset 4))} assume !(~x >= ~y); {6318#(and (<= 0 (+ (* 4 check_~x) check_~a.offset 4)) (<= (+ (* 4 check_~x) 4) (* 4 check_~y)))} is VALID [2022-02-20 23:43:57,294 INFO L290 TraceCheckUtils]: 16: Hoare triple {6362#(<= (div (+ |check_#in~a.offset| 4) (- 4)) |check_#in~x|)} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {6358#(<= 0 (+ (* 4 check_~x) check_~a.offset 4))} is VALID [2022-02-20 23:43:57,295 INFO L272 TraceCheckUtils]: 15: Hoare triple {6366#(<= (div |ULTIMATE.start_main_~a~0#1.offset| (- 4)) 1)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {6362#(<= (div (+ |check_#in~a.offset| 4) (- 4)) |check_#in~x|)} is VALID [2022-02-20 23:43:57,296 INFO L290 TraceCheckUtils]: 14: Hoare triple {6370#(<= (div (+ (- 4) |ULTIMATE.start_main_#t~malloc14#1.offset|) (- 4)) 2)} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {6366#(<= (div |ULTIMATE.start_main_~a~0#1.offset| (- 4)) 1)} is VALID [2022-02-20 23:43:57,297 INFO L290 TraceCheckUtils]: 13: Hoare triple {6114#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {6370#(<= (div (+ (- 4) |ULTIMATE.start_main_#t~malloc14#1.offset|) (- 4)) 2)} is VALID [2022-02-20 23:43:57,297 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {6114#true} {6114#true} #84#return; {6114#true} is VALID [2022-02-20 23:43:57,297 INFO L290 TraceCheckUtils]: 11: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:57,297 INFO L290 TraceCheckUtils]: 10: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:57,297 INFO L290 TraceCheckUtils]: 9: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:57,297 INFO L272 TraceCheckUtils]: 8: Hoare triple {6114#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:57,297 INFO L290 TraceCheckUtils]: 7: Hoare triple {6114#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {6114#true} is VALID [2022-02-20 23:43:57,298 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {6114#true} {6114#true} #82#return; {6114#true} is VALID [2022-02-20 23:43:57,298 INFO L290 TraceCheckUtils]: 5: Hoare triple {6114#true} assume true; {6114#true} is VALID [2022-02-20 23:43:57,298 INFO L290 TraceCheckUtils]: 4: Hoare triple {6114#true} assume !(0 == ~cond); {6114#true} is VALID [2022-02-20 23:43:57,298 INFO L290 TraceCheckUtils]: 3: Hoare triple {6114#true} ~cond := #in~cond; {6114#true} is VALID [2022-02-20 23:43:57,298 INFO L272 TraceCheckUtils]: 2: Hoare triple {6114#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {6114#true} is VALID [2022-02-20 23:43:57,298 INFO L290 TraceCheckUtils]: 1: Hoare triple {6114#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {6114#true} is VALID [2022-02-20 23:43:57,298 INFO L290 TraceCheckUtils]: 0: Hoare triple {6114#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {6114#true} is VALID [2022-02-20 23:43:57,299 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:43:57,299 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1564080006] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 23:43:57,299 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 23:43:57,299 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 13, 12] total 35 [2022-02-20 23:43:57,299 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1002146905] [2022-02-20 23:43:57,300 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 23:43:57,301 INFO L78 Accepts]: Start accepts. Automaton has has 36 states, 29 states have (on average 1.8620689655172413) internal successors, (54), 29 states have internal predecessors, (54), 10 states have call successors, (14), 5 states have call predecessors, (14), 4 states have return successors, (11), 7 states have call predecessors, (11), 7 states have call successors, (11) Word has length 41 [2022-02-20 23:43:57,301 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:43:57,301 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 36 states, 29 states have (on average 1.8620689655172413) internal successors, (54), 29 states have internal predecessors, (54), 10 states have call successors, (14), 5 states have call predecessors, (14), 4 states have return successors, (11), 7 states have call predecessors, (11), 7 states have call successors, (11) [2022-02-20 23:43:57,382 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:43:57,383 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 36 states [2022-02-20 23:43:57,383 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:43:57,383 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 36 interpolants. [2022-02-20 23:43:57,383 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=127, Invalid=1133, Unknown=0, NotChecked=0, Total=1260 [2022-02-20 23:43:57,384 INFO L87 Difference]: Start difference. First operand 96 states and 114 transitions. Second operand has 36 states, 29 states have (on average 1.8620689655172413) internal successors, (54), 29 states have internal predecessors, (54), 10 states have call successors, (14), 5 states have call predecessors, (14), 4 states have return successors, (11), 7 states have call predecessors, (11), 7 states have call successors, (11) [2022-02-20 23:44:00,387 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:00,387 INFO L93 Difference]: Finished difference Result 158 states and 195 transitions. [2022-02-20 23:44:00,387 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 32 states. [2022-02-20 23:44:00,387 INFO L78 Accepts]: Start accepts. Automaton has has 36 states, 29 states have (on average 1.8620689655172413) internal successors, (54), 29 states have internal predecessors, (54), 10 states have call successors, (14), 5 states have call predecessors, (14), 4 states have return successors, (11), 7 states have call predecessors, (11), 7 states have call successors, (11) Word has length 41 [2022-02-20 23:44:00,387 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:44:00,388 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 36 states, 29 states have (on average 1.8620689655172413) internal successors, (54), 29 states have internal predecessors, (54), 10 states have call successors, (14), 5 states have call predecessors, (14), 4 states have return successors, (11), 7 states have call predecessors, (11), 7 states have call successors, (11) [2022-02-20 23:44:00,390 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 137 transitions. [2022-02-20 23:44:00,390 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 36 states, 29 states have (on average 1.8620689655172413) internal successors, (54), 29 states have internal predecessors, (54), 10 states have call successors, (14), 5 states have call predecessors, (14), 4 states have return successors, (11), 7 states have call predecessors, (11), 7 states have call successors, (11) [2022-02-20 23:44:00,392 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 137 transitions. [2022-02-20 23:44:00,392 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 32 states and 137 transitions. [2022-02-20 23:44:00,530 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 137 edges. 137 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:00,533 INFO L225 Difference]: With dead ends: 158 [2022-02-20 23:44:00,533 INFO L226 Difference]: Without dead ends: 158 [2022-02-20 23:44:00,534 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 122 GetRequests, 69 SyntacticMatches, 1 SemanticMatches, 52 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 601 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=319, Invalid=2543, Unknown=0, NotChecked=0, Total=2862 [2022-02-20 23:44:00,534 INFO L933 BasicCegarLoop]: 52 mSDtfsCounter, 177 mSDsluCounter, 628 mSDsCounter, 0 mSdLazyCounter, 743 mSolverCounterSat, 66 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.9s Time, 0 mProtectedPredicate, 0 mProtectedAction, 184 SdHoareTripleChecker+Valid, 680 SdHoareTripleChecker+Invalid, 967 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 66 IncrementalHoareTripleChecker+Valid, 743 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 158 IncrementalHoareTripleChecker+Unchecked, 0.9s IncrementalHoareTripleChecker+Time [2022-02-20 23:44:00,534 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [184 Valid, 680 Invalid, 967 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [66 Valid, 743 Invalid, 0 Unknown, 158 Unchecked, 0.9s Time] [2022-02-20 23:44:00,535 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 158 states. [2022-02-20 23:44:00,539 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 158 to 132. [2022-02-20 23:44:00,539 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:44:00,539 INFO L82 GeneralOperation]: Start isEquivalent. First operand 158 states. Second operand has 132 states, 96 states have (on average 1.2083333333333333) internal successors, (116), 99 states have internal predecessors, (116), 18 states have call successors, (18), 9 states have call predecessors, (18), 12 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:00,539 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand has 132 states, 96 states have (on average 1.2083333333333333) internal successors, (116), 99 states have internal predecessors, (116), 18 states have call successors, (18), 9 states have call predecessors, (18), 12 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:00,539 INFO L87 Difference]: Start difference. First operand 158 states. Second operand has 132 states, 96 states have (on average 1.2083333333333333) internal successors, (116), 99 states have internal predecessors, (116), 18 states have call successors, (18), 9 states have call predecessors, (18), 12 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:00,543 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:00,543 INFO L93 Difference]: Finished difference Result 158 states and 195 transitions. [2022-02-20 23:44:00,543 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 195 transitions. [2022-02-20 23:44:00,544 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:00,544 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:00,545 INFO L74 IsIncluded]: Start isIncluded. First operand has 132 states, 96 states have (on average 1.2083333333333333) internal successors, (116), 99 states have internal predecessors, (116), 18 states have call successors, (18), 9 states have call predecessors, (18), 12 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) Second operand 158 states. [2022-02-20 23:44:00,545 INFO L87 Difference]: Start difference. First operand has 132 states, 96 states have (on average 1.2083333333333333) internal successors, (116), 99 states have internal predecessors, (116), 18 states have call successors, (18), 9 states have call predecessors, (18), 12 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) Second operand 158 states. [2022-02-20 23:44:00,549 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:00,549 INFO L93 Difference]: Finished difference Result 158 states and 195 transitions. [2022-02-20 23:44:00,549 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 195 transitions. [2022-02-20 23:44:00,550 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:00,550 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:00,550 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:44:00,550 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:44:00,550 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 132 states, 96 states have (on average 1.2083333333333333) internal successors, (116), 99 states have internal predecessors, (116), 18 states have call successors, (18), 9 states have call predecessors, (18), 12 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:00,553 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 162 transitions. [2022-02-20 23:44:00,553 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 162 transitions. Word has length 41 [2022-02-20 23:44:00,553 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:44:00,553 INFO L470 AbstractCegarLoop]: Abstraction has 132 states and 162 transitions. [2022-02-20 23:44:00,553 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 36 states, 29 states have (on average 1.8620689655172413) internal successors, (54), 29 states have internal predecessors, (54), 10 states have call successors, (14), 5 states have call predecessors, (14), 4 states have return successors, (11), 7 states have call predecessors, (11), 7 states have call successors, (11) [2022-02-20 23:44:00,553 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 162 transitions. [2022-02-20 23:44:00,554 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 47 [2022-02-20 23:44:00,554 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:44:00,554 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:44:00,581 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Ended with exit code 0 [2022-02-20 23:44:00,771 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable14 [2022-02-20 23:44:00,771 INFO L402 AbstractCegarLoop]: === Iteration 16 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONMEMORY_LEAK === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:44:00,772 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:44:00,772 INFO L85 PathProgramCache]: Analyzing trace with hash -525112999, now seen corresponding path program 1 times [2022-02-20 23:44:00,772 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:44:00,772 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1195315334] [2022-02-20 23:44:00,772 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:00,772 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:44:00,800 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:00,941 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:44:00,942 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:00,944 INFO L290 TraceCheckUtils]: 0: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:00,944 INFO L290 TraceCheckUtils]: 1: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:00,945 INFO L290 TraceCheckUtils]: 2: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,945 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7057#true} {7057#true} #82#return; {7057#true} is VALID [2022-02-20 23:44:00,945 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:44:00,947 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:00,949 INFO L290 TraceCheckUtils]: 0: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:00,949 INFO L290 TraceCheckUtils]: 1: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:00,949 INFO L290 TraceCheckUtils]: 2: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,949 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7057#true} {7057#true} #84#return; {7057#true} is VALID [2022-02-20 23:44:00,949 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:44:00,950 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:00,953 INFO L290 TraceCheckUtils]: 0: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:00,953 INFO L290 TraceCheckUtils]: 1: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:00,953 INFO L290 TraceCheckUtils]: 2: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,954 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7057#true} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #90#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,954 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:44:00,958 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:00,960 INFO L290 TraceCheckUtils]: 0: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:00,960 INFO L290 TraceCheckUtils]: 1: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:00,960 INFO L290 TraceCheckUtils]: 2: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,961 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7057#true} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #92#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,961 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 32 [2022-02-20 23:44:00,963 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:00,965 INFO L290 TraceCheckUtils]: 0: Hoare triple {7057#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7057#true} is VALID [2022-02-20 23:44:00,965 INFO L290 TraceCheckUtils]: 1: Hoare triple {7057#true} assume ~x >= ~y;#res := ~x; {7057#true} is VALID [2022-02-20 23:44:00,965 INFO L290 TraceCheckUtils]: 2: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,967 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7057#true} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #94#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,967 INFO L290 TraceCheckUtils]: 0: Hoare triple {7057#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {7057#true} is VALID [2022-02-20 23:44:00,967 INFO L290 TraceCheckUtils]: 1: Hoare triple {7057#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {7057#true} is VALID [2022-02-20 23:44:00,967 INFO L272 TraceCheckUtils]: 2: Hoare triple {7057#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {7057#true} is VALID [2022-02-20 23:44:00,967 INFO L290 TraceCheckUtils]: 3: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:00,967 INFO L290 TraceCheckUtils]: 4: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:00,967 INFO L290 TraceCheckUtils]: 5: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,968 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {7057#true} {7057#true} #82#return; {7057#true} is VALID [2022-02-20 23:44:00,968 INFO L290 TraceCheckUtils]: 7: Hoare triple {7057#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {7057#true} is VALID [2022-02-20 23:44:00,968 INFO L272 TraceCheckUtils]: 8: Hoare triple {7057#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {7057#true} is VALID [2022-02-20 23:44:00,968 INFO L290 TraceCheckUtils]: 9: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:00,968 INFO L290 TraceCheckUtils]: 10: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:00,968 INFO L290 TraceCheckUtils]: 11: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,968 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {7057#true} {7057#true} #84#return; {7057#true} is VALID [2022-02-20 23:44:00,969 INFO L290 TraceCheckUtils]: 13: Hoare triple {7057#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {7067#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} is VALID [2022-02-20 23:44:00,970 INFO L290 TraceCheckUtils]: 14: Hoare triple {7067#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {7068#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} is VALID [2022-02-20 23:44:00,971 INFO L272 TraceCheckUtils]: 15: Hoare triple {7068#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {7069#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} is VALID [2022-02-20 23:44:00,971 INFO L290 TraceCheckUtils]: 16: Hoare triple {7069#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,972 INFO L290 TraceCheckUtils]: 17: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume !(~x >= ~y); {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,972 INFO L272 TraceCheckUtils]: 18: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {7057#true} is VALID [2022-02-20 23:44:00,972 INFO L290 TraceCheckUtils]: 19: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:00,972 INFO L290 TraceCheckUtils]: 20: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:00,972 INFO L290 TraceCheckUtils]: 21: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,973 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7057#true} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #90#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,973 INFO L272 TraceCheckUtils]: 23: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {7057#true} is VALID [2022-02-20 23:44:00,973 INFO L290 TraceCheckUtils]: 24: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:00,973 INFO L290 TraceCheckUtils]: 25: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:00,973 INFO L290 TraceCheckUtils]: 26: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,974 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7057#true} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #92#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,974 INFO L290 TraceCheckUtils]: 28: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} ~x0~0 := ~x;~y0~0 := ~y; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,975 INFO L290 TraceCheckUtils]: 29: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,975 INFO L290 TraceCheckUtils]: 30: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,975 INFO L290 TraceCheckUtils]: 31: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,975 INFO L272 TraceCheckUtils]: 32: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {7057#true} is VALID [2022-02-20 23:44:00,976 INFO L290 TraceCheckUtils]: 33: Hoare triple {7057#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7057#true} is VALID [2022-02-20 23:44:00,976 INFO L290 TraceCheckUtils]: 34: Hoare triple {7057#true} assume ~x >= ~y;#res := ~x; {7057#true} is VALID [2022-02-20 23:44:00,976 INFO L290 TraceCheckUtils]: 35: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:00,977 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7057#true} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #94#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:00,978 INFO L290 TraceCheckUtils]: 37: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {7083#(and (= (select (select |#memory_int| check_~a.base) (+ check_~a.offset (* 4 check_~i))) 0) (= (select (select |#memory_int| check_~a.base) (+ (* check_~x1~0 4) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:00,978 INFO L290 TraceCheckUtils]: 38: Hoare triple {7083#(and (= (select (select |#memory_int| check_~a.base) (+ check_~a.offset (* 4 check_~i))) 0) (= (select (select |#memory_int| check_~a.base) (+ (* check_~x1~0 4) check_~a.offset)) 0))} SUMMARY for call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i, 4); srcloc: L33 {7084#(and (= |check_#t~mem10| 0) (= (select (select |#memory_int| check_~a.base) (+ (* check_~x1~0 4) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:00,979 INFO L290 TraceCheckUtils]: 39: Hoare triple {7084#(and (= |check_#t~mem10| 0) (= (select (select |#memory_int| check_~a.base) (+ (* check_~x1~0 4) check_~a.offset)) 0))} ~ai~0 := #t~mem10;havoc #t~mem10; {7085#(and (= (select (select |#memory_int| check_~a.base) (+ (* check_~x1~0 4) check_~a.offset)) 0) (= check_~ai~0 0))} is VALID [2022-02-20 23:44:00,979 INFO L290 TraceCheckUtils]: 40: Hoare triple {7085#(and (= (select (select |#memory_int| check_~a.base) (+ (* check_~x1~0 4) check_~a.offset)) 0) (= check_~ai~0 0))} SUMMARY for call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~x1~0, 4); srcloc: L34 {7086#(and (= check_~ai~0 0) (= |check_#t~mem11| 0))} is VALID [2022-02-20 23:44:00,980 INFO L290 TraceCheckUtils]: 41: Hoare triple {7086#(and (= check_~ai~0 0) (= |check_#t~mem11| 0))} ~ax~0 := #t~mem11;havoc #t~mem11; {7087#(and (= check_~ai~0 0) (= check_~ax~0 0))} is VALID [2022-02-20 23:44:00,980 INFO L272 TraceCheckUtils]: 42: Hoare triple {7087#(and (= check_~ai~0 0) (= check_~ax~0 0))} call __VERIFIER_assert((if ~ai~0 <= ~ax~0 then 1 else 0)); {7088#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-02-20 23:44:00,981 INFO L290 TraceCheckUtils]: 43: Hoare triple {7088#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {7089#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-02-20 23:44:00,981 INFO L290 TraceCheckUtils]: 44: Hoare triple {7089#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {7058#false} is VALID [2022-02-20 23:44:00,981 INFO L290 TraceCheckUtils]: 45: Hoare triple {7058#false} assume !false; {7058#false} is VALID [2022-02-20 23:44:00,982 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:44:00,982 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:44:00,982 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1195315334] [2022-02-20 23:44:00,982 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1195315334] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:44:00,982 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1151029485] [2022-02-20 23:44:00,982 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:00,982 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:44:00,983 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:44:00,988 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:44:00,989 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-02-20 23:44:01,047 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:01,048 INFO L263 TraceCheckSpWp]: Trace formula consists of 203 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 23:44:01,066 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:01,067 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:44:01,117 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 6 [2022-02-20 23:44:03,147 WARN L860 $PredicateComparison]: unable to prove that (exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |c_#memory_int| v_check_~a.base_BEFORE_CALL_7))) is different from true [2022-02-20 23:44:05,180 WARN L860 $PredicateComparison]: unable to prove that (exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= (select |c_#memory_int| v_check_~a.base_BEFORE_CALL_8) ((as const (Array Int Int)) 0))) is different from true [2022-02-20 23:44:07,216 WARN L860 $PredicateComparison]: unable to prove that (exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |c_#memory_int| v_check_~a.base_BEFORE_CALL_9))) is different from true [2022-02-20 23:44:07,389 INFO L390 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 29 treesize of output 23 [2022-02-20 23:44:07,838 INFO L290 TraceCheckUtils]: 0: Hoare triple {7057#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L290 TraceCheckUtils]: 1: Hoare triple {7057#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L272 TraceCheckUtils]: 2: Hoare triple {7057#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L290 TraceCheckUtils]: 3: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L290 TraceCheckUtils]: 4: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L290 TraceCheckUtils]: 5: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {7057#true} {7057#true} #82#return; {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L290 TraceCheckUtils]: 7: Hoare triple {7057#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L272 TraceCheckUtils]: 8: Hoare triple {7057#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L290 TraceCheckUtils]: 9: Hoare triple {7057#true} ~cond := #in~cond; {7057#true} is VALID [2022-02-20 23:44:07,838 INFO L290 TraceCheckUtils]: 10: Hoare triple {7057#true} assume !(0 == ~cond); {7057#true} is VALID [2022-02-20 23:44:07,839 INFO L290 TraceCheckUtils]: 11: Hoare triple {7057#true} assume true; {7057#true} is VALID [2022-02-20 23:44:07,839 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {7057#true} {7057#true} #84#return; {7057#true} is VALID [2022-02-20 23:44:07,840 INFO L290 TraceCheckUtils]: 13: Hoare triple {7057#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {7067#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} is VALID [2022-02-20 23:44:07,840 INFO L290 TraceCheckUtils]: 14: Hoare triple {7067#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {7068#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} is VALID [2022-02-20 23:44:07,841 INFO L272 TraceCheckUtils]: 15: Hoare triple {7068#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {7069#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} is VALID [2022-02-20 23:44:07,842 INFO L290 TraceCheckUtils]: 16: Hoare triple {7069#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,842 INFO L290 TraceCheckUtils]: 17: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume !(~x >= ~y); {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,843 INFO L272 TraceCheckUtils]: 18: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {7147#(exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_7)))} is VALID [2022-02-20 23:44:07,843 INFO L290 TraceCheckUtils]: 19: Hoare triple {7147#(exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_7)))} ~cond := #in~cond; {7147#(exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_7)))} is VALID [2022-02-20 23:44:07,844 INFO L290 TraceCheckUtils]: 20: Hoare triple {7147#(exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_7)))} assume !(0 == ~cond); {7147#(exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_7)))} is VALID [2022-02-20 23:44:07,844 INFO L290 TraceCheckUtils]: 21: Hoare triple {7147#(exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_7)))} assume true; {7147#(exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_7)))} is VALID [2022-02-20 23:44:07,845 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7147#(exists ((v_check_~a.base_BEFORE_CALL_7 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_7)))} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #90#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,846 INFO L272 TraceCheckUtils]: 23: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {7163#(exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_8)))} is VALID [2022-02-20 23:44:07,846 INFO L290 TraceCheckUtils]: 24: Hoare triple {7163#(exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_8)))} ~cond := #in~cond; {7163#(exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_8)))} is VALID [2022-02-20 23:44:07,847 INFO L290 TraceCheckUtils]: 25: Hoare triple {7163#(exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_8)))} assume !(0 == ~cond); {7163#(exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_8)))} is VALID [2022-02-20 23:44:07,847 INFO L290 TraceCheckUtils]: 26: Hoare triple {7163#(exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_8)))} assume true; {7163#(exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_8)))} is VALID [2022-02-20 23:44:07,848 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7163#(exists ((v_check_~a.base_BEFORE_CALL_8 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_8)))} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #92#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,848 INFO L290 TraceCheckUtils]: 28: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} ~x0~0 := ~x;~y0~0 := ~y; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,849 INFO L290 TraceCheckUtils]: 29: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,850 INFO L290 TraceCheckUtils]: 30: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,851 INFO L290 TraceCheckUtils]: 31: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,852 INFO L272 TraceCheckUtils]: 32: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {7191#(exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_9)))} is VALID [2022-02-20 23:44:07,853 INFO L290 TraceCheckUtils]: 33: Hoare triple {7191#(exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_9)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7191#(exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_9)))} is VALID [2022-02-20 23:44:07,853 INFO L290 TraceCheckUtils]: 34: Hoare triple {7191#(exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_9)))} assume ~x >= ~y;#res := ~x; {7191#(exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_9)))} is VALID [2022-02-20 23:44:07,853 INFO L290 TraceCheckUtils]: 35: Hoare triple {7191#(exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_9)))} assume true; {7191#(exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_9)))} is VALID [2022-02-20 23:44:07,854 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7191#(exists ((v_check_~a.base_BEFORE_CALL_9 Int)) (= ((as const (Array Int Int)) 0) (select |#memory_int| v_check_~a.base_BEFORE_CALL_9)))} {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #94#return; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,855 INFO L290 TraceCheckUtils]: 37: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:07,856 INFO L290 TraceCheckUtils]: 38: Hoare triple {7070#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} SUMMARY for call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i, 4); srcloc: L33 {7210#(and (exists ((check_~i Int)) (<= |check_#t~mem10| (select (select |#memory_int| check_~a.base) (+ check_~a.offset (* 4 check_~i))))) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base)))} is VALID [2022-02-20 23:44:07,857 INFO L290 TraceCheckUtils]: 39: Hoare triple {7210#(and (exists ((check_~i Int)) (<= |check_#t~mem10| (select (select |#memory_int| check_~a.base) (+ check_~a.offset (* 4 check_~i))))) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base)))} ~ai~0 := #t~mem10;havoc #t~mem10; {7214#(and (exists ((check_~i Int)) (<= check_~ai~0 (select (select |#memory_int| check_~a.base) (+ check_~a.offset (* 4 check_~i))))) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base)))} is VALID [2022-02-20 23:44:07,857 INFO L290 TraceCheckUtils]: 40: Hoare triple {7214#(and (exists ((check_~i Int)) (<= check_~ai~0 (select (select |#memory_int| check_~a.base) (+ check_~a.offset (* 4 check_~i))))) (= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base)))} SUMMARY for call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~x1~0, 4); srcloc: L34 {7218#(exists ((check_~x1~0 Int) (check_~i Int) (check_~a.offset Int)) (and (<= (select ((as const (Array Int Int)) 0) (+ (* check_~x1~0 4) check_~a.offset)) |check_#t~mem11|) (<= check_~ai~0 (select ((as const (Array Int Int)) 0) (+ check_~a.offset (* 4 check_~i))))))} is VALID [2022-02-20 23:44:07,858 INFO L290 TraceCheckUtils]: 41: Hoare triple {7218#(exists ((check_~x1~0 Int) (check_~i Int) (check_~a.offset Int)) (and (<= (select ((as const (Array Int Int)) 0) (+ (* check_~x1~0 4) check_~a.offset)) |check_#t~mem11|) (<= check_~ai~0 (select ((as const (Array Int Int)) 0) (+ check_~a.offset (* 4 check_~i))))))} ~ax~0 := #t~mem11;havoc #t~mem11; {7222#(exists ((check_~x1~0 Int) (check_~i Int) (check_~a.offset Int)) (and (<= check_~ai~0 (select ((as const (Array Int Int)) 0) (+ check_~a.offset (* 4 check_~i)))) (<= (select ((as const (Array Int Int)) 0) (+ (* check_~x1~0 4) check_~a.offset)) check_~ax~0)))} is VALID [2022-02-20 23:44:07,859 INFO L272 TraceCheckUtils]: 42: Hoare triple {7222#(exists ((check_~x1~0 Int) (check_~i Int) (check_~a.offset Int)) (and (<= check_~ai~0 (select ((as const (Array Int Int)) 0) (+ check_~a.offset (* 4 check_~i)))) (<= (select ((as const (Array Int Int)) 0) (+ (* check_~x1~0 4) check_~a.offset)) check_~ax~0)))} call __VERIFIER_assert((if ~ai~0 <= ~ax~0 then 1 else 0)); {7226#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-02-20 23:44:07,859 INFO L290 TraceCheckUtils]: 43: Hoare triple {7226#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7230#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-02-20 23:44:07,859 INFO L290 TraceCheckUtils]: 44: Hoare triple {7230#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7058#false} is VALID [2022-02-20 23:44:07,859 INFO L290 TraceCheckUtils]: 45: Hoare triple {7058#false} assume !false; {7058#false} is VALID [2022-02-20 23:44:07,860 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 4 not checked. [2022-02-20 23:44:07,860 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 23:44:10,200 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1151029485] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:44:10,200 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 23:44:10,200 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 15] total 22 [2022-02-20 23:44:10,200 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1120502405] [2022-02-20 23:44:10,200 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 23:44:10,201 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 19 states have internal predecessors, (44), 5 states have call successors, (11), 7 states have call predecessors, (11), 4 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) Word has length 46 [2022-02-20 23:44:10,201 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:44:10,201 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 22 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 19 states have internal predecessors, (44), 5 states have call successors, (11), 7 states have call predecessors, (11), 4 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 23:44:10,254 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:10,254 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 22 states [2022-02-20 23:44:10,254 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:44:10,255 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2022-02-20 23:44:10,255 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=492, Unknown=3, NotChecked=138, Total=702 [2022-02-20 23:44:10,255 INFO L87 Difference]: Start difference. First operand 132 states and 162 transitions. Second operand has 22 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 19 states have internal predecessors, (44), 5 states have call successors, (11), 7 states have call predecessors, (11), 4 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 23:44:10,999 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:10,999 INFO L93 Difference]: Finished difference Result 134 states and 163 transitions. [2022-02-20 23:44:10,999 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-02-20 23:44:10,999 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 19 states have internal predecessors, (44), 5 states have call successors, (11), 7 states have call predecessors, (11), 4 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) Word has length 46 [2022-02-20 23:44:10,999 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:44:10,999 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 19 states have internal predecessors, (44), 5 states have call successors, (11), 7 states have call predecessors, (11), 4 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 23:44:11,000 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 57 transitions. [2022-02-20 23:44:11,000 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 19 states have internal predecessors, (44), 5 states have call successors, (11), 7 states have call predecessors, (11), 4 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 23:44:11,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 57 transitions. [2022-02-20 23:44:11,001 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states and 57 transitions. [2022-02-20 23:44:11,068 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:11,070 INFO L225 Difference]: With dead ends: 134 [2022-02-20 23:44:11,070 INFO L226 Difference]: Without dead ends: 134 [2022-02-20 23:44:11,071 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 90 GetRequests, 51 SyntacticMatches, 7 SemanticMatches, 32 ConstructedPredicates, 3 IntricatePredicates, 0 DeprecatedPredicates, 132 ImplicationChecksByTransitivity, 8.4s TimeCoverageRelationStatistics Valid=125, Invalid=814, Unknown=3, NotChecked=180, Total=1122 [2022-02-20 23:44:11,074 INFO L933 BasicCegarLoop]: 35 mSDtfsCounter, 44 mSDsluCounter, 323 mSDsCounter, 0 mSdLazyCounter, 255 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 44 SdHoareTripleChecker+Valid, 358 SdHoareTripleChecker+Invalid, 545 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 255 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 281 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-02-20 23:44:11,075 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [44 Valid, 358 Invalid, 545 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 255 Invalid, 0 Unknown, 281 Unchecked, 0.2s Time] [2022-02-20 23:44:11,076 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 134 states. [2022-02-20 23:44:11,082 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 134 to 134. [2022-02-20 23:44:11,082 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:44:11,083 INFO L82 GeneralOperation]: Start isEquivalent. First operand 134 states. Second operand has 134 states, 98 states have (on average 1.1938775510204083) internal successors, (117), 100 states have internal predecessors, (117), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:11,083 INFO L74 IsIncluded]: Start isIncluded. First operand 134 states. Second operand has 134 states, 98 states have (on average 1.1938775510204083) internal successors, (117), 100 states have internal predecessors, (117), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:11,083 INFO L87 Difference]: Start difference. First operand 134 states. Second operand has 134 states, 98 states have (on average 1.1938775510204083) internal successors, (117), 100 states have internal predecessors, (117), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:11,086 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:11,087 INFO L93 Difference]: Finished difference Result 134 states and 163 transitions. [2022-02-20 23:44:11,087 INFO L276 IsEmpty]: Start isEmpty. Operand 134 states and 163 transitions. [2022-02-20 23:44:11,087 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:11,087 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:11,088 INFO L74 IsIncluded]: Start isIncluded. First operand has 134 states, 98 states have (on average 1.1938775510204083) internal successors, (117), 100 states have internal predecessors, (117), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) Second operand 134 states. [2022-02-20 23:44:11,088 INFO L87 Difference]: Start difference. First operand has 134 states, 98 states have (on average 1.1938775510204083) internal successors, (117), 100 states have internal predecessors, (117), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) Second operand 134 states. [2022-02-20 23:44:11,091 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:11,091 INFO L93 Difference]: Finished difference Result 134 states and 163 transitions. [2022-02-20 23:44:11,091 INFO L276 IsEmpty]: Start isEmpty. Operand 134 states and 163 transitions. [2022-02-20 23:44:11,092 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:11,092 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:11,092 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:44:11,092 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:44:11,093 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 134 states, 98 states have (on average 1.1938775510204083) internal successors, (117), 100 states have internal predecessors, (117), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:11,096 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 134 states to 134 states and 163 transitions. [2022-02-20 23:44:11,096 INFO L78 Accepts]: Start accepts. Automaton has 134 states and 163 transitions. Word has length 46 [2022-02-20 23:44:11,096 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:44:11,096 INFO L470 AbstractCegarLoop]: Abstraction has 134 states and 163 transitions. [2022-02-20 23:44:11,097 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 22 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 19 states have internal predecessors, (44), 5 states have call successors, (11), 7 states have call predecessors, (11), 4 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 23:44:11,097 INFO L276 IsEmpty]: Start isEmpty. Operand 134 states and 163 transitions. [2022-02-20 23:44:11,097 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 48 [2022-02-20 23:44:11,097 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:44:11,097 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:44:11,129 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Forceful destruction successful, exit code 0 [2022-02-20 23:44:11,311 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable15 [2022-02-20 23:44:11,312 INFO L402 AbstractCegarLoop]: === Iteration 17 === Targeting checkErr1REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:44:11,312 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:44:11,312 INFO L85 PathProgramCache]: Analyzing trace with hash 1395918346, now seen corresponding path program 1 times [2022-02-20 23:44:11,312 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:44:11,312 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [282358684] [2022-02-20 23:44:11,312 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:11,312 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:44:11,336 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,465 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:44:11,466 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,468 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,468 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,468 INFO L290 TraceCheckUtils]: 2: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,468 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7826#true} {7826#true} #82#return; {7826#true} is VALID [2022-02-20 23:44:11,468 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:44:11,468 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,476 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,476 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,477 INFO L290 TraceCheckUtils]: 2: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,477 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7826#true} {7826#true} #84#return; {7826#true} is VALID [2022-02-20 23:44:11,477 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:44:11,479 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,486 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,486 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,486 INFO L290 TraceCheckUtils]: 2: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,487 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7826#true} {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #90#return; {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,487 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:44:11,489 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,493 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,493 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,493 INFO L290 TraceCheckUtils]: 2: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,494 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7826#true} {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #92#return; {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,495 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 35 [2022-02-20 23:44:11,497 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,504 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,504 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,504 INFO L290 TraceCheckUtils]: 2: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,505 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7826#true} {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} #90#return; {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,505 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 40 [2022-02-20 23:44:11,506 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,510 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,510 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,510 INFO L290 TraceCheckUtils]: 2: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,511 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7826#true} {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} #92#return; {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,511 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {7826#true} is VALID [2022-02-20 23:44:11,511 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {7826#true} is VALID [2022-02-20 23:44:11,512 INFO L272 TraceCheckUtils]: 2: Hoare triple {7826#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:11,512 INFO L290 TraceCheckUtils]: 3: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,512 INFO L290 TraceCheckUtils]: 4: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,512 INFO L290 TraceCheckUtils]: 5: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,512 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {7826#true} {7826#true} #82#return; {7826#true} is VALID [2022-02-20 23:44:11,512 INFO L290 TraceCheckUtils]: 7: Hoare triple {7826#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {7826#true} is VALID [2022-02-20 23:44:11,512 INFO L272 TraceCheckUtils]: 8: Hoare triple {7826#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:11,512 INFO L290 TraceCheckUtils]: 9: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,513 INFO L290 TraceCheckUtils]: 10: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,513 INFO L290 TraceCheckUtils]: 11: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,513 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {7826#true} {7826#true} #84#return; {7826#true} is VALID [2022-02-20 23:44:11,514 INFO L290 TraceCheckUtils]: 13: Hoare triple {7826#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {7836#(and (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0) (= (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|) (* |ULTIMATE.start_main_~n~0#1| 4)))} is VALID [2022-02-20 23:44:11,514 INFO L290 TraceCheckUtils]: 14: Hoare triple {7836#(and (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0) (= (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|) (* |ULTIMATE.start_main_~n~0#1| 4)))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {7837#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= (select |#length| |ULTIMATE.start_main_~a~0#1.base|) (* |ULTIMATE.start_main_~n~0#1| 4)))} is VALID [2022-02-20 23:44:11,516 INFO L272 TraceCheckUtils]: 15: Hoare triple {7837#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (= (select |#length| |ULTIMATE.start_main_~a~0#1.base|) (* |ULTIMATE.start_main_~n~0#1| 4)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {7838#(and (= |check_#in~a.offset| 0) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)) (= |check_#in~x| 0))} is VALID [2022-02-20 23:44:11,516 INFO L290 TraceCheckUtils]: 16: Hoare triple {7838#(and (= |check_#in~a.offset| 0) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)) (= |check_#in~x| 0))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,517 INFO L290 TraceCheckUtils]: 17: Hoare triple {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume !(~x >= ~y); {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,517 INFO L272 TraceCheckUtils]: 18: Hoare triple {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:11,517 INFO L290 TraceCheckUtils]: 19: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,517 INFO L290 TraceCheckUtils]: 20: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,517 INFO L290 TraceCheckUtils]: 21: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,518 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7826#true} {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #90#return; {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,518 INFO L272 TraceCheckUtils]: 23: Hoare triple {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:11,518 INFO L290 TraceCheckUtils]: 24: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,518 INFO L290 TraceCheckUtils]: 25: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,518 INFO L290 TraceCheckUtils]: 26: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,519 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7826#true} {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} #92#return; {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,520 INFO L290 TraceCheckUtils]: 28: Hoare triple {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,520 INFO L290 TraceCheckUtils]: 29: Hoare triple {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,521 INFO L290 TraceCheckUtils]: 30: Hoare triple {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,521 INFO L290 TraceCheckUtils]: 31: Hoare triple {7839#(and (= check_~x 0) (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {7848#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,522 INFO L272 TraceCheckUtils]: 32: Hoare triple {7848#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {7849#(and (= |check_#in~a.offset| 0) (<= 1 |check_#in~x|) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)))} is VALID [2022-02-20 23:44:11,523 INFO L290 TraceCheckUtils]: 33: Hoare triple {7849#(and (= |check_#in~a.offset| 0) (<= 1 |check_#in~x|) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7848#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,524 INFO L290 TraceCheckUtils]: 34: Hoare triple {7848#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} assume !(~x >= ~y); {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,524 INFO L272 TraceCheckUtils]: 35: Hoare triple {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:11,524 INFO L290 TraceCheckUtils]: 36: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,524 INFO L290 TraceCheckUtils]: 37: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,524 INFO L290 TraceCheckUtils]: 38: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,525 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {7826#true} {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} #90#return; {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,525 INFO L272 TraceCheckUtils]: 40: Hoare triple {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:11,525 INFO L290 TraceCheckUtils]: 41: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:11,525 INFO L290 TraceCheckUtils]: 42: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:11,525 INFO L290 TraceCheckUtils]: 43: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:11,526 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7826#true} {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} #92#return; {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,527 INFO L290 TraceCheckUtils]: 45: Hoare triple {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:11,527 INFO L290 TraceCheckUtils]: 46: Hoare triple {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} assume !(4 + (~a.offset + 4 * ~x) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~x); {7827#false} is VALID [2022-02-20 23:44:11,528 INFO L134 CoverageAnalysis]: Checked inductivity of 34 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-02-20 23:44:11,528 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:44:11,528 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [282358684] [2022-02-20 23:44:11,528 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [282358684] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:44:11,528 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [641491495] [2022-02-20 23:44:11,528 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:11,528 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:44:11,529 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:44:11,548 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:44:11,549 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-02-20 23:44:11,600 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,601 INFO L263 TraceCheckSpWp]: Trace formula consists of 192 conjuncts, 37 conjunts are in the unsatisfiable core [2022-02-20 23:44:11,618 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:11,620 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:44:11,673 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 6 treesize of output 5 [2022-02-20 23:44:12,748 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {7826#true} is VALID [2022-02-20 23:44:12,748 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {7826#true} is VALID [2022-02-20 23:44:12,748 INFO L272 TraceCheckUtils]: 2: Hoare triple {7826#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:12,748 INFO L290 TraceCheckUtils]: 3: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:12,748 INFO L290 TraceCheckUtils]: 4: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:12,748 INFO L290 TraceCheckUtils]: 5: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:12,749 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {7826#true} {7826#true} #82#return; {7826#true} is VALID [2022-02-20 23:44:12,749 INFO L290 TraceCheckUtils]: 7: Hoare triple {7826#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {7826#true} is VALID [2022-02-20 23:44:12,749 INFO L272 TraceCheckUtils]: 8: Hoare triple {7826#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:12,749 INFO L290 TraceCheckUtils]: 9: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:12,749 INFO L290 TraceCheckUtils]: 10: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:12,749 INFO L290 TraceCheckUtils]: 11: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:12,749 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {7826#true} {7826#true} #84#return; {7826#true} is VALID [2022-02-20 23:44:12,752 INFO L290 TraceCheckUtils]: 13: Hoare triple {7826#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {7901#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} is VALID [2022-02-20 23:44:12,752 INFO L290 TraceCheckUtils]: 14: Hoare triple {7901#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {7905#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:44:12,754 INFO L272 TraceCheckUtils]: 15: Hoare triple {7905#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {7909#(and (= |check_#in~a.offset| 0) (<= 0 |check_#in~x|) (<= (+ |check_#in~y| 1) (div (select |#length| |check_#in~a.base|) 4)))} is VALID [2022-02-20 23:44:12,754 INFO L290 TraceCheckUtils]: 16: Hoare triple {7909#(and (= |check_#in~a.offset| 0) (<= 0 |check_#in~x|) (<= (+ |check_#in~y| 1) (div (select |#length| |check_#in~a.base|) 4)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,754 INFO L290 TraceCheckUtils]: 17: Hoare triple {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} assume !(~x >= ~y); {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,755 INFO L272 TraceCheckUtils]: 18: Hoare triple {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:12,755 INFO L290 TraceCheckUtils]: 19: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:12,755 INFO L290 TraceCheckUtils]: 20: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:12,755 INFO L290 TraceCheckUtils]: 21: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:12,755 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7826#true} {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} #90#return; {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,755 INFO L272 TraceCheckUtils]: 23: Hoare triple {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:12,756 INFO L290 TraceCheckUtils]: 24: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:12,756 INFO L290 TraceCheckUtils]: 25: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:12,756 INFO L290 TraceCheckUtils]: 26: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:12,756 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7826#true} {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} #92#return; {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,757 INFO L290 TraceCheckUtils]: 28: Hoare triple {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,757 INFO L290 TraceCheckUtils]: 29: Hoare triple {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,758 INFO L290 TraceCheckUtils]: 30: Hoare triple {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,758 INFO L290 TraceCheckUtils]: 31: Hoare triple {7913#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {7848#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,759 INFO L272 TraceCheckUtils]: 32: Hoare triple {7848#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {7849#(and (= |check_#in~a.offset| 0) (<= 1 |check_#in~x|) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)))} is VALID [2022-02-20 23:44:12,760 INFO L290 TraceCheckUtils]: 33: Hoare triple {7849#(and (= |check_#in~a.offset| 0) (<= 1 |check_#in~x|) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {7848#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,760 INFO L290 TraceCheckUtils]: 34: Hoare triple {7848#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} assume !(~x >= ~y); {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,761 INFO L272 TraceCheckUtils]: 35: Hoare triple {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} is VALID [2022-02-20 23:44:12,761 INFO L290 TraceCheckUtils]: 36: Hoare triple {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} ~cond := #in~cond; {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} is VALID [2022-02-20 23:44:12,762 INFO L290 TraceCheckUtils]: 37: Hoare triple {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} assume !(0 == ~cond); {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} is VALID [2022-02-20 23:44:12,762 INFO L290 TraceCheckUtils]: 38: Hoare triple {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} assume true; {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} is VALID [2022-02-20 23:44:12,763 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} #90#return; {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,763 INFO L272 TraceCheckUtils]: 40: Hoare triple {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} is VALID [2022-02-20 23:44:12,764 INFO L290 TraceCheckUtils]: 41: Hoare triple {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} ~cond := #in~cond; {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} is VALID [2022-02-20 23:44:12,764 INFO L290 TraceCheckUtils]: 42: Hoare triple {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} assume !(0 == ~cond); {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} is VALID [2022-02-20 23:44:12,764 INFO L290 TraceCheckUtils]: 43: Hoare triple {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} assume true; {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} is VALID [2022-02-20 23:44:12,765 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7971#(exists ((v_check_~x_BEFORE_CALL_15 Int) (v_check_~a.base_BEFORE_CALL_13 Int)) (and (<= (+ 8 (* v_check_~x_BEFORE_CALL_15 4)) (select |#length| v_check_~a.base_BEFORE_CALL_13)) (<= 1 v_check_~x_BEFORE_CALL_15)))} {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} #92#return; {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,765 INFO L290 TraceCheckUtils]: 45: Hoare triple {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:12,766 INFO L290 TraceCheckUtils]: 46: Hoare triple {7850#(and (<= (+ (* 4 check_~x) 8) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} assume !(4 + (~a.offset + 4 * ~x) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~x); {7827#false} is VALID [2022-02-20 23:44:12,766 INFO L134 CoverageAnalysis]: Checked inductivity of 34 backedges. 18 proven. 4 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:44:12,766 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 23:44:14,055 INFO L290 TraceCheckUtils]: 46: Hoare triple {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} assume !(4 + (~a.offset + 4 * ~x) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~x); {7827#false} is VALID [2022-02-20 23:44:14,056 INFO L290 TraceCheckUtils]: 45: Hoare triple {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} ~x0~0 := ~x;~y0~0 := ~y; {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} is VALID [2022-02-20 23:44:14,057 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7826#true} {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} #92#return; {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} is VALID [2022-02-20 23:44:14,057 INFO L290 TraceCheckUtils]: 43: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:14,057 INFO L290 TraceCheckUtils]: 42: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:14,057 INFO L290 TraceCheckUtils]: 41: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:14,057 INFO L272 TraceCheckUtils]: 40: Hoare triple {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:14,058 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {7826#true} {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} #90#return; {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} is VALID [2022-02-20 23:44:14,058 INFO L290 TraceCheckUtils]: 38: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:14,058 INFO L290 TraceCheckUtils]: 37: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:14,058 INFO L290 TraceCheckUtils]: 36: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:14,058 INFO L272 TraceCheckUtils]: 35: Hoare triple {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:14,059 INFO L290 TraceCheckUtils]: 34: Hoare triple {8042#(or (<= check_~y check_~x) (and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset))))} assume !(~x >= ~y); {8005#(and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset)))} is VALID [2022-02-20 23:44:14,060 INFO L290 TraceCheckUtils]: 33: Hoare triple {8046#(and (or (<= (div |check_#in~a.offset| (- 4)) |check_#in~x|) (<= |check_#in~y| |check_#in~x|)) (or (<= |check_#in~y| (+ (div (+ (- 4) (* (- 1) |check_#in~a.offset|) (select |#length| |check_#in~a.base|)) 4) 1)) (<= |check_#in~y| |check_#in~x|)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {8042#(or (<= check_~y check_~x) (and (<= (+ (* 4 check_~x) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~x) check_~a.offset))))} is VALID [2022-02-20 23:44:14,062 INFO L272 TraceCheckUtils]: 32: Hoare triple {8050#(and (or (<= check_~y check_~x) (<= (div check_~a.offset (- 4)) check_~x)) (or (<= check_~y check_~x) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {8046#(and (or (<= (div |check_#in~a.offset| (- 4)) |check_#in~x|) (<= |check_#in~y| |check_#in~x|)) (or (<= |check_#in~y| (+ (div (+ (- 4) (* (- 1) |check_#in~a.offset|) (select |#length| |check_#in~a.base|)) 4) 1)) (<= |check_#in~y| |check_#in~x|)))} is VALID [2022-02-20 23:44:14,063 INFO L290 TraceCheckUtils]: 31: Hoare triple {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {8050#(and (or (<= check_~y check_~x) (<= (div check_~a.offset (- 4)) check_~x)) (or (<= check_~y check_~x) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))))} is VALID [2022-02-20 23:44:14,064 INFO L290 TraceCheckUtils]: 30: Hoare triple {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} is VALID [2022-02-20 23:44:14,064 INFO L290 TraceCheckUtils]: 29: Hoare triple {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} is VALID [2022-02-20 23:44:14,065 INFO L290 TraceCheckUtils]: 28: Hoare triple {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} ~x0~0 := ~x;~y0~0 := ~y; {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} is VALID [2022-02-20 23:44:14,066 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7826#true} {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} #92#return; {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} is VALID [2022-02-20 23:44:14,066 INFO L290 TraceCheckUtils]: 26: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:14,066 INFO L290 TraceCheckUtils]: 25: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:14,066 INFO L290 TraceCheckUtils]: 24: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:14,067 INFO L272 TraceCheckUtils]: 23: Hoare triple {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:14,067 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7826#true} {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} #90#return; {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} is VALID [2022-02-20 23:44:14,068 INFO L290 TraceCheckUtils]: 21: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:14,068 INFO L290 TraceCheckUtils]: 20: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:14,068 INFO L290 TraceCheckUtils]: 19: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:14,068 INFO L272 TraceCheckUtils]: 18: Hoare triple {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:14,069 INFO L290 TraceCheckUtils]: 17: Hoare triple {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} assume !(~x >= ~y); {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} is VALID [2022-02-20 23:44:14,069 INFO L290 TraceCheckUtils]: 16: Hoare triple {8100#(and (or (<= (div |check_#in~a.offset| (- 4)) (+ |check_#in~x| 1)) (<= |check_#in~y| (+ |check_#in~x| 1))) (or (<= |check_#in~y| (+ (div (+ (- 4) (* (- 1) |check_#in~a.offset|) (select |#length| |check_#in~a.base|)) 4) 1)) (<= |check_#in~y| (+ |check_#in~x| 1))))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {8054#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (+ (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4) 1))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ check_~x 1))))} is VALID [2022-02-20 23:44:14,071 INFO L272 TraceCheckUtils]: 15: Hoare triple {8104#(and (or (<= (div |ULTIMATE.start_main_~a~0#1.offset| (- 4)) 1) (<= |ULTIMATE.start_main_~n~0#1| 2)) (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| (+ 2 (div (+ (select |#length| |ULTIMATE.start_main_~a~0#1.base|) (* (- 1) |ULTIMATE.start_main_~a~0#1.offset|) (- 4)) 4)))))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {8100#(and (or (<= (div |check_#in~a.offset| (- 4)) (+ |check_#in~x| 1)) (<= |check_#in~y| (+ |check_#in~x| 1))) (or (<= |check_#in~y| (+ (div (+ (- 4) (* (- 1) |check_#in~a.offset|) (select |#length| |check_#in~a.base|)) 4) 1)) (<= |check_#in~y| (+ |check_#in~x| 1))))} is VALID [2022-02-20 23:44:14,072 INFO L290 TraceCheckUtils]: 14: Hoare triple {8108#(and (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| (+ (div (+ (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|) (* (- 1) |ULTIMATE.start_main_#t~malloc14#1.offset|) (- 4)) 4) 2))) (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= (div |ULTIMATE.start_main_#t~malloc14#1.offset| (- 4)) 1)))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {8104#(and (or (<= (div |ULTIMATE.start_main_~a~0#1.offset| (- 4)) 1) (<= |ULTIMATE.start_main_~n~0#1| 2)) (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| (+ 2 (div (+ (select |#length| |ULTIMATE.start_main_~a~0#1.base|) (* (- 1) |ULTIMATE.start_main_~a~0#1.offset|) (- 4)) 4)))))} is VALID [2022-02-20 23:44:14,073 INFO L290 TraceCheckUtils]: 13: Hoare triple {7826#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {8108#(and (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| (+ (div (+ (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|) (* (- 1) |ULTIMATE.start_main_#t~malloc14#1.offset|) (- 4)) 4) 2))) (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= (div |ULTIMATE.start_main_#t~malloc14#1.offset| (- 4)) 1)))} is VALID [2022-02-20 23:44:14,074 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {7826#true} {7826#true} #84#return; {7826#true} is VALID [2022-02-20 23:44:14,074 INFO L290 TraceCheckUtils]: 11: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:14,074 INFO L290 TraceCheckUtils]: 10: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:14,074 INFO L290 TraceCheckUtils]: 9: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:14,074 INFO L272 TraceCheckUtils]: 8: Hoare triple {7826#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:14,074 INFO L290 TraceCheckUtils]: 7: Hoare triple {7826#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {7826#true} is VALID [2022-02-20 23:44:14,074 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {7826#true} {7826#true} #82#return; {7826#true} is VALID [2022-02-20 23:44:14,075 INFO L290 TraceCheckUtils]: 5: Hoare triple {7826#true} assume true; {7826#true} is VALID [2022-02-20 23:44:14,075 INFO L290 TraceCheckUtils]: 4: Hoare triple {7826#true} assume !(0 == ~cond); {7826#true} is VALID [2022-02-20 23:44:14,075 INFO L290 TraceCheckUtils]: 3: Hoare triple {7826#true} ~cond := #in~cond; {7826#true} is VALID [2022-02-20 23:44:14,075 INFO L272 TraceCheckUtils]: 2: Hoare triple {7826#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {7826#true} is VALID [2022-02-20 23:44:14,075 INFO L290 TraceCheckUtils]: 1: Hoare triple {7826#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {7826#true} is VALID [2022-02-20 23:44:14,075 INFO L290 TraceCheckUtils]: 0: Hoare triple {7826#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {7826#true} is VALID [2022-02-20 23:44:14,076 INFO L134 CoverageAnalysis]: Checked inductivity of 34 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-02-20 23:44:14,076 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [641491495] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 23:44:14,076 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 23:44:14,076 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9, 9] total 21 [2022-02-20 23:44:14,076 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1765980723] [2022-02-20 23:44:14,076 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 23:44:14,077 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 17 states have (on average 2.764705882352941) internal successors, (47), 17 states have internal predecessors, (47), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) Word has length 47 [2022-02-20 23:44:14,077 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:44:14,078 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 22 states, 17 states have (on average 2.764705882352941) internal successors, (47), 17 states have internal predecessors, (47), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:14,167 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 80 edges. 80 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:14,167 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 22 states [2022-02-20 23:44:14,167 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:44:14,168 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2022-02-20 23:44:14,168 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=73, Invalid=389, Unknown=0, NotChecked=0, Total=462 [2022-02-20 23:44:14,168 INFO L87 Difference]: Start difference. First operand 134 states and 163 transitions. Second operand has 22 states, 17 states have (on average 2.764705882352941) internal successors, (47), 17 states have internal predecessors, (47), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:15,817 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:15,818 INFO L93 Difference]: Finished difference Result 136 states and 161 transitions. [2022-02-20 23:44:15,818 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-02-20 23:44:15,818 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 17 states have (on average 2.764705882352941) internal successors, (47), 17 states have internal predecessors, (47), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) Word has length 47 [2022-02-20 23:44:15,818 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:44:15,818 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 17 states have (on average 2.764705882352941) internal successors, (47), 17 states have internal predecessors, (47), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:15,820 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 96 transitions. [2022-02-20 23:44:15,820 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 17 states have (on average 2.764705882352941) internal successors, (47), 17 states have internal predecessors, (47), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:15,821 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 96 transitions. [2022-02-20 23:44:15,821 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 96 transitions. [2022-02-20 23:44:15,933 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 96 edges. 96 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:15,935 INFO L225 Difference]: With dead ends: 136 [2022-02-20 23:44:15,935 INFO L226 Difference]: Without dead ends: 136 [2022-02-20 23:44:15,936 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 123 GetRequests, 86 SyntacticMatches, 9 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 143 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=163, Invalid=707, Unknown=0, NotChecked=0, Total=870 [2022-02-20 23:44:15,936 INFO L933 BasicCegarLoop]: 51 mSDtfsCounter, 232 mSDsluCounter, 222 mSDsCounter, 0 mSdLazyCounter, 343 mSolverCounterSat, 86 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 232 SdHoareTripleChecker+Valid, 273 SdHoareTripleChecker+Invalid, 475 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 86 IncrementalHoareTripleChecker+Valid, 343 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 46 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-02-20 23:44:15,936 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [232 Valid, 273 Invalid, 475 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [86 Valid, 343 Invalid, 0 Unknown, 46 Unchecked, 0.5s Time] [2022-02-20 23:44:15,936 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 136 states. [2022-02-20 23:44:15,940 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 136 to 133. [2022-02-20 23:44:15,940 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:44:15,940 INFO L82 GeneralOperation]: Start isEquivalent. First operand 136 states. Second operand has 133 states, 98 states have (on average 1.1734693877551021) internal successors, (115), 99 states have internal predecessors, (115), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:15,940 INFO L74 IsIncluded]: Start isIncluded. First operand 136 states. Second operand has 133 states, 98 states have (on average 1.1734693877551021) internal successors, (115), 99 states have internal predecessors, (115), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:15,940 INFO L87 Difference]: Start difference. First operand 136 states. Second operand has 133 states, 98 states have (on average 1.1734693877551021) internal successors, (115), 99 states have internal predecessors, (115), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:15,944 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:15,944 INFO L93 Difference]: Finished difference Result 136 states and 161 transitions. [2022-02-20 23:44:15,944 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 161 transitions. [2022-02-20 23:44:15,945 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:15,945 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:15,945 INFO L74 IsIncluded]: Start isIncluded. First operand has 133 states, 98 states have (on average 1.1734693877551021) internal successors, (115), 99 states have internal predecessors, (115), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) Second operand 136 states. [2022-02-20 23:44:15,945 INFO L87 Difference]: Start difference. First operand has 133 states, 98 states have (on average 1.1734693877551021) internal successors, (115), 99 states have internal predecessors, (115), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) Second operand 136 states. [2022-02-20 23:44:15,948 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:15,949 INFO L93 Difference]: Finished difference Result 136 states and 161 transitions. [2022-02-20 23:44:15,949 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 161 transitions. [2022-02-20 23:44:15,949 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:15,949 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:15,950 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:44:15,950 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:44:15,950 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 133 states, 98 states have (on average 1.1734693877551021) internal successors, (115), 99 states have internal predecessors, (115), 18 states have call successors, (18), 10 states have call predecessors, (18), 13 states have return successors, (28), 23 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 23:44:15,952 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 133 states to 133 states and 161 transitions. [2022-02-20 23:44:15,953 INFO L78 Accepts]: Start accepts. Automaton has 133 states and 161 transitions. Word has length 47 [2022-02-20 23:44:15,953 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:44:15,953 INFO L470 AbstractCegarLoop]: Abstraction has 133 states and 161 transitions. [2022-02-20 23:44:15,953 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 22 states, 17 states have (on average 2.764705882352941) internal successors, (47), 17 states have internal predecessors, (47), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:15,953 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 161 transitions. [2022-02-20 23:44:15,954 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 23:44:15,954 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:44:15,954 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:44:15,978 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Forceful destruction successful, exit code 0 [2022-02-20 23:44:16,177 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable16 [2022-02-20 23:44:16,178 INFO L402 AbstractCegarLoop]: === Iteration 18 === Targeting checkErr3REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:44:16,178 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:44:16,178 INFO L85 PathProgramCache]: Analyzing trace with hash 323795755, now seen corresponding path program 1 times [2022-02-20 23:44:16,178 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:44:16,178 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1739923840] [2022-02-20 23:44:16,178 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:16,178 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:44:16,195 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,309 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:44:16,310 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,312 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,312 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,312 INFO L290 TraceCheckUtils]: 2: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,313 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8709#true} {8709#true} #82#return; {8709#true} is VALID [2022-02-20 23:44:16,313 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:44:16,313 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,316 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,316 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,316 INFO L290 TraceCheckUtils]: 2: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,316 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8709#true} {8709#true} #84#return; {8709#true} is VALID [2022-02-20 23:44:16,316 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:44:16,317 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,320 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,320 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,320 INFO L290 TraceCheckUtils]: 2: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,321 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8709#true} {8722#(and (= check_~x 0) (= check_~a.offset 0))} #90#return; {8722#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,321 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:44:16,322 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,324 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,325 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,325 INFO L290 TraceCheckUtils]: 2: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,325 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8709#true} {8722#(and (= check_~x 0) (= check_~a.offset 0))} #92#return; {8722#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,325 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 35 [2022-02-20 23:44:16,327 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,329 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,329 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,329 INFO L290 TraceCheckUtils]: 2: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,330 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8709#true} {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} #90#return; {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,330 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 40 [2022-02-20 23:44:16,331 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,333 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,334 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,334 INFO L290 TraceCheckUtils]: 2: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,334 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8709#true} {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} #92#return; {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,335 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {8709#true} is VALID [2022-02-20 23:44:16,335 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {8709#true} is VALID [2022-02-20 23:44:16,335 INFO L272 TraceCheckUtils]: 2: Hoare triple {8709#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:16,335 INFO L290 TraceCheckUtils]: 3: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,335 INFO L290 TraceCheckUtils]: 4: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,335 INFO L290 TraceCheckUtils]: 5: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,335 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {8709#true} {8709#true} #82#return; {8709#true} is VALID [2022-02-20 23:44:16,336 INFO L290 TraceCheckUtils]: 7: Hoare triple {8709#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {8709#true} is VALID [2022-02-20 23:44:16,336 INFO L272 TraceCheckUtils]: 8: Hoare triple {8709#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:16,336 INFO L290 TraceCheckUtils]: 9: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,336 INFO L290 TraceCheckUtils]: 10: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,336 INFO L290 TraceCheckUtils]: 11: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,336 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {8709#true} {8709#true} #84#return; {8709#true} is VALID [2022-02-20 23:44:16,337 INFO L290 TraceCheckUtils]: 13: Hoare triple {8709#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {8719#(= |ULTIMATE.start_main_#t~malloc14#1.offset| 0)} is VALID [2022-02-20 23:44:16,337 INFO L290 TraceCheckUtils]: 14: Hoare triple {8719#(= |ULTIMATE.start_main_#t~malloc14#1.offset| 0)} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {8720#(= |ULTIMATE.start_main_~a~0#1.offset| 0)} is VALID [2022-02-20 23:44:16,338 INFO L272 TraceCheckUtils]: 15: Hoare triple {8720#(= |ULTIMATE.start_main_~a~0#1.offset| 0)} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {8721#(and (= |check_#in~a.offset| 0) (= |check_#in~x| 0))} is VALID [2022-02-20 23:44:16,339 INFO L290 TraceCheckUtils]: 16: Hoare triple {8721#(and (= |check_#in~a.offset| 0) (= |check_#in~x| 0))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {8722#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,339 INFO L290 TraceCheckUtils]: 17: Hoare triple {8722#(and (= check_~x 0) (= check_~a.offset 0))} assume !(~x >= ~y); {8722#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,339 INFO L272 TraceCheckUtils]: 18: Hoare triple {8722#(and (= check_~x 0) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:16,339 INFO L290 TraceCheckUtils]: 19: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,339 INFO L290 TraceCheckUtils]: 20: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,340 INFO L290 TraceCheckUtils]: 21: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,340 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {8709#true} {8722#(and (= check_~x 0) (= check_~a.offset 0))} #90#return; {8722#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,340 INFO L272 TraceCheckUtils]: 23: Hoare triple {8722#(and (= check_~x 0) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:16,341 INFO L290 TraceCheckUtils]: 24: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,348 INFO L290 TraceCheckUtils]: 25: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,348 INFO L290 TraceCheckUtils]: 26: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,350 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {8709#true} {8722#(and (= check_~x 0) (= check_~a.offset 0))} #92#return; {8722#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,350 INFO L290 TraceCheckUtils]: 28: Hoare triple {8722#(and (= check_~x 0) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {8722#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,351 INFO L290 TraceCheckUtils]: 29: Hoare triple {8722#(and (= check_~x 0) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {8722#(and (= check_~x 0) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,351 INFO L290 TraceCheckUtils]: 30: Hoare triple {8722#(and (= check_~x 0) (= check_~a.offset 0))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {8731#(and (= check_~x 0) (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,352 INFO L290 TraceCheckUtils]: 31: Hoare triple {8731#(and (= check_~x 0) (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (= check_~a.offset 0))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {8732#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,353 INFO L272 TraceCheckUtils]: 32: Hoare triple {8732#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {8733#(and (= |check_#in~a.offset| 0) (<= 1 |check_#in~x|) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)))} is VALID [2022-02-20 23:44:16,353 INFO L290 TraceCheckUtils]: 33: Hoare triple {8733#(and (= |check_#in~a.offset| 0) (<= 1 |check_#in~x|) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {8732#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,354 INFO L290 TraceCheckUtils]: 34: Hoare triple {8732#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} assume !(~x >= ~y); {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,354 INFO L272 TraceCheckUtils]: 35: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:16,354 INFO L290 TraceCheckUtils]: 36: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,355 INFO L290 TraceCheckUtils]: 37: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,355 INFO L290 TraceCheckUtils]: 38: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,355 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {8709#true} {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} #90#return; {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,356 INFO L272 TraceCheckUtils]: 40: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:16,356 INFO L290 TraceCheckUtils]: 41: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:16,356 INFO L290 TraceCheckUtils]: 42: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:16,356 INFO L290 TraceCheckUtils]: 43: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:16,357 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {8709#true} {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} #92#return; {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,357 INFO L290 TraceCheckUtils]: 45: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,358 INFO L290 TraceCheckUtils]: 46: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:16,358 INFO L290 TraceCheckUtils]: 47: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} assume !(4 + (~a.offset + 4 * ~y) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~y); {8710#false} is VALID [2022-02-20 23:44:16,359 INFO L134 CoverageAnalysis]: Checked inductivity of 35 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-02-20 23:44:16,359 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:44:16,359 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1739923840] [2022-02-20 23:44:16,359 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1739923840] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:44:16,359 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1085979987] [2022-02-20 23:44:16,359 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:16,360 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:44:16,360 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:44:16,364 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:44:16,365 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2022-02-20 23:44:16,428 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,429 INFO L263 TraceCheckSpWp]: Trace formula consists of 198 conjuncts, 35 conjunts are in the unsatisfiable core [2022-02-20 23:44:16,444 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:16,445 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:44:16,502 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 6 treesize of output 5 [2022-02-20 23:44:17,565 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L272 TraceCheckUtils]: 2: Hoare triple {8709#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L290 TraceCheckUtils]: 3: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L290 TraceCheckUtils]: 4: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L290 TraceCheckUtils]: 5: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {8709#true} {8709#true} #82#return; {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L290 TraceCheckUtils]: 7: Hoare triple {8709#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L272 TraceCheckUtils]: 8: Hoare triple {8709#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L290 TraceCheckUtils]: 9: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L290 TraceCheckUtils]: 10: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L290 TraceCheckUtils]: 11: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:17,566 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {8709#true} {8709#true} #84#return; {8709#true} is VALID [2022-02-20 23:44:17,567 INFO L290 TraceCheckUtils]: 13: Hoare triple {8709#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {8785#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} is VALID [2022-02-20 23:44:17,567 INFO L290 TraceCheckUtils]: 14: Hoare triple {8785#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {8789#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:44:17,568 INFO L272 TraceCheckUtils]: 15: Hoare triple {8789#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {8793#(and (= |check_#in~a.offset| 0) (<= 0 |check_#in~x|) (<= (+ |check_#in~y| 1) (div (select |#length| |check_#in~a.base|) 4)))} is VALID [2022-02-20 23:44:17,569 INFO L290 TraceCheckUtils]: 16: Hoare triple {8793#(and (= |check_#in~a.offset| 0) (<= 0 |check_#in~x|) (<= (+ |check_#in~y| 1) (div (select |#length| |check_#in~a.base|) 4)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,569 INFO L290 TraceCheckUtils]: 17: Hoare triple {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} assume !(~x >= ~y); {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,569 INFO L272 TraceCheckUtils]: 18: Hoare triple {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:17,570 INFO L290 TraceCheckUtils]: 19: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:17,570 INFO L290 TraceCheckUtils]: 20: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:17,570 INFO L290 TraceCheckUtils]: 21: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:17,570 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {8709#true} {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} #90#return; {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,570 INFO L272 TraceCheckUtils]: 23: Hoare triple {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:17,570 INFO L290 TraceCheckUtils]: 24: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:17,570 INFO L290 TraceCheckUtils]: 25: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:17,570 INFO L290 TraceCheckUtils]: 26: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:17,571 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {8709#true} {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} #92#return; {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,571 INFO L290 TraceCheckUtils]: 28: Hoare triple {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,572 INFO L290 TraceCheckUtils]: 29: Hoare triple {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,572 INFO L290 TraceCheckUtils]: 30: Hoare triple {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,573 INFO L290 TraceCheckUtils]: 31: Hoare triple {8797#(and (<= 0 check_~x) (<= (+ check_~y 1) (div (select |#length| check_~a.base) 4)) (= check_~a.offset 0))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {8732#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,574 INFO L272 TraceCheckUtils]: 32: Hoare triple {8732#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {8733#(and (= |check_#in~a.offset| 0) (<= 1 |check_#in~x|) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)))} is VALID [2022-02-20 23:44:17,574 INFO L290 TraceCheckUtils]: 33: Hoare triple {8733#(and (= |check_#in~a.offset| 0) (<= 1 |check_#in~x|) (<= (+ (* |check_#in~y| 4) 4) (select |#length| |check_#in~a.base|)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {8732#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,575 INFO L290 TraceCheckUtils]: 34: Hoare triple {8732#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 1 check_~x) (= check_~a.offset 0))} assume !(~x >= ~y); {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,576 INFO L272 TraceCheckUtils]: 35: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} is VALID [2022-02-20 23:44:17,576 INFO L290 TraceCheckUtils]: 36: Hoare triple {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} ~cond := #in~cond; {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} is VALID [2022-02-20 23:44:17,576 INFO L290 TraceCheckUtils]: 37: Hoare triple {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} assume !(0 == ~cond); {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} is VALID [2022-02-20 23:44:17,577 INFO L290 TraceCheckUtils]: 38: Hoare triple {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} assume true; {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} is VALID [2022-02-20 23:44:17,577 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} #90#return; {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,578 INFO L272 TraceCheckUtils]: 40: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} is VALID [2022-02-20 23:44:17,578 INFO L290 TraceCheckUtils]: 41: Hoare triple {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} ~cond := #in~cond; {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} is VALID [2022-02-20 23:44:17,579 INFO L290 TraceCheckUtils]: 42: Hoare triple {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} assume !(0 == ~cond); {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} is VALID [2022-02-20 23:44:17,579 INFO L290 TraceCheckUtils]: 43: Hoare triple {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} assume true; {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} is VALID [2022-02-20 23:44:17,580 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {8855#(exists ((v_check_~a.base_BEFORE_CALL_22 Int) (v_check_~y_BEFORE_CALL_21 Int)) (and (<= 2 v_check_~y_BEFORE_CALL_21) (<= (+ (* v_check_~y_BEFORE_CALL_21 4) 4) (select |#length| v_check_~a.base_BEFORE_CALL_22))))} {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} #92#return; {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,580 INFO L290 TraceCheckUtils]: 45: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} ~x0~0 := ~x;~y0~0 := ~y; {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,580 INFO L290 TraceCheckUtils]: 46: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} is VALID [2022-02-20 23:44:17,581 INFO L290 TraceCheckUtils]: 47: Hoare triple {8734#(and (<= (+ (* 4 check_~y) 4) (select |#length| check_~a.base)) (<= 2 check_~y) (= check_~a.offset 0))} assume !(4 + (~a.offset + 4 * ~y) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~y); {8710#false} is VALID [2022-02-20 23:44:17,581 INFO L134 CoverageAnalysis]: Checked inductivity of 35 backedges. 18 proven. 5 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 23:44:17,581 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 23:44:18,835 INFO L290 TraceCheckUtils]: 47: Hoare triple {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} assume !(4 + (~a.offset + 4 * ~y) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~y); {8710#false} is VALID [2022-02-20 23:44:18,836 INFO L290 TraceCheckUtils]: 46: Hoare triple {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} is VALID [2022-02-20 23:44:18,837 INFO L290 TraceCheckUtils]: 45: Hoare triple {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} ~x0~0 := ~x;~y0~0 := ~y; {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} is VALID [2022-02-20 23:44:18,837 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {8709#true} {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} #92#return; {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} is VALID [2022-02-20 23:44:18,837 INFO L290 TraceCheckUtils]: 43: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:18,837 INFO L290 TraceCheckUtils]: 42: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:18,837 INFO L290 TraceCheckUtils]: 41: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:18,837 INFO L272 TraceCheckUtils]: 40: Hoare triple {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:18,838 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {8709#true} {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} #90#return; {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} is VALID [2022-02-20 23:44:18,838 INFO L290 TraceCheckUtils]: 38: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:18,838 INFO L290 TraceCheckUtils]: 37: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:18,838 INFO L290 TraceCheckUtils]: 36: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:18,838 INFO L272 TraceCheckUtils]: 35: Hoare triple {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:18,839 INFO L290 TraceCheckUtils]: 34: Hoare triple {8932#(or (<= check_~y check_~x) (and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset))))} assume !(~x >= ~y); {8892#(and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset)))} is VALID [2022-02-20 23:44:18,840 INFO L290 TraceCheckUtils]: 33: Hoare triple {8936#(and (or (<= (div |check_#in~a.offset| (- 4)) (+ |check_#in~x| 1)) (<= |check_#in~y| |check_#in~x|)) (or (<= |check_#in~y| (div (+ (- 4) (* (- 1) |check_#in~a.offset|) (select |#length| |check_#in~a.base|)) 4)) (<= |check_#in~y| |check_#in~x|)))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {8932#(or (<= check_~y check_~x) (and (<= (+ (* 4 check_~y) check_~a.offset 4) (select |#length| check_~a.base)) (<= 0 (+ (* 4 check_~y) check_~a.offset))))} is VALID [2022-02-20 23:44:18,841 INFO L272 TraceCheckUtils]: 32: Hoare triple {8940#(and (or (<= check_~y check_~x) (<= (div check_~a.offset (- 4)) (+ check_~x 1))) (or (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4)) (<= check_~y check_~x)))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {8936#(and (or (<= (div |check_#in~a.offset| (- 4)) (+ |check_#in~x| 1)) (<= |check_#in~y| |check_#in~x|)) (or (<= |check_#in~y| (div (+ (- 4) (* (- 1) |check_#in~a.offset|) (select |#length| |check_#in~a.base|)) 4)) (<= |check_#in~y| |check_#in~x|)))} is VALID [2022-02-20 23:44:18,842 INFO L290 TraceCheckUtils]: 31: Hoare triple {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {8940#(and (or (<= check_~y check_~x) (<= (div check_~a.offset (- 4)) (+ check_~x 1))) (or (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4)) (<= check_~y check_~x)))} is VALID [2022-02-20 23:44:18,842 INFO L290 TraceCheckUtils]: 30: Hoare triple {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} is VALID [2022-02-20 23:44:18,843 INFO L290 TraceCheckUtils]: 29: Hoare triple {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} is VALID [2022-02-20 23:44:18,843 INFO L290 TraceCheckUtils]: 28: Hoare triple {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} ~x0~0 := ~x;~y0~0 := ~y; {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} is VALID [2022-02-20 23:44:18,844 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {8709#true} {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} #92#return; {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} is VALID [2022-02-20 23:44:18,847 INFO L290 TraceCheckUtils]: 26: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:18,847 INFO L290 TraceCheckUtils]: 25: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:18,847 INFO L290 TraceCheckUtils]: 24: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:18,847 INFO L272 TraceCheckUtils]: 23: Hoare triple {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:18,852 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {8709#true} {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} #90#return; {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} is VALID [2022-02-20 23:44:18,852 INFO L290 TraceCheckUtils]: 21: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:18,852 INFO L290 TraceCheckUtils]: 20: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:18,852 INFO L290 TraceCheckUtils]: 19: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:18,852 INFO L272 TraceCheckUtils]: 18: Hoare triple {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:18,853 INFO L290 TraceCheckUtils]: 17: Hoare triple {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} assume !(~x >= ~y); {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} is VALID [2022-02-20 23:44:18,854 INFO L290 TraceCheckUtils]: 16: Hoare triple {8990#(and (or (<= |check_#in~y| (+ |check_#in~x| 1)) (<= (div |check_#in~a.offset| (- 4)) (+ 2 |check_#in~x|))) (or (<= |check_#in~y| (div (+ (- 4) (* (- 1) |check_#in~a.offset|) (select |#length| |check_#in~a.base|)) 4)) (<= |check_#in~y| (+ |check_#in~x| 1))))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {8944#(and (or (<= check_~y (+ check_~x 1)) (<= check_~y (div (+ (select |#length| check_~a.base) (- 4) (* (- 1) check_~a.offset)) 4))) (or (<= check_~y (+ check_~x 1)) (<= (div check_~a.offset (- 4)) (+ 2 check_~x))))} is VALID [2022-02-20 23:44:18,855 INFO L272 TraceCheckUtils]: 15: Hoare triple {8994#(and (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| (+ (div (+ (select |#length| |ULTIMATE.start_main_~a~0#1.base|) (* (- 1) |ULTIMATE.start_main_~a~0#1.offset|) (- 4)) 4) 1))) (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= (div |ULTIMATE.start_main_~a~0#1.offset| (- 4)) 2)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {8990#(and (or (<= |check_#in~y| (+ |check_#in~x| 1)) (<= (div |check_#in~a.offset| (- 4)) (+ 2 |check_#in~x|))) (or (<= |check_#in~y| (div (+ (- 4) (* (- 1) |check_#in~a.offset|) (select |#length| |check_#in~a.base|)) 4)) (<= |check_#in~y| (+ |check_#in~x| 1))))} is VALID [2022-02-20 23:44:18,856 INFO L290 TraceCheckUtils]: 14: Hoare triple {8998#(and (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= (div |ULTIMATE.start_main_#t~malloc14#1.offset| (- 4)) 2)) (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| (+ (div (+ (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|) (* (- 1) |ULTIMATE.start_main_#t~malloc14#1.offset|) (- 4)) 4) 1))))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {8994#(and (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| (+ (div (+ (select |#length| |ULTIMATE.start_main_~a~0#1.base|) (* (- 1) |ULTIMATE.start_main_~a~0#1.offset|) (- 4)) 4) 1))) (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= (div |ULTIMATE.start_main_~a~0#1.offset| (- 4)) 2)))} is VALID [2022-02-20 23:44:18,857 INFO L290 TraceCheckUtils]: 13: Hoare triple {8709#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {8998#(and (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= (div |ULTIMATE.start_main_#t~malloc14#1.offset| (- 4)) 2)) (or (<= |ULTIMATE.start_main_~n~0#1| 2) (<= |ULTIMATE.start_main_~n~0#1| (+ (div (+ (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|) (* (- 1) |ULTIMATE.start_main_#t~malloc14#1.offset|) (- 4)) 4) 1))))} is VALID [2022-02-20 23:44:18,857 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {8709#true} {8709#true} #84#return; {8709#true} is VALID [2022-02-20 23:44:18,857 INFO L290 TraceCheckUtils]: 11: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:18,858 INFO L290 TraceCheckUtils]: 10: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:18,858 INFO L290 TraceCheckUtils]: 9: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:18,858 INFO L272 TraceCheckUtils]: 8: Hoare triple {8709#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:18,858 INFO L290 TraceCheckUtils]: 7: Hoare triple {8709#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {8709#true} is VALID [2022-02-20 23:44:18,858 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {8709#true} {8709#true} #82#return; {8709#true} is VALID [2022-02-20 23:44:18,858 INFO L290 TraceCheckUtils]: 5: Hoare triple {8709#true} assume true; {8709#true} is VALID [2022-02-20 23:44:18,858 INFO L290 TraceCheckUtils]: 4: Hoare triple {8709#true} assume !(0 == ~cond); {8709#true} is VALID [2022-02-20 23:44:18,859 INFO L290 TraceCheckUtils]: 3: Hoare triple {8709#true} ~cond := #in~cond; {8709#true} is VALID [2022-02-20 23:44:18,859 INFO L272 TraceCheckUtils]: 2: Hoare triple {8709#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {8709#true} is VALID [2022-02-20 23:44:18,859 INFO L290 TraceCheckUtils]: 1: Hoare triple {8709#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {8709#true} is VALID [2022-02-20 23:44:18,859 INFO L290 TraceCheckUtils]: 0: Hoare triple {8709#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {8709#true} is VALID [2022-02-20 23:44:18,859 INFO L134 CoverageAnalysis]: Checked inductivity of 35 backedges. 1 proven. 6 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-02-20 23:44:18,860 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1085979987] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 23:44:18,860 INFO L191 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-02-20 23:44:18,860 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9, 9] total 22 [2022-02-20 23:44:18,860 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [129460694] [2022-02-20 23:44:18,860 INFO L85 oduleStraightlineAll]: Using 3 imperfect interpolants to construct interpolant automaton [2022-02-20 23:44:18,861 INFO L78 Accepts]: Start accepts. Automaton has has 23 states, 18 states have (on average 2.7222222222222223) internal successors, (49), 18 states have internal predecessors, (49), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) Word has length 48 [2022-02-20 23:44:18,861 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:44:18,861 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 23 states, 18 states have (on average 2.7222222222222223) internal successors, (49), 18 states have internal predecessors, (49), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:18,952 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 82 edges. 82 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:18,952 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 23 states [2022-02-20 23:44:18,952 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:44:18,954 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 23 interpolants. [2022-02-20 23:44:18,954 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=435, Unknown=0, NotChecked=0, Total=506 [2022-02-20 23:44:18,954 INFO L87 Difference]: Start difference. First operand 133 states and 161 transitions. Second operand has 23 states, 18 states have (on average 2.7222222222222223) internal successors, (49), 18 states have internal predecessors, (49), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:21,533 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:21,534 INFO L93 Difference]: Finished difference Result 181 states and 214 transitions. [2022-02-20 23:44:21,534 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2022-02-20 23:44:21,534 INFO L78 Accepts]: Start accepts. Automaton has has 23 states, 18 states have (on average 2.7222222222222223) internal successors, (49), 18 states have internal predecessors, (49), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) Word has length 48 [2022-02-20 23:44:21,534 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:44:21,535 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 23 states, 18 states have (on average 2.7222222222222223) internal successors, (49), 18 states have internal predecessors, (49), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:21,536 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 136 transitions. [2022-02-20 23:44:21,537 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 23 states, 18 states have (on average 2.7222222222222223) internal successors, (49), 18 states have internal predecessors, (49), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:21,538 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 136 transitions. [2022-02-20 23:44:21,539 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 19 states and 136 transitions. [2022-02-20 23:44:21,673 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 136 edges. 136 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:21,676 INFO L225 Difference]: With dead ends: 181 [2022-02-20 23:44:21,676 INFO L226 Difference]: Without dead ends: 181 [2022-02-20 23:44:21,676 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 130 GetRequests, 88 SyntacticMatches, 8 SemanticMatches, 34 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 233 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=231, Invalid=1029, Unknown=0, NotChecked=0, Total=1260 [2022-02-20 23:44:21,677 INFO L933 BasicCegarLoop]: 52 mSDtfsCounter, 185 mSDsluCounter, 481 mSDsCounter, 0 mSdLazyCounter, 654 mSolverCounterSat, 85 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.9s Time, 0 mProtectedPredicate, 0 mProtectedAction, 185 SdHoareTripleChecker+Valid, 533 SdHoareTripleChecker+Invalid, 795 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 85 IncrementalHoareTripleChecker+Valid, 654 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 56 IncrementalHoareTripleChecker+Unchecked, 0.9s IncrementalHoareTripleChecker+Time [2022-02-20 23:44:21,677 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [185 Valid, 533 Invalid, 795 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [85 Valid, 654 Invalid, 0 Unknown, 56 Unchecked, 0.9s Time] [2022-02-20 23:44:21,677 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 181 states. [2022-02-20 23:44:21,688 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 181 to 161. [2022-02-20 23:44:21,689 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:44:21,689 INFO L82 GeneralOperation]: Start isEquivalent. First operand 181 states. Second operand has 161 states, 119 states have (on average 1.1596638655462186) internal successors, (138), 120 states have internal predecessors, (138), 23 states have call successors, (23), 12 states have call predecessors, (23), 16 states have return successors, (34), 28 states have call predecessors, (34), 23 states have call successors, (34) [2022-02-20 23:44:21,689 INFO L74 IsIncluded]: Start isIncluded. First operand 181 states. Second operand has 161 states, 119 states have (on average 1.1596638655462186) internal successors, (138), 120 states have internal predecessors, (138), 23 states have call successors, (23), 12 states have call predecessors, (23), 16 states have return successors, (34), 28 states have call predecessors, (34), 23 states have call successors, (34) [2022-02-20 23:44:21,690 INFO L87 Difference]: Start difference. First operand 181 states. Second operand has 161 states, 119 states have (on average 1.1596638655462186) internal successors, (138), 120 states have internal predecessors, (138), 23 states have call successors, (23), 12 states have call predecessors, (23), 16 states have return successors, (34), 28 states have call predecessors, (34), 23 states have call successors, (34) [2022-02-20 23:44:21,694 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:21,694 INFO L93 Difference]: Finished difference Result 181 states and 214 transitions. [2022-02-20 23:44:21,694 INFO L276 IsEmpty]: Start isEmpty. Operand 181 states and 214 transitions. [2022-02-20 23:44:21,695 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:21,695 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:21,695 INFO L74 IsIncluded]: Start isIncluded. First operand has 161 states, 119 states have (on average 1.1596638655462186) internal successors, (138), 120 states have internal predecessors, (138), 23 states have call successors, (23), 12 states have call predecessors, (23), 16 states have return successors, (34), 28 states have call predecessors, (34), 23 states have call successors, (34) Second operand 181 states. [2022-02-20 23:44:21,696 INFO L87 Difference]: Start difference. First operand has 161 states, 119 states have (on average 1.1596638655462186) internal successors, (138), 120 states have internal predecessors, (138), 23 states have call successors, (23), 12 states have call predecessors, (23), 16 states have return successors, (34), 28 states have call predecessors, (34), 23 states have call successors, (34) Second operand 181 states. [2022-02-20 23:44:21,699 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:21,700 INFO L93 Difference]: Finished difference Result 181 states and 214 transitions. [2022-02-20 23:44:21,700 INFO L276 IsEmpty]: Start isEmpty. Operand 181 states and 214 transitions. [2022-02-20 23:44:21,700 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:21,701 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:21,701 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:44:21,701 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:44:21,701 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 161 states, 119 states have (on average 1.1596638655462186) internal successors, (138), 120 states have internal predecessors, (138), 23 states have call successors, (23), 12 states have call predecessors, (23), 16 states have return successors, (34), 28 states have call predecessors, (34), 23 states have call successors, (34) [2022-02-20 23:44:21,704 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 161 states to 161 states and 195 transitions. [2022-02-20 23:44:21,704 INFO L78 Accepts]: Start accepts. Automaton has 161 states and 195 transitions. Word has length 48 [2022-02-20 23:44:21,704 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:44:21,704 INFO L470 AbstractCegarLoop]: Abstraction has 161 states and 195 transitions. [2022-02-20 23:44:21,705 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 23 states, 18 states have (on average 2.7222222222222223) internal successors, (49), 18 states have internal predecessors, (49), 11 states have call successors, (19), 7 states have call predecessors, (19), 2 states have return successors, (14), 6 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 23:44:21,705 INFO L276 IsEmpty]: Start isEmpty. Operand 161 states and 195 transitions. [2022-02-20 23:44:21,705 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 55 [2022-02-20 23:44:21,705 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:44:21,706 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:44:21,735 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Forceful destruction successful, exit code 0 [2022-02-20 23:44:21,931 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable17,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:44:21,932 INFO L402 AbstractCegarLoop]: === Iteration 19 === Targeting ULTIMATE.startErr3REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:44:21,932 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:44:21,932 INFO L85 PathProgramCache]: Analyzing trace with hash -2076994669, now seen corresponding path program 1 times [2022-02-20 23:44:21,932 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:44:21,932 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [469606071] [2022-02-20 23:44:21,932 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:21,932 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:44:21,956 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,037 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:44:22,038 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,041 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,041 INFO L290 TraceCheckUtils]: 1: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,041 INFO L290 TraceCheckUtils]: 2: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,041 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9771#true} {9771#true} #82#return; {9771#true} is VALID [2022-02-20 23:44:22,042 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:44:22,042 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,044 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,044 INFO L290 TraceCheckUtils]: 1: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,044 INFO L290 TraceCheckUtils]: 2: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,044 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9771#true} {9771#true} #84#return; {9771#true} is VALID [2022-02-20 23:44:22,044 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 15 [2022-02-20 23:44:22,056 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,185 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:44:22,187 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,189 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,190 INFO L290 TraceCheckUtils]: 1: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,190 INFO L290 TraceCheckUtils]: 2: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,190 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9771#true} {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} #90#return; {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,191 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 7 [2022-02-20 23:44:22,192 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,194 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,194 INFO L290 TraceCheckUtils]: 1: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,194 INFO L290 TraceCheckUtils]: 2: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,195 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9771#true} {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} #92#return; {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,195 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 16 [2022-02-20 23:44:22,197 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,236 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {9841#(= |check_#in~x| check_~x)} is VALID [2022-02-20 23:44:22,236 INFO L290 TraceCheckUtils]: 1: Hoare triple {9841#(= |check_#in~x| check_~x)} assume ~x >= ~y;#res := ~x; {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} is VALID [2022-02-20 23:44:22,237 INFO L290 TraceCheckUtils]: 2: Hoare triple {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} assume true; {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} is VALID [2022-02-20 23:44:22,238 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} {9829#(and (or (not (= |check_#in~x| 0)) (<= 1 check_~x)) (<= check_~x check_~y) (= |check_#in~y| check_~y))} #94#return; {9834#(and (or (not (= |check_#in~x| 0)) (<= 1 |check_#t~ret9|)) (<= |check_#t~ret9| |check_#in~y|))} is VALID [2022-02-20 23:44:22,238 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 26 [2022-02-20 23:44:22,240 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,242 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,242 INFO L290 TraceCheckUtils]: 1: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,242 INFO L290 TraceCheckUtils]: 2: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,243 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9771#true} {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} #96#return; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,243 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {9819#(and (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,244 INFO L290 TraceCheckUtils]: 1: Hoare triple {9819#(and (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} assume !(~x >= ~y); {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,244 INFO L272 TraceCheckUtils]: 2: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,244 INFO L290 TraceCheckUtils]: 3: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,244 INFO L290 TraceCheckUtils]: 4: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,244 INFO L290 TraceCheckUtils]: 5: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,245 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {9771#true} {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} #90#return; {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,245 INFO L272 TraceCheckUtils]: 7: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,245 INFO L290 TraceCheckUtils]: 8: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,245 INFO L290 TraceCheckUtils]: 9: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,245 INFO L290 TraceCheckUtils]: 10: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,246 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {9771#true} {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} #92#return; {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,247 INFO L290 TraceCheckUtils]: 12: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} ~x0~0 := ~x;~y0~0 := ~y; {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,248 INFO L290 TraceCheckUtils]: 13: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,248 INFO L290 TraceCheckUtils]: 14: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,249 INFO L290 TraceCheckUtils]: 15: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {9829#(and (or (not (= |check_#in~x| 0)) (<= 1 check_~x)) (<= check_~x check_~y) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,249 INFO L272 TraceCheckUtils]: 16: Hoare triple {9829#(and (or (not (= |check_#in~x| 0)) (<= 1 check_~x)) (<= check_~x check_~y) (= |check_#in~y| check_~y))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {9771#true} is VALID [2022-02-20 23:44:22,250 INFO L290 TraceCheckUtils]: 17: Hoare triple {9771#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {9841#(= |check_#in~x| check_~x)} is VALID [2022-02-20 23:44:22,250 INFO L290 TraceCheckUtils]: 18: Hoare triple {9841#(= |check_#in~x| check_~x)} assume ~x >= ~y;#res := ~x; {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} is VALID [2022-02-20 23:44:22,250 INFO L290 TraceCheckUtils]: 19: Hoare triple {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} assume true; {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} is VALID [2022-02-20 23:44:22,252 INFO L284 TraceCheckUtils]: 20: Hoare quadruple {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} {9829#(and (or (not (= |check_#in~x| 0)) (<= 1 check_~x)) (<= check_~x check_~y) (= |check_#in~y| check_~y))} #94#return; {9834#(and (or (not (= |check_#in~x| 0)) (<= 1 |check_#t~ret9|)) (<= |check_#t~ret9| |check_#in~y|))} is VALID [2022-02-20 23:44:22,252 INFO L290 TraceCheckUtils]: 21: Hoare triple {9834#(and (or (not (= |check_#in~x| 0)) (<= 1 |check_#t~ret9|)) (<= |check_#t~ret9| |check_#in~y|))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,253 INFO L290 TraceCheckUtils]: 22: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} SUMMARY for call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i, 4); srcloc: L33 {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,253 INFO L290 TraceCheckUtils]: 23: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} ~ai~0 := #t~mem10;havoc #t~mem10; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,254 INFO L290 TraceCheckUtils]: 24: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} SUMMARY for call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~x1~0, 4); srcloc: L34 {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,254 INFO L290 TraceCheckUtils]: 25: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} ~ax~0 := #t~mem11;havoc #t~mem11; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,254 INFO L272 TraceCheckUtils]: 26: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} call __VERIFIER_assert((if ~ai~0 <= ~ax~0 then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,255 INFO L290 TraceCheckUtils]: 27: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,255 INFO L290 TraceCheckUtils]: 28: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,255 INFO L290 TraceCheckUtils]: 29: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,255 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {9771#true} {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} #96#return; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,256 INFO L290 TraceCheckUtils]: 31: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} #res := ~x1~0; {9840#(and (<= |check_#res| |check_#in~y|) (or (<= 1 |check_#res|) (not (= |check_#in~x| 0))))} is VALID [2022-02-20 23:44:22,256 INFO L290 TraceCheckUtils]: 32: Hoare triple {9840#(and (<= |check_#res| |check_#in~y|) (or (<= 1 |check_#res|) (not (= |check_#in~x| 0))))} assume true; {9840#(and (<= |check_#res| |check_#in~y|) (or (<= 1 |check_#res|) (not (= |check_#in~x| 0))))} is VALID [2022-02-20 23:44:22,258 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9840#(and (<= |check_#res| |check_#in~y|) (or (<= 1 |check_#res|) (not (= |check_#in~x| 0))))} {9782#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} #86#return; {9817#(and (<= 1 |ULTIMATE.start_main_#t~ret15#1|) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* 4 |ULTIMATE.start_main_#t~ret15#1|) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:44:22,258 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {9771#true} is VALID [2022-02-20 23:44:22,258 INFO L290 TraceCheckUtils]: 1: Hoare triple {9771#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {9771#true} is VALID [2022-02-20 23:44:22,258 INFO L272 TraceCheckUtils]: 2: Hoare triple {9771#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,258 INFO L290 TraceCheckUtils]: 3: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,259 INFO L290 TraceCheckUtils]: 4: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,259 INFO L290 TraceCheckUtils]: 5: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,259 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {9771#true} {9771#true} #82#return; {9771#true} is VALID [2022-02-20 23:44:22,259 INFO L290 TraceCheckUtils]: 7: Hoare triple {9771#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {9771#true} is VALID [2022-02-20 23:44:22,259 INFO L272 TraceCheckUtils]: 8: Hoare triple {9771#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,259 INFO L290 TraceCheckUtils]: 9: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,259 INFO L290 TraceCheckUtils]: 10: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,259 INFO L290 TraceCheckUtils]: 11: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,260 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {9771#true} {9771#true} #84#return; {9771#true} is VALID [2022-02-20 23:44:22,260 INFO L290 TraceCheckUtils]: 13: Hoare triple {9771#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {9781#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} is VALID [2022-02-20 23:44:22,261 INFO L290 TraceCheckUtils]: 14: Hoare triple {9781#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {9782#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:44:22,261 INFO L272 TraceCheckUtils]: 15: Hoare triple {9782#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {9771#true} is VALID [2022-02-20 23:44:22,261 INFO L290 TraceCheckUtils]: 16: Hoare triple {9771#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {9819#(and (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,262 INFO L290 TraceCheckUtils]: 17: Hoare triple {9819#(and (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} assume !(~x >= ~y); {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,262 INFO L272 TraceCheckUtils]: 18: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,262 INFO L290 TraceCheckUtils]: 19: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,262 INFO L290 TraceCheckUtils]: 20: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,262 INFO L290 TraceCheckUtils]: 21: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,263 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {9771#true} {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} #90#return; {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,263 INFO L272 TraceCheckUtils]: 23: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,263 INFO L290 TraceCheckUtils]: 24: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,263 INFO L290 TraceCheckUtils]: 25: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,263 INFO L290 TraceCheckUtils]: 26: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,263 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {9771#true} {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} #92#return; {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,264 INFO L290 TraceCheckUtils]: 28: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} ~x0~0 := ~x;~y0~0 := ~y; {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,264 INFO L290 TraceCheckUtils]: 29: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,265 INFO L290 TraceCheckUtils]: 30: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,266 INFO L290 TraceCheckUtils]: 31: Hoare triple {9820#(and (<= (+ check_~x 1) check_~y) (or (= |check_#in~x| check_~x) (= check_~x 0)) (= |check_#in~y| check_~y))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {9829#(and (or (not (= |check_#in~x| 0)) (<= 1 check_~x)) (<= check_~x check_~y) (= |check_#in~y| check_~y))} is VALID [2022-02-20 23:44:22,266 INFO L272 TraceCheckUtils]: 32: Hoare triple {9829#(and (or (not (= |check_#in~x| 0)) (<= 1 check_~x)) (<= check_~x check_~y) (= |check_#in~y| check_~y))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {9771#true} is VALID [2022-02-20 23:44:22,266 INFO L290 TraceCheckUtils]: 33: Hoare triple {9771#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {9841#(= |check_#in~x| check_~x)} is VALID [2022-02-20 23:44:22,266 INFO L290 TraceCheckUtils]: 34: Hoare triple {9841#(= |check_#in~x| check_~x)} assume ~x >= ~y;#res := ~x; {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} is VALID [2022-02-20 23:44:22,267 INFO L290 TraceCheckUtils]: 35: Hoare triple {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} assume true; {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} is VALID [2022-02-20 23:44:22,268 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} {9829#(and (or (not (= |check_#in~x| 0)) (<= 1 check_~x)) (<= check_~x check_~y) (= |check_#in~y| check_~y))} #94#return; {9834#(and (or (not (= |check_#in~x| 0)) (<= 1 |check_#t~ret9|)) (<= |check_#t~ret9| |check_#in~y|))} is VALID [2022-02-20 23:44:22,268 INFO L290 TraceCheckUtils]: 37: Hoare triple {9834#(and (or (not (= |check_#in~x| 0)) (<= 1 |check_#t~ret9|)) (<= |check_#t~ret9| |check_#in~y|))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,269 INFO L290 TraceCheckUtils]: 38: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} SUMMARY for call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i, 4); srcloc: L33 {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,269 INFO L290 TraceCheckUtils]: 39: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} ~ai~0 := #t~mem10;havoc #t~mem10; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,270 INFO L290 TraceCheckUtils]: 40: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} SUMMARY for call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~x1~0, 4); srcloc: L34 {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,270 INFO L290 TraceCheckUtils]: 41: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} ~ax~0 := #t~mem11;havoc #t~mem11; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,270 INFO L272 TraceCheckUtils]: 42: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} call __VERIFIER_assert((if ~ai~0 <= ~ax~0 then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,271 INFO L290 TraceCheckUtils]: 43: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,271 INFO L290 TraceCheckUtils]: 44: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,272 INFO L290 TraceCheckUtils]: 45: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,272 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {9771#true} {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} #96#return; {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} is VALID [2022-02-20 23:44:22,272 INFO L290 TraceCheckUtils]: 47: Hoare triple {9835#(and (<= check_~x1~0 |check_#in~y|) (or (not (= |check_#in~x| 0)) (<= 1 check_~x1~0)))} #res := ~x1~0; {9840#(and (<= |check_#res| |check_#in~y|) (or (<= 1 |check_#res|) (not (= |check_#in~x| 0))))} is VALID [2022-02-20 23:44:22,273 INFO L290 TraceCheckUtils]: 48: Hoare triple {9840#(and (<= |check_#res| |check_#in~y|) (or (<= 1 |check_#res|) (not (= |check_#in~x| 0))))} assume true; {9840#(and (<= |check_#res| |check_#in~y|) (or (<= 1 |check_#res|) (not (= |check_#in~x| 0))))} is VALID [2022-02-20 23:44:22,274 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {9840#(and (<= |check_#res| |check_#in~y|) (or (<= 1 |check_#res|) (not (= |check_#in~x| 0))))} {9782#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} #86#return; {9817#(and (<= 1 |ULTIMATE.start_main_#t~ret15#1|) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* 4 |ULTIMATE.start_main_#t~ret15#1|) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:44:22,274 INFO L290 TraceCheckUtils]: 50: Hoare triple {9817#(and (<= 1 |ULTIMATE.start_main_#t~ret15#1|) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* 4 |ULTIMATE.start_main_#t~ret15#1|) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} assume -2147483648 <= main_#t~ret15#1 && main_#t~ret15#1 <= 2147483647;main_~x~0#1 := main_#t~ret15#1;havoc main_#t~ret15#1; {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 23:44:22,275 INFO L290 TraceCheckUtils]: 51: Hoare triple {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} SUMMARY for call main_#t~mem16#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~0#1, 4); srcloc: L48 {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 23:44:22,275 INFO L290 TraceCheckUtils]: 52: Hoare triple {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} main_~ai~1#1 := main_#t~mem16#1;havoc main_#t~mem16#1; {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 23:44:22,276 INFO L290 TraceCheckUtils]: 53: Hoare triple {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} assume !(4 + (main_~a~0#1.offset + 4 * main_~x~0#1) <= #length[main_~a~0#1.base] && 0 <= main_~a~0#1.offset + 4 * main_~x~0#1); {9772#false} is VALID [2022-02-20 23:44:22,276 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-02-20 23:44:22,276 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:44:22,276 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [469606071] [2022-02-20 23:44:22,276 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [469606071] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:44:22,276 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1659706262] [2022-02-20 23:44:22,276 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:22,276 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:44:22,277 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:44:22,277 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:44:22,278 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Waiting until timeout for monitored process [2022-02-20 23:44:22,343 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,344 INFO L263 TraceCheckSpWp]: Trace formula consists of 221 conjuncts, 32 conjunts are in the unsatisfiable core [2022-02-20 23:44:22,357 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:22,358 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:44:22,406 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 6 treesize of output 5 [2022-02-20 23:44:22,849 INFO L290 TraceCheckUtils]: 0: Hoare triple {9771#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L290 TraceCheckUtils]: 1: Hoare triple {9771#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L272 TraceCheckUtils]: 2: Hoare triple {9771#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L290 TraceCheckUtils]: 3: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L290 TraceCheckUtils]: 4: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L290 TraceCheckUtils]: 5: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {9771#true} {9771#true} #82#return; {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L290 TraceCheckUtils]: 7: Hoare triple {9771#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L272 TraceCheckUtils]: 8: Hoare triple {9771#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L290 TraceCheckUtils]: 9: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L290 TraceCheckUtils]: 10: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L290 TraceCheckUtils]: 11: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,850 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {9771#true} {9771#true} #84#return; {9771#true} is VALID [2022-02-20 23:44:22,851 INFO L290 TraceCheckUtils]: 13: Hoare triple {9771#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {9781#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} is VALID [2022-02-20 23:44:22,851 INFO L290 TraceCheckUtils]: 14: Hoare triple {9781#(and (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_#t~malloc14#1.base|)) (= |ULTIMATE.start_main_#t~malloc14#1.offset| 0))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {9782#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:44:22,852 INFO L272 TraceCheckUtils]: 15: Hoare triple {9782#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {9771#true} is VALID [2022-02-20 23:44:22,852 INFO L290 TraceCheckUtils]: 16: Hoare triple {9771#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {9894#(and (<= |check_#in~x| check_~x) (<= check_~y |check_#in~y|))} is VALID [2022-02-20 23:44:22,852 INFO L290 TraceCheckUtils]: 17: Hoare triple {9894#(and (<= |check_#in~x| check_~x) (<= check_~y |check_#in~y|))} assume !(~x >= ~y); {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} is VALID [2022-02-20 23:44:22,852 INFO L272 TraceCheckUtils]: 18: Hoare triple {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,853 INFO L290 TraceCheckUtils]: 19: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,853 INFO L290 TraceCheckUtils]: 20: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,853 INFO L290 TraceCheckUtils]: 21: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,855 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {9771#true} {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} #90#return; {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} is VALID [2022-02-20 23:44:22,856 INFO L272 TraceCheckUtils]: 23: Hoare triple {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,856 INFO L290 TraceCheckUtils]: 24: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,856 INFO L290 TraceCheckUtils]: 25: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,856 INFO L290 TraceCheckUtils]: 26: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,857 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {9771#true} {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} #92#return; {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} is VALID [2022-02-20 23:44:22,857 INFO L290 TraceCheckUtils]: 28: Hoare triple {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} ~x0~0 := ~x;~y0~0 := ~y; {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} is VALID [2022-02-20 23:44:22,858 INFO L290 TraceCheckUtils]: 29: Hoare triple {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} is VALID [2022-02-20 23:44:22,858 INFO L290 TraceCheckUtils]: 30: Hoare triple {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} is VALID [2022-02-20 23:44:22,859 INFO L290 TraceCheckUtils]: 31: Hoare triple {9898#(and (<= |check_#in~x| check_~x) (< check_~x |check_#in~y|))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {9941#(and (<= (+ |check_#in~x| 1) check_~x) (< check_~x (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,859 INFO L272 TraceCheckUtils]: 32: Hoare triple {9941#(and (<= (+ |check_#in~x| 1) check_~x) (< check_~x (+ |check_#in~y| 1)))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {9771#true} is VALID [2022-02-20 23:44:22,860 INFO L290 TraceCheckUtils]: 33: Hoare triple {9771#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {9841#(= |check_#in~x| check_~x)} is VALID [2022-02-20 23:44:22,860 INFO L290 TraceCheckUtils]: 34: Hoare triple {9841#(= |check_#in~x| check_~x)} assume ~x >= ~y;#res := ~x; {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} is VALID [2022-02-20 23:44:22,860 INFO L290 TraceCheckUtils]: 35: Hoare triple {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} assume true; {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} is VALID [2022-02-20 23:44:22,862 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9842#(and (<= |check_#res| |check_#in~x|) (<= |check_#in~x| |check_#res|))} {9941#(and (<= (+ |check_#in~x| 1) check_~x) (< check_~x (+ |check_#in~y| 1)))} #94#return; {9957#(and (< |check_#t~ret9| (+ |check_#in~y| 1)) (<= (+ |check_#in~x| 1) |check_#t~ret9|))} is VALID [2022-02-20 23:44:22,862 INFO L290 TraceCheckUtils]: 37: Hoare triple {9957#(and (< |check_#t~ret9| (+ |check_#in~y| 1)) (<= (+ |check_#in~x| 1) |check_#t~ret9|))} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,863 INFO L290 TraceCheckUtils]: 38: Hoare triple {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} SUMMARY for call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i, 4); srcloc: L33 {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,863 INFO L290 TraceCheckUtils]: 39: Hoare triple {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} ~ai~0 := #t~mem10;havoc #t~mem10; {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,864 INFO L290 TraceCheckUtils]: 40: Hoare triple {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} SUMMARY for call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~x1~0, 4); srcloc: L34 {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,864 INFO L290 TraceCheckUtils]: 41: Hoare triple {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} ~ax~0 := #t~mem11;havoc #t~mem11; {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,864 INFO L272 TraceCheckUtils]: 42: Hoare triple {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} call __VERIFIER_assert((if ~ai~0 <= ~ax~0 then 1 else 0)); {9771#true} is VALID [2022-02-20 23:44:22,864 INFO L290 TraceCheckUtils]: 43: Hoare triple {9771#true} ~cond := #in~cond; {9771#true} is VALID [2022-02-20 23:44:22,864 INFO L290 TraceCheckUtils]: 44: Hoare triple {9771#true} assume !(0 == ~cond); {9771#true} is VALID [2022-02-20 23:44:22,864 INFO L290 TraceCheckUtils]: 45: Hoare triple {9771#true} assume true; {9771#true} is VALID [2022-02-20 23:44:22,865 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {9771#true} {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} #96#return; {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,865 INFO L290 TraceCheckUtils]: 47: Hoare triple {9961#(and (<= (+ |check_#in~x| 1) check_~x1~0) (< check_~x1~0 (+ |check_#in~y| 1)))} #res := ~x1~0; {9992#(and (<= (+ |check_#in~x| 1) |check_#res|) (< |check_#res| (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,865 INFO L290 TraceCheckUtils]: 48: Hoare triple {9992#(and (<= (+ |check_#in~x| 1) |check_#res|) (< |check_#res| (+ |check_#in~y| 1)))} assume true; {9992#(and (<= (+ |check_#in~x| 1) |check_#res|) (< |check_#res| (+ |check_#in~y| 1)))} is VALID [2022-02-20 23:44:22,867 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {9992#(and (<= (+ |check_#in~x| 1) |check_#res|) (< |check_#res| (+ |check_#in~y| 1)))} {9782#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (* |ULTIMATE.start_main_~n~0#1| 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} #86#return; {9817#(and (<= 1 |ULTIMATE.start_main_#t~ret15#1|) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* 4 |ULTIMATE.start_main_#t~ret15#1|) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} is VALID [2022-02-20 23:44:22,867 INFO L290 TraceCheckUtils]: 50: Hoare triple {9817#(and (<= 1 |ULTIMATE.start_main_#t~ret15#1|) (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* 4 |ULTIMATE.start_main_#t~ret15#1|) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)))} assume -2147483648 <= main_#t~ret15#1 && main_#t~ret15#1 <= 2147483647;main_~x~0#1 := main_#t~ret15#1;havoc main_#t~ret15#1; {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 23:44:22,868 INFO L290 TraceCheckUtils]: 51: Hoare triple {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} SUMMARY for call main_#t~mem16#1 := read~int(main_~a~0#1.base, main_~a~0#1.offset + 4 * main_~i~0#1, 4); srcloc: L48 {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 23:44:22,868 INFO L290 TraceCheckUtils]: 52: Hoare triple {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} main_~ai~1#1 := main_#t~mem16#1;havoc main_#t~mem16#1; {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 23:44:22,868 INFO L290 TraceCheckUtils]: 53: Hoare triple {9818#(and (= |ULTIMATE.start_main_~a~0#1.offset| 0) (<= (+ (* |ULTIMATE.start_main_~x~0#1| 4) 4) (select |#length| |ULTIMATE.start_main_~a~0#1.base|)) (<= 1 |ULTIMATE.start_main_~x~0#1|))} assume !(4 + (main_~a~0#1.offset + 4 * main_~x~0#1) <= #length[main_~a~0#1.base] && 0 <= main_~a~0#1.offset + 4 * main_~x~0#1); {9772#false} is VALID [2022-02-20 23:44:22,869 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-02-20 23:44:22,869 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 23:44:26,355 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1659706262] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:44:26,355 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 23:44:26,355 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 13] total 19 [2022-02-20 23:44:26,356 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [476342497] [2022-02-20 23:44:26,356 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 23:44:26,356 INFO L78 Accepts]: Start accepts. Automaton has has 20 states, 16 states have (on average 2.75) internal successors, (44), 17 states have internal predecessors, (44), 8 states have call successors, (11), 1 states have call predecessors, (11), 4 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) Word has length 54 [2022-02-20 23:44:26,356 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 23:44:26,357 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 20 states, 16 states have (on average 2.75) internal successors, (44), 17 states have internal predecessors, (44), 8 states have call successors, (11), 1 states have call predecessors, (11), 4 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 23:44:26,413 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:26,413 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 20 states [2022-02-20 23:44:26,413 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 23:44:26,413 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2022-02-20 23:44:26,414 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=56, Invalid=544, Unknown=0, NotChecked=0, Total=600 [2022-02-20 23:44:26,414 INFO L87 Difference]: Start difference. First operand 161 states and 195 transitions. Second operand has 20 states, 16 states have (on average 2.75) internal successors, (44), 17 states have internal predecessors, (44), 8 states have call successors, (11), 1 states have call predecessors, (11), 4 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 23:44:29,009 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:29,010 INFO L93 Difference]: Finished difference Result 256 states and 322 transitions. [2022-02-20 23:44:29,010 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2022-02-20 23:44:29,010 INFO L78 Accepts]: Start accepts. Automaton has has 20 states, 16 states have (on average 2.75) internal successors, (44), 17 states have internal predecessors, (44), 8 states have call successors, (11), 1 states have call predecessors, (11), 4 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) Word has length 54 [2022-02-20 23:44:29,010 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 23:44:29,011 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 20 states, 16 states have (on average 2.75) internal successors, (44), 17 states have internal predecessors, (44), 8 states have call successors, (11), 1 states have call predecessors, (11), 4 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 23:44:29,013 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 108 transitions. [2022-02-20 23:44:29,013 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 20 states, 16 states have (on average 2.75) internal successors, (44), 17 states have internal predecessors, (44), 8 states have call successors, (11), 1 states have call predecessors, (11), 4 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 23:44:29,015 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 108 transitions. [2022-02-20 23:44:29,015 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 21 states and 108 transitions. [2022-02-20 23:44:29,123 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 108 edges. 108 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 23:44:29,128 INFO L225 Difference]: With dead ends: 256 [2022-02-20 23:44:29,128 INFO L226 Difference]: Without dead ends: 238 [2022-02-20 23:44:29,129 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 105 GetRequests, 62 SyntacticMatches, 2 SemanticMatches, 41 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 232 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=215, Invalid=1591, Unknown=0, NotChecked=0, Total=1806 [2022-02-20 23:44:29,129 INFO L933 BasicCegarLoop]: 66 mSDtfsCounter, 126 mSDsluCounter, 728 mSDsCounter, 0 mSdLazyCounter, 704 mSolverCounterSat, 67 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 126 SdHoareTripleChecker+Valid, 794 SdHoareTripleChecker+Invalid, 771 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 67 IncrementalHoareTripleChecker+Valid, 704 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.8s IncrementalHoareTripleChecker+Time [2022-02-20 23:44:29,130 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [126 Valid, 794 Invalid, 771 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [67 Valid, 704 Invalid, 0 Unknown, 0 Unchecked, 0.8s Time] [2022-02-20 23:44:29,130 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 238 states. [2022-02-20 23:44:29,136 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 238 to 203. [2022-02-20 23:44:29,136 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 23:44:29,137 INFO L82 GeneralOperation]: Start isEquivalent. First operand 238 states. Second operand has 203 states, 153 states have (on average 1.1830065359477124) internal successors, (181), 152 states have internal predecessors, (181), 27 states have call successors, (27), 12 states have call predecessors, (27), 20 states have return successors, (48), 38 states have call predecessors, (48), 27 states have call successors, (48) [2022-02-20 23:44:29,137 INFO L74 IsIncluded]: Start isIncluded. First operand 238 states. Second operand has 203 states, 153 states have (on average 1.1830065359477124) internal successors, (181), 152 states have internal predecessors, (181), 27 states have call successors, (27), 12 states have call predecessors, (27), 20 states have return successors, (48), 38 states have call predecessors, (48), 27 states have call successors, (48) [2022-02-20 23:44:29,137 INFO L87 Difference]: Start difference. First operand 238 states. Second operand has 203 states, 153 states have (on average 1.1830065359477124) internal successors, (181), 152 states have internal predecessors, (181), 27 states have call successors, (27), 12 states have call predecessors, (27), 20 states have return successors, (48), 38 states have call predecessors, (48), 27 states have call successors, (48) [2022-02-20 23:44:29,145 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:29,145 INFO L93 Difference]: Finished difference Result 238 states and 301 transitions. [2022-02-20 23:44:29,145 INFO L276 IsEmpty]: Start isEmpty. Operand 238 states and 301 transitions. [2022-02-20 23:44:29,146 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:29,146 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:29,147 INFO L74 IsIncluded]: Start isIncluded. First operand has 203 states, 153 states have (on average 1.1830065359477124) internal successors, (181), 152 states have internal predecessors, (181), 27 states have call successors, (27), 12 states have call predecessors, (27), 20 states have return successors, (48), 38 states have call predecessors, (48), 27 states have call successors, (48) Second operand 238 states. [2022-02-20 23:44:29,147 INFO L87 Difference]: Start difference. First operand has 203 states, 153 states have (on average 1.1830065359477124) internal successors, (181), 152 states have internal predecessors, (181), 27 states have call successors, (27), 12 states have call predecessors, (27), 20 states have return successors, (48), 38 states have call predecessors, (48), 27 states have call successors, (48) Second operand 238 states. [2022-02-20 23:44:29,154 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 23:44:29,154 INFO L93 Difference]: Finished difference Result 238 states and 301 transitions. [2022-02-20 23:44:29,154 INFO L276 IsEmpty]: Start isEmpty. Operand 238 states and 301 transitions. [2022-02-20 23:44:29,155 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 23:44:29,155 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 23:44:29,156 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 23:44:29,156 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 23:44:29,156 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 203 states, 153 states have (on average 1.1830065359477124) internal successors, (181), 152 states have internal predecessors, (181), 27 states have call successors, (27), 12 states have call predecessors, (27), 20 states have return successors, (48), 38 states have call predecessors, (48), 27 states have call successors, (48) [2022-02-20 23:44:29,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 203 states to 203 states and 256 transitions. [2022-02-20 23:44:29,161 INFO L78 Accepts]: Start accepts. Automaton has 203 states and 256 transitions. Word has length 54 [2022-02-20 23:44:29,161 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 23:44:29,161 INFO L470 AbstractCegarLoop]: Abstraction has 203 states and 256 transitions. [2022-02-20 23:44:29,162 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 20 states, 16 states have (on average 2.75) internal successors, (44), 17 states have internal predecessors, (44), 8 states have call successors, (11), 1 states have call predecessors, (11), 4 states have return successors, (12), 8 states have call predecessors, (12), 8 states have call successors, (12) [2022-02-20 23:44:29,162 INFO L276 IsEmpty]: Start isEmpty. Operand 203 states and 256 transitions. [2022-02-20 23:44:29,162 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 57 [2022-02-20 23:44:29,162 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 23:44:29,162 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 23:44:29,188 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Forceful destruction successful, exit code 0 [2022-02-20 23:44:29,386 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable18,9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:44:29,386 INFO L402 AbstractCegarLoop]: === Iteration 20 === Targeting checkErr5REQUIRES_VIOLATION === [ULTIMATE.startErr0REQUIRES_VIOLATION, ULTIMATE.startErr1REQUIRES_VIOLATION, ULTIMATE.startErr2REQUIRES_VIOLATION, ULTIMATE.startErr3REQUIRES_VIOLATION (and 13 more)] === [2022-02-20 23:44:29,386 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 23:44:29,386 INFO L85 PathProgramCache]: Analyzing trace with hash -143130868, now seen corresponding path program 1 times [2022-02-20 23:44:29,387 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 23:44:29,387 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [392978657] [2022-02-20 23:44:29,387 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:29,387 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 23:44:29,410 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,474 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 23:44:29,475 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,477 INFO L290 TraceCheckUtils]: 0: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,477 INFO L290 TraceCheckUtils]: 1: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,477 INFO L290 TraceCheckUtils]: 2: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,477 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11013#true} {11013#true} #82#return; {11013#true} is VALID [2022-02-20 23:44:29,477 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 23:44:29,478 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,480 INFO L290 TraceCheckUtils]: 0: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,480 INFO L290 TraceCheckUtils]: 1: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,481 INFO L290 TraceCheckUtils]: 2: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,481 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11013#true} {11013#true} #84#return; {11013#true} is VALID [2022-02-20 23:44:29,481 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 18 [2022-02-20 23:44:29,481 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,484 INFO L290 TraceCheckUtils]: 0: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,484 INFO L290 TraceCheckUtils]: 1: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,484 INFO L290 TraceCheckUtils]: 2: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,485 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11013#true} {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #90#return; {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,485 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 23 [2022-02-20 23:44:29,486 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,488 INFO L290 TraceCheckUtils]: 0: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,488 INFO L290 TraceCheckUtils]: 1: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,488 INFO L290 TraceCheckUtils]: 2: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,489 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11013#true} {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #92#return; {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,489 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 35 [2022-02-20 23:44:29,490 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,492 INFO L290 TraceCheckUtils]: 0: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,493 INFO L290 TraceCheckUtils]: 1: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,493 INFO L290 TraceCheckUtils]: 2: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,494 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11013#true} {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} #90#return; {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:29,494 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 40 [2022-02-20 23:44:29,495 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,497 INFO L290 TraceCheckUtils]: 0: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,497 INFO L290 TraceCheckUtils]: 1: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,497 INFO L290 TraceCheckUtils]: 2: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,498 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11013#true} {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} #92#return; {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:29,498 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 49 [2022-02-20 23:44:29,499 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,501 INFO L290 TraceCheckUtils]: 0: Hoare triple {11013#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {11013#true} is VALID [2022-02-20 23:44:29,501 INFO L290 TraceCheckUtils]: 1: Hoare triple {11013#true} assume ~x >= ~y;#res := ~x; {11013#true} is VALID [2022-02-20 23:44:29,502 INFO L290 TraceCheckUtils]: 2: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,502 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11013#true} {11014#false} #94#return; {11014#false} is VALID [2022-02-20 23:44:29,502 INFO L290 TraceCheckUtils]: 0: Hoare triple {11013#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(31, 2);call #Ultimate.allocInit(12, 3); {11013#true} is VALID [2022-02-20 23:44:29,502 INFO L290 TraceCheckUtils]: 1: Hoare triple {11013#true} assume { :end_inline_ULTIMATE.init } true;main_old_#valid#1 := #valid;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet12#1, main_#t~nondet13#1, main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_#t~ret15#1, main_#t~mem16#1, main_#t~mem17#1, main_~n~0#1, main_~i~0#1, main_~a~0#1.base, main_~a~0#1.offset, main_~x~0#1, main_~ai~1#1, main_~ax~1#1;assume -2147483648 <= main_#t~nondet12#1 && main_#t~nondet12#1 <= 2147483647;main_~n~0#1 := main_#t~nondet12#1;havoc main_#t~nondet12#1; {11013#true} is VALID [2022-02-20 23:44:29,502 INFO L272 TraceCheckUtils]: 2: Hoare triple {11013#true} call assume_abort_if_not((if main_~n~0#1 >= 0 then 1 else 0)); {11013#true} is VALID [2022-02-20 23:44:29,502 INFO L290 TraceCheckUtils]: 3: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,502 INFO L290 TraceCheckUtils]: 4: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,503 INFO L290 TraceCheckUtils]: 5: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,503 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {11013#true} {11013#true} #82#return; {11013#true} is VALID [2022-02-20 23:44:29,503 INFO L290 TraceCheckUtils]: 7: Hoare triple {11013#true} assume -2147483648 <= main_#t~nondet13#1 && main_#t~nondet13#1 <= 2147483647;main_~i~0#1 := main_#t~nondet13#1;havoc main_#t~nondet13#1; {11013#true} is VALID [2022-02-20 23:44:29,503 INFO L272 TraceCheckUtils]: 8: Hoare triple {11013#true} call assume_abort_if_not((if (0 <= main_~i~0#1 && main_~i~0#1 < main_~n~0#1) && main_~n~0#1 < 1073741824 then 1 else 0)); {11013#true} is VALID [2022-02-20 23:44:29,503 INFO L290 TraceCheckUtils]: 9: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,503 INFO L290 TraceCheckUtils]: 10: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,503 INFO L290 TraceCheckUtils]: 11: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,503 INFO L284 TraceCheckUtils]: 12: Hoare quadruple {11013#true} {11013#true} #84#return; {11013#true} is VALID [2022-02-20 23:44:29,504 INFO L290 TraceCheckUtils]: 13: Hoare triple {11013#true} call main_#t~malloc14#1.base, main_#t~malloc14#1.offset := #Ultimate.allocOnHeap(4 * main_~n~0#1);assume { :begin_inline_#Ultimate.meminit } true;#Ultimate.meminit_#ptr#1.base, #Ultimate.meminit_#ptr#1.offset, #Ultimate.meminit_#amountOfFields#1, #Ultimate.meminit_#sizeOfFields#1, #Ultimate.meminit_#product#1 := main_#t~malloc14#1.base, main_#t~malloc14#1.offset, main_~n~0#1, 4, 4 * main_~n~0#1;#memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #Ultimate.meminit_#ptr#1.base); {11023#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} is VALID [2022-02-20 23:44:29,505 INFO L290 TraceCheckUtils]: 14: Hoare triple {11023#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_#t~malloc14#1.base|))} assume { :end_inline_#Ultimate.meminit } true;main_~a~0#1.base, main_~a~0#1.offset := main_#t~malloc14#1.base, main_#t~malloc14#1.offset; {11024#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} is VALID [2022-02-20 23:44:29,506 INFO L272 TraceCheckUtils]: 15: Hoare triple {11024#(= ((as const (Array Int Int)) 0) (select |#memory_int| |ULTIMATE.start_main_~a~0#1.base|))} call main_#t~ret15#1 := check(0, main_~n~0#1 - 1, main_~a~0#1.base, main_~a~0#1.offset, main_~i~0#1, main_~n~0#1); {11025#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} is VALID [2022-02-20 23:44:29,506 INFO L290 TraceCheckUtils]: 16: Hoare triple {11025#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,507 INFO L290 TraceCheckUtils]: 17: Hoare triple {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume !(~x >= ~y); {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,507 INFO L272 TraceCheckUtils]: 18: Hoare triple {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {11013#true} is VALID [2022-02-20 23:44:29,507 INFO L290 TraceCheckUtils]: 19: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,507 INFO L290 TraceCheckUtils]: 20: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,507 INFO L290 TraceCheckUtils]: 21: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,508 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {11013#true} {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #90#return; {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,508 INFO L272 TraceCheckUtils]: 23: Hoare triple {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {11013#true} is VALID [2022-02-20 23:44:29,508 INFO L290 TraceCheckUtils]: 24: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,508 INFO L290 TraceCheckUtils]: 25: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,508 INFO L290 TraceCheckUtils]: 26: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,509 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {11013#true} {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} #92#return; {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,509 INFO L290 TraceCheckUtils]: 28: Hoare triple {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} ~x0~0 := ~x;~y0~0 := ~y; {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,510 INFO L290 TraceCheckUtils]: 29: Hoare triple {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,510 INFO L290 TraceCheckUtils]: 30: Hoare triple {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,510 INFO L290 TraceCheckUtils]: 31: Hoare triple {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} assume #t~mem5 <= #t~mem6;havoc #t~mem5;havoc #t~mem6;#t~post7 := ~x;~x := 1 + #t~post7;havoc #t~post7; {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} is VALID [2022-02-20 23:44:29,511 INFO L272 TraceCheckUtils]: 32: Hoare triple {11026#(= ((as const (Array Int Int)) 0) (select |#memory_int| check_~a.base))} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {11025#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} is VALID [2022-02-20 23:44:29,512 INFO L290 TraceCheckUtils]: 33: Hoare triple {11025#(= ((as const (Array Int Int)) 0) (select |#memory_int| |check_#in~a.base|))} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:29,512 INFO L290 TraceCheckUtils]: 34: Hoare triple {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} assume !(~x >= ~y); {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:29,513 INFO L272 TraceCheckUtils]: 35: Hoare triple {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} call __VERIFIER_assert((if 0 <= ~x && ~y < ~n then 1 else 0)); {11013#true} is VALID [2022-02-20 23:44:29,513 INFO L290 TraceCheckUtils]: 36: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,513 INFO L290 TraceCheckUtils]: 37: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,513 INFO L290 TraceCheckUtils]: 38: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,514 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {11013#true} {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} #90#return; {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:29,514 INFO L272 TraceCheckUtils]: 40: Hoare triple {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} call assume_abort_if_not((if 0 <= ~i && ~i < ~n then 1 else 0)); {11013#true} is VALID [2022-02-20 23:44:29,514 INFO L290 TraceCheckUtils]: 41: Hoare triple {11013#true} ~cond := #in~cond; {11013#true} is VALID [2022-02-20 23:44:29,514 INFO L290 TraceCheckUtils]: 42: Hoare triple {11013#true} assume !(0 == ~cond); {11013#true} is VALID [2022-02-20 23:44:29,514 INFO L290 TraceCheckUtils]: 43: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,515 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {11013#true} {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} #92#return; {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:29,515 INFO L290 TraceCheckUtils]: 45: Hoare triple {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} ~x0~0 := ~x;~y0~0 := ~y; {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:29,516 INFO L290 TraceCheckUtils]: 46: Hoare triple {11035#(and (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~x) check_~a.offset)) 0))} SUMMARY for call #t~mem5 := read~int(~a.base, ~a.offset + 4 * ~x, 4); srcloc: L26 {11044#(and (= |check_#t~mem5| 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0))} is VALID [2022-02-20 23:44:29,516 INFO L290 TraceCheckUtils]: 47: Hoare triple {11044#(and (= |check_#t~mem5| 0) (= (select (select |#memory_int| check_~a.base) (+ (* 4 check_~y) check_~a.offset)) 0))} SUMMARY for call #t~mem6 := read~int(~a.base, ~a.offset + 4 * ~y, 4); srcloc: L26-1 {11045#(and (= |check_#t~mem5| 0) (= |check_#t~mem6| 0))} is VALID [2022-02-20 23:44:29,517 INFO L290 TraceCheckUtils]: 48: Hoare triple {11045#(and (= |check_#t~mem5| 0) (= |check_#t~mem6| 0))} assume !(#t~mem5 <= #t~mem6);havoc #t~mem5;havoc #t~mem6;#t~post8 := ~y;~y := #t~post8 - 1;havoc #t~post8; {11014#false} is VALID [2022-02-20 23:44:29,517 INFO L272 TraceCheckUtils]: 49: Hoare triple {11014#false} call #t~ret9 := check(~x, ~y, ~a.base, ~a.offset, ~i, ~n); {11013#true} is VALID [2022-02-20 23:44:29,517 INFO L290 TraceCheckUtils]: 50: Hoare triple {11013#true} ~x := #in~x;~y := #in~y;~a.base, ~a.offset := #in~a.base, #in~a.offset;~i := #in~i;~n := #in~n; {11013#true} is VALID [2022-02-20 23:44:29,517 INFO L290 TraceCheckUtils]: 51: Hoare triple {11013#true} assume ~x >= ~y;#res := ~x; {11013#true} is VALID [2022-02-20 23:44:29,517 INFO L290 TraceCheckUtils]: 52: Hoare triple {11013#true} assume true; {11013#true} is VALID [2022-02-20 23:44:29,518 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {11013#true} {11014#false} #94#return; {11014#false} is VALID [2022-02-20 23:44:29,518 INFO L290 TraceCheckUtils]: 54: Hoare triple {11014#false} assume -2147483648 <= #t~ret9 && #t~ret9 <= 2147483647;~x1~0 := #t~ret9;havoc #t~ret9; {11014#false} is VALID [2022-02-20 23:44:29,518 INFO L290 TraceCheckUtils]: 55: Hoare triple {11014#false} assume !(4 + (~a.offset + 4 * ~i) <= #length[~a.base] && 0 <= ~a.offset + 4 * ~i); {11014#false} is VALID [2022-02-20 23:44:29,518 INFO L134 CoverageAnalysis]: Checked inductivity of 41 backedges. 1 proven. 11 refuted. 0 times theorem prover too weak. 29 trivial. 0 not checked. [2022-02-20 23:44:29,518 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 23:44:29,518 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [392978657] [2022-02-20 23:44:29,519 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [392978657] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 23:44:29,519 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [240168178] [2022-02-20 23:44:29,519 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 23:44:29,519 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-02-20 23:44:29,519 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 23:44:29,524 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-02-20 23:44:29,525 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Waiting until timeout for monitored process [2022-02-20 23:44:29,593 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,594 INFO L263 TraceCheckSpWp]: Trace formula consists of 243 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 23:44:29,607 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 23:44:29,608 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 23:44:29,636 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 6 [2022-02-20 23:44:31,656 WARN L860 $PredicateComparison]: unable to prove that (exists ((v_check_~a.base_BEFORE_CALL_28 Int)) (= ((as const (Array Int Int)) 0) (select |c_#memory_int| v_check_~a.base_BEFORE_CALL_28))) is different from true