/usr/bin/java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata ./data --core.log.level.for.class de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN -tc ../../../trunk/examples/toolchains/AutomizerC.xml -s ../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationJordan_32.epf -i ../../../trunk/examples/svcomp/verifythis/duplets.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-34549b5 [2022-04-08 04:18:00,101 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-08 04:18:00,103 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-08 04:18:00,136 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-08 04:18:00,136 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-08 04:18:00,137 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-08 04:18:00,139 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-08 04:18:00,141 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-08 04:18:00,143 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-08 04:18:00,146 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-08 04:18:00,147 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-08 04:18:00,148 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-08 04:18:00,148 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-08 04:18:00,149 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-08 04:18:00,150 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-08 04:18:00,152 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-08 04:18:00,153 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-08 04:18:00,153 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-08 04:18:00,155 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-08 04:18:00,159 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-08 04:18:00,160 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-08 04:18:00,164 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-08 04:18:00,165 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-08 04:18:00,165 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-08 04:18:00,167 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-08 04:18:00,171 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-08 04:18:00,171 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-08 04:18:00,171 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-08 04:18:00,172 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-08 04:18:00,172 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-08 04:18:00,174 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-08 04:18:00,174 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-08 04:18:00,175 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-08 04:18:00,176 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-08 04:18:00,176 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-08 04:18:00,177 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-08 04:18:00,177 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-08 04:18:00,178 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-08 04:18:00,178 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-08 04:18:00,178 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-08 04:18:00,179 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-08 04:18:00,184 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-08 04:18:00,186 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationJordan_32.epf [2022-04-08 04:18:00,193 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-08 04:18:00,193 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-08 04:18:00,194 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-08 04:18:00,194 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-08 04:18:00,194 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-08 04:18:00,194 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-08 04:18:00,194 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-08 04:18:00,194 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-08 04:18:00,194 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-08 04:18:00,195 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-08 04:18:00,195 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-08 04:18:00,195 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-08 04:18:00,195 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-08 04:18:00,195 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-08 04:18:00,195 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-08 04:18:00,195 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-08 04:18:00,195 INFO L138 SettingsManager]: * To the following directory=./dump/ [2022-04-08 04:18:00,196 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-08 04:18:00,196 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-08 04:18:00,196 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-08 04:18:00,196 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=Craig_NestedInterpolation [2022-04-08 04:18:00,196 INFO L138 SettingsManager]: * Trace refinement strategy=ACCELERATED_INTERPOLATION [2022-04-08 04:18:00,196 INFO L138 SettingsManager]: * Trace refinement strategy used in Accelerated Interpolation=CAMEL [2022-04-08 04:18:00,196 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-08 04:18:00,196 INFO L138 SettingsManager]: * Loop acceleration method that is used by accelerated interpolation=JORDAN [2022-04-08 04:18:00,196 INFO L138 SettingsManager]: * Use separate solver for trace checks=false 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.core: Log level for class -> de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN; [2022-04-08 04:18:00,386 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-08 04:18:00,401 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-08 04:18:00,403 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-08 04:18:00,404 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-08 04:18:00,404 INFO L275 PluginConnector]: CDTParser initialized [2022-04-08 04:18:00,405 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/verifythis/duplets.c [2022-04-08 04:18:00,453 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/349468ae9/ac65798c5dbb41108aa57025e9f788c9/FLAG782200ee4 [2022-04-08 04:18:00,839 INFO L306 CDTParser]: Found 1 translation units. [2022-04-08 04:18:00,840 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/verifythis/duplets.c [2022-04-08 04:18:00,848 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/349468ae9/ac65798c5dbb41108aa57025e9f788c9/FLAG782200ee4 [2022-04-08 04:18:00,871 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/349468ae9/ac65798c5dbb41108aa57025e9f788c9 [2022-04-08 04:18:00,874 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-08 04:18:00,875 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-08 04:18:00,877 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-08 04:18:00,877 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-08 04:18:00,880 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-08 04:18:00,881 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.04 04:18:00" (1/1) ... [2022-04-08 04:18:00,882 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@769effd2 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:00, skipping insertion in model container [2022-04-08 04:18:00,882 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.04 04:18:00" (1/1) ... [2022-04-08 04:18:00,888 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-08 04:18:00,900 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-08 04:18:01,030 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/trunk/examples/svcomp/verifythis/duplets.c[485,498] [2022-04-08 04:18:01,077 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-08 04:18:01,083 INFO L203 MainTranslator]: Completed pre-run [2022-04-08 04:18:01,094 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/trunk/examples/svcomp/verifythis/duplets.c[485,498] [2022-04-08 04:18:01,118 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-08 04:18:01,128 INFO L208 MainTranslator]: Completed translation [2022-04-08 04:18:01,129 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01 WrapperNode [2022-04-08 04:18:01,129 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-08 04:18:01,130 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-08 04:18:01,130 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-08 04:18:01,130 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-08 04:18:01,138 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (1/1) ... [2022-04-08 04:18:01,138 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (1/1) ... [2022-04-08 04:18:01,152 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (1/1) ... [2022-04-08 04:18:01,152 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (1/1) ... [2022-04-08 04:18:01,164 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (1/1) ... [2022-04-08 04:18:01,166 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (1/1) ... [2022-04-08 04:18:01,177 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (1/1) ... [2022-04-08 04:18:01,181 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-08 04:18:01,181 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-08 04:18:01,181 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-08 04:18:01,181 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-08 04:18:01,184 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (1/1) ... [2022-04-08 04:18:01,189 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-08 04:18:01,196 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:18:01,205 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-04-08 04:18:01,223 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-04-08 04:18:01,231 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-08 04:18:01,231 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-08 04:18:01,232 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-08 04:18:01,232 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-08 04:18:01,232 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-08 04:18:01,232 INFO L138 BoogieDeclarations]: Found implementation of procedure mkdup [2022-04-08 04:18:01,232 INFO L138 BoogieDeclarations]: Found implementation of procedure finddup [2022-04-08 04:18:01,232 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-08 04:18:01,232 INFO L138 BoogieDeclarations]: Found implementation of procedure #Ultimate.meminit [2022-04-08 04:18:01,232 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2022-04-08 04:18:01,232 INFO L130 BoogieDeclarations]: Found specification of procedure free [2022-04-08 04:18:01,232 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-08 04:18:01,232 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-08 04:18:01,232 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-08 04:18:01,232 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure mkdup [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure finddup [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.meminit [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-08 04:18:01,233 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-08 04:18:01,291 INFO L234 CfgBuilder]: Building ICFG [2022-04-08 04:18:01,292 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-08 04:18:01,541 INFO L275 CfgBuilder]: Performing block encoding [2022-04-08 04:18:01,546 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-08 04:18:01,547 INFO L299 CfgBuilder]: Removed 2 assume(true) statements. [2022-04-08 04:18:01,548 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.04 04:18:01 BoogieIcfgContainer [2022-04-08 04:18:01,548 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-08 04:18:01,550 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-08 04:18:01,550 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-08 04:18:01,552 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-08 04:18:01,552 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 08.04 04:18:00" (1/3) ... [2022-04-08 04:18:01,553 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@48c2d66a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 08.04 04:18:01, skipping insertion in model container [2022-04-08 04:18:01,553 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 04:18:01" (2/3) ... [2022-04-08 04:18:01,554 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@48c2d66a and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 08.04 04:18:01, skipping insertion in model container [2022-04-08 04:18:01,554 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.04 04:18:01" (3/3) ... [2022-04-08 04:18:01,555 INFO L111 eAbstractionObserver]: Analyzing ICFG duplets.c [2022-04-08 04:18:01,559 INFO L203 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:Craig_NestedInterpolation Determinization: PREDICATE_ABSTRACTION [2022-04-08 04:18:01,559 INFO L162 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-08 04:18:01,587 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-08 04:18:01,592 INFO L340 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=Craig_NestedInterpolation, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, 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 [2022-04-08 04:18:01,592 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-08 04:18:01,605 INFO L276 IsEmpty]: Start isEmpty. Operand has 59 states, 36 states have (on average 1.2777777777777777) internal successors, (46), 37 states have internal predecessors, (46), 14 states have call successors, (14), 7 states have call predecessors, (14), 7 states have return successors, (14), 14 states have call predecessors, (14), 14 states have call successors, (14) [2022-04-08 04:18:01,612 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-04-08 04:18:01,612 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:01,612 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1] [2022-04-08 04:18:01,613 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:01,619 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:01,620 INFO L85 PathProgramCache]: Analyzing trace with hash -1531213237, now seen corresponding path program 1 times [2022-04-08 04:18:01,625 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:01,626 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [336741438] [2022-04-08 04:18:01,634 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:01,634 INFO L85 PathProgramCache]: Analyzing trace with hash -1531213237, now seen corresponding path program 2 times [2022-04-08 04:18:01,638 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:01,638 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1605140551] [2022-04-08 04:18:01,639 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:01,639 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:01,757 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,812 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:01,820 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,845 INFO L290 TraceCheckUtils]: 0: Hoare triple {98#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {62#true} is VALID [2022-04-08 04:18:01,846 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 04:18:01,846 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {62#true} {62#true} #122#return; {62#true} is VALID [2022-04-08 04:18:01,846 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:01,852 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,859 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,860 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,860 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,861 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {62#true} #98#return; {63#false} is VALID [2022-04-08 04:18:01,867 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:01,870 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,880 INFO L290 TraceCheckUtils]: 0: Hoare triple {99#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {62#true} is VALID [2022-04-08 04:18:01,880 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 04:18:01,880 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {62#true} {63#false} #100#return; {63#false} is VALID [2022-04-08 04:18:01,881 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:01,902 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,917 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:01,919 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,925 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,925 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,926 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,926 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-08 04:18:01,926 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:01,928 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,935 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,935 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,936 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,936 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-08 04:18:01,936 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:01,938 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,944 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,945 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,945 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,946 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-08 04:18:01,946 INFO L290 TraceCheckUtils]: 0: Hoare triple {99#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {62#true} is VALID [2022-04-08 04:18:01,947 INFO L272 TraceCheckUtils]: 1: Hoare triple {62#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {62#true} is VALID [2022-04-08 04:18:01,947 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,948 INFO L290 TraceCheckUtils]: 3: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,948 INFO L290 TraceCheckUtils]: 4: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,949 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-08 04:18:01,949 INFO L272 TraceCheckUtils]: 6: Hoare triple {63#false} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {62#true} is VALID [2022-04-08 04:18:01,949 INFO L290 TraceCheckUtils]: 7: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,949 INFO L290 TraceCheckUtils]: 8: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,950 INFO L290 TraceCheckUtils]: 9: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,950 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-08 04:18:01,951 INFO L272 TraceCheckUtils]: 11: Hoare triple {63#false} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {62#true} is VALID [2022-04-08 04:18:01,951 INFO L290 TraceCheckUtils]: 12: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,951 INFO L290 TraceCheckUtils]: 13: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,951 INFO L290 TraceCheckUtils]: 14: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,952 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-08 04:18:01,952 INFO L290 TraceCheckUtils]: 16: Hoare triple {63#false} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {63#false} is VALID [2022-04-08 04:18:01,952 INFO L290 TraceCheckUtils]: 17: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,952 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {63#false} {63#false} #102#return; {63#false} is VALID [2022-04-08 04:18:01,953 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:01,964 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:01,979 INFO L290 TraceCheckUtils]: 0: Hoare triple {99#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {62#true} is VALID [2022-04-08 04:18:01,980 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume !(~i~1 < ~n); {62#true} is VALID [2022-04-08 04:18:01,980 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} #res := 0; {62#true} is VALID [2022-04-08 04:18:01,980 INFO L290 TraceCheckUtils]: 3: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 04:18:01,980 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {62#true} {63#false} #104#return; {63#false} is VALID [2022-04-08 04:18:01,982 INFO L272 TraceCheckUtils]: 0: Hoare triple {62#true} call ULTIMATE.init(); {98#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:01,982 INFO L290 TraceCheckUtils]: 1: Hoare triple {98#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {62#true} is VALID [2022-04-08 04:18:01,984 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 04:18:01,985 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {62#true} {62#true} #122#return; {62#true} is VALID [2022-04-08 04:18:01,985 INFO L272 TraceCheckUtils]: 4: Hoare triple {62#true} call #t~ret27 := main(); {62#true} is VALID [2022-04-08 04:18:01,985 INFO L290 TraceCheckUtils]: 5: Hoare triple {62#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {62#true} is VALID [2022-04-08 04:18:01,985 INFO L272 TraceCheckUtils]: 6: Hoare triple {62#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {62#true} is VALID [2022-04-08 04:18:01,985 INFO L290 TraceCheckUtils]: 7: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,986 INFO L290 TraceCheckUtils]: 8: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,987 INFO L290 TraceCheckUtils]: 9: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,987 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {63#false} {62#true} #98#return; {63#false} is VALID [2022-04-08 04:18:01,987 INFO L290 TraceCheckUtils]: 11: Hoare triple {63#false} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {63#false} is VALID [2022-04-08 04:18:01,987 INFO L272 TraceCheckUtils]: 12: Hoare triple {63#false} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {99#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:01,987 INFO L290 TraceCheckUtils]: 13: Hoare triple {99#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {62#true} is VALID [2022-04-08 04:18:01,987 INFO L290 TraceCheckUtils]: 14: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 04:18:01,988 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {62#true} {63#false} #100#return; {63#false} is VALID [2022-04-08 04:18:01,988 INFO L290 TraceCheckUtils]: 16: Hoare triple {63#false} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {63#false} is VALID [2022-04-08 04:18:01,988 INFO L272 TraceCheckUtils]: 17: Hoare triple {63#false} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {99#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:01,988 INFO L290 TraceCheckUtils]: 18: Hoare triple {99#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {62#true} is VALID [2022-04-08 04:18:01,988 INFO L272 TraceCheckUtils]: 19: Hoare triple {62#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {62#true} is VALID [2022-04-08 04:18:01,988 INFO L290 TraceCheckUtils]: 20: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,990 INFO L290 TraceCheckUtils]: 21: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,991 INFO L290 TraceCheckUtils]: 22: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,991 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-08 04:18:01,991 INFO L272 TraceCheckUtils]: 24: Hoare triple {63#false} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {62#true} is VALID [2022-04-08 04:18:01,991 INFO L290 TraceCheckUtils]: 25: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,992 INFO L290 TraceCheckUtils]: 26: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,992 INFO L290 TraceCheckUtils]: 27: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,992 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-08 04:18:01,992 INFO L272 TraceCheckUtils]: 29: Hoare triple {63#false} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {62#true} is VALID [2022-04-08 04:18:01,993 INFO L290 TraceCheckUtils]: 30: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 04:18:01,993 INFO L290 TraceCheckUtils]: 31: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 04:18:01,993 INFO L290 TraceCheckUtils]: 32: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,994 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-08 04:18:01,994 INFO L290 TraceCheckUtils]: 34: Hoare triple {63#false} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {63#false} is VALID [2022-04-08 04:18:01,994 INFO L290 TraceCheckUtils]: 35: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 04:18:01,994 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {63#false} {63#false} #102#return; {63#false} is VALID [2022-04-08 04:18:01,994 INFO L290 TraceCheckUtils]: 37: Hoare triple {63#false} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {63#false} is VALID [2022-04-08 04:18:01,994 INFO L272 TraceCheckUtils]: 38: Hoare triple {63#false} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {99#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:01,995 INFO L290 TraceCheckUtils]: 39: Hoare triple {99#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {62#true} is VALID [2022-04-08 04:18:01,995 INFO L290 TraceCheckUtils]: 40: Hoare triple {62#true} assume !(~i~1 < ~n); {62#true} is VALID [2022-04-08 04:18:01,996 INFO L290 TraceCheckUtils]: 41: Hoare triple {62#true} #res := 0; {62#true} is VALID [2022-04-08 04:18:01,996 INFO L290 TraceCheckUtils]: 42: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 04:18:01,997 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {62#true} {63#false} #104#return; {63#false} is VALID [2022-04-08 04:18:01,997 INFO L290 TraceCheckUtils]: 44: Hoare triple {63#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {63#false} is VALID [2022-04-08 04:18:01,997 INFO L272 TraceCheckUtils]: 45: Hoare triple {63#false} call __VERIFIER_assert(~r~0); {63#false} is VALID [2022-04-08 04:18:01,997 INFO L290 TraceCheckUtils]: 46: Hoare triple {63#false} ~cond := #in~cond; {63#false} is VALID [2022-04-08 04:18:01,997 INFO L290 TraceCheckUtils]: 47: Hoare triple {63#false} assume 0 == ~cond; {63#false} is VALID [2022-04-08 04:18:01,997 INFO L290 TraceCheckUtils]: 48: Hoare triple {63#false} assume !false; {63#false} is VALID [2022-04-08 04:18:01,998 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:01,998 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:01,999 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1605140551] [2022-04-08 04:18:02,000 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1605140551] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:02,000 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:02,000 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-04-08 04:18:02,002 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:02,002 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [336741438] [2022-04-08 04:18:02,002 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [336741438] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:02,003 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:02,003 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-04-08 04:18:02,003 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [631903183] [2022-04-08 04:18:02,003 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:02,008 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.5) internal successors, (22), 2 states have internal predecessors, (22), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) Word has length 49 [2022-04-08 04:18:02,010 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:02,012 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 5.5) internal successors, (22), 2 states have internal predecessors, (22), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-08 04:18:02,061 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:02,061 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-04-08 04:18:02,061 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:02,079 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-04-08 04:18:02,080 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-04-08 04:18:02,082 INFO L87 Difference]: Start difference. First operand has 59 states, 36 states have (on average 1.2777777777777777) internal successors, (46), 37 states have internal predecessors, (46), 14 states have call successors, (14), 7 states have call predecessors, (14), 7 states have return successors, (14), 14 states have call predecessors, (14), 14 states have call successors, (14) Second operand has 4 states, 4 states have (on average 5.5) internal successors, (22), 2 states have internal predecessors, (22), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-08 04:18:02,405 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:02,405 INFO L93 Difference]: Finished difference Result 113 states and 153 transitions. [2022-04-08 04:18:02,405 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-08 04:18:02,406 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.5) internal successors, (22), 2 states have internal predecessors, (22), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) Word has length 49 [2022-04-08 04:18:02,406 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:02,407 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.5) internal successors, (22), 2 states have internal predecessors, (22), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-08 04:18:02,415 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 153 transitions. [2022-04-08 04:18:02,416 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.5) internal successors, (22), 2 states have internal predecessors, (22), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-08 04:18:02,422 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 153 transitions. [2022-04-08 04:18:02,422 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 153 transitions. [2022-04-08 04:18:02,573 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 153 edges. 153 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:02,584 INFO L225 Difference]: With dead ends: 113 [2022-04-08 04:18:02,584 INFO L226 Difference]: Without dead ends: 56 [2022-04-08 04:18:02,587 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 22 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-04-08 04:18:02,591 INFO L913 BasicCegarLoop]: 53 mSDtfsCounter, 59 mSDsluCounter, 2 mSDsCounter, 0 mSdLazyCounter, 50 mSolverCounterSat, 40 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 67 SdHoareTripleChecker+Valid, 55 SdHoareTripleChecker+Invalid, 90 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 40 IncrementalHoareTripleChecker+Valid, 50 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:02,592 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [67 Valid, 55 Invalid, 90 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [40 Valid, 50 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-08 04:18:02,603 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2022-04-08 04:18:02,620 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 54. [2022-04-08 04:18:02,620 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:02,621 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand has 54 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 34 states have internal predecessors, (39), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 04:18:02,622 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand has 54 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 34 states have internal predecessors, (39), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 04:18:02,622 INFO L87 Difference]: Start difference. First operand 56 states. Second operand has 54 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 34 states have internal predecessors, (39), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 04:18:02,626 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:02,627 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2022-04-08 04:18:02,627 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 67 transitions. [2022-04-08 04:18:02,627 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:02,628 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:02,628 INFO L74 IsIncluded]: Start isIncluded. First operand has 54 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 34 states have internal predecessors, (39), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) Second operand 56 states. [2022-04-08 04:18:02,628 INFO L87 Difference]: Start difference. First operand has 54 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 34 states have internal predecessors, (39), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) Second operand 56 states. [2022-04-08 04:18:02,632 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:02,632 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2022-04-08 04:18:02,632 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 67 transitions. [2022-04-08 04:18:02,633 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:02,633 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:02,633 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:02,633 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:02,633 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 54 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 34 states have internal predecessors, (39), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 04:18:02,637 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 65 transitions. [2022-04-08 04:18:02,638 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 65 transitions. Word has length 49 [2022-04-08 04:18:02,638 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:02,638 INFO L478 AbstractCegarLoop]: Abstraction has 54 states and 65 transitions. [2022-04-08 04:18:02,638 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 5.5) internal successors, (22), 2 states have internal predecessors, (22), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 2 states have call successors, (8) [2022-04-08 04:18:02,639 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 54 states and 65 transitions. [2022-04-08 04:18:02,703 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:02,703 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 65 transitions. [2022-04-08 04:18:02,704 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-04-08 04:18:02,705 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:02,705 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1] [2022-04-08 04:18:02,705 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-08 04:18:02,705 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:02,706 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:02,706 INFO L85 PathProgramCache]: Analyzing trace with hash -1121655349, now seen corresponding path program 1 times [2022-04-08 04:18:02,706 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:02,706 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [5177987] [2022-04-08 04:18:02,707 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:02,707 INFO L85 PathProgramCache]: Analyzing trace with hash -1121655349, now seen corresponding path program 2 times [2022-04-08 04:18:02,707 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:02,707 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1137916074] [2022-04-08 04:18:02,707 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:02,707 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:02,785 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:02,851 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:02,855 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:02,876 INFO L290 TraceCheckUtils]: 0: Hoare triple {600#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {563#true} is VALID [2022-04-08 04:18:02,876 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:02,876 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-08 04:18:02,876 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:02,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:02,881 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:02,881 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:02,881 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:02,883 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-08 04:18:02,887 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:02,888 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:02,904 INFO L290 TraceCheckUtils]: 0: Hoare triple {601#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {563#true} is VALID [2022-04-08 04:18:02,905 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:02,905 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-08 04:18:02,905 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:02,917 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:02,952 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:02,958 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:02,990 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {617#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:02,990 INFO L290 TraceCheckUtils]: 1: Hoare triple {617#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:02,991 INFO L290 TraceCheckUtils]: 2: Hoare triple {618#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:02,991 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {618#(not (= |assume_abort_if_not_#in~cond| 0))} {602#(= |mkdup_#in~n| mkdup_~n)} #116#return; {607#(and (<= 1 mkdup_~n) (= |mkdup_#in~n| mkdup_~n))} is VALID [2022-04-08 04:18:02,992 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:02,993 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:02,996 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:02,997 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:02,997 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:02,997 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {607#(and (<= 1 mkdup_~n) (= |mkdup_#in~n| mkdup_~n))} #118#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:02,998 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:02,999 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:03,001 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,002 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,002 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,002 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,003 INFO L290 TraceCheckUtils]: 0: Hoare triple {601#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {602#(= |mkdup_#in~n| mkdup_~n)} is VALID [2022-04-08 04:18:03,003 INFO L272 TraceCheckUtils]: 1: Hoare triple {602#(= |mkdup_#in~n| mkdup_~n)} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,003 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} ~cond := #in~cond; {617#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:03,004 INFO L290 TraceCheckUtils]: 3: Hoare triple {617#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:03,004 INFO L290 TraceCheckUtils]: 4: Hoare triple {618#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:03,005 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {618#(not (= |assume_abort_if_not_#in~cond| 0))} {602#(= |mkdup_#in~n| mkdup_~n)} #116#return; {607#(and (<= 1 mkdup_~n) (= |mkdup_#in~n| mkdup_~n))} is VALID [2022-04-08 04:18:03,005 INFO L272 TraceCheckUtils]: 6: Hoare triple {607#(and (<= 1 mkdup_~n) (= |mkdup_#in~n| mkdup_~n))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,005 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,005 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,005 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,006 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {607#(and (<= 1 mkdup_~n) (= |mkdup_#in~n| mkdup_~n))} #118#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,006 INFO L272 TraceCheckUtils]: 11: Hoare triple {612#(<= 1 |mkdup_#in~n|)} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,006 INFO L290 TraceCheckUtils]: 12: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,006 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,006 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,007 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,007 INFO L290 TraceCheckUtils]: 16: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,008 INFO L290 TraceCheckUtils]: 17: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,008 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {612#(<= 1 |mkdup_#in~n|)} {563#true} #102#return; {594#(<= 1 main_~n~0)} is VALID [2022-04-08 04:18:03,009 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:03,011 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:03,034 INFO L290 TraceCheckUtils]: 0: Hoare triple {601#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {619#(and (<= finddup_~i~1 0) (= |finddup_#in~n| finddup_~n))} is VALID [2022-04-08 04:18:03,035 INFO L290 TraceCheckUtils]: 1: Hoare triple {619#(and (<= finddup_~i~1 0) (= |finddup_#in~n| finddup_~n))} assume !(~i~1 < ~n); {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,035 INFO L290 TraceCheckUtils]: 2: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,035 INFO L290 TraceCheckUtils]: 3: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,036 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {620#(<= |finddup_#in~n| 0)} {594#(<= 1 main_~n~0)} #104#return; {564#false} is VALID [2022-04-08 04:18:03,039 INFO L272 TraceCheckUtils]: 0: Hoare triple {563#true} call ULTIMATE.init(); {600#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:03,039 INFO L290 TraceCheckUtils]: 1: Hoare triple {600#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {563#true} is VALID [2022-04-08 04:18:03,039 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,039 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-08 04:18:03,039 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-08 04:18:03,039 INFO L290 TraceCheckUtils]: 5: Hoare triple {563#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {563#true} is VALID [2022-04-08 04:18:03,039 INFO L272 TraceCheckUtils]: 6: Hoare triple {563#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,039 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,040 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,040 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,040 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-08 04:18:03,040 INFO L290 TraceCheckUtils]: 11: Hoare triple {563#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {563#true} is VALID [2022-04-08 04:18:03,041 INFO L272 TraceCheckUtils]: 12: Hoare triple {563#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {601#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:03,041 INFO L290 TraceCheckUtils]: 13: Hoare triple {601#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {563#true} is VALID [2022-04-08 04:18:03,041 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,041 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-08 04:18:03,041 INFO L290 TraceCheckUtils]: 16: Hoare triple {563#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {563#true} is VALID [2022-04-08 04:18:03,042 INFO L272 TraceCheckUtils]: 17: Hoare triple {563#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {601#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:03,042 INFO L290 TraceCheckUtils]: 18: Hoare triple {601#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {602#(= |mkdup_#in~n| mkdup_~n)} is VALID [2022-04-08 04:18:03,042 INFO L272 TraceCheckUtils]: 19: Hoare triple {602#(= |mkdup_#in~n| mkdup_~n)} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,046 INFO L290 TraceCheckUtils]: 20: Hoare triple {563#true} ~cond := #in~cond; {617#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:03,046 INFO L290 TraceCheckUtils]: 21: Hoare triple {617#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:03,049 INFO L290 TraceCheckUtils]: 22: Hoare triple {618#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:03,050 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {618#(not (= |assume_abort_if_not_#in~cond| 0))} {602#(= |mkdup_#in~n| mkdup_~n)} #116#return; {607#(and (<= 1 mkdup_~n) (= |mkdup_#in~n| mkdup_~n))} is VALID [2022-04-08 04:18:03,050 INFO L272 TraceCheckUtils]: 24: Hoare triple {607#(and (<= 1 mkdup_~n) (= |mkdup_#in~n| mkdup_~n))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,050 INFO L290 TraceCheckUtils]: 25: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,050 INFO L290 TraceCheckUtils]: 26: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,050 INFO L290 TraceCheckUtils]: 27: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,051 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {563#true} {607#(and (<= 1 mkdup_~n) (= |mkdup_#in~n| mkdup_~n))} #118#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,051 INFO L272 TraceCheckUtils]: 29: Hoare triple {612#(<= 1 |mkdup_#in~n|)} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,051 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,051 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,051 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,062 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,062 INFO L290 TraceCheckUtils]: 34: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,062 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,063 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {612#(<= 1 |mkdup_#in~n|)} {563#true} #102#return; {594#(<= 1 main_~n~0)} is VALID [2022-04-08 04:18:03,064 INFO L290 TraceCheckUtils]: 37: Hoare triple {594#(<= 1 main_~n~0)} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {594#(<= 1 main_~n~0)} is VALID [2022-04-08 04:18:03,065 INFO L272 TraceCheckUtils]: 38: Hoare triple {594#(<= 1 main_~n~0)} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {601#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:03,065 INFO L290 TraceCheckUtils]: 39: Hoare triple {601#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {619#(and (<= finddup_~i~1 0) (= |finddup_#in~n| finddup_~n))} is VALID [2022-04-08 04:18:03,065 INFO L290 TraceCheckUtils]: 40: Hoare triple {619#(and (<= finddup_~i~1 0) (= |finddup_#in~n| finddup_~n))} assume !(~i~1 < ~n); {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,066 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,066 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,067 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {620#(<= |finddup_#in~n| 0)} {594#(<= 1 main_~n~0)} #104#return; {564#false} is VALID [2022-04-08 04:18:03,067 INFO L290 TraceCheckUtils]: 44: Hoare triple {564#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {564#false} is VALID [2022-04-08 04:18:03,067 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-08 04:18:03,068 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-08 04:18:03,068 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-08 04:18:03,068 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-08 04:18:03,068 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 3 proven. 6 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-08 04:18:03,068 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:03,068 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1137916074] [2022-04-08 04:18:03,069 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1137916074] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:03,069 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1672862887] [2022-04-08 04:18:03,069 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 04:18:03,069 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:03,069 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:18:03,070 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-04-08 04:18:03,078 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-04-08 04:18:03,145 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 04:18:03,145 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:18:03,147 INFO L263 TraceCheckSpWp]: Trace formula consists of 224 conjuncts, 11 conjunts are in the unsatisfiable core [2022-04-08 04:18:03,176 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:03,179 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:18:03,485 INFO L272 TraceCheckUtils]: 0: Hoare triple {563#true} call ULTIMATE.init(); {563#true} is VALID [2022-04-08 04:18:03,485 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#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(10, 2);call #Ultimate.allocInit(12, 3); {563#true} is VALID [2022-04-08 04:18:03,486 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,486 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-08 04:18:03,486 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-08 04:18:03,486 INFO L290 TraceCheckUtils]: 5: Hoare triple {563#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {563#true} is VALID [2022-04-08 04:18:03,487 INFO L272 TraceCheckUtils]: 6: Hoare triple {563#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,488 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,488 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,491 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,492 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-08 04:18:03,492 INFO L290 TraceCheckUtils]: 11: Hoare triple {563#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {563#true} is VALID [2022-04-08 04:18:03,492 INFO L272 TraceCheckUtils]: 12: Hoare triple {563#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {563#true} is VALID [2022-04-08 04:18:03,492 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {563#true} is VALID [2022-04-08 04:18:03,492 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,492 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-08 04:18:03,492 INFO L290 TraceCheckUtils]: 16: Hoare triple {563#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {563#true} is VALID [2022-04-08 04:18:03,492 INFO L272 TraceCheckUtils]: 17: Hoare triple {563#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {563#true} is VALID [2022-04-08 04:18:03,493 INFO L290 TraceCheckUtils]: 18: Hoare triple {563#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {678#(<= mkdup_~n |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,493 INFO L272 TraceCheckUtils]: 19: Hoare triple {678#(<= mkdup_~n |mkdup_#in~n|)} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,493 INFO L290 TraceCheckUtils]: 20: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,493 INFO L290 TraceCheckUtils]: 21: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,494 INFO L290 TraceCheckUtils]: 22: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,494 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {563#true} {678#(<= mkdup_~n |mkdup_#in~n|)} #116#return; {678#(<= mkdup_~n |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,494 INFO L272 TraceCheckUtils]: 24: Hoare triple {678#(<= mkdup_~n |mkdup_#in~n|)} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,494 INFO L290 TraceCheckUtils]: 25: Hoare triple {563#true} ~cond := #in~cond; {617#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:03,495 INFO L290 TraceCheckUtils]: 26: Hoare triple {617#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:03,495 INFO L290 TraceCheckUtils]: 27: Hoare triple {618#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:03,496 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {618#(not (= |assume_abort_if_not_#in~cond| 0))} {678#(<= mkdup_~n |mkdup_#in~n|)} #118#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,496 INFO L272 TraceCheckUtils]: 29: Hoare triple {612#(<= 1 |mkdup_#in~n|)} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:03,496 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:03,496 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:03,496 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:03,497 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,497 INFO L290 TraceCheckUtils]: 34: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,497 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:03,498 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {612#(<= 1 |mkdup_#in~n|)} {563#true} #102#return; {594#(<= 1 main_~n~0)} is VALID [2022-04-08 04:18:03,498 INFO L290 TraceCheckUtils]: 37: Hoare triple {594#(<= 1 main_~n~0)} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {594#(<= 1 main_~n~0)} is VALID [2022-04-08 04:18:03,498 INFO L272 TraceCheckUtils]: 38: Hoare triple {594#(<= 1 main_~n~0)} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {563#true} is VALID [2022-04-08 04:18:03,499 INFO L290 TraceCheckUtils]: 39: Hoare triple {563#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {742#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~i~1 0))} is VALID [2022-04-08 04:18:03,499 INFO L290 TraceCheckUtils]: 40: Hoare triple {742#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~i~1 0))} assume !(~i~1 < ~n); {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,499 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,500 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:03,501 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {620#(<= |finddup_#in~n| 0)} {594#(<= 1 main_~n~0)} #104#return; {564#false} is VALID [2022-04-08 04:18:03,501 INFO L290 TraceCheckUtils]: 44: Hoare triple {564#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {564#false} is VALID [2022-04-08 04:18:03,501 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-08 04:18:03,501 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-08 04:18:03,501 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-08 04:18:03,502 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-08 04:18:03,502 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 6 proven. 3 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-08 04:18:03,502 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:18:04,160 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-08 04:18:04,160 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-08 04:18:04,161 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-08 04:18:04,161 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-08 04:18:04,161 INFO L290 TraceCheckUtils]: 44: Hoare triple {564#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {564#false} is VALID [2022-04-08 04:18:04,162 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {620#(<= |finddup_#in~n| 0)} {594#(<= 1 main_~n~0)} #104#return; {564#false} is VALID [2022-04-08 04:18:04,163 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:04,163 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:04,163 INFO L290 TraceCheckUtils]: 40: Hoare triple {797#(or (< finddup_~i~1 finddup_~n) (<= |finddup_#in~n| 0))} assume !(~i~1 < ~n); {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 04:18:04,164 INFO L290 TraceCheckUtils]: 39: Hoare triple {563#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {797#(or (< finddup_~i~1 finddup_~n) (<= |finddup_#in~n| 0))} is VALID [2022-04-08 04:18:04,164 INFO L272 TraceCheckUtils]: 38: Hoare triple {594#(<= 1 main_~n~0)} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {563#true} is VALID [2022-04-08 04:18:04,164 INFO L290 TraceCheckUtils]: 37: Hoare triple {594#(<= 1 main_~n~0)} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {594#(<= 1 main_~n~0)} is VALID [2022-04-08 04:18:04,165 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {612#(<= 1 |mkdup_#in~n|)} {563#true} #102#return; {594#(<= 1 main_~n~0)} is VALID [2022-04-08 04:18:04,165 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:04,166 INFO L290 TraceCheckUtils]: 34: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:04,166 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:04,166 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:04,166 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:04,166 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:04,167 INFO L272 TraceCheckUtils]: 29: Hoare triple {612#(<= 1 |mkdup_#in~n|)} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:04,167 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {618#(not (= |assume_abort_if_not_#in~cond| 0))} {834#(or (<= mkdup_~n 0) (<= 1 |mkdup_#in~n|))} #118#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:04,168 INFO L290 TraceCheckUtils]: 27: Hoare triple {618#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:04,168 INFO L290 TraceCheckUtils]: 26: Hoare triple {844#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {618#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:04,168 INFO L290 TraceCheckUtils]: 25: Hoare triple {563#true} ~cond := #in~cond; {844#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-08 04:18:04,168 INFO L272 TraceCheckUtils]: 24: Hoare triple {834#(or (<= mkdup_~n 0) (<= 1 |mkdup_#in~n|))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:04,169 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {563#true} {834#(or (<= mkdup_~n 0) (<= 1 |mkdup_#in~n|))} #116#return; {834#(or (<= mkdup_~n 0) (<= 1 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:04,169 INFO L290 TraceCheckUtils]: 22: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:04,169 INFO L290 TraceCheckUtils]: 21: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:04,169 INFO L290 TraceCheckUtils]: 20: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:04,169 INFO L272 TraceCheckUtils]: 19: Hoare triple {834#(or (<= mkdup_~n 0) (<= 1 |mkdup_#in~n|))} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:04,170 INFO L290 TraceCheckUtils]: 18: Hoare triple {563#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {834#(or (<= mkdup_~n 0) (<= 1 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:04,170 INFO L272 TraceCheckUtils]: 17: Hoare triple {563#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {563#true} is VALID [2022-04-08 04:18:04,170 INFO L290 TraceCheckUtils]: 16: Hoare triple {563#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {563#true} is VALID [2022-04-08 04:18:04,170 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-08 04:18:04,170 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:04,171 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {563#true} is VALID [2022-04-08 04:18:04,171 INFO L272 TraceCheckUtils]: 12: Hoare triple {563#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {563#true} is VALID [2022-04-08 04:18:04,171 INFO L290 TraceCheckUtils]: 11: Hoare triple {563#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {563#true} is VALID [2022-04-08 04:18:04,171 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-08 04:18:04,171 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:04,171 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 04:18:04,171 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 04:18:04,171 INFO L272 TraceCheckUtils]: 6: Hoare triple {563#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {563#true} is VALID [2022-04-08 04:18:04,171 INFO L290 TraceCheckUtils]: 5: Hoare triple {563#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {563#true} is VALID [2022-04-08 04:18:04,172 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-08 04:18:04,172 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-08 04:18:04,172 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 04:18:04,172 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#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(10, 2);call #Ultimate.allocInit(12, 3); {563#true} is VALID [2022-04-08 04:18:04,172 INFO L272 TraceCheckUtils]: 0: Hoare triple {563#true} call ULTIMATE.init(); {563#true} is VALID [2022-04-08 04:18:04,172 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 6 proven. 3 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-08 04:18:04,172 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1672862887] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 04:18:04,173 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-08 04:18:04,173 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 9, 9] total 17 [2022-04-08 04:18:04,173 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:04,173 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [5177987] [2022-04-08 04:18:04,173 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [5177987] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:04,174 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:04,174 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-08 04:18:04,174 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1996047989] [2022-04-08 04:18:04,174 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:04,174 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 10 states have (on average 2.5) internal successors, (25), 9 states have internal predecessors, (25), 6 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) Word has length 49 [2022-04-08 04:18:04,175 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:04,175 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 10 states have (on average 2.5) internal successors, (25), 9 states have internal predecessors, (25), 6 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:04,208 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:04,209 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-08 04:18:04,209 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:04,209 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-08 04:18:04,209 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=227, Unknown=0, NotChecked=0, Total=272 [2022-04-08 04:18:04,210 INFO L87 Difference]: Start difference. First operand 54 states and 65 transitions. Second operand has 12 states, 10 states have (on average 2.5) internal successors, (25), 9 states have internal predecessors, (25), 6 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:05,374 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:05,375 INFO L93 Difference]: Finished difference Result 84 states and 103 transitions. [2022-04-08 04:18:05,375 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-08 04:18:05,375 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 10 states have (on average 2.5) internal successors, (25), 9 states have internal predecessors, (25), 6 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) Word has length 49 [2022-04-08 04:18:05,376 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:05,376 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 2.5) internal successors, (25), 9 states have internal predecessors, (25), 6 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:05,390 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 103 transitions. [2022-04-08 04:18:05,391 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 2.5) internal successors, (25), 9 states have internal predecessors, (25), 6 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:05,397 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 103 transitions. [2022-04-08 04:18:05,397 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 103 transitions. [2022-04-08 04:18:05,473 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 103 edges. 103 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:05,475 INFO L225 Difference]: With dead ends: 84 [2022-04-08 04:18:05,475 INFO L226 Difference]: Without dead ends: 63 [2022-04-08 04:18:05,475 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 131 GetRequests, 103 SyntacticMatches, 3 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 77 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=123, Invalid=579, Unknown=0, NotChecked=0, Total=702 [2022-04-08 04:18:05,476 INFO L913 BasicCegarLoop]: 42 mSDtfsCounter, 96 mSDsluCounter, 14 mSDsCounter, 0 mSdLazyCounter, 468 mSolverCounterSat, 63 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 97 SdHoareTripleChecker+Valid, 56 SdHoareTripleChecker+Invalid, 531 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 63 IncrementalHoareTripleChecker+Valid, 468 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:05,476 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [97 Valid, 56 Invalid, 531 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [63 Valid, 468 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-04-08 04:18:05,477 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 63 states. [2022-04-08 04:18:05,510 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 63 to 55. [2022-04-08 04:18:05,511 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:05,511 INFO L82 GeneralOperation]: Start isEquivalent. First operand 63 states. Second operand has 55 states, 34 states have (on average 1.1764705882352942) internal successors, (40), 35 states have internal predecessors, (40), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 04:18:05,511 INFO L74 IsIncluded]: Start isIncluded. First operand 63 states. Second operand has 55 states, 34 states have (on average 1.1764705882352942) internal successors, (40), 35 states have internal predecessors, (40), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 04:18:05,512 INFO L87 Difference]: Start difference. First operand 63 states. Second operand has 55 states, 34 states have (on average 1.1764705882352942) internal successors, (40), 35 states have internal predecessors, (40), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 04:18:05,514 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:05,514 INFO L93 Difference]: Finished difference Result 63 states and 76 transitions. [2022-04-08 04:18:05,514 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 76 transitions. [2022-04-08 04:18:05,515 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:05,515 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:05,515 INFO L74 IsIncluded]: Start isIncluded. First operand has 55 states, 34 states have (on average 1.1764705882352942) internal successors, (40), 35 states have internal predecessors, (40), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) Second operand 63 states. [2022-04-08 04:18:05,515 INFO L87 Difference]: Start difference. First operand has 55 states, 34 states have (on average 1.1764705882352942) internal successors, (40), 35 states have internal predecessors, (40), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) Second operand 63 states. [2022-04-08 04:18:05,517 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:05,517 INFO L93 Difference]: Finished difference Result 63 states and 76 transitions. [2022-04-08 04:18:05,517 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 76 transitions. [2022-04-08 04:18:05,518 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:05,518 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:05,518 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:05,518 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:05,518 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 55 states, 34 states have (on average 1.1764705882352942) internal successors, (40), 35 states have internal predecessors, (40), 14 states have call successors, (14), 7 states have call predecessors, (14), 6 states have return successors, (12), 12 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 04:18:05,520 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 66 transitions. [2022-04-08 04:18:05,520 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 66 transitions. Word has length 49 [2022-04-08 04:18:05,520 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:05,520 INFO L478 AbstractCegarLoop]: Abstraction has 55 states and 66 transitions. [2022-04-08 04:18:05,520 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 10 states have (on average 2.5) internal successors, (25), 9 states have internal predecessors, (25), 6 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 5 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:05,520 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 55 states and 66 transitions. [2022-04-08 04:18:05,595 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:05,595 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 66 transitions. [2022-04-08 04:18:05,596 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 04:18:05,596 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:05,599 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1] [2022-04-08 04:18:05,621 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Forceful destruction successful, exit code 0 [2022-04-08 04:18:05,799 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:05,800 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:05,800 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:05,800 INFO L85 PathProgramCache]: Analyzing trace with hash -2096379008, now seen corresponding path program 1 times [2022-04-08 04:18:05,800 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:05,800 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1974044383] [2022-04-08 04:18:05,801 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:05,801 INFO L85 PathProgramCache]: Analyzing trace with hash -2096379008, now seen corresponding path program 2 times [2022-04-08 04:18:05,801 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:05,801 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [734984376] [2022-04-08 04:18:05,801 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:05,801 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:05,841 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,894 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:05,896 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,899 INFO L290 TraceCheckUtils]: 0: Hoare triple {1385#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {1344#true} is VALID [2022-04-08 04:18:05,899 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,900 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1344#true} {1344#true} #122#return; {1344#true} is VALID [2022-04-08 04:18:05,900 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:05,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,905 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,905 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,905 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,905 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #98#return; {1344#true} is VALID [2022-04-08 04:18:05,910 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:05,928 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,933 INFO L290 TraceCheckUtils]: 0: Hoare triple {1386#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1344#true} is VALID [2022-04-08 04:18:05,934 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,934 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1344#true} {1344#true} #100#return; {1344#true} is VALID [2022-04-08 04:18:05,934 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:05,946 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,950 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:05,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,954 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,954 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,954 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,954 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-08 04:18:05,954 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:05,955 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,958 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,958 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,958 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,958 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-08 04:18:05,958 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:05,959 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,962 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,962 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,962 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,962 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-08 04:18:05,962 INFO L290 TraceCheckUtils]: 0: Hoare triple {1386#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {1344#true} is VALID [2022-04-08 04:18:05,963 INFO L272 TraceCheckUtils]: 1: Hoare triple {1344#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {1344#true} is VALID [2022-04-08 04:18:05,963 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,963 INFO L290 TraceCheckUtils]: 3: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,963 INFO L290 TraceCheckUtils]: 4: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,963 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-08 04:18:05,963 INFO L272 TraceCheckUtils]: 6: Hoare triple {1344#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {1344#true} is VALID [2022-04-08 04:18:05,963 INFO L290 TraceCheckUtils]: 7: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,963 INFO L290 TraceCheckUtils]: 8: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,964 INFO L290 TraceCheckUtils]: 9: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,964 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-08 04:18:05,964 INFO L272 TraceCheckUtils]: 11: Hoare triple {1344#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {1344#true} is VALID [2022-04-08 04:18:05,964 INFO L290 TraceCheckUtils]: 12: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,964 INFO L290 TraceCheckUtils]: 13: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,964 INFO L290 TraceCheckUtils]: 14: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,964 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-08 04:18:05,964 INFO L290 TraceCheckUtils]: 16: Hoare triple {1344#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {1344#true} is VALID [2022-04-08 04:18:05,965 INFO L290 TraceCheckUtils]: 17: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,965 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1344#true} {1344#true} #102#return; {1344#true} is VALID [2022-04-08 04:18:05,965 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:05,970 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:05,986 INFO L290 TraceCheckUtils]: 0: Hoare triple {1386#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {1344#true} is VALID [2022-04-08 04:18:05,987 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {1344#true} is VALID [2022-04-08 04:18:05,987 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {1344#true} is VALID [2022-04-08 04:18:05,987 INFO L290 TraceCheckUtils]: 3: Hoare triple {1344#true} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {1399#(and (<= 1 |finddup_#res|) (<= |finddup_#res| 1))} is VALID [2022-04-08 04:18:05,988 INFO L290 TraceCheckUtils]: 4: Hoare triple {1399#(and (<= 1 |finddup_#res|) (<= |finddup_#res| 1))} assume true; {1399#(and (<= 1 |finddup_#res|) (<= |finddup_#res| 1))} is VALID [2022-04-08 04:18:05,989 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1399#(and (<= 1 |finddup_#res|) (<= |finddup_#res| 1))} {1344#true} #104#return; {1381#(= |main_#t~ret14| 1)} is VALID [2022-04-08 04:18:05,990 INFO L272 TraceCheckUtils]: 0: Hoare triple {1344#true} call ULTIMATE.init(); {1385#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:05,990 INFO L290 TraceCheckUtils]: 1: Hoare triple {1385#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {1344#true} is VALID [2022-04-08 04:18:05,990 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,990 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #122#return; {1344#true} is VALID [2022-04-08 04:18:05,991 INFO L272 TraceCheckUtils]: 4: Hoare triple {1344#true} call #t~ret27 := main(); {1344#true} is VALID [2022-04-08 04:18:05,991 INFO L290 TraceCheckUtils]: 5: Hoare triple {1344#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {1344#true} is VALID [2022-04-08 04:18:05,991 INFO L272 TraceCheckUtils]: 6: Hoare triple {1344#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {1344#true} is VALID [2022-04-08 04:18:05,991 INFO L290 TraceCheckUtils]: 7: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,991 INFO L290 TraceCheckUtils]: 8: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,991 INFO L290 TraceCheckUtils]: 9: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,991 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1344#true} {1344#true} #98#return; {1344#true} is VALID [2022-04-08 04:18:05,991 INFO L290 TraceCheckUtils]: 11: Hoare triple {1344#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1344#true} is VALID [2022-04-08 04:18:05,992 INFO L272 TraceCheckUtils]: 12: Hoare triple {1344#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {1386#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:05,993 INFO L290 TraceCheckUtils]: 13: Hoare triple {1386#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1344#true} is VALID [2022-04-08 04:18:05,993 INFO L290 TraceCheckUtils]: 14: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,993 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1344#true} {1344#true} #100#return; {1344#true} is VALID [2022-04-08 04:18:05,993 INFO L290 TraceCheckUtils]: 16: Hoare triple {1344#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {1344#true} is VALID [2022-04-08 04:18:05,994 INFO L272 TraceCheckUtils]: 17: Hoare triple {1344#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {1386#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:05,994 INFO L290 TraceCheckUtils]: 18: Hoare triple {1386#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {1344#true} is VALID [2022-04-08 04:18:05,994 INFO L272 TraceCheckUtils]: 19: Hoare triple {1344#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {1344#true} is VALID [2022-04-08 04:18:05,994 INFO L290 TraceCheckUtils]: 20: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,994 INFO L290 TraceCheckUtils]: 21: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,994 INFO L290 TraceCheckUtils]: 22: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,994 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-08 04:18:05,995 INFO L272 TraceCheckUtils]: 24: Hoare triple {1344#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {1344#true} is VALID [2022-04-08 04:18:05,995 INFO L290 TraceCheckUtils]: 25: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,995 INFO L290 TraceCheckUtils]: 26: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,995 INFO L290 TraceCheckUtils]: 27: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,995 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-08 04:18:05,995 INFO L272 TraceCheckUtils]: 29: Hoare triple {1344#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {1344#true} is VALID [2022-04-08 04:18:05,995 INFO L290 TraceCheckUtils]: 30: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 04:18:05,995 INFO L290 TraceCheckUtils]: 31: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 04:18:05,996 INFO L290 TraceCheckUtils]: 32: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,996 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-08 04:18:05,996 INFO L290 TraceCheckUtils]: 34: Hoare triple {1344#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {1344#true} is VALID [2022-04-08 04:18:05,996 INFO L290 TraceCheckUtils]: 35: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 04:18:05,996 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1344#true} {1344#true} #102#return; {1344#true} is VALID [2022-04-08 04:18:05,996 INFO L290 TraceCheckUtils]: 37: Hoare triple {1344#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {1344#true} is VALID [2022-04-08 04:18:05,997 INFO L272 TraceCheckUtils]: 38: Hoare triple {1344#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {1386#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:05,998 INFO L290 TraceCheckUtils]: 39: Hoare triple {1386#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {1344#true} is VALID [2022-04-08 04:18:05,998 INFO L290 TraceCheckUtils]: 40: Hoare triple {1344#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {1344#true} is VALID [2022-04-08 04:18:05,998 INFO L290 TraceCheckUtils]: 41: Hoare triple {1344#true} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {1344#true} is VALID [2022-04-08 04:18:05,998 INFO L290 TraceCheckUtils]: 42: Hoare triple {1344#true} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {1399#(and (<= 1 |finddup_#res|) (<= |finddup_#res| 1))} is VALID [2022-04-08 04:18:05,999 INFO L290 TraceCheckUtils]: 43: Hoare triple {1399#(and (<= 1 |finddup_#res|) (<= |finddup_#res| 1))} assume true; {1399#(and (<= 1 |finddup_#res|) (<= |finddup_#res| 1))} is VALID [2022-04-08 04:18:06,000 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {1399#(and (<= 1 |finddup_#res|) (<= |finddup_#res| 1))} {1344#true} #104#return; {1381#(= |main_#t~ret14| 1)} is VALID [2022-04-08 04:18:06,000 INFO L290 TraceCheckUtils]: 45: Hoare triple {1381#(= |main_#t~ret14| 1)} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {1382#(= main_~r~0 1)} is VALID [2022-04-08 04:18:06,001 INFO L272 TraceCheckUtils]: 46: Hoare triple {1382#(= main_~r~0 1)} call __VERIFIER_assert(~r~0); {1383#(= |__VERIFIER_assert_#in~cond| 1)} is VALID [2022-04-08 04:18:06,001 INFO L290 TraceCheckUtils]: 47: Hoare triple {1383#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {1384#(= __VERIFIER_assert_~cond 1)} is VALID [2022-04-08 04:18:06,001 INFO L290 TraceCheckUtils]: 48: Hoare triple {1384#(= __VERIFIER_assert_~cond 1)} assume 0 == ~cond; {1345#false} is VALID [2022-04-08 04:18:06,001 INFO L290 TraceCheckUtils]: 49: Hoare triple {1345#false} assume !false; {1345#false} is VALID [2022-04-08 04:18:06,002 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:06,002 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:06,002 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [734984376] [2022-04-08 04:18:06,002 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [734984376] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:06,002 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:06,002 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 04:18:06,002 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:06,002 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1974044383] [2022-04-08 04:18:06,002 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1974044383] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:06,002 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:06,003 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 04:18:06,003 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1576512279] [2022-04-08 04:18:06,003 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:06,003 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 8 states have (on average 2.875) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) Word has length 50 [2022-04-08 04:18:06,003 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:06,003 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 8 states have (on average 2.875) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:06,026 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:06,026 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-08 04:18:06,026 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:06,027 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-08 04:18:06,027 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=57, Unknown=0, NotChecked=0, Total=72 [2022-04-08 04:18:06,027 INFO L87 Difference]: Start difference. First operand 55 states and 66 transitions. Second operand has 9 states, 8 states have (on average 2.875) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:06,917 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:06,918 INFO L93 Difference]: Finished difference Result 75 states and 91 transitions. [2022-04-08 04:18:06,918 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-08 04:18:06,918 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 8 states have (on average 2.875) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) Word has length 50 [2022-04-08 04:18:06,918 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:06,918 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 8 states have (on average 2.875) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:06,920 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 90 transitions. [2022-04-08 04:18:06,920 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 8 states have (on average 2.875) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:06,921 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 90 transitions. [2022-04-08 04:18:06,922 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 90 transitions. [2022-04-08 04:18:06,992 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 90 edges. 90 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:06,994 INFO L225 Difference]: With dead ends: 75 [2022-04-08 04:18:06,994 INFO L226 Difference]: Without dead ends: 73 [2022-04-08 04:18:06,994 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 30 GetRequests, 17 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=45, Invalid=165, Unknown=0, NotChecked=0, Total=210 [2022-04-08 04:18:06,995 INFO L913 BasicCegarLoop]: 53 mSDtfsCounter, 80 mSDsluCounter, 10 mSDsCounter, 0 mSdLazyCounter, 425 mSolverCounterSat, 52 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 87 SdHoareTripleChecker+Valid, 63 SdHoareTripleChecker+Invalid, 477 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 52 IncrementalHoareTripleChecker+Valid, 425 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:06,995 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [87 Valid, 63 Invalid, 477 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [52 Valid, 425 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-04-08 04:18:06,996 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2022-04-08 04:18:07,017 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 63. [2022-04-08 04:18:07,017 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:07,017 INFO L82 GeneralOperation]: Start isEquivalent. First operand 73 states. Second operand has 63 states, 39 states have (on average 1.1538461538461537) internal successors, (45), 41 states have internal predecessors, (45), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:07,017 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand has 63 states, 39 states have (on average 1.1538461538461537) internal successors, (45), 41 states have internal predecessors, (45), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:07,018 INFO L87 Difference]: Start difference. First operand 73 states. Second operand has 63 states, 39 states have (on average 1.1538461538461537) internal successors, (45), 41 states have internal predecessors, (45), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:07,020 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:07,020 INFO L93 Difference]: Finished difference Result 73 states and 89 transitions. [2022-04-08 04:18:07,020 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 89 transitions. [2022-04-08 04:18:07,021 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:07,021 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:07,021 INFO L74 IsIncluded]: Start isIncluded. First operand has 63 states, 39 states have (on average 1.1538461538461537) internal successors, (45), 41 states have internal predecessors, (45), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) Second operand 73 states. [2022-04-08 04:18:07,021 INFO L87 Difference]: Start difference. First operand has 63 states, 39 states have (on average 1.1538461538461537) internal successors, (45), 41 states have internal predecessors, (45), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) Second operand 73 states. [2022-04-08 04:18:07,023 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:07,023 INFO L93 Difference]: Finished difference Result 73 states and 89 transitions. [2022-04-08 04:18:07,023 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 89 transitions. [2022-04-08 04:18:07,024 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:07,024 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:07,024 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:07,024 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:07,024 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 63 states, 39 states have (on average 1.1538461538461537) internal successors, (45), 41 states have internal predecessors, (45), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:07,026 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 63 states to 63 states and 74 transitions. [2022-04-08 04:18:07,026 INFO L78 Accepts]: Start accepts. Automaton has 63 states and 74 transitions. Word has length 50 [2022-04-08 04:18:07,026 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:07,026 INFO L478 AbstractCegarLoop]: Abstraction has 63 states and 74 transitions. [2022-04-08 04:18:07,026 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 8 states have (on average 2.875) internal successors, (23), 5 states have internal predecessors, (23), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:07,026 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 63 states and 74 transitions. [2022-04-08 04:18:07,082 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:07,083 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 74 transitions. [2022-04-08 04:18:07,083 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2022-04-08 04:18:07,083 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:07,084 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1, 1, 1] [2022-04-08 04:18:07,084 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-04-08 04:18:07,084 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:07,084 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:07,084 INFO L85 PathProgramCache]: Analyzing trace with hash 983031743, now seen corresponding path program 1 times [2022-04-08 04:18:07,084 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:07,084 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [44854310] [2022-04-08 04:18:07,085 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:07,085 INFO L85 PathProgramCache]: Analyzing trace with hash 983031743, now seen corresponding path program 2 times [2022-04-08 04:18:07,085 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:07,085 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1237887434] [2022-04-08 04:18:07,085 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:07,085 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:07,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,149 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:07,150 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,153 INFO L290 TraceCheckUtils]: 0: Hoare triple {1877#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {1837#true} is VALID [2022-04-08 04:18:07,153 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:07,154 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-08 04:18:07,154 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:07,154 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,160 INFO L290 TraceCheckUtils]: 0: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-08 04:18:07,160 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-08 04:18:07,160 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:07,160 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-08 04:18:07,163 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:07,164 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,167 INFO L290 TraceCheckUtils]: 0: Hoare triple {1878#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1837#true} is VALID [2022-04-08 04:18:07,167 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:07,167 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-08 04:18:07,167 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:07,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,307 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:07,310 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,324 INFO L290 TraceCheckUtils]: 0: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,325 INFO L290 TraceCheckUtils]: 1: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,325 INFO L290 TraceCheckUtils]: 2: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,326 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1879#(= |mkdup_#in~n| mkdup_~n)} #116#return; {1884#(and (= |mkdup_#in~n| mkdup_~n) (or (and (not (<= (+ mkdup_~j~0 1) mkdup_~i~0)) (<= 0 mkdup_~i~0)) (not (= mkdup_~j~0 0)) (<= 2 mkdup_~n)))} is VALID [2022-04-08 04:18:07,326 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:07,329 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,335 INFO L290 TraceCheckUtils]: 0: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,335 INFO L290 TraceCheckUtils]: 1: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,336 INFO L290 TraceCheckUtils]: 2: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,336 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1884#(and (= |mkdup_#in~n| mkdup_~n) (or (and (not (<= (+ mkdup_~j~0 1) mkdup_~i~0)) (<= 0 mkdup_~i~0)) (not (= mkdup_~j~0 0)) (<= 2 mkdup_~n)))} #118#return; {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:07,337 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:07,338 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,342 INFO L290 TraceCheckUtils]: 0: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,342 INFO L290 TraceCheckUtils]: 1: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,343 INFO L290 TraceCheckUtils]: 2: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,343 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} #120#return; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:07,344 INFO L290 TraceCheckUtils]: 0: Hoare triple {1878#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {1879#(= |mkdup_#in~n| mkdup_~n)} is VALID [2022-04-08 04:18:07,344 INFO L272 TraceCheckUtils]: 1: Hoare triple {1879#(= |mkdup_#in~n| mkdup_~n)} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:07,344 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,344 INFO L290 TraceCheckUtils]: 3: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,345 INFO L290 TraceCheckUtils]: 4: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,345 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1879#(= |mkdup_#in~n| mkdup_~n)} #116#return; {1884#(and (= |mkdup_#in~n| mkdup_~n) (or (and (not (<= (+ mkdup_~j~0 1) mkdup_~i~0)) (<= 0 mkdup_~i~0)) (not (= mkdup_~j~0 0)) (<= 2 mkdup_~n)))} is VALID [2022-04-08 04:18:07,345 INFO L272 TraceCheckUtils]: 6: Hoare triple {1884#(and (= |mkdup_#in~n| mkdup_~n) (or (and (not (<= (+ mkdup_~j~0 1) mkdup_~i~0)) (<= 0 mkdup_~i~0)) (not (= mkdup_~j~0 0)) (<= 2 mkdup_~n)))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:07,346 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,346 INFO L290 TraceCheckUtils]: 8: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,346 INFO L290 TraceCheckUtils]: 9: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,347 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1884#(and (= |mkdup_#in~n| mkdup_~n) (or (and (not (<= (+ mkdup_~j~0 1) mkdup_~i~0)) (<= 0 mkdup_~i~0)) (not (= mkdup_~j~0 0)) (<= 2 mkdup_~n)))} #118#return; {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:07,347 INFO L272 TraceCheckUtils]: 11: Hoare triple {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:07,347 INFO L290 TraceCheckUtils]: 12: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,348 INFO L290 TraceCheckUtils]: 13: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,348 INFO L290 TraceCheckUtils]: 14: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,348 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} #120#return; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:07,349 INFO L290 TraceCheckUtils]: 16: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:07,349 INFO L290 TraceCheckUtils]: 17: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:07,349 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1894#(<= 2 |mkdup_#in~n|)} {1837#true} #102#return; {1868#(<= 2 main_~n~0)} is VALID [2022-04-08 04:18:07,350 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:07,352 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,398 INFO L290 TraceCheckUtils]: 0: Hoare triple {1878#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {1897#(and (<= finddup_~i~1 0) (= |finddup_#in~n| finddup_~n))} is VALID [2022-04-08 04:18:07,399 INFO L290 TraceCheckUtils]: 1: Hoare triple {1897#(and (<= finddup_~i~1 0) (= |finddup_#in~n| finddup_~n))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {1898#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:07,400 INFO L290 TraceCheckUtils]: 2: Hoare triple {1898#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~j~1 1))} assume !(~j~1 < ~n); {1899#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~n 1))} is VALID [2022-04-08 04:18:07,400 INFO L290 TraceCheckUtils]: 3: Hoare triple {1899#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~n 1))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {1899#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~n 1))} is VALID [2022-04-08 04:18:07,402 INFO L290 TraceCheckUtils]: 4: Hoare triple {1899#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~n 1))} assume !(~i~1 < ~n); {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:07,402 INFO L290 TraceCheckUtils]: 5: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:07,403 INFO L290 TraceCheckUtils]: 6: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:07,404 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {1900#(<= |finddup_#in~n| 1)} {1868#(<= 2 main_~n~0)} #104#return; {1838#false} is VALID [2022-04-08 04:18:07,405 INFO L272 TraceCheckUtils]: 0: Hoare triple {1837#true} call ULTIMATE.init(); {1877#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:07,405 INFO L290 TraceCheckUtils]: 1: Hoare triple {1877#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {1837#true} is VALID [2022-04-08 04:18:07,405 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:07,405 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-08 04:18:07,405 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-08 04:18:07,405 INFO L290 TraceCheckUtils]: 5: Hoare triple {1837#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {1837#true} is VALID [2022-04-08 04:18:07,405 INFO L272 TraceCheckUtils]: 6: Hoare triple {1837#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:07,405 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-08 04:18:07,406 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-08 04:18:07,406 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:07,406 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-08 04:18:07,406 INFO L290 TraceCheckUtils]: 11: Hoare triple {1837#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1837#true} is VALID [2022-04-08 04:18:07,407 INFO L272 TraceCheckUtils]: 12: Hoare triple {1837#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {1878#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:07,407 INFO L290 TraceCheckUtils]: 13: Hoare triple {1878#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1837#true} is VALID [2022-04-08 04:18:07,407 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:07,407 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-08 04:18:07,407 INFO L290 TraceCheckUtils]: 16: Hoare triple {1837#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {1837#true} is VALID [2022-04-08 04:18:07,408 INFO L272 TraceCheckUtils]: 17: Hoare triple {1837#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {1878#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:07,408 INFO L290 TraceCheckUtils]: 18: Hoare triple {1878#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {1879#(= |mkdup_#in~n| mkdup_~n)} is VALID [2022-04-08 04:18:07,408 INFO L272 TraceCheckUtils]: 19: Hoare triple {1879#(= |mkdup_#in~n| mkdup_~n)} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:07,409 INFO L290 TraceCheckUtils]: 20: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,409 INFO L290 TraceCheckUtils]: 21: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,409 INFO L290 TraceCheckUtils]: 22: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,410 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1879#(= |mkdup_#in~n| mkdup_~n)} #116#return; {1884#(and (= |mkdup_#in~n| mkdup_~n) (or (and (not (<= (+ mkdup_~j~0 1) mkdup_~i~0)) (<= 0 mkdup_~i~0)) (not (= mkdup_~j~0 0)) (<= 2 mkdup_~n)))} is VALID [2022-04-08 04:18:07,410 INFO L272 TraceCheckUtils]: 24: Hoare triple {1884#(and (= |mkdup_#in~n| mkdup_~n) (or (and (not (<= (+ mkdup_~j~0 1) mkdup_~i~0)) (<= 0 mkdup_~i~0)) (not (= mkdup_~j~0 0)) (<= 2 mkdup_~n)))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:07,410 INFO L290 TraceCheckUtils]: 25: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,411 INFO L290 TraceCheckUtils]: 26: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,411 INFO L290 TraceCheckUtils]: 27: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,412 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1884#(and (= |mkdup_#in~n| mkdup_~n) (or (and (not (<= (+ mkdup_~j~0 1) mkdup_~i~0)) (<= 0 mkdup_~i~0)) (not (= mkdup_~j~0 0)) (<= 2 mkdup_~n)))} #118#return; {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:07,412 INFO L272 TraceCheckUtils]: 29: Hoare triple {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:07,412 INFO L290 TraceCheckUtils]: 30: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:07,412 INFO L290 TraceCheckUtils]: 31: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,413 INFO L290 TraceCheckUtils]: 32: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:07,413 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} #120#return; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:07,413 INFO L290 TraceCheckUtils]: 34: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:07,414 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:07,414 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1894#(<= 2 |mkdup_#in~n|)} {1837#true} #102#return; {1868#(<= 2 main_~n~0)} is VALID [2022-04-08 04:18:07,414 INFO L290 TraceCheckUtils]: 37: Hoare triple {1868#(<= 2 main_~n~0)} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {1868#(<= 2 main_~n~0)} is VALID [2022-04-08 04:18:07,415 INFO L272 TraceCheckUtils]: 38: Hoare triple {1868#(<= 2 main_~n~0)} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {1878#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:07,416 INFO L290 TraceCheckUtils]: 39: Hoare triple {1878#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {1897#(and (<= finddup_~i~1 0) (= |finddup_#in~n| finddup_~n))} is VALID [2022-04-08 04:18:07,416 INFO L290 TraceCheckUtils]: 40: Hoare triple {1897#(and (<= finddup_~i~1 0) (= |finddup_#in~n| finddup_~n))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {1898#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:07,416 INFO L290 TraceCheckUtils]: 41: Hoare triple {1898#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~j~1 1))} assume !(~j~1 < ~n); {1899#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~n 1))} is VALID [2022-04-08 04:18:07,417 INFO L290 TraceCheckUtils]: 42: Hoare triple {1899#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~n 1))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {1899#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~n 1))} is VALID [2022-04-08 04:18:07,417 INFO L290 TraceCheckUtils]: 43: Hoare triple {1899#(and (= |finddup_#in~n| finddup_~n) (<= finddup_~n 1))} assume !(~i~1 < ~n); {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:07,417 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:07,418 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:07,418 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1900#(<= |finddup_#in~n| 1)} {1868#(<= 2 main_~n~0)} #104#return; {1838#false} is VALID [2022-04-08 04:18:07,419 INFO L290 TraceCheckUtils]: 47: Hoare triple {1838#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {1838#false} is VALID [2022-04-08 04:18:07,419 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-08 04:18:07,419 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-08 04:18:07,419 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-08 04:18:07,419 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-08 04:18:07,419 INFO L134 CoverageAnalysis]: Checked inductivity of 25 backedges. 9 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-08 04:18:07,419 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:07,419 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1237887434] [2022-04-08 04:18:07,420 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1237887434] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:07,420 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [86511148] [2022-04-08 04:18:07,420 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 04:18:07,420 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:07,420 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:18:07,421 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-04-08 04:18:07,422 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-04-08 04:18:07,482 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 04:18:07,482 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:18:07,483 INFO L263 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 22 conjunts are in the unsatisfiable core [2022-04-08 04:18:07,498 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:07,499 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:18:08,013 INFO L272 TraceCheckUtils]: 0: Hoare triple {1837#true} call ULTIMATE.init(); {1837#true} is VALID [2022-04-08 04:18:08,013 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#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(10, 2);call #Ultimate.allocInit(12, 3); {1837#true} is VALID [2022-04-08 04:18:08,013 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L290 TraceCheckUtils]: 5: Hoare triple {1837#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L272 TraceCheckUtils]: 6: Hoare triple {1837#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L290 TraceCheckUtils]: 11: Hoare triple {1837#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L272 TraceCheckUtils]: 12: Hoare triple {1837#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L290 TraceCheckUtils]: 13: Hoare triple {1837#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:08,014 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-08 04:18:08,015 INFO L290 TraceCheckUtils]: 16: Hoare triple {1837#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {1837#true} is VALID [2022-04-08 04:18:08,015 INFO L272 TraceCheckUtils]: 17: Hoare triple {1837#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {1837#true} is VALID [2022-04-08 04:18:08,017 INFO L290 TraceCheckUtils]: 18: Hoare triple {1837#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {1958#(<= mkdup_~n |mkdup_#in~n|)} is VALID [2022-04-08 04:18:08,017 INFO L272 TraceCheckUtils]: 19: Hoare triple {1958#(<= mkdup_~n |mkdup_#in~n|)} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:08,018 INFO L290 TraceCheckUtils]: 20: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:08,019 INFO L290 TraceCheckUtils]: 21: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:08,019 INFO L290 TraceCheckUtils]: 22: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:08,020 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1958#(<= mkdup_~n |mkdup_#in~n|)} #116#return; {1974#(and (<= mkdup_~n |mkdup_#in~n|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} is VALID [2022-04-08 04:18:08,020 INFO L272 TraceCheckUtils]: 24: Hoare triple {1974#(and (<= mkdup_~n |mkdup_#in~n|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:08,020 INFO L290 TraceCheckUtils]: 25: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:08,021 INFO L290 TraceCheckUtils]: 26: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:08,021 INFO L290 TraceCheckUtils]: 27: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:08,031 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1974#(and (<= mkdup_~n |mkdup_#in~n|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} #118#return; {1990#(and (<= 0 mkdup_~j~0) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:08,032 INFO L272 TraceCheckUtils]: 29: Hoare triple {1990#(and (<= 0 mkdup_~j~0) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:08,032 INFO L290 TraceCheckUtils]: 30: Hoare triple {1837#true} ~cond := #in~cond; {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:08,032 INFO L290 TraceCheckUtils]: 31: Hoare triple {1895#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:08,033 INFO L290 TraceCheckUtils]: 32: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:08,033 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1990#(and (<= 0 mkdup_~j~0) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|))} #120#return; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:08,034 INFO L290 TraceCheckUtils]: 34: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:08,034 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:08,035 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1894#(<= 2 |mkdup_#in~n|)} {1837#true} #102#return; {1868#(<= 2 main_~n~0)} is VALID [2022-04-08 04:18:08,035 INFO L290 TraceCheckUtils]: 37: Hoare triple {1868#(<= 2 main_~n~0)} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {1868#(<= 2 main_~n~0)} is VALID [2022-04-08 04:18:08,035 INFO L272 TraceCheckUtils]: 38: Hoare triple {1868#(<= 2 main_~n~0)} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {1837#true} is VALID [2022-04-08 04:18:08,038 INFO L290 TraceCheckUtils]: 39: Hoare triple {1837#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {2024#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~i~1 0))} is VALID [2022-04-08 04:18:08,038 INFO L290 TraceCheckUtils]: 40: Hoare triple {2024#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~i~1 0))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {2028#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:08,039 INFO L290 TraceCheckUtils]: 41: Hoare triple {2028#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~j~1 1))} assume !(~j~1 < ~n); {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:08,039 INFO L290 TraceCheckUtils]: 42: Hoare triple {1900#(<= |finddup_#in~n| 1)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:08,039 INFO L290 TraceCheckUtils]: 43: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume !(~i~1 < ~n); {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:08,040 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:08,040 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:08,041 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1900#(<= |finddup_#in~n| 1)} {1868#(<= 2 main_~n~0)} #104#return; {1838#false} is VALID [2022-04-08 04:18:08,041 INFO L290 TraceCheckUtils]: 47: Hoare triple {1838#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {1838#false} is VALID [2022-04-08 04:18:08,041 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-08 04:18:08,041 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-08 04:18:08,041 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-08 04:18:08,042 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-08 04:18:08,042 INFO L134 CoverageAnalysis]: Checked inductivity of 25 backedges. 9 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-08 04:18:08,042 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:18:10,015 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-08 04:18:10,015 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-08 04:18:10,015 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-08 04:18:10,015 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-08 04:18:10,016 INFO L290 TraceCheckUtils]: 47: Hoare triple {1838#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {1838#false} is VALID [2022-04-08 04:18:10,017 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1900#(<= |finddup_#in~n| 1)} {1868#(<= 2 main_~n~0)} #104#return; {1838#false} is VALID [2022-04-08 04:18:10,017 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:10,018 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:10,018 INFO L290 TraceCheckUtils]: 43: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume !(~i~1 < ~n); {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:10,018 INFO L290 TraceCheckUtils]: 42: Hoare triple {1900#(<= |finddup_#in~n| 1)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:10,019 INFO L290 TraceCheckUtils]: 41: Hoare triple {2095#(or (<= |finddup_#in~n| 1) (< finddup_~j~1 finddup_~n))} assume !(~j~1 < ~n); {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 04:18:10,019 INFO L290 TraceCheckUtils]: 40: Hoare triple {2099#(or (<= |finddup_#in~n| 1) (< (+ finddup_~i~1 1) finddup_~n))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {2095#(or (<= |finddup_#in~n| 1) (< finddup_~j~1 finddup_~n))} is VALID [2022-04-08 04:18:10,020 INFO L290 TraceCheckUtils]: 39: Hoare triple {1837#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {2099#(or (<= |finddup_#in~n| 1) (< (+ finddup_~i~1 1) finddup_~n))} is VALID [2022-04-08 04:18:10,020 INFO L272 TraceCheckUtils]: 38: Hoare triple {1868#(<= 2 main_~n~0)} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {1837#true} is VALID [2022-04-08 04:18:10,020 INFO L290 TraceCheckUtils]: 37: Hoare triple {1868#(<= 2 main_~n~0)} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {1868#(<= 2 main_~n~0)} is VALID [2022-04-08 04:18:10,021 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1894#(<= 2 |mkdup_#in~n|)} {1837#true} #102#return; {1868#(<= 2 main_~n~0)} is VALID [2022-04-08 04:18:10,021 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:10,021 INFO L290 TraceCheckUtils]: 34: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:10,022 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} #120#return; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 04:18:10,022 INFO L290 TraceCheckUtils]: 32: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:10,022 INFO L290 TraceCheckUtils]: 31: Hoare triple {2130#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:10,023 INFO L290 TraceCheckUtils]: 30: Hoare triple {1837#true} ~cond := #in~cond; {2130#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-08 04:18:10,023 INFO L272 TraceCheckUtils]: 29: Hoare triple {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:10,024 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {2137#(or (and (or (<= mkdup_~n 0) (<= mkdup_~i~0 0)) (or (<= mkdup_~n 0) (<= mkdup_~n (+ mkdup_~i~0 1)))) (<= 2 |mkdup_#in~n|))} #118#return; {1889#(or (= mkdup_~j~0 mkdup_~i~0) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:10,024 INFO L290 TraceCheckUtils]: 27: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:10,024 INFO L290 TraceCheckUtils]: 26: Hoare triple {2130#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:10,025 INFO L290 TraceCheckUtils]: 25: Hoare triple {1837#true} ~cond := #in~cond; {2130#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-08 04:18:10,025 INFO L272 TraceCheckUtils]: 24: Hoare triple {2137#(or (and (or (<= mkdup_~n 0) (<= mkdup_~i~0 0)) (or (<= mkdup_~n 0) (<= mkdup_~n (+ mkdup_~i~0 1)))) (<= 2 |mkdup_#in~n|))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:10,025 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} {2153#(or (<= mkdup_~n 1) (<= 2 |mkdup_#in~n|))} #116#return; {2137#(or (and (or (<= mkdup_~n 0) (<= mkdup_~i~0 0)) (or (<= mkdup_~n 0) (<= mkdup_~n (+ mkdup_~i~0 1)))) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:10,026 INFO L290 TraceCheckUtils]: 22: Hoare triple {1896#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:10,026 INFO L290 TraceCheckUtils]: 21: Hoare triple {2130#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {1896#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:10,026 INFO L290 TraceCheckUtils]: 20: Hoare triple {1837#true} ~cond := #in~cond; {2130#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-08 04:18:10,027 INFO L272 TraceCheckUtils]: 19: Hoare triple {2153#(or (<= mkdup_~n 1) (<= 2 |mkdup_#in~n|))} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:10,027 INFO L290 TraceCheckUtils]: 18: Hoare triple {1837#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {2153#(or (<= mkdup_~n 1) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:10,027 INFO L272 TraceCheckUtils]: 17: Hoare triple {1837#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {1837#true} is VALID [2022-04-08 04:18:10,027 INFO L290 TraceCheckUtils]: 16: Hoare triple {1837#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {1837#true} is VALID [2022-04-08 04:18:10,027 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-08 04:18:10,027 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L290 TraceCheckUtils]: 13: Hoare triple {1837#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L272 TraceCheckUtils]: 12: Hoare triple {1837#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L290 TraceCheckUtils]: 11: Hoare triple {1837#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L272 TraceCheckUtils]: 6: Hoare triple {1837#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L290 TraceCheckUtils]: 5: Hoare triple {1837#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#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(10, 2);call #Ultimate.allocInit(12, 3); {1837#true} is VALID [2022-04-08 04:18:10,028 INFO L272 TraceCheckUtils]: 0: Hoare triple {1837#true} call ULTIMATE.init(); {1837#true} is VALID [2022-04-08 04:18:10,029 INFO L134 CoverageAnalysis]: Checked inductivity of 25 backedges. 10 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-08 04:18:10,029 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [86511148] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:10,029 INFO L184 FreeRefinementEngine]: Found 1 perfect and 2 imperfect interpolant sequences. [2022-04-08 04:18:10,029 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [15, 12] total 25 [2022-04-08 04:18:10,029 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:10,029 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [44854310] [2022-04-08 04:18:10,029 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [44854310] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:10,030 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:10,030 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-08 04:18:10,030 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [617146175] [2022-04-08 04:18:10,030 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:10,030 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 9 states have (on average 3.111111111111111) internal successors, (28), 10 states have internal predecessors, (28), 6 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) Word has length 52 [2022-04-08 04:18:10,030 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:10,031 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 9 states have (on average 3.111111111111111) internal successors, (28), 10 states have internal predecessors, (28), 6 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:10,062 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:10,063 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-08 04:18:10,063 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:10,063 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-08 04:18:10,063 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=526, Unknown=0, NotChecked=0, Total=600 [2022-04-08 04:18:10,064 INFO L87 Difference]: Start difference. First operand 63 states and 74 transitions. Second operand has 12 states, 9 states have (on average 3.111111111111111) internal successors, (28), 10 states have internal predecessors, (28), 6 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:10,665 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:10,665 INFO L93 Difference]: Finished difference Result 104 states and 126 transitions. [2022-04-08 04:18:10,665 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 04:18:10,665 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 9 states have (on average 3.111111111111111) internal successors, (28), 10 states have internal predecessors, (28), 6 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) Word has length 52 [2022-04-08 04:18:10,666 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:10,666 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 9 states have (on average 3.111111111111111) internal successors, (28), 10 states have internal predecessors, (28), 6 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:10,668 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 112 transitions. [2022-04-08 04:18:10,668 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 9 states have (on average 3.111111111111111) internal successors, (28), 10 states have internal predecessors, (28), 6 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:10,670 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 112 transitions. [2022-04-08 04:18:10,670 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 112 transitions. [2022-04-08 04:18:10,744 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 112 edges. 112 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:10,746 INFO L225 Difference]: With dead ends: 104 [2022-04-08 04:18:10,746 INFO L226 Difference]: Without dead ends: 70 [2022-04-08 04:18:10,747 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 134 GetRequests, 106 SyntacticMatches, 3 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 100 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=86, Invalid=616, Unknown=0, NotChecked=0, Total=702 [2022-04-08 04:18:10,747 INFO L913 BasicCegarLoop]: 58 mSDtfsCounter, 42 mSDsluCounter, 421 mSDsCounter, 0 mSdLazyCounter, 181 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 50 SdHoareTripleChecker+Valid, 479 SdHoareTripleChecker+Invalid, 186 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 181 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:10,747 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [50 Valid, 479 Invalid, 186 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 181 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-08 04:18:10,748 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2022-04-08 04:18:10,801 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 64. [2022-04-08 04:18:10,801 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:10,801 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand has 64 states, 40 states have (on average 1.15) internal successors, (46), 42 states have internal predecessors, (46), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:10,801 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand has 64 states, 40 states have (on average 1.15) internal successors, (46), 42 states have internal predecessors, (46), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:10,802 INFO L87 Difference]: Start difference. First operand 70 states. Second operand has 64 states, 40 states have (on average 1.15) internal successors, (46), 42 states have internal predecessors, (46), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:10,804 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:10,804 INFO L93 Difference]: Finished difference Result 70 states and 83 transitions. [2022-04-08 04:18:10,804 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 83 transitions. [2022-04-08 04:18:10,804 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:10,804 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:10,804 INFO L74 IsIncluded]: Start isIncluded. First operand has 64 states, 40 states have (on average 1.15) internal successors, (46), 42 states have internal predecessors, (46), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) Second operand 70 states. [2022-04-08 04:18:10,805 INFO L87 Difference]: Start difference. First operand has 64 states, 40 states have (on average 1.15) internal successors, (46), 42 states have internal predecessors, (46), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) Second operand 70 states. [2022-04-08 04:18:10,813 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:10,813 INFO L93 Difference]: Finished difference Result 70 states and 83 transitions. [2022-04-08 04:18:10,813 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 83 transitions. [2022-04-08 04:18:10,813 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:10,813 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:10,813 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:10,813 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:10,814 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 64 states, 40 states have (on average 1.15) internal successors, (46), 42 states have internal predecessors, (46), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:10,817 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 64 states to 64 states and 75 transitions. [2022-04-08 04:18:10,817 INFO L78 Accepts]: Start accepts. Automaton has 64 states and 75 transitions. Word has length 52 [2022-04-08 04:18:10,817 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:10,818 INFO L478 AbstractCegarLoop]: Abstraction has 64 states and 75 transitions. [2022-04-08 04:18:10,818 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 9 states have (on average 3.111111111111111) internal successors, (28), 10 states have internal predecessors, (28), 6 states have call successors, (10), 2 states have call predecessors, (10), 4 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-08 04:18:10,818 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 64 states and 75 transitions. [2022-04-08 04:18:10,899 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 75 edges. 75 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:10,899 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 75 transitions. [2022-04-08 04:18:10,900 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2022-04-08 04:18:10,900 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:10,900 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:10,919 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-04-08 04:18:11,113 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable3 [2022-04-08 04:18:11,114 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:11,114 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:11,114 INFO L85 PathProgramCache]: Analyzing trace with hash 2045094069, now seen corresponding path program 1 times [2022-04-08 04:18:11,114 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:11,114 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2135211411] [2022-04-08 04:18:11,115 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:11,115 INFO L85 PathProgramCache]: Analyzing trace with hash 2045094069, now seen corresponding path program 2 times [2022-04-08 04:18:11,115 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:11,115 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1039413927] [2022-04-08 04:18:11,115 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:11,115 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:11,147 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,171 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:11,173 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,182 INFO L290 TraceCheckUtils]: 0: Hoare triple {2744#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {2702#true} is VALID [2022-04-08 04:18:11,182 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,182 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-08 04:18:11,183 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:11,183 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,186 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,186 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,186 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,186 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-08 04:18:11,188 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:11,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,191 INFO L290 TraceCheckUtils]: 0: Hoare triple {2745#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2702#true} is VALID [2022-04-08 04:18:11,191 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,191 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-08 04:18:11,191 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:11,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,202 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:11,203 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,205 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,205 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,205 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,205 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 04:18:11,206 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:11,207 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,210 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,210 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,210 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,210 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 04:18:11,211 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:11,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,214 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,214 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,214 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,214 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 04:18:11,214 INFO L290 TraceCheckUtils]: 0: Hoare triple {2745#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {2702#true} is VALID [2022-04-08 04:18:11,214 INFO L272 TraceCheckUtils]: 1: Hoare triple {2702#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,214 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L290 TraceCheckUtils]: 3: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L290 TraceCheckUtils]: 4: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L272 TraceCheckUtils]: 6: Hoare triple {2702#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L272 TraceCheckUtils]: 11: Hoare triple {2702#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,215 INFO L290 TraceCheckUtils]: 12: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,216 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,216 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,216 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 04:18:11,216 INFO L290 TraceCheckUtils]: 16: Hoare triple {2702#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {2702#true} is VALID [2022-04-08 04:18:11,216 INFO L290 TraceCheckUtils]: 17: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,216 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-08 04:18:11,216 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:11,220 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,240 INFO L290 TraceCheckUtils]: 0: Hoare triple {2745#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {2702#true} is VALID [2022-04-08 04:18:11,241 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {2758#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:11,241 INFO L290 TraceCheckUtils]: 2: Hoare triple {2758#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,241 INFO L290 TraceCheckUtils]: 3: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,242 INFO L290 TraceCheckUtils]: 4: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,242 INFO L290 TraceCheckUtils]: 5: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(~j~1 < ~n); {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,243 INFO L290 TraceCheckUtils]: 6: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {2760#(<= (+ finddup_~i~1 1) finddup_~n)} is VALID [2022-04-08 04:18:11,243 INFO L290 TraceCheckUtils]: 7: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-08 04:18:11,243 INFO L290 TraceCheckUtils]: 8: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-08 04:18:11,243 INFO L290 TraceCheckUtils]: 9: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-08 04:18:11,243 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-08 04:18:11,244 INFO L272 TraceCheckUtils]: 0: Hoare triple {2702#true} call ULTIMATE.init(); {2744#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:11,244 INFO L290 TraceCheckUtils]: 1: Hoare triple {2744#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L290 TraceCheckUtils]: 5: Hoare triple {2702#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L272 TraceCheckUtils]: 6: Hoare triple {2702#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-08 04:18:11,245 INFO L290 TraceCheckUtils]: 11: Hoare triple {2702#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2702#true} is VALID [2022-04-08 04:18:11,246 INFO L272 TraceCheckUtils]: 12: Hoare triple {2702#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {2745#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:11,246 INFO L290 TraceCheckUtils]: 13: Hoare triple {2745#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2702#true} is VALID [2022-04-08 04:18:11,246 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,246 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-08 04:18:11,246 INFO L290 TraceCheckUtils]: 16: Hoare triple {2702#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {2702#true} is VALID [2022-04-08 04:18:11,247 INFO L272 TraceCheckUtils]: 17: Hoare triple {2702#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {2745#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:11,247 INFO L290 TraceCheckUtils]: 18: Hoare triple {2745#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {2702#true} is VALID [2022-04-08 04:18:11,247 INFO L272 TraceCheckUtils]: 19: Hoare triple {2702#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,247 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,247 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,247 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L272 TraceCheckUtils]: 24: Hoare triple {2702#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L272 TraceCheckUtils]: 29: Hoare triple {2702#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,248 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 04:18:11,249 INFO L290 TraceCheckUtils]: 34: Hoare triple {2702#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {2702#true} is VALID [2022-04-08 04:18:11,249 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,249 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-08 04:18:11,249 INFO L290 TraceCheckUtils]: 37: Hoare triple {2702#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {2702#true} is VALID [2022-04-08 04:18:11,251 INFO L272 TraceCheckUtils]: 38: Hoare triple {2702#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {2745#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:11,251 INFO L290 TraceCheckUtils]: 39: Hoare triple {2745#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {2702#true} is VALID [2022-04-08 04:18:11,251 INFO L290 TraceCheckUtils]: 40: Hoare triple {2702#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {2758#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:11,252 INFO L290 TraceCheckUtils]: 41: Hoare triple {2758#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,252 INFO L290 TraceCheckUtils]: 42: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,252 INFO L290 TraceCheckUtils]: 43: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,253 INFO L290 TraceCheckUtils]: 44: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(~j~1 < ~n); {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,253 INFO L290 TraceCheckUtils]: 45: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {2760#(<= (+ finddup_~i~1 1) finddup_~n)} is VALID [2022-04-08 04:18:11,254 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-08 04:18:11,254 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-08 04:18:11,254 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-08 04:18:11,254 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-08 04:18:11,254 INFO L290 TraceCheckUtils]: 50: Hoare triple {2703#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {2703#false} is VALID [2022-04-08 04:18:11,254 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-08 04:18:11,254 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-08 04:18:11,254 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-08 04:18:11,254 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-08 04:18:11,255 INFO L134 CoverageAnalysis]: Checked inductivity of 26 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:11,255 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:11,255 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1039413927] [2022-04-08 04:18:11,255 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1039413927] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:11,255 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1281295608] [2022-04-08 04:18:11,255 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 04:18:11,255 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:11,255 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:18:11,258 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-04-08 04:18:11,259 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-04-08 04:18:11,334 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 04:18:11,334 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:18:11,335 INFO L263 TraceCheckSpWp]: Trace formula consists of 238 conjuncts, 4 conjunts are in the unsatisfiable core [2022-04-08 04:18:11,348 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:11,350 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:18:11,445 INFO L272 TraceCheckUtils]: 0: Hoare triple {2702#true} call ULTIMATE.init(); {2702#true} is VALID [2022-04-08 04:18:11,446 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#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(10, 2);call #Ultimate.allocInit(12, 3); {2702#true} is VALID [2022-04-08 04:18:11,446 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,446 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-08 04:18:11,446 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-08 04:18:11,446 INFO L290 TraceCheckUtils]: 5: Hoare triple {2702#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {2702#true} is VALID [2022-04-08 04:18:11,446 INFO L272 TraceCheckUtils]: 6: Hoare triple {2702#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,446 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,446 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L290 TraceCheckUtils]: 11: Hoare triple {2702#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L272 TraceCheckUtils]: 12: Hoare triple {2702#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L290 TraceCheckUtils]: 16: Hoare triple {2702#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L272 TraceCheckUtils]: 17: Hoare triple {2702#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L290 TraceCheckUtils]: 18: Hoare triple {2702#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L272 TraceCheckUtils]: 19: Hoare triple {2702#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,447 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L272 TraceCheckUtils]: 24: Hoare triple {2702#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L272 TraceCheckUtils]: 29: Hoare triple {2702#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 04:18:11,448 INFO L290 TraceCheckUtils]: 34: Hoare triple {2702#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {2702#true} is VALID [2022-04-08 04:18:11,449 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,449 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-08 04:18:11,449 INFO L290 TraceCheckUtils]: 37: Hoare triple {2702#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {2702#true} is VALID [2022-04-08 04:18:11,449 INFO L272 TraceCheckUtils]: 38: Hoare triple {2702#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {2702#true} is VALID [2022-04-08 04:18:11,449 INFO L290 TraceCheckUtils]: 39: Hoare triple {2702#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {2702#true} is VALID [2022-04-08 04:18:11,450 INFO L290 TraceCheckUtils]: 40: Hoare triple {2702#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {2758#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:11,450 INFO L290 TraceCheckUtils]: 41: Hoare triple {2758#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,450 INFO L290 TraceCheckUtils]: 42: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,451 INFO L290 TraceCheckUtils]: 43: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,451 INFO L290 TraceCheckUtils]: 44: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(~j~1 < ~n); {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,451 INFO L290 TraceCheckUtils]: 45: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {2760#(<= (+ finddup_~i~1 1) finddup_~n)} is VALID [2022-04-08 04:18:11,452 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-08 04:18:11,452 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-08 04:18:11,452 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-08 04:18:11,452 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-08 04:18:11,452 INFO L290 TraceCheckUtils]: 50: Hoare triple {2703#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {2703#false} is VALID [2022-04-08 04:18:11,452 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-08 04:18:11,452 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-08 04:18:11,452 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-08 04:18:11,452 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-08 04:18:11,453 INFO L134 CoverageAnalysis]: Checked inductivity of 26 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:11,453 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:18:11,615 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-08 04:18:11,616 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-08 04:18:11,616 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-08 04:18:11,616 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-08 04:18:11,616 INFO L290 TraceCheckUtils]: 50: Hoare triple {2703#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {2703#false} is VALID [2022-04-08 04:18:11,616 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-08 04:18:11,616 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-08 04:18:11,616 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-08 04:18:11,617 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-08 04:18:11,617 INFO L290 TraceCheckUtils]: 45: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {2760#(<= (+ finddup_~i~1 1) finddup_~n)} is VALID [2022-04-08 04:18:11,617 INFO L290 TraceCheckUtils]: 44: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(~j~1 < ~n); {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,618 INFO L290 TraceCheckUtils]: 43: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,618 INFO L290 TraceCheckUtils]: 42: Hoare triple {2759#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,618 INFO L290 TraceCheckUtils]: 41: Hoare triple {2758#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {2759#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:11,619 INFO L290 TraceCheckUtils]: 40: Hoare triple {2702#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {2758#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:11,619 INFO L290 TraceCheckUtils]: 39: Hoare triple {2702#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {2702#true} is VALID [2022-04-08 04:18:11,619 INFO L272 TraceCheckUtils]: 38: Hoare triple {2702#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {2702#true} is VALID [2022-04-08 04:18:11,619 INFO L290 TraceCheckUtils]: 37: Hoare triple {2702#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {2702#true} is VALID [2022-04-08 04:18:11,619 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-08 04:18:11,619 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,619 INFO L290 TraceCheckUtils]: 34: Hoare triple {2702#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {2702#true} is VALID [2022-04-08 04:18:11,619 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 04:18:11,619 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,619 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L272 TraceCheckUtils]: 29: Hoare triple {2702#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L272 TraceCheckUtils]: 24: Hoare triple {2702#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L272 TraceCheckUtils]: 19: Hoare triple {2702#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,620 INFO L290 TraceCheckUtils]: 18: Hoare triple {2702#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L272 TraceCheckUtils]: 17: Hoare triple {2702#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L290 TraceCheckUtils]: 16: Hoare triple {2702#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L272 TraceCheckUtils]: 12: Hoare triple {2702#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L290 TraceCheckUtils]: 11: Hoare triple {2702#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L272 TraceCheckUtils]: 6: Hoare triple {2702#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {2702#true} is VALID [2022-04-08 04:18:11,621 INFO L290 TraceCheckUtils]: 5: Hoare triple {2702#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {2702#true} is VALID [2022-04-08 04:18:11,622 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-08 04:18:11,622 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-08 04:18:11,622 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 04:18:11,622 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#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(10, 2);call #Ultimate.allocInit(12, 3); {2702#true} is VALID [2022-04-08 04:18:11,622 INFO L272 TraceCheckUtils]: 0: Hoare triple {2702#true} call ULTIMATE.init(); {2702#true} is VALID [2022-04-08 04:18:11,622 INFO L134 CoverageAnalysis]: Checked inductivity of 26 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:11,622 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1281295608] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 04:18:11,622 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-08 04:18:11,622 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 5, 5] total 7 [2022-04-08 04:18:11,623 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:11,623 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2135211411] [2022-04-08 04:18:11,623 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2135211411] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:11,623 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:11,623 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-04-08 04:18:11,623 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [972991543] [2022-04-08 04:18:11,623 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:11,623 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 4.0) internal successors, (28), 5 states have internal predecessors, (28), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) Word has length 55 [2022-04-08 04:18:11,623 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:11,624 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 4.0) internal successors, (28), 5 states have internal predecessors, (28), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:11,663 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:11,663 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-04-08 04:18:11,663 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:11,664 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-04-08 04:18:11,664 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2022-04-08 04:18:11,664 INFO L87 Difference]: Start difference. First operand 64 states and 75 transitions. Second operand has 7 states, 7 states have (on average 4.0) internal successors, (28), 5 states have internal predecessors, (28), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:12,145 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:12,145 INFO L93 Difference]: Finished difference Result 88 states and 106 transitions. [2022-04-08 04:18:12,145 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-08 04:18:12,145 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 4.0) internal successors, (28), 5 states have internal predecessors, (28), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) Word has length 55 [2022-04-08 04:18:12,146 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:12,146 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 4.0) internal successors, (28), 5 states have internal predecessors, (28), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:12,147 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 98 transitions. [2022-04-08 04:18:12,148 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 4.0) internal successors, (28), 5 states have internal predecessors, (28), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:12,149 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 98 transitions. [2022-04-08 04:18:12,149 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 98 transitions. [2022-04-08 04:18:12,223 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 98 edges. 98 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:12,225 INFO L225 Difference]: With dead ends: 88 [2022-04-08 04:18:12,225 INFO L226 Difference]: Without dead ends: 67 [2022-04-08 04:18:12,225 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 137 GetRequests, 125 SyntacticMatches, 2 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=47, Invalid=85, Unknown=0, NotChecked=0, Total=132 [2022-04-08 04:18:12,226 INFO L913 BasicCegarLoop]: 47 mSDtfsCounter, 66 mSDsluCounter, 4 mSDsCounter, 0 mSdLazyCounter, 171 mSolverCounterSat, 49 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 73 SdHoareTripleChecker+Valid, 51 SdHoareTripleChecker+Invalid, 220 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 49 IncrementalHoareTripleChecker+Valid, 171 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:12,226 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [73 Valid, 51 Invalid, 220 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [49 Valid, 171 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-08 04:18:12,226 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 67 states. [2022-04-08 04:18:12,279 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 67 to 67. [2022-04-08 04:18:12,279 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:12,279 INFO L82 GeneralOperation]: Start isEquivalent. First operand 67 states. Second operand has 67 states, 43 states have (on average 1.1627906976744187) internal successors, (50), 45 states have internal predecessors, (50), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:12,279 INFO L74 IsIncluded]: Start isIncluded. First operand 67 states. Second operand has 67 states, 43 states have (on average 1.1627906976744187) internal successors, (50), 45 states have internal predecessors, (50), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:12,280 INFO L87 Difference]: Start difference. First operand 67 states. Second operand has 67 states, 43 states have (on average 1.1627906976744187) internal successors, (50), 45 states have internal predecessors, (50), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:12,281 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:12,282 INFO L93 Difference]: Finished difference Result 67 states and 79 transitions. [2022-04-08 04:18:12,282 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-08 04:18:12,282 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:12,282 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:12,282 INFO L74 IsIncluded]: Start isIncluded. First operand has 67 states, 43 states have (on average 1.1627906976744187) internal successors, (50), 45 states have internal predecessors, (50), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) Second operand 67 states. [2022-04-08 04:18:12,282 INFO L87 Difference]: Start difference. First operand has 67 states, 43 states have (on average 1.1627906976744187) internal successors, (50), 45 states have internal predecessors, (50), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) Second operand 67 states. [2022-04-08 04:18:12,284 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:12,284 INFO L93 Difference]: Finished difference Result 67 states and 79 transitions. [2022-04-08 04:18:12,284 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-08 04:18:12,285 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:12,285 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:12,285 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:12,285 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:12,285 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 67 states, 43 states have (on average 1.1627906976744187) internal successors, (50), 45 states have internal predecessors, (50), 15 states have call successors, (15), 8 states have call predecessors, (15), 8 states have return successors, (14), 13 states have call predecessors, (14), 13 states have call successors, (14) [2022-04-08 04:18:12,287 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 67 states to 67 states and 79 transitions. [2022-04-08 04:18:12,287 INFO L78 Accepts]: Start accepts. Automaton has 67 states and 79 transitions. Word has length 55 [2022-04-08 04:18:12,287 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:12,287 INFO L478 AbstractCegarLoop]: Abstraction has 67 states and 79 transitions. [2022-04-08 04:18:12,287 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 4.0) internal successors, (28), 5 states have internal predecessors, (28), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:12,287 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 67 states and 79 transitions. [2022-04-08 04:18:12,358 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:12,358 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-08 04:18:12,359 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-08 04:18:12,359 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:12,359 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:12,375 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-04-08 04:18:12,575 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:12,576 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:12,576 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:12,576 INFO L85 PathProgramCache]: Analyzing trace with hash 629236887, now seen corresponding path program 1 times [2022-04-08 04:18:12,576 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:12,576 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1846526200] [2022-04-08 04:18:12,576 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:12,576 INFO L85 PathProgramCache]: Analyzing trace with hash 629236887, now seen corresponding path program 2 times [2022-04-08 04:18:12,577 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:12,577 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1188286803] [2022-04-08 04:18:12,577 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:12,577 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:12,605 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,700 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:12,702 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,717 INFO L290 TraceCheckUtils]: 0: Hoare triple {3594#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {3545#true} is VALID [2022-04-08 04:18:12,717 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,717 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-08 04:18:12,718 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:12,719 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,721 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,721 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,721 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,721 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-08 04:18:12,728 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:12,729 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,733 INFO L290 TraceCheckUtils]: 0: Hoare triple {3595#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3545#true} is VALID [2022-04-08 04:18:12,734 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,734 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-08 04:18:12,734 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:12,742 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,745 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:12,746 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,748 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,748 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,748 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,748 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-08 04:18:12,748 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:12,749 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,750 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,750 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,750 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,751 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-08 04:18:12,751 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:12,751 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,756 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,756 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,756 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,756 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L290 TraceCheckUtils]: 0: Hoare triple {3595#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L272 TraceCheckUtils]: 1: Hoare triple {3545#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L290 TraceCheckUtils]: 3: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L290 TraceCheckUtils]: 4: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L272 TraceCheckUtils]: 6: Hoare triple {3545#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-08 04:18:12,757 INFO L272 TraceCheckUtils]: 11: Hoare triple {3545#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:12,758 INFO L290 TraceCheckUtils]: 12: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,758 INFO L290 TraceCheckUtils]: 13: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,758 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,758 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-08 04:18:12,758 INFO L290 TraceCheckUtils]: 16: Hoare triple {3545#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {3545#true} is VALID [2022-04-08 04:18:12,758 INFO L290 TraceCheckUtils]: 17: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,758 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-08 04:18:12,758 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:12,762 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,882 INFO L290 TraceCheckUtils]: 0: Hoare triple {3595#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {3608#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= |finddup_#in~n| finddup_~n) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:12,883 INFO L290 TraceCheckUtils]: 1: Hoare triple {3608#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= |finddup_#in~n| finddup_~n) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {3609#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= |finddup_#in~n| finddup_~n) (= finddup_~i~1 0) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:12,884 INFO L290 TraceCheckUtils]: 2: Hoare triple {3609#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= |finddup_#in~n| finddup_~n) (= finddup_~i~1 0) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {3610#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) |finddup_#in~n|) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:12,884 INFO L290 TraceCheckUtils]: 3: Hoare triple {3610#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) |finddup_#in~n|) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {3611#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 |finddup_#in~n|))} is VALID [2022-04-08 04:18:12,885 INFO L290 TraceCheckUtils]: 4: Hoare triple {3611#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 |finddup_#in~n|))} assume true; {3611#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 |finddup_#in~n|))} is VALID [2022-04-08 04:18:12,886 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3611#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 |finddup_#in~n|))} {3576#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {3583#(and (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0)) (<= 2 main_~n~0))} is VALID [2022-04-08 04:18:12,886 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 04:18:12,887 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:12,905 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:12,905 INFO L290 TraceCheckUtils]: 1: Hoare triple {3612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:12,905 INFO L290 TraceCheckUtils]: 2: Hoare triple {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:12,906 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} {3584#(and (or (= main_~r~0 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (<= 2 main_~n~0))} #106#return; {3589#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 main_~n~0))} is VALID [2022-04-08 04:18:12,907 INFO L272 TraceCheckUtils]: 0: Hoare triple {3545#true} call ULTIMATE.init(); {3594#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:12,907 INFO L290 TraceCheckUtils]: 1: Hoare triple {3594#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {3545#true} is VALID [2022-04-08 04:18:12,907 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,907 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-08 04:18:12,908 INFO L272 TraceCheckUtils]: 4: Hoare triple {3545#true} call #t~ret27 := main(); {3545#true} is VALID [2022-04-08 04:18:12,908 INFO L290 TraceCheckUtils]: 5: Hoare triple {3545#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {3545#true} is VALID [2022-04-08 04:18:12,908 INFO L272 TraceCheckUtils]: 6: Hoare triple {3545#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:12,908 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,908 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,908 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,908 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-08 04:18:12,908 INFO L290 TraceCheckUtils]: 11: Hoare triple {3545#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {3545#true} is VALID [2022-04-08 04:18:12,909 INFO L272 TraceCheckUtils]: 12: Hoare triple {3545#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {3595#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:12,909 INFO L290 TraceCheckUtils]: 13: Hoare triple {3595#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3545#true} is VALID [2022-04-08 04:18:12,909 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,909 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-08 04:18:12,909 INFO L290 TraceCheckUtils]: 16: Hoare triple {3545#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L272 TraceCheckUtils]: 17: Hoare triple {3545#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {3595#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:12,910 INFO L290 TraceCheckUtils]: 18: Hoare triple {3595#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L272 TraceCheckUtils]: 19: Hoare triple {3545#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L290 TraceCheckUtils]: 20: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L290 TraceCheckUtils]: 21: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L290 TraceCheckUtils]: 22: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L272 TraceCheckUtils]: 24: Hoare triple {3545#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L290 TraceCheckUtils]: 25: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L290 TraceCheckUtils]: 26: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,910 INFO L290 TraceCheckUtils]: 27: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L272 TraceCheckUtils]: 29: Hoare triple {3545#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L290 TraceCheckUtils]: 30: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L290 TraceCheckUtils]: 31: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L290 TraceCheckUtils]: 32: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L290 TraceCheckUtils]: 34: Hoare triple {3545#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L290 TraceCheckUtils]: 35: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:12,911 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-08 04:18:12,915 INFO L290 TraceCheckUtils]: 37: Hoare triple {3545#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {3576#(not (= |main_~#i~2.base| |main_~#j~2.base|))} is VALID [2022-04-08 04:18:12,917 INFO L272 TraceCheckUtils]: 38: Hoare triple {3576#(not (= |main_~#i~2.base| |main_~#j~2.base|))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {3595#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:12,917 INFO L290 TraceCheckUtils]: 39: Hoare triple {3595#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {3608#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= |finddup_#in~n| finddup_~n) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:12,918 INFO L290 TraceCheckUtils]: 40: Hoare triple {3608#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= |finddup_#in~n| finddup_~n) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {3609#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= |finddup_#in~n| finddup_~n) (= finddup_~i~1 0) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:12,919 INFO L290 TraceCheckUtils]: 41: Hoare triple {3609#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= |finddup_#in~n| finddup_~n) (= finddup_~i~1 0) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {3610#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) |finddup_#in~n|) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:12,920 INFO L290 TraceCheckUtils]: 42: Hoare triple {3610#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) |finddup_#in~n|) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {3611#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 |finddup_#in~n|))} is VALID [2022-04-08 04:18:12,920 INFO L290 TraceCheckUtils]: 43: Hoare triple {3611#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 |finddup_#in~n|))} assume true; {3611#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 |finddup_#in~n|))} is VALID [2022-04-08 04:18:12,922 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {3611#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 |finddup_#in~n|))} {3576#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {3583#(and (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0)) (<= 2 main_~n~0))} is VALID [2022-04-08 04:18:12,922 INFO L290 TraceCheckUtils]: 45: Hoare triple {3583#(and (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0)) (<= 2 main_~n~0))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {3584#(and (or (= main_~r~0 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (<= 2 main_~n~0))} is VALID [2022-04-08 04:18:12,922 INFO L272 TraceCheckUtils]: 46: Hoare triple {3584#(and (or (= main_~r~0 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (<= 2 main_~n~0))} call __VERIFIER_assert(~r~0); {3545#true} is VALID [2022-04-08 04:18:12,923 INFO L290 TraceCheckUtils]: 47: Hoare triple {3545#true} ~cond := #in~cond; {3612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:12,923 INFO L290 TraceCheckUtils]: 48: Hoare triple {3612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:12,923 INFO L290 TraceCheckUtils]: 49: Hoare triple {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:12,924 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} {3584#(and (or (= main_~r~0 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (<= 2 main_~n~0))} #106#return; {3589#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 main_~n~0))} is VALID [2022-04-08 04:18:12,925 INFO L290 TraceCheckUtils]: 51: Hoare triple {3589#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 main_~n~0))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {3590#(<= (+ 2 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) main_~n~0)} is VALID [2022-04-08 04:18:12,925 INFO L290 TraceCheckUtils]: 52: Hoare triple {3590#(<= (+ 2 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) main_~n~0)} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {3591#|main_#t~short17|} is VALID [2022-04-08 04:18:12,926 INFO L272 TraceCheckUtils]: 53: Hoare triple {3591#|main_#t~short17|} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:12,926 INFO L290 TraceCheckUtils]: 54: Hoare triple {3592#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {3593#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 04:18:12,927 INFO L290 TraceCheckUtils]: 55: Hoare triple {3593#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {3546#false} is VALID [2022-04-08 04:18:12,927 INFO L290 TraceCheckUtils]: 56: Hoare triple {3546#false} assume !false; {3546#false} is VALID [2022-04-08 04:18:12,927 INFO L134 CoverageAnalysis]: Checked inductivity of 26 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:12,927 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:12,927 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1188286803] [2022-04-08 04:18:12,927 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1188286803] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:12,927 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [58639939] [2022-04-08 04:18:12,927 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 04:18:12,928 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:12,928 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:18:12,928 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-04-08 04:18:12,951 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-04-08 04:18:13,014 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 04:18:13,015 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:18:13,016 INFO L263 TraceCheckSpWp]: Trace formula consists of 259 conjuncts, 31 conjunts are in the unsatisfiable core [2022-04-08 04:18:13,032 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:13,035 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:18:13,107 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 10 treesize of output 8 [2022-04-08 04:18:13,283 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 14 treesize of output 14 [2022-04-08 04:18:13,293 INFO L356 Elim1Store]: treesize reduction 11, result has 45.0 percent of original size [2022-04-08 04:18:13,294 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 1 case distinctions, treesize of input 14 treesize of output 20 [2022-04-08 04:18:13,302 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 5 treesize of output 3 [2022-04-08 04:18:13,526 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 15 treesize of output 7 [2022-04-08 04:18:13,629 INFO L272 TraceCheckUtils]: 0: Hoare triple {3545#true} call ULTIMATE.init(); {3545#true} is VALID [2022-04-08 04:18:13,629 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#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(10, 2);call #Ultimate.allocInit(12, 3); {3545#true} is VALID [2022-04-08 04:18:13,629 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L272 TraceCheckUtils]: 4: Hoare triple {3545#true} call #t~ret27 := main(); {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L290 TraceCheckUtils]: 5: Hoare triple {3545#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L272 TraceCheckUtils]: 6: Hoare triple {3545#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L290 TraceCheckUtils]: 11: Hoare triple {3545#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L272 TraceCheckUtils]: 12: Hoare triple {3545#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L290 TraceCheckUtils]: 13: Hoare triple {3545#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:13,630 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L290 TraceCheckUtils]: 16: Hoare triple {3545#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L272 TraceCheckUtils]: 17: Hoare triple {3545#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L290 TraceCheckUtils]: 18: Hoare triple {3545#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L272 TraceCheckUtils]: 19: Hoare triple {3545#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L290 TraceCheckUtils]: 20: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L290 TraceCheckUtils]: 21: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L290 TraceCheckUtils]: 22: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-08 04:18:13,631 INFO L272 TraceCheckUtils]: 24: Hoare triple {3545#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L290 TraceCheckUtils]: 25: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L290 TraceCheckUtils]: 26: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L290 TraceCheckUtils]: 27: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L272 TraceCheckUtils]: 29: Hoare triple {3545#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L290 TraceCheckUtils]: 30: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L290 TraceCheckUtils]: 31: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L290 TraceCheckUtils]: 32: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-08 04:18:13,632 INFO L290 TraceCheckUtils]: 34: Hoare triple {3545#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {3545#true} is VALID [2022-04-08 04:18:13,633 INFO L290 TraceCheckUtils]: 35: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:13,633 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-08 04:18:13,634 INFO L290 TraceCheckUtils]: 37: Hoare triple {3545#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {3727#(and (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} is VALID [2022-04-08 04:18:13,634 INFO L272 TraceCheckUtils]: 38: Hoare triple {3727#(and (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {3545#true} is VALID [2022-04-08 04:18:13,634 INFO L290 TraceCheckUtils]: 39: Hoare triple {3545#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {3734#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base) (<= finddup_~n |finddup_#in~n|) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:13,635 INFO L290 TraceCheckUtils]: 40: Hoare triple {3734#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base) (<= finddup_~n |finddup_#in~n|) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {3738#(and (= |finddup_#in~_j.base| finddup_~_j.base) (< finddup_~i~1 |finddup_#in~n|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:13,636 INFO L290 TraceCheckUtils]: 41: Hoare triple {3738#(and (= |finddup_#in~_j.base| finddup_~_j.base) (< finddup_~i~1 |finddup_#in~n|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {3738#(and (= |finddup_#in~_j.base| finddup_~_j.base) (< finddup_~i~1 |finddup_#in~n|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:13,637 INFO L290 TraceCheckUtils]: 42: Hoare triple {3738#(and (= |finddup_#in~_j.base| finddup_~_j.base) (< finddup_~i~1 |finddup_#in~n|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {3745#(or (< (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) |finddup_#in~n|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} is VALID [2022-04-08 04:18:13,637 INFO L290 TraceCheckUtils]: 43: Hoare triple {3745#(or (< (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) |finddup_#in~n|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} assume true; {3745#(or (< (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) |finddup_#in~n|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} is VALID [2022-04-08 04:18:13,639 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {3745#(or (< (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) |finddup_#in~n|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} {3727#(and (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} #104#return; {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:13,639 INFO L290 TraceCheckUtils]: 45: Hoare triple {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:13,639 INFO L272 TraceCheckUtils]: 46: Hoare triple {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} call __VERIFIER_assert(~r~0); {3545#true} is VALID [2022-04-08 04:18:13,639 INFO L290 TraceCheckUtils]: 47: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 04:18:13,640 INFO L290 TraceCheckUtils]: 48: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 04:18:13,640 INFO L290 TraceCheckUtils]: 49: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 04:18:13,640 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {3545#true} {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} #106#return; {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:13,641 INFO L290 TraceCheckUtils]: 51: Hoare triple {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:13,641 INFO L290 TraceCheckUtils]: 52: Hoare triple {3752#(and (< (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|) main_~n~0) (= |main_~#i~2.offset| 0))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {3591#|main_#t~short17|} is VALID [2022-04-08 04:18:13,642 INFO L272 TraceCheckUtils]: 53: Hoare triple {3591#|main_#t~short17|} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {3780#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 04:18:13,642 INFO L290 TraceCheckUtils]: 54: Hoare triple {3780#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3784#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:13,642 INFO L290 TraceCheckUtils]: 55: Hoare triple {3784#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3546#false} is VALID [2022-04-08 04:18:13,642 INFO L290 TraceCheckUtils]: 56: Hoare triple {3546#false} assume !false; {3546#false} is VALID [2022-04-08 04:18:13,643 INFO L134 CoverageAnalysis]: Checked inductivity of 26 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:13,643 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-08 04:18:13,643 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [58639939] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:13,643 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-08 04:18:13,643 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [17] total 24 [2022-04-08 04:18:13,643 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:13,643 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1846526200] [2022-04-08 04:18:13,643 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1846526200] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:13,644 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:13,644 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-04-08 04:18:13,644 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [18925477] [2022-04-08 04:18:13,644 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:13,644 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 8 states have (on average 3.5) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (9), 2 states have call predecessors, (9), 3 states have call successors, (9) Word has length 57 [2022-04-08 04:18:13,644 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:13,644 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 10 states, 8 states have (on average 3.5) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (9), 2 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:13,681 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:13,682 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-08 04:18:13,682 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:13,682 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-08 04:18:13,682 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=499, Unknown=0, NotChecked=0, Total=552 [2022-04-08 04:18:13,682 INFO L87 Difference]: Start difference. First operand 67 states and 79 transitions. Second operand has 10 states, 8 states have (on average 3.5) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (9), 2 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:14,327 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:14,328 INFO L93 Difference]: Finished difference Result 85 states and 102 transitions. [2022-04-08 04:18:14,328 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-08 04:18:14,328 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 8 states have (on average 3.5) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (9), 2 states have call predecessors, (9), 3 states have call successors, (9) Word has length 57 [2022-04-08 04:18:14,328 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:14,328 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 8 states have (on average 3.5) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (9), 2 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:14,330 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 93 transitions. [2022-04-08 04:18:14,330 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 8 states have (on average 3.5) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (9), 2 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:14,341 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 93 transitions. [2022-04-08 04:18:14,341 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 93 transitions. [2022-04-08 04:18:14,403 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 93 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:14,405 INFO L225 Difference]: With dead ends: 85 [2022-04-08 04:18:14,405 INFO L226 Difference]: Without dead ends: 83 [2022-04-08 04:18:14,405 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 93 GetRequests, 66 SyntacticMatches, 0 SemanticMatches, 27 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 84 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=81, Invalid=731, Unknown=0, NotChecked=0, Total=812 [2022-04-08 04:18:14,406 INFO L913 BasicCegarLoop]: 57 mSDtfsCounter, 45 mSDsluCounter, 376 mSDsCounter, 0 mSdLazyCounter, 174 mSolverCounterSat, 13 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 51 SdHoareTripleChecker+Valid, 433 SdHoareTripleChecker+Invalid, 187 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 13 IncrementalHoareTripleChecker+Valid, 174 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:14,406 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [51 Valid, 433 Invalid, 187 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [13 Valid, 174 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-08 04:18:14,406 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2022-04-08 04:18:14,477 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 74. [2022-04-08 04:18:14,477 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:14,478 INFO L82 GeneralOperation]: Start isEquivalent. First operand 83 states. Second operand has 74 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 50 states have internal predecessors, (56), 16 states have call successors, (16), 9 states have call predecessors, (16), 9 states have return successors, (15), 14 states have call predecessors, (15), 14 states have call successors, (15) [2022-04-08 04:18:14,478 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand has 74 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 50 states have internal predecessors, (56), 16 states have call successors, (16), 9 states have call predecessors, (16), 9 states have return successors, (15), 14 states have call predecessors, (15), 14 states have call successors, (15) [2022-04-08 04:18:14,478 INFO L87 Difference]: Start difference. First operand 83 states. Second operand has 74 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 50 states have internal predecessors, (56), 16 states have call successors, (16), 9 states have call predecessors, (16), 9 states have return successors, (15), 14 states have call predecessors, (15), 14 states have call successors, (15) [2022-04-08 04:18:14,480 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:14,480 INFO L93 Difference]: Finished difference Result 83 states and 100 transitions. [2022-04-08 04:18:14,480 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 100 transitions. [2022-04-08 04:18:14,480 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:14,481 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:14,481 INFO L74 IsIncluded]: Start isIncluded. First operand has 74 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 50 states have internal predecessors, (56), 16 states have call successors, (16), 9 states have call predecessors, (16), 9 states have return successors, (15), 14 states have call predecessors, (15), 14 states have call successors, (15) Second operand 83 states. [2022-04-08 04:18:14,481 INFO L87 Difference]: Start difference. First operand has 74 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 50 states have internal predecessors, (56), 16 states have call successors, (16), 9 states have call predecessors, (16), 9 states have return successors, (15), 14 states have call predecessors, (15), 14 states have call successors, (15) Second operand 83 states. [2022-04-08 04:18:14,483 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:14,483 INFO L93 Difference]: Finished difference Result 83 states and 100 transitions. [2022-04-08 04:18:14,483 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 100 transitions. [2022-04-08 04:18:14,483 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:14,483 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:14,483 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:14,483 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:14,484 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 74 states, 48 states have (on average 1.1666666666666667) internal successors, (56), 50 states have internal predecessors, (56), 16 states have call successors, (16), 9 states have call predecessors, (16), 9 states have return successors, (15), 14 states have call predecessors, (15), 14 states have call successors, (15) [2022-04-08 04:18:14,485 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 87 transitions. [2022-04-08 04:18:14,485 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 87 transitions. Word has length 57 [2022-04-08 04:18:14,485 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:14,485 INFO L478 AbstractCegarLoop]: Abstraction has 74 states and 87 transitions. [2022-04-08 04:18:14,486 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 8 states have (on average 3.5) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 2 states have call predecessors, (11), 2 states have return successors, (9), 2 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:14,486 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 74 states and 87 transitions. [2022-04-08 04:18:14,581 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 87 edges. 87 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:14,581 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 87 transitions. [2022-04-08 04:18:14,582 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-08 04:18:14,582 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:14,582 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:14,599 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Forceful destruction successful, exit code 0 [2022-04-08 04:18:14,795 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:14,795 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:14,796 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:14,796 INFO L85 PathProgramCache]: Analyzing trace with hash 631083929, now seen corresponding path program 1 times [2022-04-08 04:18:14,796 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:14,796 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1291225185] [2022-04-08 04:18:14,796 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:14,796 INFO L85 PathProgramCache]: Analyzing trace with hash 631083929, now seen corresponding path program 2 times [2022-04-08 04:18:14,796 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:14,796 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [559565926] [2022-04-08 04:18:14,796 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:14,797 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:14,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,858 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:14,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,867 INFO L290 TraceCheckUtils]: 0: Hoare triple {4330#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {4284#true} is VALID [2022-04-08 04:18:14,868 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,868 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4284#true} {4284#true} #122#return; {4284#true} is VALID [2022-04-08 04:18:14,868 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:14,868 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,870 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,870 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,870 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,870 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #98#return; {4284#true} is VALID [2022-04-08 04:18:14,875 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:14,876 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,877 INFO L290 TraceCheckUtils]: 0: Hoare triple {4331#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4284#true} is VALID [2022-04-08 04:18:14,877 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,878 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4284#true} {4284#true} #100#return; {4284#true} is VALID [2022-04-08 04:18:14,878 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:14,881 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,884 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:14,884 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,886 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,886 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,886 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,886 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-08 04:18:14,886 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:14,887 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,888 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,889 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,889 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,889 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-08 04:18:14,889 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:14,889 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,891 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,891 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,891 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,891 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-08 04:18:14,891 INFO L290 TraceCheckUtils]: 0: Hoare triple {4331#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {4284#true} is VALID [2022-04-08 04:18:14,891 INFO L272 TraceCheckUtils]: 1: Hoare triple {4284#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {4284#true} is VALID [2022-04-08 04:18:14,891 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,891 INFO L290 TraceCheckUtils]: 3: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L290 TraceCheckUtils]: 4: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L272 TraceCheckUtils]: 6: Hoare triple {4284#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L290 TraceCheckUtils]: 7: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L290 TraceCheckUtils]: 8: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L290 TraceCheckUtils]: 9: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L272 TraceCheckUtils]: 11: Hoare triple {4284#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L290 TraceCheckUtils]: 12: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L290 TraceCheckUtils]: 13: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L290 TraceCheckUtils]: 14: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-08 04:18:14,892 INFO L290 TraceCheckUtils]: 16: Hoare triple {4284#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {4284#true} is VALID [2022-04-08 04:18:14,893 INFO L290 TraceCheckUtils]: 17: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,893 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {4284#true} {4284#true} #102#return; {4284#true} is VALID [2022-04-08 04:18:14,893 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:14,896 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,930 INFO L290 TraceCheckUtils]: 0: Hoare triple {4331#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:14,931 INFO L290 TraceCheckUtils]: 1: Hoare triple {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:14,932 INFO L290 TraceCheckUtils]: 2: Hoare triple {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:14,932 INFO L290 TraceCheckUtils]: 3: Hoare triple {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {4345#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0))} is VALID [2022-04-08 04:18:14,932 INFO L290 TraceCheckUtils]: 4: Hoare triple {4345#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0))} assume true; {4345#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0))} is VALID [2022-04-08 04:18:14,934 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {4345#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0))} {4315#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {4322#(or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0))} is VALID [2022-04-08 04:18:14,934 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 04:18:14,935 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:14,951 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4346#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:14,951 INFO L290 TraceCheckUtils]: 1: Hoare triple {4346#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {4347#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:14,951 INFO L290 TraceCheckUtils]: 2: Hoare triple {4347#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {4347#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:14,952 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4347#(not (= |__VERIFIER_assert_#in~cond| 0))} {4323#(or (= main_~r~0 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #106#return; {4328#(= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))} is VALID [2022-04-08 04:18:14,952 INFO L272 TraceCheckUtils]: 0: Hoare triple {4284#true} call ULTIMATE.init(); {4330#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:14,952 INFO L290 TraceCheckUtils]: 1: Hoare triple {4330#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {4284#true} is VALID [2022-04-08 04:18:14,952 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #122#return; {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L272 TraceCheckUtils]: 4: Hoare triple {4284#true} call #t~ret27 := main(); {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L290 TraceCheckUtils]: 5: Hoare triple {4284#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L272 TraceCheckUtils]: 6: Hoare triple {4284#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L290 TraceCheckUtils]: 7: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L290 TraceCheckUtils]: 8: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L290 TraceCheckUtils]: 9: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4284#true} {4284#true} #98#return; {4284#true} is VALID [2022-04-08 04:18:14,953 INFO L290 TraceCheckUtils]: 11: Hoare triple {4284#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {4284#true} is VALID [2022-04-08 04:18:14,954 INFO L272 TraceCheckUtils]: 12: Hoare triple {4284#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {4331#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:14,954 INFO L290 TraceCheckUtils]: 13: Hoare triple {4331#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4284#true} is VALID [2022-04-08 04:18:14,954 INFO L290 TraceCheckUtils]: 14: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,954 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4284#true} {4284#true} #100#return; {4284#true} is VALID [2022-04-08 04:18:14,954 INFO L290 TraceCheckUtils]: 16: Hoare triple {4284#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L272 TraceCheckUtils]: 17: Hoare triple {4284#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {4331#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:14,955 INFO L290 TraceCheckUtils]: 18: Hoare triple {4331#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L272 TraceCheckUtils]: 19: Hoare triple {4284#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L290 TraceCheckUtils]: 20: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L290 TraceCheckUtils]: 21: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L290 TraceCheckUtils]: 22: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L272 TraceCheckUtils]: 24: Hoare triple {4284#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L290 TraceCheckUtils]: 25: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L290 TraceCheckUtils]: 26: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L290 TraceCheckUtils]: 27: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,955 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L272 TraceCheckUtils]: 29: Hoare triple {4284#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L290 TraceCheckUtils]: 30: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L290 TraceCheckUtils]: 31: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L290 TraceCheckUtils]: 32: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L290 TraceCheckUtils]: 34: Hoare triple {4284#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L290 TraceCheckUtils]: 35: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4284#true} {4284#true} #102#return; {4284#true} is VALID [2022-04-08 04:18:14,956 INFO L290 TraceCheckUtils]: 37: Hoare triple {4284#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {4315#(not (= |main_~#i~2.base| |main_~#j~2.base|))} is VALID [2022-04-08 04:18:14,957 INFO L272 TraceCheckUtils]: 38: Hoare triple {4315#(not (= |main_~#i~2.base| |main_~#j~2.base|))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {4331#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:14,958 INFO L290 TraceCheckUtils]: 39: Hoare triple {4331#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:14,958 INFO L290 TraceCheckUtils]: 40: Hoare triple {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:14,959 INFO L290 TraceCheckUtils]: 41: Hoare triple {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:14,960 INFO L290 TraceCheckUtils]: 42: Hoare triple {4344#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (= finddup_~i~1 0) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {4345#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0))} is VALID [2022-04-08 04:18:14,960 INFO L290 TraceCheckUtils]: 43: Hoare triple {4345#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0))} assume true; {4345#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0))} is VALID [2022-04-08 04:18:14,961 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {4345#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0))} {4315#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {4322#(or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0))} is VALID [2022-04-08 04:18:14,961 INFO L290 TraceCheckUtils]: 45: Hoare triple {4322#(or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {4323#(or (= main_~r~0 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:14,961 INFO L272 TraceCheckUtils]: 46: Hoare triple {4323#(or (= main_~r~0 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert(~r~0); {4284#true} is VALID [2022-04-08 04:18:14,962 INFO L290 TraceCheckUtils]: 47: Hoare triple {4284#true} ~cond := #in~cond; {4346#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:14,962 INFO L290 TraceCheckUtils]: 48: Hoare triple {4346#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {4347#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:14,962 INFO L290 TraceCheckUtils]: 49: Hoare triple {4347#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {4347#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:14,963 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {4347#(not (= |__VERIFIER_assert_#in~cond| 0))} {4323#(or (= main_~r~0 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #106#return; {4328#(= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))} is VALID [2022-04-08 04:18:14,963 INFO L290 TraceCheckUtils]: 51: Hoare triple {4328#(= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {4329#|main_#t~short17|} is VALID [2022-04-08 04:18:14,964 INFO L290 TraceCheckUtils]: 52: Hoare triple {4329#|main_#t~short17|} assume !#t~short17; {4285#false} is VALID [2022-04-08 04:18:14,964 INFO L272 TraceCheckUtils]: 53: Hoare triple {4285#false} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {4285#false} is VALID [2022-04-08 04:18:14,964 INFO L290 TraceCheckUtils]: 54: Hoare triple {4285#false} ~cond := #in~cond; {4285#false} is VALID [2022-04-08 04:18:14,964 INFO L290 TraceCheckUtils]: 55: Hoare triple {4285#false} assume 0 == ~cond; {4285#false} is VALID [2022-04-08 04:18:14,964 INFO L290 TraceCheckUtils]: 56: Hoare triple {4285#false} assume !false; {4285#false} is VALID [2022-04-08 04:18:14,964 INFO L134 CoverageAnalysis]: Checked inductivity of 26 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:14,964 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:14,964 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [559565926] [2022-04-08 04:18:14,965 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [559565926] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:14,965 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:14,965 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-08 04:18:14,965 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:14,965 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1291225185] [2022-04-08 04:18:14,965 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1291225185] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:14,965 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:14,965 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-08 04:18:14,965 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2036386691] [2022-04-08 04:18:14,965 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:14,966 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 2.5454545454545454) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) Word has length 57 [2022-04-08 04:18:14,966 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:14,966 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 11 states have (on average 2.5454545454545454) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:14,993 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:14,993 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-08 04:18:14,993 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:14,993 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-08 04:18:14,993 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=25, Invalid=131, Unknown=0, NotChecked=0, Total=156 [2022-04-08 04:18:14,994 INFO L87 Difference]: Start difference. First operand 74 states and 87 transitions. Second operand has 13 states, 11 states have (on average 2.5454545454545454) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:16,453 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:16,453 INFO L93 Difference]: Finished difference Result 106 states and 130 transitions. [2022-04-08 04:18:16,453 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 04:18:16,454 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 2.5454545454545454) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) Word has length 57 [2022-04-08 04:18:16,454 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:16,454 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 2.5454545454545454) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:16,458 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 111 transitions. [2022-04-08 04:18:16,458 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 2.5454545454545454) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:16,460 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 111 transitions. [2022-04-08 04:18:16,460 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 111 transitions. [2022-04-08 04:18:16,551 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 111 edges. 111 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:16,553 INFO L225 Difference]: With dead ends: 106 [2022-04-08 04:18:16,553 INFO L226 Difference]: Without dead ends: 92 [2022-04-08 04:18:16,553 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 37 GetRequests, 17 SyntacticMatches, 0 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 42 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=83, Invalid=379, Unknown=0, NotChecked=0, Total=462 [2022-04-08 04:18:16,554 INFO L913 BasicCegarLoop]: 40 mSDtfsCounter, 100 mSDsluCounter, 18 mSDsCounter, 0 mSdLazyCounter, 643 mSolverCounterSat, 87 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 101 SdHoareTripleChecker+Valid, 58 SdHoareTripleChecker+Invalid, 730 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 87 IncrementalHoareTripleChecker+Valid, 643 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.6s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:16,554 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [101 Valid, 58 Invalid, 730 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [87 Valid, 643 Invalid, 0 Unknown, 0 Unchecked, 0.6s Time] [2022-04-08 04:18:16,555 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 92 states. [2022-04-08 04:18:16,671 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 92 to 83. [2022-04-08 04:18:16,671 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:16,671 INFO L82 GeneralOperation]: Start isEquivalent. First operand 92 states. Second operand has 83 states, 55 states have (on average 1.1818181818181819) internal successors, (65), 57 states have internal predecessors, (65), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:16,672 INFO L74 IsIncluded]: Start isIncluded. First operand 92 states. Second operand has 83 states, 55 states have (on average 1.1818181818181819) internal successors, (65), 57 states have internal predecessors, (65), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:16,672 INFO L87 Difference]: Start difference. First operand 92 states. Second operand has 83 states, 55 states have (on average 1.1818181818181819) internal successors, (65), 57 states have internal predecessors, (65), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:16,674 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:16,674 INFO L93 Difference]: Finished difference Result 92 states and 112 transitions. [2022-04-08 04:18:16,674 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 112 transitions. [2022-04-08 04:18:16,674 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:16,675 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:16,675 INFO L74 IsIncluded]: Start isIncluded. First operand has 83 states, 55 states have (on average 1.1818181818181819) internal successors, (65), 57 states have internal predecessors, (65), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) Second operand 92 states. [2022-04-08 04:18:16,675 INFO L87 Difference]: Start difference. First operand has 83 states, 55 states have (on average 1.1818181818181819) internal successors, (65), 57 states have internal predecessors, (65), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) Second operand 92 states. [2022-04-08 04:18:16,677 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:16,677 INFO L93 Difference]: Finished difference Result 92 states and 112 transitions. [2022-04-08 04:18:16,677 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 112 transitions. [2022-04-08 04:18:16,677 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:16,678 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:16,678 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:16,678 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:16,678 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 83 states, 55 states have (on average 1.1818181818181819) internal successors, (65), 57 states have internal predecessors, (65), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:16,679 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 83 states to 83 states and 99 transitions. [2022-04-08 04:18:16,680 INFO L78 Accepts]: Start accepts. Automaton has 83 states and 99 transitions. Word has length 57 [2022-04-08 04:18:16,680 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:16,680 INFO L478 AbstractCegarLoop]: Abstraction has 83 states and 99 transitions. [2022-04-08 04:18:16,680 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 11 states have (on average 2.5454545454545454) internal successors, (28), 9 states have internal predecessors, (28), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:16,680 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 83 states and 99 transitions. [2022-04-08 04:18:16,793 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:16,793 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 99 transitions. [2022-04-08 04:18:16,794 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 59 [2022-04-08 04:18:16,794 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:16,794 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1, 1, 1] [2022-04-08 04:18:16,794 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6 [2022-04-08 04:18:16,794 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:16,794 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:16,795 INFO L85 PathProgramCache]: Analyzing trace with hash -1636680555, now seen corresponding path program 3 times [2022-04-08 04:18:16,795 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:16,795 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1728100596] [2022-04-08 04:18:16,795 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:16,795 INFO L85 PathProgramCache]: Analyzing trace with hash -1636680555, now seen corresponding path program 4 times [2022-04-08 04:18:16,795 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:16,795 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1032293656] [2022-04-08 04:18:16,795 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:16,795 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:16,866 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:16,983 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:16,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:16,987 INFO L290 TraceCheckUtils]: 0: Hoare triple {4979#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {4931#true} is VALID [2022-04-08 04:18:16,987 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:16,987 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-08 04:18:16,987 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:16,988 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:16,990 INFO L290 TraceCheckUtils]: 0: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-08 04:18:16,990 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-08 04:18:16,990 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:16,990 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-08 04:18:16,994 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:16,995 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:16,999 INFO L290 TraceCheckUtils]: 0: Hoare triple {4980#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4931#true} is VALID [2022-04-08 04:18:17,000 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:17,000 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4931#true} {4940#(= |main_#t~malloc13.offset| 0)} #100#return; {4940#(= |main_#t~malloc13.offset| 0)} is VALID [2022-04-08 04:18:17,001 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:17,028 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:17,531 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:17,533 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:17,560 INFO L290 TraceCheckUtils]: 0: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,560 INFO L290 TraceCheckUtils]: 1: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,561 INFO L290 TraceCheckUtils]: 2: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,562 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4981#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset))} #116#return; {4986#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} is VALID [2022-04-08 04:18:17,562 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:17,564 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:17,574 INFO L290 TraceCheckUtils]: 0: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,574 INFO L290 TraceCheckUtils]: 1: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,574 INFO L290 TraceCheckUtils]: 2: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,576 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4986#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} #118#return; {4991#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (and (<= (+ mkdup_~j~0 1) (+ mkdup_~i~0 |mkdup_#in~n|)) (< mkdup_~i~0 (+ mkdup_~j~0 1))) (<= 2 |mkdup_#in~n|)) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (< 0 mkdup_~j~0) (= (* mkdup_~j~0 4) 0)) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|)) (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} is VALID [2022-04-08 04:18:17,576 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:17,586 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:17,601 INFO L290 TraceCheckUtils]: 0: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,602 INFO L290 TraceCheckUtils]: 1: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,602 INFO L290 TraceCheckUtils]: 2: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,603 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4991#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (and (<= (+ mkdup_~j~0 1) (+ mkdup_~i~0 |mkdup_#in~n|)) (< mkdup_~i~0 (+ mkdup_~j~0 1))) (<= 2 |mkdup_#in~n|)) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (< 0 mkdup_~j~0) (= (* mkdup_~j~0 4) 0)) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|)) (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} #120#return; {4996#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (= mkdup_~a.offset (+ (* mkdup_~j~0 4) mkdup_~a.offset)) (< 0 mkdup_~j~0)) (not (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|))) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:17,604 INFO L290 TraceCheckUtils]: 0: Hoare triple {4980#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {4981#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset))} is VALID [2022-04-08 04:18:17,604 INFO L272 TraceCheckUtils]: 1: Hoare triple {4981#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset))} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:17,605 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,605 INFO L290 TraceCheckUtils]: 3: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,605 INFO L290 TraceCheckUtils]: 4: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,606 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4981#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset))} #116#return; {4986#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} is VALID [2022-04-08 04:18:17,606 INFO L272 TraceCheckUtils]: 6: Hoare triple {4986#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:17,607 INFO L290 TraceCheckUtils]: 7: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,607 INFO L290 TraceCheckUtils]: 8: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,607 INFO L290 TraceCheckUtils]: 9: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,609 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4986#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} #118#return; {4991#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (and (<= (+ mkdup_~j~0 1) (+ mkdup_~i~0 |mkdup_#in~n|)) (< mkdup_~i~0 (+ mkdup_~j~0 1))) (<= 2 |mkdup_#in~n|)) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (< 0 mkdup_~j~0) (= (* mkdup_~j~0 4) 0)) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|)) (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} is VALID [2022-04-08 04:18:17,609 INFO L272 TraceCheckUtils]: 11: Hoare triple {4991#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (and (<= (+ mkdup_~j~0 1) (+ mkdup_~i~0 |mkdup_#in~n|)) (< mkdup_~i~0 (+ mkdup_~j~0 1))) (<= 2 |mkdup_#in~n|)) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (< 0 mkdup_~j~0) (= (* mkdup_~j~0 4) 0)) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|)) (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:17,609 INFO L290 TraceCheckUtils]: 12: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,610 INFO L290 TraceCheckUtils]: 13: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,610 INFO L290 TraceCheckUtils]: 14: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,611 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4991#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (and (<= (+ mkdup_~j~0 1) (+ mkdup_~i~0 |mkdup_#in~n|)) (< mkdup_~i~0 (+ mkdup_~j~0 1))) (<= 2 |mkdup_#in~n|)) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (< 0 mkdup_~j~0) (= (* mkdup_~j~0 4) 0)) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|)) (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} #120#return; {4996#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (= mkdup_~a.offset (+ (* mkdup_~j~0 4) mkdup_~a.offset)) (< 0 mkdup_~j~0)) (not (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|))) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:17,613 INFO L290 TraceCheckUtils]: 16: Hoare triple {4996#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (= mkdup_~a.offset (+ (* mkdup_~j~0 4) mkdup_~a.offset)) (< 0 mkdup_~j~0)) (not (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|))) (<= 2 |mkdup_#in~n|))} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {4997#(and (or (not (= |mkdup_#in~a.offset| 0)) (< 8 (* |mkdup_#in~n| 4)) (= (select (select |#memory_int| |mkdup_#in~a.base|) |mkdup_#in~a.offset|) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| 4)))) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:17,613 INFO L290 TraceCheckUtils]: 17: Hoare triple {4997#(and (or (not (= |mkdup_#in~a.offset| 0)) (< 8 (* |mkdup_#in~n| 4)) (= (select (select |#memory_int| |mkdup_#in~a.base|) |mkdup_#in~a.offset|) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| 4)))) (<= 2 |mkdup_#in~n|))} assume true; {4997#(and (or (not (= |mkdup_#in~a.offset| 0)) (< 8 (* |mkdup_#in~n| 4)) (= (select (select |#memory_int| |mkdup_#in~a.base|) |mkdup_#in~a.offset|) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| 4)))) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:17,614 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {4997#(and (or (not (= |mkdup_#in~a.offset| 0)) (< 8 (* |mkdup_#in~n| 4)) (= (select (select |#memory_int| |mkdup_#in~a.base|) |mkdup_#in~a.offset|) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| 4)))) (<= 2 |mkdup_#in~n|))} {4944#(= main_~a~0.offset 0)} #102#return; {4964#(and (= main_~a~0.offset 0) (or (= (select (select |#memory_int| main_~a~0.base) (+ (* main_~n~0 4) (- 4))) (select (select |#memory_int| main_~a~0.base) (* (div (+ (* main_~n~0 4) (- 8)) 4) 4))) (< 8 (* main_~n~0 4))) (<= 8 (* main_~n~0 4)))} is VALID [2022-04-08 04:18:17,615 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:17,619 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:17,819 INFO L290 TraceCheckUtils]: 0: Hoare triple {4980#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {5000#(and (<= finddup_~i~1 0) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~n| finddup_~n) (= finddup_~a.offset |finddup_#in~a.offset|) (<= 0 finddup_~i~1) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:18:17,820 INFO L290 TraceCheckUtils]: 1: Hoare triple {5000#(and (<= finddup_~i~1 0) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~n| finddup_~n) (= finddup_~a.offset |finddup_#in~a.offset|) (<= 0 finddup_~i~1) (= |finddup_#in~a.base| finddup_~a.base))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5001#(and (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~i~1 4))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~n| finddup_~n) (<= 1 finddup_~j~1) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:17,820 INFO L290 TraceCheckUtils]: 2: Hoare triple {5001#(and (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~i~1 4))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~n| finddup_~n) (<= 1 finddup_~j~1) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (<= finddup_~j~1 1))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5002#(and (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) |finddup_#t~mem11|) (= |finddup_#in~n| finddup_~n) (= |finddup_#t~mem10| (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|)) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:17,821 INFO L290 TraceCheckUtils]: 3: Hoare triple {5002#(and (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) |finddup_#t~mem11|) (= |finddup_#in~n| finddup_~n) (= |finddup_#t~mem10| (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|)) (<= finddup_~j~1 1))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5003#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:17,821 INFO L290 TraceCheckUtils]: 4: Hoare triple {5003#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~j~1 1))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5004#(and (<= finddup_~j~1 2) (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:18:17,822 INFO L290 TraceCheckUtils]: 5: Hoare triple {5004#(and (<= finddup_~j~1 2) (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} assume !(~j~1 < ~n); {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,822 INFO L290 TraceCheckUtils]: 6: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,823 INFO L290 TraceCheckUtils]: 7: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,823 INFO L290 TraceCheckUtils]: 8: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} assume !(~j~1 < ~n); {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,824 INFO L290 TraceCheckUtils]: 9: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,824 INFO L290 TraceCheckUtils]: 10: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} assume !(~i~1 < ~n); {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} is VALID [2022-04-08 04:18:17,825 INFO L290 TraceCheckUtils]: 11: Hoare triple {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} #res := 0; {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} is VALID [2022-04-08 04:18:17,825 INFO L290 TraceCheckUtils]: 12: Hoare triple {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} assume true; {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} is VALID [2022-04-08 04:18:17,826 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} {4964#(and (= main_~a~0.offset 0) (or (= (select (select |#memory_int| main_~a~0.base) (+ (* main_~n~0 4) (- 4))) (select (select |#memory_int| main_~a~0.base) (* (div (+ (* main_~n~0 4) (- 8)) 4) 4))) (< 8 (* main_~n~0 4))) (<= 8 (* main_~n~0 4)))} #104#return; {4932#false} is VALID [2022-04-08 04:18:17,827 INFO L272 TraceCheckUtils]: 0: Hoare triple {4931#true} call ULTIMATE.init(); {4979#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:17,828 INFO L290 TraceCheckUtils]: 1: Hoare triple {4979#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L272 TraceCheckUtils]: 4: Hoare triple {4931#true} call #t~ret27 := main(); {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L290 TraceCheckUtils]: 5: Hoare triple {4931#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L272 TraceCheckUtils]: 6: Hoare triple {4931#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L290 TraceCheckUtils]: 7: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L290 TraceCheckUtils]: 8: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L290 TraceCheckUtils]: 9: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:17,828 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-08 04:18:17,829 INFO L290 TraceCheckUtils]: 11: Hoare triple {4931#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {4940#(= |main_#t~malloc13.offset| 0)} is VALID [2022-04-08 04:18:17,829 INFO L272 TraceCheckUtils]: 12: Hoare triple {4940#(= |main_#t~malloc13.offset| 0)} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {4980#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:17,829 INFO L290 TraceCheckUtils]: 13: Hoare triple {4980#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4931#true} is VALID [2022-04-08 04:18:17,829 INFO L290 TraceCheckUtils]: 14: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:17,830 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4931#true} {4940#(= |main_#t~malloc13.offset| 0)} #100#return; {4940#(= |main_#t~malloc13.offset| 0)} is VALID [2022-04-08 04:18:17,830 INFO L290 TraceCheckUtils]: 16: Hoare triple {4940#(= |main_#t~malloc13.offset| 0)} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {4944#(= main_~a~0.offset 0)} is VALID [2022-04-08 04:18:17,831 INFO L272 TraceCheckUtils]: 17: Hoare triple {4944#(= main_~a~0.offset 0)} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {4980#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:17,832 INFO L290 TraceCheckUtils]: 18: Hoare triple {4980#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {4981#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset))} is VALID [2022-04-08 04:18:17,832 INFO L272 TraceCheckUtils]: 19: Hoare triple {4981#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset))} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:17,832 INFO L290 TraceCheckUtils]: 20: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,832 INFO L290 TraceCheckUtils]: 21: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,833 INFO L290 TraceCheckUtils]: 22: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,833 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4981#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset))} #116#return; {4986#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} is VALID [2022-04-08 04:18:17,834 INFO L272 TraceCheckUtils]: 24: Hoare triple {4986#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:17,834 INFO L290 TraceCheckUtils]: 25: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,834 INFO L290 TraceCheckUtils]: 26: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,835 INFO L290 TraceCheckUtils]: 27: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,836 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4986#(and (or (not (= mkdup_~a.offset 0)) (= mkdup_~a.base |mkdup_#in~a.base|) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (= |mkdup_#in~n| mkdup_~n) (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} #118#return; {4991#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (and (<= (+ mkdup_~j~0 1) (+ mkdup_~i~0 |mkdup_#in~n|)) (< mkdup_~i~0 (+ mkdup_~j~0 1))) (<= 2 |mkdup_#in~n|)) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (< 0 mkdup_~j~0) (= (* mkdup_~j~0 4) 0)) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|)) (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} is VALID [2022-04-08 04:18:17,836 INFO L272 TraceCheckUtils]: 29: Hoare triple {4991#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (and (<= (+ mkdup_~j~0 1) (+ mkdup_~i~0 |mkdup_#in~n|)) (< mkdup_~i~0 (+ mkdup_~j~0 1))) (<= 2 |mkdup_#in~n|)) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (< 0 mkdup_~j~0) (= (* mkdup_~j~0 4) 0)) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|)) (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:17,839 INFO L290 TraceCheckUtils]: 30: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:17,840 INFO L290 TraceCheckUtils]: 31: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,840 INFO L290 TraceCheckUtils]: 32: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:17,841 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {4991#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (and (<= (+ mkdup_~j~0 1) (+ mkdup_~i~0 |mkdup_#in~n|)) (< mkdup_~i~0 (+ mkdup_~j~0 1))) (<= 2 |mkdup_#in~n|)) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (< 0 mkdup_~j~0) (= (* mkdup_~j~0 4) 0)) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|)) (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} #120#return; {4996#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (= mkdup_~a.offset (+ (* mkdup_~j~0 4) mkdup_~a.offset)) (< 0 mkdup_~j~0)) (not (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|))) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:17,842 INFO L290 TraceCheckUtils]: 34: Hoare triple {4996#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (or (not (= mkdup_~a.offset 0)) (and (or (= (* mkdup_~i~0 4) 0) (<= 1 mkdup_~i~0)) (= mkdup_~a.base |mkdup_#in~a.base|) (<= (+ mkdup_~i~0 1) |mkdup_#in~n|) (or (= mkdup_~a.offset (+ (* mkdup_~j~0 4) mkdup_~a.offset)) (< 0 mkdup_~j~0)) (not (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset))) (<= (+ mkdup_~j~0 1) |mkdup_#in~n|))) (<= 2 |mkdup_#in~n|))} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {4997#(and (or (not (= |mkdup_#in~a.offset| 0)) (< 8 (* |mkdup_#in~n| 4)) (= (select (select |#memory_int| |mkdup_#in~a.base|) |mkdup_#in~a.offset|) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| 4)))) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:17,843 INFO L290 TraceCheckUtils]: 35: Hoare triple {4997#(and (or (not (= |mkdup_#in~a.offset| 0)) (< 8 (* |mkdup_#in~n| 4)) (= (select (select |#memory_int| |mkdup_#in~a.base|) |mkdup_#in~a.offset|) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| 4)))) (<= 2 |mkdup_#in~n|))} assume true; {4997#(and (or (not (= |mkdup_#in~a.offset| 0)) (< 8 (* |mkdup_#in~n| 4)) (= (select (select |#memory_int| |mkdup_#in~a.base|) |mkdup_#in~a.offset|) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| 4)))) (<= 2 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:17,844 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4997#(and (or (not (= |mkdup_#in~a.offset| 0)) (< 8 (* |mkdup_#in~n| 4)) (= (select (select |#memory_int| |mkdup_#in~a.base|) |mkdup_#in~a.offset|) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| 4)))) (<= 2 |mkdup_#in~n|))} {4944#(= main_~a~0.offset 0)} #102#return; {4964#(and (= main_~a~0.offset 0) (or (= (select (select |#memory_int| main_~a~0.base) (+ (* main_~n~0 4) (- 4))) (select (select |#memory_int| main_~a~0.base) (* (div (+ (* main_~n~0 4) (- 8)) 4) 4))) (< 8 (* main_~n~0 4))) (<= 8 (* main_~n~0 4)))} is VALID [2022-04-08 04:18:17,844 INFO L290 TraceCheckUtils]: 37: Hoare triple {4964#(and (= main_~a~0.offset 0) (or (= (select (select |#memory_int| main_~a~0.base) (+ (* main_~n~0 4) (- 4))) (select (select |#memory_int| main_~a~0.base) (* (div (+ (* main_~n~0 4) (- 8)) 4) 4))) (< 8 (* main_~n~0 4))) (<= 8 (* main_~n~0 4)))} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {4964#(and (= main_~a~0.offset 0) (or (= (select (select |#memory_int| main_~a~0.base) (+ (* main_~n~0 4) (- 4))) (select (select |#memory_int| main_~a~0.base) (* (div (+ (* main_~n~0 4) (- 8)) 4) 4))) (< 8 (* main_~n~0 4))) (<= 8 (* main_~n~0 4)))} is VALID [2022-04-08 04:18:17,845 INFO L272 TraceCheckUtils]: 38: Hoare triple {4964#(and (= main_~a~0.offset 0) (or (= (select (select |#memory_int| main_~a~0.base) (+ (* main_~n~0 4) (- 4))) (select (select |#memory_int| main_~a~0.base) (* (div (+ (* main_~n~0 4) (- 8)) 4) 4))) (< 8 (* main_~n~0 4))) (<= 8 (* main_~n~0 4)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {4980#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:17,846 INFO L290 TraceCheckUtils]: 39: Hoare triple {4980#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {5000#(and (<= finddup_~i~1 0) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~n| finddup_~n) (= finddup_~a.offset |finddup_#in~a.offset|) (<= 0 finddup_~i~1) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:18:17,846 INFO L290 TraceCheckUtils]: 40: Hoare triple {5000#(and (<= finddup_~i~1 0) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~n| finddup_~n) (= finddup_~a.offset |finddup_#in~a.offset|) (<= 0 finddup_~i~1) (= |finddup_#in~a.base| finddup_~a.base))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5001#(and (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~i~1 4))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~n| finddup_~n) (<= 1 finddup_~j~1) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:17,847 INFO L290 TraceCheckUtils]: 41: Hoare triple {5001#(and (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~i~1 4))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~n| finddup_~n) (<= 1 finddup_~j~1) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (<= finddup_~j~1 1))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5002#(and (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) |finddup_#t~mem11|) (= |finddup_#in~n| finddup_~n) (= |finddup_#t~mem10| (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|)) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:17,848 INFO L290 TraceCheckUtils]: 42: Hoare triple {5002#(and (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) |finddup_#t~mem11|) (= |finddup_#in~n| finddup_~n) (= |finddup_#t~mem10| (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|)) (<= finddup_~j~1 1))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5003#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:17,848 INFO L290 TraceCheckUtils]: 43: Hoare triple {5003#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~j~1 1))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5004#(and (<= finddup_~j~1 2) (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:18:17,848 INFO L290 TraceCheckUtils]: 44: Hoare triple {5004#(and (<= finddup_~j~1 2) (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} assume !(~j~1 < ~n); {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,849 INFO L290 TraceCheckUtils]: 45: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,849 INFO L290 TraceCheckUtils]: 46: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,850 INFO L290 TraceCheckUtils]: 47: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} assume !(~j~1 < ~n); {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,850 INFO L290 TraceCheckUtils]: 48: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} is VALID [2022-04-08 04:18:17,851 INFO L290 TraceCheckUtils]: 49: Hoare triple {5005#(and (= |finddup_#in~n| finddup_~n) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= finddup_~n 2))} assume !(~i~1 < ~n); {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} is VALID [2022-04-08 04:18:17,851 INFO L290 TraceCheckUtils]: 50: Hoare triple {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} #res := 0; {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} is VALID [2022-04-08 04:18:17,852 INFO L290 TraceCheckUtils]: 51: Hoare triple {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} assume true; {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} is VALID [2022-04-08 04:18:17,853 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {5006#(and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (<= |finddup_#in~n| 2))} {4964#(and (= main_~a~0.offset 0) (or (= (select (select |#memory_int| main_~a~0.base) (+ (* main_~n~0 4) (- 4))) (select (select |#memory_int| main_~a~0.base) (* (div (+ (* main_~n~0 4) (- 8)) 4) 4))) (< 8 (* main_~n~0 4))) (<= 8 (* main_~n~0 4)))} #104#return; {4932#false} is VALID [2022-04-08 04:18:17,853 INFO L290 TraceCheckUtils]: 53: Hoare triple {4932#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {4932#false} is VALID [2022-04-08 04:18:17,853 INFO L272 TraceCheckUtils]: 54: Hoare triple {4932#false} call __VERIFIER_assert(~r~0); {4932#false} is VALID [2022-04-08 04:18:17,853 INFO L290 TraceCheckUtils]: 55: Hoare triple {4932#false} ~cond := #in~cond; {4932#false} is VALID [2022-04-08 04:18:17,854 INFO L290 TraceCheckUtils]: 56: Hoare triple {4932#false} assume 0 == ~cond; {4932#false} is VALID [2022-04-08 04:18:17,854 INFO L290 TraceCheckUtils]: 57: Hoare triple {4932#false} assume !false; {4932#false} is VALID [2022-04-08 04:18:17,854 INFO L134 CoverageAnalysis]: Checked inductivity of 31 backedges. 9 proven. 5 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-08 04:18:17,854 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:17,854 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1032293656] [2022-04-08 04:18:17,854 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1032293656] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:17,854 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1428592106] [2022-04-08 04:18:17,854 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 04:18:17,854 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:17,855 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:18:17,855 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-04-08 04:18:17,856 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-04-08 04:18:17,934 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 04:18:17,934 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:18:17,936 INFO L263 TraceCheckSpWp]: Trace formula consists of 244 conjuncts, 53 conjunts are in the unsatisfiable core [2022-04-08 04:18:17,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:17,953 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:18:18,400 INFO L356 Elim1Store]: treesize reduction 37, result has 22.9 percent of original size [2022-04-08 04:18:18,400 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 1 case distinctions, treesize of input 22 treesize of output 23 [2022-04-08 04:18:29,242 INFO L272 TraceCheckUtils]: 0: Hoare triple {4931#true} call ULTIMATE.init(); {4931#true} is VALID [2022-04-08 04:18:29,242 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#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(10, 2);call #Ultimate.allocInit(12, 3); {4931#true} is VALID [2022-04-08 04:18:29,242 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:29,242 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-08 04:18:29,242 INFO L272 TraceCheckUtils]: 4: Hoare triple {4931#true} call #t~ret27 := main(); {4931#true} is VALID [2022-04-08 04:18:29,242 INFO L290 TraceCheckUtils]: 5: Hoare triple {4931#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {4931#true} is VALID [2022-04-08 04:18:29,243 INFO L272 TraceCheckUtils]: 6: Hoare triple {4931#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:29,243 INFO L290 TraceCheckUtils]: 7: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-08 04:18:29,243 INFO L290 TraceCheckUtils]: 8: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-08 04:18:29,243 INFO L290 TraceCheckUtils]: 9: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:29,243 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-08 04:18:29,244 INFO L290 TraceCheckUtils]: 11: Hoare triple {4931#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {4931#true} is VALID [2022-04-08 04:18:29,244 INFO L272 TraceCheckUtils]: 12: Hoare triple {4931#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {4931#true} is VALID [2022-04-08 04:18:29,244 INFO L290 TraceCheckUtils]: 13: Hoare triple {4931#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4931#true} is VALID [2022-04-08 04:18:29,244 INFO L290 TraceCheckUtils]: 14: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 04:18:29,244 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4931#true} {4931#true} #100#return; {4931#true} is VALID [2022-04-08 04:18:29,244 INFO L290 TraceCheckUtils]: 16: Hoare triple {4931#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {4931#true} is VALID [2022-04-08 04:18:29,244 INFO L272 TraceCheckUtils]: 17: Hoare triple {4931#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {4931#true} is VALID [2022-04-08 04:18:29,245 INFO L290 TraceCheckUtils]: 18: Hoare triple {4931#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {5064#(and (<= mkdup_~n |mkdup_#in~n|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|))} is VALID [2022-04-08 04:18:29,245 INFO L272 TraceCheckUtils]: 19: Hoare triple {5064#(and (<= mkdup_~n |mkdup_#in~n|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|))} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:29,245 INFO L290 TraceCheckUtils]: 20: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:29,245 INFO L290 TraceCheckUtils]: 21: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:29,246 INFO L290 TraceCheckUtils]: 22: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:29,247 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {5064#(and (<= mkdup_~n |mkdup_#in~n|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|))} #116#return; {5080#(and (<= mkdup_~n |mkdup_#in~n|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} is VALID [2022-04-08 04:18:29,247 INFO L272 TraceCheckUtils]: 24: Hoare triple {5080#(and (<= mkdup_~n |mkdup_#in~n|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:29,247 INFO L290 TraceCheckUtils]: 25: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:29,247 INFO L290 TraceCheckUtils]: 26: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:29,247 INFO L290 TraceCheckUtils]: 27: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:29,248 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {5080#(and (<= mkdup_~n |mkdup_#in~n|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 mkdup_~n))} #118#return; {5096#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~j~0) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:29,249 INFO L272 TraceCheckUtils]: 29: Hoare triple {5096#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~j~0) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {4931#true} is VALID [2022-04-08 04:18:29,249 INFO L290 TraceCheckUtils]: 30: Hoare triple {4931#true} ~cond := #in~cond; {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:29,249 INFO L290 TraceCheckUtils]: 31: Hoare triple {4998#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:29,249 INFO L290 TraceCheckUtils]: 32: Hoare triple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4999#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:29,250 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {4999#(not (= |assume_abort_if_not_#in~cond| 0))} {5096#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~j~0) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|))} #120#return; {5112#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~j~0) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|))} is VALID [2022-04-08 04:18:29,251 INFO L290 TraceCheckUtils]: 34: Hoare triple {5112#(and (= |mkdup_#in~a.offset| mkdup_~a.offset) (<= 0 mkdup_~j~0) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|))} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {5116#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (<= 0 mkdup_~j~0) (not (= mkdup_~j~0 mkdup_~i~0)) (= (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~j~0 4))) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~i~0 4)))) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|)))} is VALID [2022-04-08 04:18:30,027 WARN L290 TraceCheckUtils]: 35: Hoare triple {5116#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (<= 0 mkdup_~j~0) (not (= mkdup_~j~0 mkdup_~i~0)) (= (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~j~0 4))) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~i~0 4)))) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|)))} assume true; {5116#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (<= 0 mkdup_~j~0) (not (= mkdup_~j~0 mkdup_~i~0)) (= (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~j~0 4))) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~i~0 4)))) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|)))} is UNKNOWN [2022-04-08 04:18:30,030 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5116#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (<= 0 mkdup_~j~0) (not (= mkdup_~j~0 mkdup_~i~0)) (= (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~j~0 4))) (select (select |#memory_int| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~i~0 4)))) (<= 0 mkdup_~i~0) (< mkdup_~j~0 |mkdup_#in~n|) (< mkdup_~i~0 |mkdup_#in~n|)))} {4931#true} #102#return; {5123#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~j~0 main_~n~0) (< mkdup_~i~0 main_~n~0) (<= 0 mkdup_~j~0) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~j~0 4))) (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~i~0 4)))) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0)))} is VALID [2022-04-08 04:18:30,040 INFO L290 TraceCheckUtils]: 37: Hoare triple {5123#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~j~0 main_~n~0) (< mkdup_~i~0 main_~n~0) (<= 0 mkdup_~j~0) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~j~0 4))) (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~i~0 4)))) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0)))} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {5123#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~j~0 main_~n~0) (< mkdup_~i~0 main_~n~0) (<= 0 mkdup_~j~0) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~j~0 4))) (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~i~0 4)))) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0)))} is VALID [2022-04-08 04:18:30,041 INFO L272 TraceCheckUtils]: 38: Hoare triple {5123#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~j~0 main_~n~0) (< mkdup_~i~0 main_~n~0) (<= 0 mkdup_~j~0) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~j~0 4))) (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~i~0 4)))) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {4980#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:30,041 INFO L290 TraceCheckUtils]: 39: Hoare triple {4980#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {5133#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~i~1 0) (= |#memory_int| |old(#memory_int)|) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:18:30,042 INFO L290 TraceCheckUtils]: 40: Hoare triple {5133#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~i~1 0) (= |#memory_int| |old(#memory_int)|) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5137#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~i~1 0) (= |#memory_int| |old(#memory_int)|) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:18:30,042 INFO L290 TraceCheckUtils]: 41: Hoare triple {5137#(and (<= |finddup_#in~n| finddup_~n) (<= finddup_~i~1 0) (= |#memory_int| |old(#memory_int)|) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5141#(and (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset| (- 4))) |finddup_#t~mem10|) (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (<= finddup_~j~1 1) (= |finddup_#t~mem11| (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:18:30,043 INFO L290 TraceCheckUtils]: 42: Hoare triple {5141#(and (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset| (- 4))) |finddup_#t~mem10|) (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (<= finddup_~j~1 1) (= |finddup_#t~mem11| (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset|))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5145#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset|)))) (<= finddup_~j~1 1))} is VALID [2022-04-08 04:18:30,044 INFO L290 TraceCheckUtils]: 43: Hoare triple {5145#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset|)))) (<= finddup_~j~1 1))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5149#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= finddup_~j~1 (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,051 INFO L290 TraceCheckUtils]: 44: Hoare triple {5149#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= finddup_~j~1 (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} assume !(~j~1 < ~n); {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,052 INFO L290 TraceCheckUtils]: 45: Hoare triple {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,052 INFO L290 TraceCheckUtils]: 46: Hoare triple {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,053 INFO L290 TraceCheckUtils]: 47: Hoare triple {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} assume !(~j~1 < ~n); {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,053 INFO L290 TraceCheckUtils]: 48: Hoare triple {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,054 INFO L290 TraceCheckUtils]: 49: Hoare triple {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} assume !(~i~1 < ~n); {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,056 INFO L290 TraceCheckUtils]: 50: Hoare triple {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} #res := 0; {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,056 INFO L290 TraceCheckUtils]: 51: Hoare triple {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} assume true; {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} is VALID [2022-04-08 04:18:30,058 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {5153#(and (= |#memory_int| |old(#memory_int)|) (exists ((v_finddup_~j~1_25 Int)) (and (<= v_finddup_~j~1_25 1) (<= |finddup_#in~n| (+ v_finddup_~j~1_25 1)) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset| (- 4))) (select (select |#memory_int| |finddup_#in~a.base|) (+ (* v_finddup_~j~1_25 4) |finddup_#in~a.offset|)))))))} {5123#(exists ((mkdup_~j~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~j~0 main_~n~0) (< mkdup_~i~0 main_~n~0) (<= 0 mkdup_~j~0) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~j~0 4))) (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset (* mkdup_~i~0 4)))) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0)))} #104#return; {4932#false} is VALID [2022-04-08 04:18:30,058 INFO L290 TraceCheckUtils]: 53: Hoare triple {4932#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {4932#false} is VALID [2022-04-08 04:18:30,058 INFO L272 TraceCheckUtils]: 54: Hoare triple {4932#false} call __VERIFIER_assert(~r~0); {4932#false} is VALID [2022-04-08 04:18:30,059 INFO L290 TraceCheckUtils]: 55: Hoare triple {4932#false} ~cond := #in~cond; {4932#false} is VALID [2022-04-08 04:18:30,059 INFO L290 TraceCheckUtils]: 56: Hoare triple {4932#false} assume 0 == ~cond; {4932#false} is VALID [2022-04-08 04:18:30,059 INFO L290 TraceCheckUtils]: 57: Hoare triple {4932#false} assume !false; {4932#false} is VALID [2022-04-08 04:18:30,059 INFO L134 CoverageAnalysis]: Checked inductivity of 31 backedges. 9 proven. 5 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-08 04:18:30,059 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:18:30,487 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1428592106] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:30,487 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 04:18:30,487 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 17] total 33 [2022-04-08 04:18:30,487 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:30,487 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1728100596] [2022-04-08 04:18:30,487 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1728100596] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:30,488 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:30,488 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [21] imperfect sequences [] total 21 [2022-04-08 04:18:30,488 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [791904648] [2022-04-08 04:18:30,488 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:30,488 INFO L78 Accepts]: Start accepts. Automaton has has 21 states, 17 states have (on average 1.9411764705882353) internal successors, (33), 16 states have internal predecessors, (33), 8 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 7 states have call successors, (8) Word has length 58 [2022-04-08 04:18:30,488 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:30,488 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 21 states, 17 states have (on average 1.9411764705882353) internal successors, (33), 16 states have internal predecessors, (33), 8 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 7 states have call successors, (8) [2022-04-08 04:18:30,526 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:30,526 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 21 states [2022-04-08 04:18:30,526 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:30,527 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2022-04-08 04:18:30,527 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=92, Invalid=1025, Unknown=5, NotChecked=0, Total=1122 [2022-04-08 04:18:30,527 INFO L87 Difference]: Start difference. First operand 83 states and 99 transitions. Second operand has 21 states, 17 states have (on average 1.9411764705882353) internal successors, (33), 16 states have internal predecessors, (33), 8 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 7 states have call successors, (8) [2022-04-08 04:18:43,285 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:43,286 INFO L93 Difference]: Finished difference Result 149 states and 184 transitions. [2022-04-08 04:18:43,286 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2022-04-08 04:18:43,286 INFO L78 Accepts]: Start accepts. Automaton has has 21 states, 17 states have (on average 1.9411764705882353) internal successors, (33), 16 states have internal predecessors, (33), 8 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 7 states have call successors, (8) Word has length 58 [2022-04-08 04:18:43,286 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:43,286 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 21 states, 17 states have (on average 1.9411764705882353) internal successors, (33), 16 states have internal predecessors, (33), 8 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 7 states have call successors, (8) [2022-04-08 04:18:43,290 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 140 transitions. [2022-04-08 04:18:43,290 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 21 states, 17 states have (on average 1.9411764705882353) internal successors, (33), 16 states have internal predecessors, (33), 8 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 7 states have call successors, (8) [2022-04-08 04:18:43,293 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 140 transitions. [2022-04-08 04:18:43,293 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 26 states and 140 transitions. [2022-04-08 04:18:43,456 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 140 edges. 140 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:43,458 INFO L225 Difference]: With dead ends: 149 [2022-04-08 04:18:43,459 INFO L226 Difference]: Without dead ends: 104 [2022-04-08 04:18:43,461 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 120 GetRequests, 66 SyntacticMatches, 0 SemanticMatches, 54 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 602 ImplicationChecksByTransitivity, 18.9s TimeCoverageRelationStatistics Valid=291, Invalid=2783, Unknown=6, NotChecked=0, Total=3080 [2022-04-08 04:18:43,462 INFO L913 BasicCegarLoop]: 52 mSDtfsCounter, 146 mSDsluCounter, 16 mSDsCounter, 0 mSdLazyCounter, 1236 mSolverCounterSat, 111 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 146 SdHoareTripleChecker+Valid, 68 SdHoareTripleChecker+Invalid, 1347 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 111 IncrementalHoareTripleChecker+Valid, 1236 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.3s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:43,462 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [146 Valid, 68 Invalid, 1347 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [111 Valid, 1236 Invalid, 0 Unknown, 0 Unchecked, 1.3s Time] [2022-04-08 04:18:43,463 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2022-04-08 04:18:43,652 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 86. [2022-04-08 04:18:43,652 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:43,653 INFO L82 GeneralOperation]: Start isEquivalent. First operand 104 states. Second operand has 86 states, 58 states have (on average 1.1896551724137931) internal successors, (69), 60 states have internal predecessors, (69), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:43,653 INFO L74 IsIncluded]: Start isIncluded. First operand 104 states. Second operand has 86 states, 58 states have (on average 1.1896551724137931) internal successors, (69), 60 states have internal predecessors, (69), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:43,654 INFO L87 Difference]: Start difference. First operand 104 states. Second operand has 86 states, 58 states have (on average 1.1896551724137931) internal successors, (69), 60 states have internal predecessors, (69), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:43,657 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:43,658 INFO L93 Difference]: Finished difference Result 104 states and 128 transitions. [2022-04-08 04:18:43,658 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 128 transitions. [2022-04-08 04:18:43,658 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:43,658 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:43,664 INFO L74 IsIncluded]: Start isIncluded. First operand has 86 states, 58 states have (on average 1.1896551724137931) internal successors, (69), 60 states have internal predecessors, (69), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) Second operand 104 states. [2022-04-08 04:18:43,666 INFO L87 Difference]: Start difference. First operand has 86 states, 58 states have (on average 1.1896551724137931) internal successors, (69), 60 states have internal predecessors, (69), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) Second operand 104 states. [2022-04-08 04:18:43,669 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:43,669 INFO L93 Difference]: Finished difference Result 104 states and 128 transitions. [2022-04-08 04:18:43,669 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 128 transitions. [2022-04-08 04:18:43,671 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:43,671 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:43,671 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:43,671 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:43,671 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 86 states, 58 states have (on average 1.1896551724137931) internal successors, (69), 60 states have internal predecessors, (69), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:43,677 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 86 states to 86 states and 103 transitions. [2022-04-08 04:18:43,678 INFO L78 Accepts]: Start accepts. Automaton has 86 states and 103 transitions. Word has length 58 [2022-04-08 04:18:43,678 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:43,678 INFO L478 AbstractCegarLoop]: Abstraction has 86 states and 103 transitions. [2022-04-08 04:18:43,678 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 21 states, 17 states have (on average 1.9411764705882353) internal successors, (33), 16 states have internal predecessors, (33), 8 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 7 states have call successors, (8) [2022-04-08 04:18:43,678 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 86 states and 103 transitions. [2022-04-08 04:18:43,801 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 103 edges. 103 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:43,801 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 103 transitions. [2022-04-08 04:18:43,802 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 62 [2022-04-08 04:18:43,802 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:43,802 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:43,820 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-04-08 04:18:44,018 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:44,019 INFO L403 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:44,019 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:44,019 INFO L85 PathProgramCache]: Analyzing trace with hash 596047115, now seen corresponding path program 5 times [2022-04-08 04:18:44,019 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:44,019 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1180417078] [2022-04-08 04:18:44,019 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:44,020 INFO L85 PathProgramCache]: Analyzing trace with hash 596047115, now seen corresponding path program 6 times [2022-04-08 04:18:44,020 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:44,020 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1392483148] [2022-04-08 04:18:44,020 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:44,020 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:44,037 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,057 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:44,058 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,060 INFO L290 TraceCheckUtils]: 0: Hoare triple {5982#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {5934#true} is VALID [2022-04-08 04:18:44,060 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,060 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-08 04:18:44,060 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:44,060 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,062 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,062 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,063 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,063 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-08 04:18:44,065 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:44,065 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,067 INFO L290 TraceCheckUtils]: 0: Hoare triple {5983#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5934#true} is VALID [2022-04-08 04:18:44,067 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,067 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-08 04:18:44,067 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:44,070 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,086 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:44,087 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,088 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,089 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,089 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,089 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 04:18:44,089 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:44,089 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,091 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,091 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,092 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,092 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 04:18:44,092 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:44,092 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,093 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L290 TraceCheckUtils]: 0: Hoare triple {5983#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L272 TraceCheckUtils]: 1: Hoare triple {5934#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L290 TraceCheckUtils]: 3: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L290 TraceCheckUtils]: 4: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L272 TraceCheckUtils]: 6: Hoare triple {5934#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,094 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L272 TraceCheckUtils]: 11: Hoare triple {5934#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L290 TraceCheckUtils]: 12: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L290 TraceCheckUtils]: 16: Hoare triple {5934#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L290 TraceCheckUtils]: 17: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-08 04:18:44,095 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:44,099 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,129 INFO L290 TraceCheckUtils]: 0: Hoare triple {5983#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {5934#true} is VALID [2022-04-08 04:18:44,130 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,130 INFO L290 TraceCheckUtils]: 2: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,130 INFO L290 TraceCheckUtils]: 3: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,131 INFO L290 TraceCheckUtils]: 4: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5997#(<= (+ finddup_~i~1 2) finddup_~j~1)} is VALID [2022-04-08 04:18:44,131 INFO L290 TraceCheckUtils]: 5: Hoare triple {5997#(<= (+ finddup_~i~1 2) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,131 INFO L290 TraceCheckUtils]: 6: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,132 INFO L290 TraceCheckUtils]: 7: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,132 INFO L290 TraceCheckUtils]: 8: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} assume !(~j~1 < ~n); {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,132 INFO L290 TraceCheckUtils]: 9: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5999#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:44,133 INFO L290 TraceCheckUtils]: 10: Hoare triple {5999#(<= (+ finddup_~i~1 2) finddup_~n)} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {6000#(<= (+ finddup_~j~1 1) finddup_~n)} is VALID [2022-04-08 04:18:44,133 INFO L290 TraceCheckUtils]: 11: Hoare triple {6000#(<= (+ finddup_~j~1 1) finddup_~n)} assume !(~j~1 < ~n); {5935#false} is VALID [2022-04-08 04:18:44,133 INFO L290 TraceCheckUtils]: 12: Hoare triple {5935#false} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5935#false} is VALID [2022-04-08 04:18:44,133 INFO L290 TraceCheckUtils]: 13: Hoare triple {5935#false} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-08 04:18:44,133 INFO L290 TraceCheckUtils]: 14: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-08 04:18:44,133 INFO L290 TraceCheckUtils]: 15: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-08 04:18:44,133 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-08 04:18:44,134 INFO L272 TraceCheckUtils]: 0: Hoare triple {5934#true} call ULTIMATE.init(); {5982#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:44,134 INFO L290 TraceCheckUtils]: 1: Hoare triple {5982#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {5934#true} is VALID [2022-04-08 04:18:44,134 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,134 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-08 04:18:44,134 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-08 04:18:44,134 INFO L290 TraceCheckUtils]: 5: Hoare triple {5934#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {5934#true} is VALID [2022-04-08 04:18:44,134 INFO L272 TraceCheckUtils]: 6: Hoare triple {5934#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,134 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,135 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,135 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,135 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-08 04:18:44,135 INFO L290 TraceCheckUtils]: 11: Hoare triple {5934#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5934#true} is VALID [2022-04-08 04:18:44,135 INFO L272 TraceCheckUtils]: 12: Hoare triple {5934#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {5983#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:44,135 INFO L290 TraceCheckUtils]: 13: Hoare triple {5983#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5934#true} is VALID [2022-04-08 04:18:44,136 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,136 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-08 04:18:44,136 INFO L290 TraceCheckUtils]: 16: Hoare triple {5934#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {5934#true} is VALID [2022-04-08 04:18:44,136 INFO L272 TraceCheckUtils]: 17: Hoare triple {5934#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {5983#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:44,136 INFO L290 TraceCheckUtils]: 18: Hoare triple {5983#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {5934#true} is VALID [2022-04-08 04:18:44,136 INFO L272 TraceCheckUtils]: 19: Hoare triple {5934#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,136 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,136 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L272 TraceCheckUtils]: 24: Hoare triple {5934#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L272 TraceCheckUtils]: 29: Hoare triple {5934#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 34: Hoare triple {5934#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {5934#true} is VALID [2022-04-08 04:18:44,137 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,138 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-08 04:18:44,138 INFO L290 TraceCheckUtils]: 37: Hoare triple {5934#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {5934#true} is VALID [2022-04-08 04:18:44,139 INFO L272 TraceCheckUtils]: 38: Hoare triple {5934#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {5983#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:44,139 INFO L290 TraceCheckUtils]: 39: Hoare triple {5983#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {5934#true} is VALID [2022-04-08 04:18:44,139 INFO L290 TraceCheckUtils]: 40: Hoare triple {5934#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,140 INFO L290 TraceCheckUtils]: 41: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,140 INFO L290 TraceCheckUtils]: 42: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,141 INFO L290 TraceCheckUtils]: 43: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5997#(<= (+ finddup_~i~1 2) finddup_~j~1)} is VALID [2022-04-08 04:18:44,141 INFO L290 TraceCheckUtils]: 44: Hoare triple {5997#(<= (+ finddup_~i~1 2) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,142 INFO L290 TraceCheckUtils]: 45: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,142 INFO L290 TraceCheckUtils]: 46: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,142 INFO L290 TraceCheckUtils]: 47: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} assume !(~j~1 < ~n); {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,143 INFO L290 TraceCheckUtils]: 48: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5999#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:44,143 INFO L290 TraceCheckUtils]: 49: Hoare triple {5999#(<= (+ finddup_~i~1 2) finddup_~n)} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {6000#(<= (+ finddup_~j~1 1) finddup_~n)} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 50: Hoare triple {6000#(<= (+ finddup_~j~1 1) finddup_~n)} assume !(~j~1 < ~n); {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 51: Hoare triple {5935#false} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 52: Hoare triple {5935#false} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 56: Hoare triple {5935#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-08 04:18:44,144 INFO L134 CoverageAnalysis]: Checked inductivity of 36 backedges. 5 proven. 7 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:44,145 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:44,145 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1392483148] [2022-04-08 04:18:44,145 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1392483148] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:44,145 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1417165767] [2022-04-08 04:18:44,145 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 04:18:44,145 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:44,145 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:18:44,146 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-04-08 04:18:44,146 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-04-08 04:18:44,238 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-08 04:18:44,238 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:18:44,239 INFO L263 TraceCheckSpWp]: Trace formula consists of 252 conjuncts, 6 conjunts are in the unsatisfiable core [2022-04-08 04:18:44,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:44,252 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:18:44,428 INFO L272 TraceCheckUtils]: 0: Hoare triple {5934#true} call ULTIMATE.init(); {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#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(10, 2);call #Ultimate.allocInit(12, 3); {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L290 TraceCheckUtils]: 5: Hoare triple {5934#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L272 TraceCheckUtils]: 6: Hoare triple {5934#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L290 TraceCheckUtils]: 11: Hoare triple {5934#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5934#true} is VALID [2022-04-08 04:18:44,429 INFO L272 TraceCheckUtils]: 12: Hoare triple {5934#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 16: Hoare triple {5934#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L272 TraceCheckUtils]: 17: Hoare triple {5934#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 18: Hoare triple {5934#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L272 TraceCheckUtils]: 19: Hoare triple {5934#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L272 TraceCheckUtils]: 24: Hoare triple {5934#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,430 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L272 TraceCheckUtils]: 29: Hoare triple {5934#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L290 TraceCheckUtils]: 34: Hoare triple {5934#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L290 TraceCheckUtils]: 37: Hoare triple {5934#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L272 TraceCheckUtils]: 38: Hoare triple {5934#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {5934#true} is VALID [2022-04-08 04:18:44,431 INFO L290 TraceCheckUtils]: 39: Hoare triple {5934#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {5934#true} is VALID [2022-04-08 04:18:44,435 INFO L290 TraceCheckUtils]: 40: Hoare triple {5934#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,436 INFO L290 TraceCheckUtils]: 41: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,436 INFO L290 TraceCheckUtils]: 42: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,436 INFO L290 TraceCheckUtils]: 43: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5997#(<= (+ finddup_~i~1 2) finddup_~j~1)} is VALID [2022-04-08 04:18:44,437 INFO L290 TraceCheckUtils]: 44: Hoare triple {5997#(<= (+ finddup_~i~1 2) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,437 INFO L290 TraceCheckUtils]: 45: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,438 INFO L290 TraceCheckUtils]: 46: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,438 INFO L290 TraceCheckUtils]: 47: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} assume !(~j~1 < ~n); {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,439 INFO L290 TraceCheckUtils]: 48: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5999#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:44,439 INFO L290 TraceCheckUtils]: 49: Hoare triple {5999#(<= (+ finddup_~i~1 2) finddup_~n)} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5999#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:44,439 INFO L290 TraceCheckUtils]: 50: Hoare triple {5999#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(~j~1 < ~n); {5999#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:44,440 INFO L290 TraceCheckUtils]: 51: Hoare triple {5999#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {6157#(<= (+ finddup_~i~1 1) finddup_~n)} is VALID [2022-04-08 04:18:44,440 INFO L290 TraceCheckUtils]: 52: Hoare triple {6157#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-08 04:18:44,440 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-08 04:18:44,440 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-08 04:18:44,440 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-08 04:18:44,441 INFO L290 TraceCheckUtils]: 56: Hoare triple {5935#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {5935#false} is VALID [2022-04-08 04:18:44,441 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-08 04:18:44,441 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-08 04:18:44,441 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-08 04:18:44,441 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-08 04:18:44,441 INFO L134 CoverageAnalysis]: Checked inductivity of 36 backedges. 3 proven. 9 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:44,441 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:18:44,660 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-08 04:18:44,660 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-08 04:18:44,660 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-08 04:18:44,660 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-08 04:18:44,660 INFO L290 TraceCheckUtils]: 56: Hoare triple {5935#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {5935#false} is VALID [2022-04-08 04:18:44,660 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-08 04:18:44,661 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-08 04:18:44,661 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-08 04:18:44,665 INFO L290 TraceCheckUtils]: 52: Hoare triple {6157#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-08 04:18:44,666 INFO L290 TraceCheckUtils]: 51: Hoare triple {5999#(<= (+ finddup_~i~1 2) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {6157#(<= (+ finddup_~i~1 1) finddup_~n)} is VALID [2022-04-08 04:18:44,666 INFO L290 TraceCheckUtils]: 50: Hoare triple {5999#(<= (+ finddup_~i~1 2) finddup_~n)} assume !(~j~1 < ~n); {5999#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:44,667 INFO L290 TraceCheckUtils]: 49: Hoare triple {5999#(<= (+ finddup_~i~1 2) finddup_~n)} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5999#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:44,667 INFO L290 TraceCheckUtils]: 48: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {5999#(<= (+ finddup_~i~1 2) finddup_~n)} is VALID [2022-04-08 04:18:44,667 INFO L290 TraceCheckUtils]: 47: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} assume !(~j~1 < ~n); {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,668 INFO L290 TraceCheckUtils]: 46: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,668 INFO L290 TraceCheckUtils]: 45: Hoare triple {5998#(<= (+ finddup_~i~1 3) finddup_~n)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,668 INFO L290 TraceCheckUtils]: 44: Hoare triple {5997#(<= (+ finddup_~i~1 2) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5998#(<= (+ finddup_~i~1 3) finddup_~n)} is VALID [2022-04-08 04:18:44,669 INFO L290 TraceCheckUtils]: 43: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {5997#(<= (+ finddup_~i~1 2) finddup_~j~1)} is VALID [2022-04-08 04:18:44,669 INFO L290 TraceCheckUtils]: 42: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,669 INFO L290 TraceCheckUtils]: 41: Hoare triple {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,670 INFO L290 TraceCheckUtils]: 40: Hoare triple {5934#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {5996#(<= (+ finddup_~i~1 1) finddup_~j~1)} is VALID [2022-04-08 04:18:44,670 INFO L290 TraceCheckUtils]: 39: Hoare triple {5934#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L272 TraceCheckUtils]: 38: Hoare triple {5934#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L290 TraceCheckUtils]: 37: Hoare triple {5934#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L290 TraceCheckUtils]: 34: Hoare triple {5934#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,670 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L272 TraceCheckUtils]: 29: Hoare triple {5934#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L272 TraceCheckUtils]: 24: Hoare triple {5934#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L272 TraceCheckUtils]: 19: Hoare triple {5934#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L290 TraceCheckUtils]: 18: Hoare triple {5934#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {5934#true} is VALID [2022-04-08 04:18:44,671 INFO L272 TraceCheckUtils]: 17: Hoare triple {5934#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L290 TraceCheckUtils]: 16: Hoare triple {5934#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L272 TraceCheckUtils]: 12: Hoare triple {5934#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L290 TraceCheckUtils]: 11: Hoare triple {5934#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L272 TraceCheckUtils]: 6: Hoare triple {5934#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L290 TraceCheckUtils]: 5: Hoare triple {5934#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-08 04:18:44,672 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-08 04:18:44,673 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 04:18:44,673 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#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(10, 2);call #Ultimate.allocInit(12, 3); {5934#true} is VALID [2022-04-08 04:18:44,673 INFO L272 TraceCheckUtils]: 0: Hoare triple {5934#true} call ULTIMATE.init(); {5934#true} is VALID [2022-04-08 04:18:44,673 INFO L134 CoverageAnalysis]: Checked inductivity of 36 backedges. 3 proven. 9 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 04:18:44,673 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1417165767] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 04:18:44,673 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-08 04:18:44,673 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 7, 7] total 10 [2022-04-08 04:18:44,673 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:44,674 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1180417078] [2022-04-08 04:18:44,674 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1180417078] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:44,674 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:44,674 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 04:18:44,674 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1401291146] [2022-04-08 04:18:44,674 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:44,674 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.7777777777777777) internal successors, (34), 7 states have internal predecessors, (34), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) Word has length 61 [2022-04-08 04:18:44,674 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:44,674 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 9 states have (on average 3.7777777777777777) internal successors, (34), 7 states have internal predecessors, (34), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:44,706 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:44,706 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-08 04:18:44,706 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:44,706 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-08 04:18:44,706 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=21, Invalid=69, Unknown=0, NotChecked=0, Total=90 [2022-04-08 04:18:44,707 INFO L87 Difference]: Start difference. First operand 86 states and 103 transitions. Second operand has 9 states, 9 states have (on average 3.7777777777777777) internal successors, (34), 7 states have internal predecessors, (34), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:45,563 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:45,563 INFO L93 Difference]: Finished difference Result 140 states and 170 transitions. [2022-04-08 04:18:45,563 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 04:18:45,564 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.7777777777777777) internal successors, (34), 7 states have internal predecessors, (34), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) Word has length 61 [2022-04-08 04:18:45,564 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:45,564 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.7777777777777777) internal successors, (34), 7 states have internal predecessors, (34), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:45,565 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 116 transitions. [2022-04-08 04:18:45,565 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.7777777777777777) internal successors, (34), 7 states have internal predecessors, (34), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:45,567 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 116 transitions. [2022-04-08 04:18:45,567 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 116 transitions. [2022-04-08 04:18:45,657 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 116 edges. 116 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:45,658 INFO L225 Difference]: With dead ends: 140 [2022-04-08 04:18:45,659 INFO L226 Difference]: Without dead ends: 96 [2022-04-08 04:18:45,659 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 155 GetRequests, 136 SyntacticMatches, 2 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=111, Invalid=231, Unknown=0, NotChecked=0, Total=342 [2022-04-08 04:18:45,659 INFO L913 BasicCegarLoop]: 49 mSDtfsCounter, 73 mSDsluCounter, 6 mSDsCounter, 0 mSdLazyCounter, 262 mSolverCounterSat, 57 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 80 SdHoareTripleChecker+Valid, 55 SdHoareTripleChecker+Invalid, 319 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 57 IncrementalHoareTripleChecker+Valid, 262 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:45,660 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [80 Valid, 55 Invalid, 319 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [57 Valid, 262 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-04-08 04:18:45,660 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2022-04-08 04:18:45,834 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 92. [2022-04-08 04:18:45,834 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:45,834 INFO L82 GeneralOperation]: Start isEquivalent. First operand 96 states. Second operand has 92 states, 64 states have (on average 1.203125) internal successors, (77), 66 states have internal predecessors, (77), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:45,834 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand has 92 states, 64 states have (on average 1.203125) internal successors, (77), 66 states have internal predecessors, (77), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:45,835 INFO L87 Difference]: Start difference. First operand 96 states. Second operand has 92 states, 64 states have (on average 1.203125) internal successors, (77), 66 states have internal predecessors, (77), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:45,837 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:45,837 INFO L93 Difference]: Finished difference Result 96 states and 115 transitions. [2022-04-08 04:18:45,837 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 115 transitions. [2022-04-08 04:18:45,837 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:45,837 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:45,837 INFO L74 IsIncluded]: Start isIncluded. First operand has 92 states, 64 states have (on average 1.203125) internal successors, (77), 66 states have internal predecessors, (77), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) Second operand 96 states. [2022-04-08 04:18:45,838 INFO L87 Difference]: Start difference. First operand has 92 states, 64 states have (on average 1.203125) internal successors, (77), 66 states have internal predecessors, (77), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) Second operand 96 states. [2022-04-08 04:18:45,839 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:45,840 INFO L93 Difference]: Finished difference Result 96 states and 115 transitions. [2022-04-08 04:18:45,840 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 115 transitions. [2022-04-08 04:18:45,840 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:45,840 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:45,840 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:45,840 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:45,840 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 92 states, 64 states have (on average 1.203125) internal successors, (77), 66 states have internal predecessors, (77), 17 states have call successors, (17), 9 states have call predecessors, (17), 10 states have return successors, (17), 16 states have call predecessors, (17), 15 states have call successors, (17) [2022-04-08 04:18:45,842 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 92 states to 92 states and 111 transitions. [2022-04-08 04:18:45,842 INFO L78 Accepts]: Start accepts. Automaton has 92 states and 111 transitions. Word has length 61 [2022-04-08 04:18:45,842 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:45,842 INFO L478 AbstractCegarLoop]: Abstraction has 92 states and 111 transitions. [2022-04-08 04:18:45,842 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 9 states have (on average 3.7777777777777777) internal successors, (34), 7 states have internal predecessors, (34), 2 states have call successors, (10), 4 states have call predecessors, (10), 2 states have return successors, (8), 2 states have call predecessors, (8), 1 states have call successors, (8) [2022-04-08 04:18:45,843 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 92 states and 111 transitions. [2022-04-08 04:18:45,982 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 111 edges. 111 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:45,982 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 111 transitions. [2022-04-08 04:18:45,982 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-08 04:18:45,982 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:45,983 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:45,999 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-04-08 04:18:46,183 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:46,184 INFO L403 AbstractCegarLoop]: === Iteration 10 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:46,184 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:46,184 INFO L85 PathProgramCache]: Analyzing trace with hash 645513954, now seen corresponding path program 1 times [2022-04-08 04:18:46,184 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:46,184 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [836397024] [2022-04-08 04:18:46,185 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:46,185 INFO L85 PathProgramCache]: Analyzing trace with hash 645513954, now seen corresponding path program 2 times [2022-04-08 04:18:46,185 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:46,185 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1662341218] [2022-04-08 04:18:46,185 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:46,185 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:46,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,235 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:46,237 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,239 INFO L290 TraceCheckUtils]: 0: Hoare triple {7089#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {7042#true} is VALID [2022-04-08 04:18:46,239 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,239 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7042#true} {7042#true} #122#return; {7042#true} is VALID [2022-04-08 04:18:46,239 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:46,240 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,241 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,241 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,241 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,241 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #98#return; {7042#true} is VALID [2022-04-08 04:18:46,244 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:46,245 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,246 INFO L290 TraceCheckUtils]: 0: Hoare triple {7090#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7042#true} is VALID [2022-04-08 04:18:46,246 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,247 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7042#true} {7042#true} #100#return; {7042#true} is VALID [2022-04-08 04:18:46,247 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:46,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,266 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:46,266 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,268 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,268 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,268 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,269 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-08 04:18:46,269 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:46,269 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,272 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,272 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,272 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,272 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-08 04:18:46,272 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:46,272 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,274 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,274 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,274 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,274 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-08 04:18:46,274 INFO L290 TraceCheckUtils]: 0: Hoare triple {7090#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {7042#true} is VALID [2022-04-08 04:18:46,274 INFO L272 TraceCheckUtils]: 1: Hoare triple {7042#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {7042#true} is VALID [2022-04-08 04:18:46,274 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 3: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 4: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L272 TraceCheckUtils]: 6: Hoare triple {7042#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 7: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 8: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 9: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L272 TraceCheckUtils]: 11: Hoare triple {7042#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 12: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 13: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 14: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-08 04:18:46,275 INFO L290 TraceCheckUtils]: 16: Hoare triple {7042#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {7042#true} is VALID [2022-04-08 04:18:46,276 INFO L290 TraceCheckUtils]: 17: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,276 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {7042#true} {7042#true} #102#return; {7042#true} is VALID [2022-04-08 04:18:46,276 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:46,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,313 INFO L290 TraceCheckUtils]: 0: Hoare triple {7090#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {7103#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= 0 finddup_~i~1))} is VALID [2022-04-08 04:18:46,313 INFO L290 TraceCheckUtils]: 1: Hoare triple {7103#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= 0 finddup_~i~1))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {7104#(and (= |finddup_#in~_j.base| finddup_~_j.base) (<= 1 finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:46,314 INFO L290 TraceCheckUtils]: 2: Hoare triple {7104#(and (= |finddup_#in~_j.base| finddup_~_j.base) (<= 1 finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {7104#(and (= |finddup_#in~_j.base| finddup_~_j.base) (<= 1 finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:46,314 INFO L290 TraceCheckUtils]: 3: Hoare triple {7104#(and (= |finddup_#in~_j.base| finddup_~_j.base) (<= 1 finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {7105#(<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:46,315 INFO L290 TraceCheckUtils]: 4: Hoare triple {7105#(<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))} assume true; {7105#(<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:46,316 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7105#(<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))} {7042#true} #104#return; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,316 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 04:18:46,317 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,318 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,318 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,318 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,319 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} #106#return; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,319 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-08 04:18:46,319 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:46,321 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,321 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,321 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,321 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} #108#return; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,322 INFO L272 TraceCheckUtils]: 0: Hoare triple {7042#true} call ULTIMATE.init(); {7089#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:46,322 INFO L290 TraceCheckUtils]: 1: Hoare triple {7089#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {7042#true} is VALID [2022-04-08 04:18:46,322 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,322 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #122#return; {7042#true} is VALID [2022-04-08 04:18:46,322 INFO L272 TraceCheckUtils]: 4: Hoare triple {7042#true} call #t~ret27 := main(); {7042#true} is VALID [2022-04-08 04:18:46,322 INFO L290 TraceCheckUtils]: 5: Hoare triple {7042#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {7042#true} is VALID [2022-04-08 04:18:46,322 INFO L272 TraceCheckUtils]: 6: Hoare triple {7042#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {7042#true} is VALID [2022-04-08 04:18:46,322 INFO L290 TraceCheckUtils]: 7: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,322 INFO L290 TraceCheckUtils]: 8: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,322 INFO L290 TraceCheckUtils]: 9: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,323 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7042#true} {7042#true} #98#return; {7042#true} is VALID [2022-04-08 04:18:46,323 INFO L290 TraceCheckUtils]: 11: Hoare triple {7042#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {7042#true} is VALID [2022-04-08 04:18:46,323 INFO L272 TraceCheckUtils]: 12: Hoare triple {7042#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {7090#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:46,323 INFO L290 TraceCheckUtils]: 13: Hoare triple {7090#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7042#true} is VALID [2022-04-08 04:18:46,323 INFO L290 TraceCheckUtils]: 14: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,323 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7042#true} {7042#true} #100#return; {7042#true} is VALID [2022-04-08 04:18:46,324 INFO L290 TraceCheckUtils]: 16: Hoare triple {7042#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {7042#true} is VALID [2022-04-08 04:18:46,324 INFO L272 TraceCheckUtils]: 17: Hoare triple {7042#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {7090#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:46,324 INFO L290 TraceCheckUtils]: 18: Hoare triple {7090#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {7042#true} is VALID [2022-04-08 04:18:46,324 INFO L272 TraceCheckUtils]: 19: Hoare triple {7042#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {7042#true} is VALID [2022-04-08 04:18:46,324 INFO L290 TraceCheckUtils]: 20: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,324 INFO L290 TraceCheckUtils]: 21: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,324 INFO L290 TraceCheckUtils]: 22: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,324 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L272 TraceCheckUtils]: 24: Hoare triple {7042#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 25: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 26: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 27: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L272 TraceCheckUtils]: 29: Hoare triple {7042#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 30: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 31: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 32: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 34: Hoare triple {7042#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 35: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7042#true} {7042#true} #102#return; {7042#true} is VALID [2022-04-08 04:18:46,325 INFO L290 TraceCheckUtils]: 37: Hoare triple {7042#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {7042#true} is VALID [2022-04-08 04:18:46,326 INFO L272 TraceCheckUtils]: 38: Hoare triple {7042#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {7090#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:46,327 INFO L290 TraceCheckUtils]: 39: Hoare triple {7090#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {7103#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= 0 finddup_~i~1))} is VALID [2022-04-08 04:18:46,327 INFO L290 TraceCheckUtils]: 40: Hoare triple {7103#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= 0 finddup_~i~1))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {7104#(and (= |finddup_#in~_j.base| finddup_~_j.base) (<= 1 finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:46,328 INFO L290 TraceCheckUtils]: 41: Hoare triple {7104#(and (= |finddup_#in~_j.base| finddup_~_j.base) (<= 1 finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {7104#(and (= |finddup_#in~_j.base| finddup_~_j.base) (<= 1 finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:46,328 INFO L290 TraceCheckUtils]: 42: Hoare triple {7104#(and (= |finddup_#in~_j.base| finddup_~_j.base) (<= 1 finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {7105#(<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:46,328 INFO L290 TraceCheckUtils]: 43: Hoare triple {7105#(<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))} assume true; {7105#(<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:46,329 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7105#(<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))} {7042#true} #104#return; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,330 INFO L290 TraceCheckUtils]: 45: Hoare triple {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,330 INFO L272 TraceCheckUtils]: 46: Hoare triple {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} call __VERIFIER_assert(~r~0); {7042#true} is VALID [2022-04-08 04:18:46,330 INFO L290 TraceCheckUtils]: 47: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,330 INFO L290 TraceCheckUtils]: 48: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,330 INFO L290 TraceCheckUtils]: 49: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,330 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {7042#true} {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} #106#return; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,331 INFO L290 TraceCheckUtils]: 51: Hoare triple {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,331 INFO L290 TraceCheckUtils]: 52: Hoare triple {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,331 INFO L272 TraceCheckUtils]: 53: Hoare triple {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {7042#true} is VALID [2022-04-08 04:18:46,331 INFO L290 TraceCheckUtils]: 54: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 04:18:46,331 INFO L290 TraceCheckUtils]: 55: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 04:18:46,331 INFO L290 TraceCheckUtils]: 56: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 04:18:46,332 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {7042#true} {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} #108#return; {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} is VALID [2022-04-08 04:18:46,332 INFO L290 TraceCheckUtils]: 58: Hoare triple {7079#(<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {7088#|main_#t~short20|} is VALID [2022-04-08 04:18:46,332 INFO L290 TraceCheckUtils]: 59: Hoare triple {7088#|main_#t~short20|} assume !#t~short20; {7043#false} is VALID [2022-04-08 04:18:46,332 INFO L272 TraceCheckUtils]: 60: Hoare triple {7043#false} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {7043#false} is VALID [2022-04-08 04:18:46,333 INFO L290 TraceCheckUtils]: 61: Hoare triple {7043#false} ~cond := #in~cond; {7043#false} is VALID [2022-04-08 04:18:46,333 INFO L290 TraceCheckUtils]: 62: Hoare triple {7043#false} assume 0 == ~cond; {7043#false} is VALID [2022-04-08 04:18:46,333 INFO L290 TraceCheckUtils]: 63: Hoare triple {7043#false} assume !false; {7043#false} is VALID [2022-04-08 04:18:46,333 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-04-08 04:18:46,333 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:46,333 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1662341218] [2022-04-08 04:18:46,333 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1662341218] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:46,333 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:46,333 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 04:18:46,335 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:46,335 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [836397024] [2022-04-08 04:18:46,335 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [836397024] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:46,335 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:46,335 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 04:18:46,335 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [88182039] [2022-04-08 04:18:46,335 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:46,336 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.3333333333333335) internal successors, (30), 7 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) Word has length 64 [2022-04-08 04:18:46,336 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:46,336 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 9 states have (on average 3.3333333333333335) internal successors, (30), 7 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:46,365 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:46,366 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-08 04:18:46,366 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:46,366 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-08 04:18:46,366 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=57, Unknown=0, NotChecked=0, Total=72 [2022-04-08 04:18:46,366 INFO L87 Difference]: Start difference. First operand 92 states and 111 transitions. Second operand has 9 states, 9 states have (on average 3.3333333333333335) internal successors, (30), 7 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:47,448 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:47,449 INFO L93 Difference]: Finished difference Result 111 states and 135 transitions. [2022-04-08 04:18:47,449 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-08 04:18:47,449 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.3333333333333335) internal successors, (30), 7 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) Word has length 64 [2022-04-08 04:18:47,449 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:47,449 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.3333333333333335) internal successors, (30), 7 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:47,451 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 98 transitions. [2022-04-08 04:18:47,451 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.3333333333333335) internal successors, (30), 7 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:47,452 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 98 transitions. [2022-04-08 04:18:47,453 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 98 transitions. [2022-04-08 04:18:47,545 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 98 edges. 98 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:47,547 INFO L225 Difference]: With dead ends: 111 [2022-04-08 04:18:47,547 INFO L226 Difference]: Without dead ends: 100 [2022-04-08 04:18:47,547 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 33 GetRequests, 20 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 11 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=49, Invalid=161, Unknown=0, NotChecked=0, Total=210 [2022-04-08 04:18:47,548 INFO L913 BasicCegarLoop]: 39 mSDtfsCounter, 78 mSDsluCounter, 10 mSDsCounter, 0 mSdLazyCounter, 384 mSolverCounterSat, 65 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 85 SdHoareTripleChecker+Valid, 49 SdHoareTripleChecker+Invalid, 449 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 65 IncrementalHoareTripleChecker+Valid, 384 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:47,549 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [85 Valid, 49 Invalid, 449 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [65 Valid, 384 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-04-08 04:18:47,550 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 100 states. [2022-04-08 04:18:47,738 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 100 to 95. [2022-04-08 04:18:47,738 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:47,738 INFO L82 GeneralOperation]: Start isEquivalent. First operand 100 states. Second operand has 95 states, 66 states have (on average 1.196969696969697) internal successors, (79), 68 states have internal predecessors, (79), 18 states have call successors, (18), 9 states have call predecessors, (18), 10 states have return successors, (18), 17 states have call predecessors, (18), 16 states have call successors, (18) [2022-04-08 04:18:47,738 INFO L74 IsIncluded]: Start isIncluded. First operand 100 states. Second operand has 95 states, 66 states have (on average 1.196969696969697) internal successors, (79), 68 states have internal predecessors, (79), 18 states have call successors, (18), 9 states have call predecessors, (18), 10 states have return successors, (18), 17 states have call predecessors, (18), 16 states have call successors, (18) [2022-04-08 04:18:47,739 INFO L87 Difference]: Start difference. First operand 100 states. Second operand has 95 states, 66 states have (on average 1.196969696969697) internal successors, (79), 68 states have internal predecessors, (79), 18 states have call successors, (18), 9 states have call predecessors, (18), 10 states have return successors, (18), 17 states have call predecessors, (18), 16 states have call successors, (18) [2022-04-08 04:18:47,740 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:47,741 INFO L93 Difference]: Finished difference Result 100 states and 122 transitions. [2022-04-08 04:18:47,741 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 122 transitions. [2022-04-08 04:18:47,741 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:47,741 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:47,741 INFO L74 IsIncluded]: Start isIncluded. First operand has 95 states, 66 states have (on average 1.196969696969697) internal successors, (79), 68 states have internal predecessors, (79), 18 states have call successors, (18), 9 states have call predecessors, (18), 10 states have return successors, (18), 17 states have call predecessors, (18), 16 states have call successors, (18) Second operand 100 states. [2022-04-08 04:18:47,741 INFO L87 Difference]: Start difference. First operand has 95 states, 66 states have (on average 1.196969696969697) internal successors, (79), 68 states have internal predecessors, (79), 18 states have call successors, (18), 9 states have call predecessors, (18), 10 states have return successors, (18), 17 states have call predecessors, (18), 16 states have call successors, (18) Second operand 100 states. [2022-04-08 04:18:47,743 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:47,744 INFO L93 Difference]: Finished difference Result 100 states and 122 transitions. [2022-04-08 04:18:47,744 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 122 transitions. [2022-04-08 04:18:47,744 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:47,744 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:47,744 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:47,744 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:47,744 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 95 states, 66 states have (on average 1.196969696969697) internal successors, (79), 68 states have internal predecessors, (79), 18 states have call successors, (18), 9 states have call predecessors, (18), 10 states have return successors, (18), 17 states have call predecessors, (18), 16 states have call successors, (18) [2022-04-08 04:18:47,746 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 95 states to 95 states and 115 transitions. [2022-04-08 04:18:47,746 INFO L78 Accepts]: Start accepts. Automaton has 95 states and 115 transitions. Word has length 64 [2022-04-08 04:18:47,746 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:47,746 INFO L478 AbstractCegarLoop]: Abstraction has 95 states and 115 transitions. [2022-04-08 04:18:47,746 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 9 states have (on average 3.3333333333333335) internal successors, (30), 7 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:47,746 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 95 states and 115 transitions. [2022-04-08 04:18:47,933 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 115 edges. 115 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:47,933 INFO L276 IsEmpty]: Start isEmpty. Operand 95 states and 115 transitions. [2022-04-08 04:18:47,934 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-08 04:18:47,934 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:47,934 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:47,934 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable9 [2022-04-08 04:18:47,934 INFO L403 AbstractCegarLoop]: === Iteration 11 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:47,934 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:47,934 INFO L85 PathProgramCache]: Analyzing trace with hash 643666912, now seen corresponding path program 1 times [2022-04-08 04:18:47,934 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:47,934 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2044849040] [2022-04-08 04:18:47,935 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:47,935 INFO L85 PathProgramCache]: Analyzing trace with hash 643666912, now seen corresponding path program 2 times [2022-04-08 04:18:47,935 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:47,935 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1632818185] [2022-04-08 04:18:47,935 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:47,935 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:47,954 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:47,986 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:47,987 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:47,989 INFO L290 TraceCheckUtils]: 0: Hoare triple {7782#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {7733#true} is VALID [2022-04-08 04:18:47,989 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:47,989 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7733#true} {7733#true} #122#return; {7733#true} is VALID [2022-04-08 04:18:47,989 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:47,990 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:47,991 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:47,991 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:47,991 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:47,991 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #98#return; {7733#true} is VALID [2022-04-08 04:18:47,995 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:47,996 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:47,998 INFO L290 TraceCheckUtils]: 0: Hoare triple {7783#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7733#true} is VALID [2022-04-08 04:18:47,999 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:47,999 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7733#true} {7733#true} #100#return; {7733#true} is VALID [2022-04-08 04:18:47,999 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:48,002 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:48,005 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:48,005 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:48,007 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,007 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,007 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,007 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-08 04:18:48,007 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:48,008 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:48,009 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,009 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,009 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,009 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-08 04:18:48,009 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:48,010 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:48,011 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,011 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,011 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,011 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-08 04:18:48,011 INFO L290 TraceCheckUtils]: 0: Hoare triple {7783#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {7733#true} is VALID [2022-04-08 04:18:48,011 INFO L272 TraceCheckUtils]: 1: Hoare triple {7733#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {7733#true} is VALID [2022-04-08 04:18:48,011 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 3: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 4: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L272 TraceCheckUtils]: 6: Hoare triple {7733#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 7: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 8: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 9: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L272 TraceCheckUtils]: 11: Hoare triple {7733#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 12: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 13: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 14: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-08 04:18:48,012 INFO L290 TraceCheckUtils]: 16: Hoare triple {7733#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {7733#true} is VALID [2022-04-08 04:18:48,013 INFO L290 TraceCheckUtils]: 17: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,013 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {7733#true} {7733#true} #102#return; {7733#true} is VALID [2022-04-08 04:18:48,013 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:48,015 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:48,069 INFO L290 TraceCheckUtils]: 0: Hoare triple {7783#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {7796#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~n| finddup_~n) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:48,070 INFO L290 TraceCheckUtils]: 1: Hoare triple {7796#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~n| finddup_~n) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {7796#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~n| finddup_~n) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:48,070 INFO L290 TraceCheckUtils]: 2: Hoare triple {7796#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~n| finddup_~n) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {7797#(and (<= (+ finddup_~j~1 1) |finddup_#in~n|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:48,071 INFO L290 TraceCheckUtils]: 3: Hoare triple {7797#(and (<= (+ finddup_~j~1 1) |finddup_#in~n|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {7798#(<= (+ (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) |finddup_#in~n|)} is VALID [2022-04-08 04:18:48,071 INFO L290 TraceCheckUtils]: 4: Hoare triple {7798#(<= (+ (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) |finddup_#in~n|)} assume true; {7798#(<= (+ (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) |finddup_#in~n|)} is VALID [2022-04-08 04:18:48,072 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7798#(<= (+ (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) |finddup_#in~n|)} {7733#true} #104#return; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,072 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 04:18:48,074 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:48,075 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,075 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,075 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,076 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} #106#return; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,076 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-08 04:18:48,076 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:48,080 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,080 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,080 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,080 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} #108#return; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,081 INFO L272 TraceCheckUtils]: 0: Hoare triple {7733#true} call ULTIMATE.init(); {7782#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:48,081 INFO L290 TraceCheckUtils]: 1: Hoare triple {7782#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {7733#true} is VALID [2022-04-08 04:18:48,081 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,081 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #122#return; {7733#true} is VALID [2022-04-08 04:18:48,081 INFO L272 TraceCheckUtils]: 4: Hoare triple {7733#true} call #t~ret27 := main(); {7733#true} is VALID [2022-04-08 04:18:48,081 INFO L290 TraceCheckUtils]: 5: Hoare triple {7733#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {7733#true} is VALID [2022-04-08 04:18:48,081 INFO L272 TraceCheckUtils]: 6: Hoare triple {7733#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {7733#true} is VALID [2022-04-08 04:18:48,081 INFO L290 TraceCheckUtils]: 7: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,081 INFO L290 TraceCheckUtils]: 8: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,081 INFO L290 TraceCheckUtils]: 9: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,082 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7733#true} {7733#true} #98#return; {7733#true} is VALID [2022-04-08 04:18:48,082 INFO L290 TraceCheckUtils]: 11: Hoare triple {7733#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {7733#true} is VALID [2022-04-08 04:18:48,082 INFO L272 TraceCheckUtils]: 12: Hoare triple {7733#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {7783#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:48,082 INFO L290 TraceCheckUtils]: 13: Hoare triple {7783#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {7733#true} is VALID [2022-04-08 04:18:48,082 INFO L290 TraceCheckUtils]: 14: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,082 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7733#true} {7733#true} #100#return; {7733#true} is VALID [2022-04-08 04:18:48,083 INFO L290 TraceCheckUtils]: 16: Hoare triple {7733#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {7733#true} is VALID [2022-04-08 04:18:48,083 INFO L272 TraceCheckUtils]: 17: Hoare triple {7733#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {7783#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:48,083 INFO L290 TraceCheckUtils]: 18: Hoare triple {7783#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {7733#true} is VALID [2022-04-08 04:18:48,083 INFO L272 TraceCheckUtils]: 19: Hoare triple {7733#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {7733#true} is VALID [2022-04-08 04:18:48,083 INFO L290 TraceCheckUtils]: 20: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,083 INFO L290 TraceCheckUtils]: 21: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,083 INFO L290 TraceCheckUtils]: 22: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,083 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L272 TraceCheckUtils]: 24: Hoare triple {7733#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 25: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 26: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 27: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L272 TraceCheckUtils]: 29: Hoare triple {7733#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 30: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 31: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 32: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 34: Hoare triple {7733#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 35: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7733#true} {7733#true} #102#return; {7733#true} is VALID [2022-04-08 04:18:48,084 INFO L290 TraceCheckUtils]: 37: Hoare triple {7733#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {7733#true} is VALID [2022-04-08 04:18:48,085 INFO L272 TraceCheckUtils]: 38: Hoare triple {7733#true} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {7783#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:48,086 INFO L290 TraceCheckUtils]: 39: Hoare triple {7783#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {7796#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~n| finddup_~n) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:48,086 INFO L290 TraceCheckUtils]: 40: Hoare triple {7796#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~n| finddup_~n) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {7796#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~n| finddup_~n) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:48,086 INFO L290 TraceCheckUtils]: 41: Hoare triple {7796#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= |finddup_#in~n| finddup_~n) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {7797#(and (<= (+ finddup_~j~1 1) |finddup_#in~n|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))} is VALID [2022-04-08 04:18:48,087 INFO L290 TraceCheckUtils]: 42: Hoare triple {7797#(and (<= (+ finddup_~j~1 1) |finddup_#in~n|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {7798#(<= (+ (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) |finddup_#in~n|)} is VALID [2022-04-08 04:18:48,087 INFO L290 TraceCheckUtils]: 43: Hoare triple {7798#(<= (+ (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) |finddup_#in~n|)} assume true; {7798#(<= (+ (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) |finddup_#in~n|)} is VALID [2022-04-08 04:18:48,088 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7798#(<= (+ (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) |finddup_#in~n|)} {7733#true} #104#return; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,088 INFO L290 TraceCheckUtils]: 45: Hoare triple {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,088 INFO L272 TraceCheckUtils]: 46: Hoare triple {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} call __VERIFIER_assert(~r~0); {7733#true} is VALID [2022-04-08 04:18:48,088 INFO L290 TraceCheckUtils]: 47: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,089 INFO L290 TraceCheckUtils]: 48: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,089 INFO L290 TraceCheckUtils]: 49: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,089 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {7733#true} {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} #106#return; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,089 INFO L290 TraceCheckUtils]: 51: Hoare triple {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,089 INFO L290 TraceCheckUtils]: 52: Hoare triple {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,090 INFO L272 TraceCheckUtils]: 53: Hoare triple {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {7733#true} is VALID [2022-04-08 04:18:48,090 INFO L290 TraceCheckUtils]: 54: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 04:18:48,090 INFO L290 TraceCheckUtils]: 55: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 04:18:48,090 INFO L290 TraceCheckUtils]: 56: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 04:18:48,090 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {7733#true} {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} #108#return; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,090 INFO L290 TraceCheckUtils]: 58: Hoare triple {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} is VALID [2022-04-08 04:18:48,091 INFO L290 TraceCheckUtils]: 59: Hoare triple {7770#(<= (+ (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) main_~n~0)} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {7779#|main_#t~short20|} is VALID [2022-04-08 04:18:48,091 INFO L272 TraceCheckUtils]: 60: Hoare triple {7779#|main_#t~short20|} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {7780#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:48,092 INFO L290 TraceCheckUtils]: 61: Hoare triple {7780#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {7781#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 04:18:48,092 INFO L290 TraceCheckUtils]: 62: Hoare triple {7781#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {7734#false} is VALID [2022-04-08 04:18:48,092 INFO L290 TraceCheckUtils]: 63: Hoare triple {7734#false} assume !false; {7734#false} is VALID [2022-04-08 04:18:48,092 INFO L134 CoverageAnalysis]: Checked inductivity of 32 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-04-08 04:18:48,092 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:48,092 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1632818185] [2022-04-08 04:18:48,092 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1632818185] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:48,092 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:48,093 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-08 04:18:48,093 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:48,093 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2044849040] [2022-04-08 04:18:48,093 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2044849040] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:48,093 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:48,093 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-08 04:18:48,093 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [558477791] [2022-04-08 04:18:48,093 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:48,093 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 3.0) internal successors, (30), 8 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) Word has length 64 [2022-04-08 04:18:48,094 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:48,094 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 11 states, 10 states have (on average 3.0) internal successors, (30), 8 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:48,125 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:48,125 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-08 04:18:48,125 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:48,125 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-08 04:18:48,125 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=91, Unknown=0, NotChecked=0, Total=110 [2022-04-08 04:18:48,126 INFO L87 Difference]: Start difference. First operand 95 states and 115 transitions. Second operand has 11 states, 10 states have (on average 3.0) internal successors, (30), 8 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:49,449 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:49,449 INFO L93 Difference]: Finished difference Result 106 states and 127 transitions. [2022-04-08 04:18:49,449 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 04:18:49,450 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 3.0) internal successors, (30), 8 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) Word has length 64 [2022-04-08 04:18:49,450 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:49,450 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 3.0) internal successors, (30), 8 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:49,451 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 89 transitions. [2022-04-08 04:18:49,451 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 3.0) internal successors, (30), 8 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:49,452 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 89 transitions. [2022-04-08 04:18:49,452 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 89 transitions. [2022-04-08 04:18:49,536 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 89 edges. 89 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:49,545 INFO L225 Difference]: With dead ends: 106 [2022-04-08 04:18:49,545 INFO L226 Difference]: Without dead ends: 104 [2022-04-08 04:18:49,545 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 38 GetRequests, 20 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 27 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=74, Invalid=306, Unknown=0, NotChecked=0, Total=380 [2022-04-08 04:18:49,546 INFO L913 BasicCegarLoop]: 42 mSDtfsCounter, 78 mSDsluCounter, 14 mSDsCounter, 0 mSdLazyCounter, 545 mSolverCounterSat, 62 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 85 SdHoareTripleChecker+Valid, 56 SdHoareTripleChecker+Invalid, 607 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 62 IncrementalHoareTripleChecker+Valid, 545 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:49,546 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [85 Valid, 56 Invalid, 607 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [62 Valid, 545 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-04-08 04:18:49,547 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2022-04-08 04:18:49,761 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 100. [2022-04-08 04:18:49,762 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:49,763 INFO L82 GeneralOperation]: Start isEquivalent. First operand 104 states. Second operand has 100 states, 69 states have (on average 1.1884057971014492) internal successors, (82), 72 states have internal predecessors, (82), 19 states have call successors, (19), 10 states have call predecessors, (19), 11 states have return successors, (19), 17 states have call predecessors, (19), 17 states have call successors, (19) [2022-04-08 04:18:49,763 INFO L74 IsIncluded]: Start isIncluded. First operand 104 states. Second operand has 100 states, 69 states have (on average 1.1884057971014492) internal successors, (82), 72 states have internal predecessors, (82), 19 states have call successors, (19), 10 states have call predecessors, (19), 11 states have return successors, (19), 17 states have call predecessors, (19), 17 states have call successors, (19) [2022-04-08 04:18:49,763 INFO L87 Difference]: Start difference. First operand 104 states. Second operand has 100 states, 69 states have (on average 1.1884057971014492) internal successors, (82), 72 states have internal predecessors, (82), 19 states have call successors, (19), 10 states have call predecessors, (19), 11 states have return successors, (19), 17 states have call predecessors, (19), 17 states have call successors, (19) [2022-04-08 04:18:49,765 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:49,765 INFO L93 Difference]: Finished difference Result 104 states and 125 transitions. [2022-04-08 04:18:49,765 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 125 transitions. [2022-04-08 04:18:49,765 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:49,766 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:49,766 INFO L74 IsIncluded]: Start isIncluded. First operand has 100 states, 69 states have (on average 1.1884057971014492) internal successors, (82), 72 states have internal predecessors, (82), 19 states have call successors, (19), 10 states have call predecessors, (19), 11 states have return successors, (19), 17 states have call predecessors, (19), 17 states have call successors, (19) Second operand 104 states. [2022-04-08 04:18:49,766 INFO L87 Difference]: Start difference. First operand has 100 states, 69 states have (on average 1.1884057971014492) internal successors, (82), 72 states have internal predecessors, (82), 19 states have call successors, (19), 10 states have call predecessors, (19), 11 states have return successors, (19), 17 states have call predecessors, (19), 17 states have call successors, (19) Second operand 104 states. [2022-04-08 04:18:49,767 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:49,768 INFO L93 Difference]: Finished difference Result 104 states and 125 transitions. [2022-04-08 04:18:49,768 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 125 transitions. [2022-04-08 04:18:49,768 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:49,768 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:49,768 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:49,768 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:49,768 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 100 states, 69 states have (on average 1.1884057971014492) internal successors, (82), 72 states have internal predecessors, (82), 19 states have call successors, (19), 10 states have call predecessors, (19), 11 states have return successors, (19), 17 states have call predecessors, (19), 17 states have call successors, (19) [2022-04-08 04:18:49,770 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 120 transitions. [2022-04-08 04:18:49,770 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 120 transitions. Word has length 64 [2022-04-08 04:18:49,770 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:49,770 INFO L478 AbstractCegarLoop]: Abstraction has 100 states and 120 transitions. [2022-04-08 04:18:49,770 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 11 states, 10 states have (on average 3.0) internal successors, (30), 8 states have internal predecessors, (30), 3 states have call successors, (12), 4 states have call predecessors, (12), 2 states have return successors, (10), 2 states have call predecessors, (10), 2 states have call successors, (10) [2022-04-08 04:18:49,770 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 100 states and 120 transitions. [2022-04-08 04:18:49,983 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 120 edges. 120 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:49,983 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 120 transitions. [2022-04-08 04:18:49,984 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 67 [2022-04-08 04:18:49,984 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:49,984 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:49,984 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable10 [2022-04-08 04:18:49,985 INFO L403 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:49,985 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:49,985 INFO L85 PathProgramCache]: Analyzing trace with hash -779883059, now seen corresponding path program 1 times [2022-04-08 04:18:49,985 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:49,985 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1168596134] [2022-04-08 04:18:49,985 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:49,985 INFO L85 PathProgramCache]: Analyzing trace with hash -779883059, now seen corresponding path program 2 times [2022-04-08 04:18:49,986 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:49,986 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1359513876] [2022-04-08 04:18:49,987 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:49,987 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:50,012 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,064 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:50,066 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,067 INFO L290 TraceCheckUtils]: 0: Hoare triple {8495#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {8440#true} is VALID [2022-04-08 04:18:50,068 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,068 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8440#true} {8440#true} #122#return; {8440#true} is VALID [2022-04-08 04:18:50,068 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:50,068 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,070 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,070 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,070 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,070 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #98#return; {8440#true} is VALID [2022-04-08 04:18:50,075 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:50,076 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,079 INFO L290 TraceCheckUtils]: 0: Hoare triple {8496#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8440#true} is VALID [2022-04-08 04:18:50,079 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,079 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8440#true} {8440#true} #100#return; {8440#true} is VALID [2022-04-08 04:18:50,079 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:50,083 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,104 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:50,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,106 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,106 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,107 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,107 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-08 04:18:50,107 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:50,107 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,114 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,114 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,114 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,114 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-08 04:18:50,115 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:50,115 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,117 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,117 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,117 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,117 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-08 04:18:50,117 INFO L290 TraceCheckUtils]: 0: Hoare triple {8496#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {8440#true} is VALID [2022-04-08 04:18:50,117 INFO L272 TraceCheckUtils]: 1: Hoare triple {8440#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {8440#true} is VALID [2022-04-08 04:18:50,117 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L290 TraceCheckUtils]: 3: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L290 TraceCheckUtils]: 4: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L272 TraceCheckUtils]: 6: Hoare triple {8440#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L290 TraceCheckUtils]: 7: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L290 TraceCheckUtils]: 8: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L290 TraceCheckUtils]: 9: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L272 TraceCheckUtils]: 11: Hoare triple {8440#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L290 TraceCheckUtils]: 12: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L290 TraceCheckUtils]: 13: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L290 TraceCheckUtils]: 14: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,118 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-08 04:18:50,119 INFO L290 TraceCheckUtils]: 16: Hoare triple {8440#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {8440#true} is VALID [2022-04-08 04:18:50,119 INFO L290 TraceCheckUtils]: 17: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,119 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {8440#true} {8440#true} #102#return; {8440#true} is VALID [2022-04-08 04:18:50,119 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:50,124 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,198 INFO L290 TraceCheckUtils]: 0: Hoare triple {8496#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,198 INFO L290 TraceCheckUtils]: 1: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,199 INFO L290 TraceCheckUtils]: 2: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,200 INFO L290 TraceCheckUtils]: 3: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,200 INFO L290 TraceCheckUtils]: 4: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,201 INFO L290 TraceCheckUtils]: 5: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,201 INFO L290 TraceCheckUtils]: 6: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,202 INFO L290 TraceCheckUtils]: 7: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,202 INFO L290 TraceCheckUtils]: 8: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !(~j~1 < ~n); {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,203 INFO L290 TraceCheckUtils]: 9: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,203 INFO L290 TraceCheckUtils]: 10: Hoare triple {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,204 INFO L290 TraceCheckUtils]: 11: Hoare triple {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,205 INFO L290 TraceCheckUtils]: 12: Hoare triple {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {8511#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (<= 1 (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|)))} is VALID [2022-04-08 04:18:50,205 INFO L290 TraceCheckUtils]: 13: Hoare triple {8511#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (<= 1 (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|)))} assume true; {8511#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (<= 1 (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|)))} is VALID [2022-04-08 04:18:50,206 INFO L284 TraceCheckUtils]: 14: Hoare quadruple {8511#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (<= 1 (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|)))} {8471#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {8487#(or (<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0))} is VALID [2022-04-08 04:18:50,206 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 55 [2022-04-08 04:18:50,207 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:50,228 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8512#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:50,228 INFO L290 TraceCheckUtils]: 1: Hoare triple {8512#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {8513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:50,228 INFO L290 TraceCheckUtils]: 2: Hoare triple {8513#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {8513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:50,229 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8513#(not (= |__VERIFIER_assert_#in~cond| 0))} {8488#(or (= main_~r~0 0) (<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #106#return; {8493#(<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))} is VALID [2022-04-08 04:18:50,229 INFO L272 TraceCheckUtils]: 0: Hoare triple {8440#true} call ULTIMATE.init(); {8495#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:50,230 INFO L290 TraceCheckUtils]: 1: Hoare triple {8495#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #122#return; {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L272 TraceCheckUtils]: 4: Hoare triple {8440#true} call #t~ret27 := main(); {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L290 TraceCheckUtils]: 5: Hoare triple {8440#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L272 TraceCheckUtils]: 6: Hoare triple {8440#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L290 TraceCheckUtils]: 7: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L290 TraceCheckUtils]: 8: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L290 TraceCheckUtils]: 9: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8440#true} {8440#true} #98#return; {8440#true} is VALID [2022-04-08 04:18:50,230 INFO L290 TraceCheckUtils]: 11: Hoare triple {8440#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {8440#true} is VALID [2022-04-08 04:18:50,231 INFO L272 TraceCheckUtils]: 12: Hoare triple {8440#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {8496#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:50,231 INFO L290 TraceCheckUtils]: 13: Hoare triple {8496#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8440#true} is VALID [2022-04-08 04:18:50,231 INFO L290 TraceCheckUtils]: 14: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,231 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {8440#true} {8440#true} #100#return; {8440#true} is VALID [2022-04-08 04:18:50,231 INFO L290 TraceCheckUtils]: 16: Hoare triple {8440#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {8440#true} is VALID [2022-04-08 04:18:50,232 INFO L272 TraceCheckUtils]: 17: Hoare triple {8440#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {8496#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:50,232 INFO L290 TraceCheckUtils]: 18: Hoare triple {8496#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {8440#true} is VALID [2022-04-08 04:18:50,232 INFO L272 TraceCheckUtils]: 19: Hoare triple {8440#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {8440#true} is VALID [2022-04-08 04:18:50,232 INFO L290 TraceCheckUtils]: 20: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,232 INFO L290 TraceCheckUtils]: 21: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,232 INFO L290 TraceCheckUtils]: 22: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,232 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-08 04:18:50,232 INFO L272 TraceCheckUtils]: 24: Hoare triple {8440#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {8440#true} is VALID [2022-04-08 04:18:50,232 INFO L290 TraceCheckUtils]: 25: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L290 TraceCheckUtils]: 26: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L290 TraceCheckUtils]: 27: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L272 TraceCheckUtils]: 29: Hoare triple {8440#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L290 TraceCheckUtils]: 30: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L290 TraceCheckUtils]: 31: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L290 TraceCheckUtils]: 32: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L290 TraceCheckUtils]: 34: Hoare triple {8440#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L290 TraceCheckUtils]: 35: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 04:18:50,233 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {8440#true} {8440#true} #102#return; {8440#true} is VALID [2022-04-08 04:18:50,234 INFO L290 TraceCheckUtils]: 37: Hoare triple {8440#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {8471#(not (= |main_~#i~2.base| |main_~#j~2.base|))} is VALID [2022-04-08 04:18:50,235 INFO L272 TraceCheckUtils]: 38: Hoare triple {8471#(not (= |main_~#i~2.base| |main_~#j~2.base|))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {8496#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:50,235 INFO L290 TraceCheckUtils]: 39: Hoare triple {8496#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,236 INFO L290 TraceCheckUtils]: 40: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,237 INFO L290 TraceCheckUtils]: 41: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,237 INFO L290 TraceCheckUtils]: 42: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,238 INFO L290 TraceCheckUtils]: 43: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,238 INFO L290 TraceCheckUtils]: 44: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,239 INFO L290 TraceCheckUtils]: 45: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,239 INFO L290 TraceCheckUtils]: 46: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,240 INFO L290 TraceCheckUtils]: 47: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !(~j~1 < ~n); {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,240 INFO L290 TraceCheckUtils]: 48: Hoare triple {8509#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 0 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,241 INFO L290 TraceCheckUtils]: 49: Hoare triple {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,241 INFO L290 TraceCheckUtils]: 50: Hoare triple {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} is VALID [2022-04-08 04:18:50,242 INFO L290 TraceCheckUtils]: 51: Hoare triple {8510#(and (or (= finddup_~_i.base finddup_~_j.base) (= |finddup_#in~_i.base| finddup_~_i.base)) (<= 1 finddup_~i~1) (= |finddup_#in~_i.offset| finddup_~_i.offset) (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (not (= finddup_~_i.base finddup_~_j.base))))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {8511#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (<= 1 (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|)))} is VALID [2022-04-08 04:18:50,242 INFO L290 TraceCheckUtils]: 52: Hoare triple {8511#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (<= 1 (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|)))} assume true; {8511#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (<= 1 (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|)))} is VALID [2022-04-08 04:18:50,244 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {8511#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (<= 1 (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|)))} {8471#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {8487#(or (<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0))} is VALID [2022-04-08 04:18:50,244 INFO L290 TraceCheckUtils]: 54: Hoare triple {8487#(or (<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_#t~ret14| 0))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {8488#(or (= main_~r~0 0) (<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:50,244 INFO L272 TraceCheckUtils]: 55: Hoare triple {8488#(or (= main_~r~0 0) (<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert(~r~0); {8440#true} is VALID [2022-04-08 04:18:50,244 INFO L290 TraceCheckUtils]: 56: Hoare triple {8440#true} ~cond := #in~cond; {8512#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:50,245 INFO L290 TraceCheckUtils]: 57: Hoare triple {8512#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {8513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:50,245 INFO L290 TraceCheckUtils]: 58: Hoare triple {8513#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {8513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:50,246 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {8513#(not (= |__VERIFIER_assert_#in~cond| 0))} {8488#(or (= main_~r~0 0) (<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #106#return; {8493#(<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))} is VALID [2022-04-08 04:18:50,246 INFO L290 TraceCheckUtils]: 60: Hoare triple {8493#(<= 1 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {8494#|main_#t~short17|} is VALID [2022-04-08 04:18:50,246 INFO L290 TraceCheckUtils]: 61: Hoare triple {8494#|main_#t~short17|} assume !#t~short17; {8441#false} is VALID [2022-04-08 04:18:50,246 INFO L272 TraceCheckUtils]: 62: Hoare triple {8441#false} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {8441#false} is VALID [2022-04-08 04:18:50,246 INFO L290 TraceCheckUtils]: 63: Hoare triple {8441#false} ~cond := #in~cond; {8441#false} is VALID [2022-04-08 04:18:50,247 INFO L290 TraceCheckUtils]: 64: Hoare triple {8441#false} assume 0 == ~cond; {8441#false} is VALID [2022-04-08 04:18:50,247 INFO L290 TraceCheckUtils]: 65: Hoare triple {8441#false} assume !false; {8441#false} is VALID [2022-04-08 04:18:50,247 INFO L134 CoverageAnalysis]: Checked inductivity of 37 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 29 trivial. 0 not checked. [2022-04-08 04:18:50,247 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:50,247 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1359513876] [2022-04-08 04:18:50,247 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1359513876] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:50,247 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:50,247 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-08 04:18:50,247 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:50,248 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1168596134] [2022-04-08 04:18:50,248 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1168596134] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:50,248 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:50,248 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-08 04:18:50,248 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [523008462] [2022-04-08 04:18:50,248 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:50,248 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 2.8333333333333335) internal successors, (34), 10 states have internal predecessors, (34), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) Word has length 66 [2022-04-08 04:18:50,248 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:50,249 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 12 states have (on average 2.8333333333333335) internal successors, (34), 10 states have internal predecessors, (34), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:50,289 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:50,289 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-08 04:18:50,289 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:50,290 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-08 04:18:50,290 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=154, Unknown=0, NotChecked=0, Total=182 [2022-04-08 04:18:50,290 INFO L87 Difference]: Start difference. First operand 100 states and 120 transitions. Second operand has 14 states, 12 states have (on average 2.8333333333333335) internal successors, (34), 10 states have internal predecessors, (34), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:51,959 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:51,960 INFO L93 Difference]: Finished difference Result 126 states and 149 transitions. [2022-04-08 04:18:51,960 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-08 04:18:51,960 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 2.8333333333333335) internal successors, (34), 10 states have internal predecessors, (34), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) Word has length 66 [2022-04-08 04:18:51,960 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:51,960 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 2.8333333333333335) internal successors, (34), 10 states have internal predecessors, (34), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:51,961 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 109 transitions. [2022-04-08 04:18:51,962 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 2.8333333333333335) internal successors, (34), 10 states have internal predecessors, (34), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:51,963 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 109 transitions. [2022-04-08 04:18:51,963 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 109 transitions. [2022-04-08 04:18:52,074 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 109 edges. 109 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:52,076 INFO L225 Difference]: With dead ends: 126 [2022-04-08 04:18:52,076 INFO L226 Difference]: Without dead ends: 108 [2022-04-08 04:18:52,077 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 40 GetRequests, 17 SyntacticMatches, 0 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 70 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=102, Invalid=498, Unknown=0, NotChecked=0, Total=600 [2022-04-08 04:18:52,077 INFO L913 BasicCegarLoop]: 49 mSDtfsCounter, 89 mSDsluCounter, 16 mSDsCounter, 0 mSdLazyCounter, 730 mSolverCounterSat, 83 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 90 SdHoareTripleChecker+Valid, 65 SdHoareTripleChecker+Invalid, 813 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 83 IncrementalHoareTripleChecker+Valid, 730 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.7s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:52,077 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [90 Valid, 65 Invalid, 813 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [83 Valid, 730 Invalid, 0 Unknown, 0 Unchecked, 0.7s Time] [2022-04-08 04:18:52,077 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-08 04:18:52,265 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 90. [2022-04-08 04:18:52,265 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:52,266 INFO L82 GeneralOperation]: Start isEquivalent. First operand 108 states. Second operand has 90 states, 62 states have (on average 1.1612903225806452) internal successors, (72), 64 states have internal predecessors, (72), 17 states have call successors, (17), 10 states have call predecessors, (17), 10 states have return successors, (16), 15 states have call predecessors, (16), 15 states have call successors, (16) [2022-04-08 04:18:52,266 INFO L74 IsIncluded]: Start isIncluded. First operand 108 states. Second operand has 90 states, 62 states have (on average 1.1612903225806452) internal successors, (72), 64 states have internal predecessors, (72), 17 states have call successors, (17), 10 states have call predecessors, (17), 10 states have return successors, (16), 15 states have call predecessors, (16), 15 states have call successors, (16) [2022-04-08 04:18:52,266 INFO L87 Difference]: Start difference. First operand 108 states. Second operand has 90 states, 62 states have (on average 1.1612903225806452) internal successors, (72), 64 states have internal predecessors, (72), 17 states have call successors, (17), 10 states have call predecessors, (17), 10 states have return successors, (16), 15 states have call predecessors, (16), 15 states have call successors, (16) [2022-04-08 04:18:52,268 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:52,268 INFO L93 Difference]: Finished difference Result 108 states and 129 transitions. [2022-04-08 04:18:52,268 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 129 transitions. [2022-04-08 04:18:52,268 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:52,268 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:52,269 INFO L74 IsIncluded]: Start isIncluded. First operand has 90 states, 62 states have (on average 1.1612903225806452) internal successors, (72), 64 states have internal predecessors, (72), 17 states have call successors, (17), 10 states have call predecessors, (17), 10 states have return successors, (16), 15 states have call predecessors, (16), 15 states have call successors, (16) Second operand 108 states. [2022-04-08 04:18:52,269 INFO L87 Difference]: Start difference. First operand has 90 states, 62 states have (on average 1.1612903225806452) internal successors, (72), 64 states have internal predecessors, (72), 17 states have call successors, (17), 10 states have call predecessors, (17), 10 states have return successors, (16), 15 states have call predecessors, (16), 15 states have call successors, (16) Second operand 108 states. [2022-04-08 04:18:52,270 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:52,270 INFO L93 Difference]: Finished difference Result 108 states and 129 transitions. [2022-04-08 04:18:52,271 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 129 transitions. [2022-04-08 04:18:52,271 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:52,271 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:52,271 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:52,271 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:52,271 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 90 states, 62 states have (on average 1.1612903225806452) internal successors, (72), 64 states have internal predecessors, (72), 17 states have call successors, (17), 10 states have call predecessors, (17), 10 states have return successors, (16), 15 states have call predecessors, (16), 15 states have call successors, (16) [2022-04-08 04:18:52,272 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 105 transitions. [2022-04-08 04:18:52,273 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 105 transitions. Word has length 66 [2022-04-08 04:18:52,273 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:52,273 INFO L478 AbstractCegarLoop]: Abstraction has 90 states and 105 transitions. [2022-04-08 04:18:52,273 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 12 states have (on average 2.8333333333333335) internal successors, (34), 10 states have internal predecessors, (34), 4 states have call successors, (11), 4 states have call predecessors, (11), 3 states have return successors, (9), 3 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-08 04:18:52,273 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 90 states and 105 transitions. [2022-04-08 04:18:52,450 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 105 edges. 105 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:52,450 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 105 transitions. [2022-04-08 04:18:52,450 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 71 [2022-04-08 04:18:52,451 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:52,451 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 4, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:52,451 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable11 [2022-04-08 04:18:52,451 INFO L403 AbstractCegarLoop]: === Iteration 13 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:52,451 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:52,451 INFO L85 PathProgramCache]: Analyzing trace with hash 297933182, now seen corresponding path program 1 times [2022-04-08 04:18:52,451 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:52,451 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [751692877] [2022-04-08 04:18:52,451 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:52,452 INFO L85 PathProgramCache]: Analyzing trace with hash 297933182, now seen corresponding path program 2 times [2022-04-08 04:18:52,452 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:52,452 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [627812980] [2022-04-08 04:18:52,452 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:52,452 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:52,481 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,565 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:52,566 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,568 INFO L290 TraceCheckUtils]: 0: Hoare triple {9244#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {9187#true} is VALID [2022-04-08 04:18:52,568 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,568 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-08 04:18:52,568 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:52,569 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,572 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,572 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,572 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,572 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-08 04:18:52,578 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:52,579 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,581 INFO L290 TraceCheckUtils]: 0: Hoare triple {9245#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9187#true} is VALID [2022-04-08 04:18:52,581 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,581 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-08 04:18:52,581 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:52,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,587 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:52,588 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,589 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,589 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,589 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,589 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 04:18:52,590 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:52,590 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,591 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,591 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,592 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,592 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 04:18:52,592 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:52,592 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,593 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,593 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L290 TraceCheckUtils]: 0: Hoare triple {9245#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L272 TraceCheckUtils]: 1: Hoare triple {9187#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L290 TraceCheckUtils]: 3: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L290 TraceCheckUtils]: 4: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L272 TraceCheckUtils]: 6: Hoare triple {9187#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,594 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L272 TraceCheckUtils]: 11: Hoare triple {9187#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L290 TraceCheckUtils]: 12: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L290 TraceCheckUtils]: 16: Hoare triple {9187#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L290 TraceCheckUtils]: 17: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-08 04:18:52,595 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:52,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,673 INFO L290 TraceCheckUtils]: 0: Hoare triple {9245#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {9258#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:52,674 INFO L290 TraceCheckUtils]: 1: Hoare triple {9258#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {9259#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:52,674 INFO L290 TraceCheckUtils]: 2: Hoare triple {9259#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {9259#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:52,675 INFO L290 TraceCheckUtils]: 3: Hoare triple {9259#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {9260#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} is VALID [2022-04-08 04:18:52,675 INFO L290 TraceCheckUtils]: 4: Hoare triple {9260#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} assume true; {9260#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} is VALID [2022-04-08 04:18:52,677 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {9260#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} {9218#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {9225#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} is VALID [2022-04-08 04:18:52,677 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 04:18:52,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,708 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9261#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:52,709 INFO L290 TraceCheckUtils]: 1: Hoare triple {9261#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:52,709 INFO L290 TraceCheckUtils]: 2: Hoare triple {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:52,710 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} {9226#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} #106#return; {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,710 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-08 04:18:52,711 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,713 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,713 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,713 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,713 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #108#return; {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,714 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 60 [2022-04-08 04:18:52,714 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,716 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,716 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,717 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,717 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #110#return; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,718 INFO L272 TraceCheckUtils]: 0: Hoare triple {9187#true} call ULTIMATE.init(); {9244#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:18:52,718 INFO L290 TraceCheckUtils]: 1: Hoare triple {9244#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L290 TraceCheckUtils]: 5: Hoare triple {9187#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L272 TraceCheckUtils]: 6: Hoare triple {9187#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-08 04:18:52,718 INFO L290 TraceCheckUtils]: 11: Hoare triple {9187#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9187#true} is VALID [2022-04-08 04:18:52,719 INFO L272 TraceCheckUtils]: 12: Hoare triple {9187#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {9245#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:52,719 INFO L290 TraceCheckUtils]: 13: Hoare triple {9245#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9187#true} is VALID [2022-04-08 04:18:52,719 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,719 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-08 04:18:52,719 INFO L290 TraceCheckUtils]: 16: Hoare triple {9187#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L272 TraceCheckUtils]: 17: Hoare triple {9187#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {9245#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:52,720 INFO L290 TraceCheckUtils]: 18: Hoare triple {9245#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L272 TraceCheckUtils]: 19: Hoare triple {9187#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L272 TraceCheckUtils]: 24: Hoare triple {9187#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,720 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L272 TraceCheckUtils]: 29: Hoare triple {9187#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L290 TraceCheckUtils]: 34: Hoare triple {9187#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,721 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-08 04:18:52,722 INFO L290 TraceCheckUtils]: 37: Hoare triple {9187#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {9218#(not (= |main_~#i~2.base| |main_~#j~2.base|))} is VALID [2022-04-08 04:18:52,722 INFO L272 TraceCheckUtils]: 38: Hoare triple {9218#(not (= |main_~#i~2.base| |main_~#j~2.base|))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {9245#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:18:52,723 INFO L290 TraceCheckUtils]: 39: Hoare triple {9245#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {9258#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:52,723 INFO L290 TraceCheckUtils]: 40: Hoare triple {9258#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {9259#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:52,724 INFO L290 TraceCheckUtils]: 41: Hoare triple {9259#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {9259#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:52,724 INFO L290 TraceCheckUtils]: 42: Hoare triple {9259#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {9260#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} is VALID [2022-04-08 04:18:52,725 INFO L290 TraceCheckUtils]: 43: Hoare triple {9260#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} assume true; {9260#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} is VALID [2022-04-08 04:18:52,726 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {9260#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 1 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} {9218#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {9225#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} is VALID [2022-04-08 04:18:52,726 INFO L290 TraceCheckUtils]: 45: Hoare triple {9225#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {9226#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} is VALID [2022-04-08 04:18:52,726 INFO L272 TraceCheckUtils]: 46: Hoare triple {9226#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} call __VERIFIER_assert(~r~0); {9187#true} is VALID [2022-04-08 04:18:52,727 INFO L290 TraceCheckUtils]: 47: Hoare triple {9187#true} ~cond := #in~cond; {9261#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:52,727 INFO L290 TraceCheckUtils]: 48: Hoare triple {9261#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:52,727 INFO L290 TraceCheckUtils]: 49: Hoare triple {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:52,728 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} {9226#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} #106#return; {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,728 INFO L290 TraceCheckUtils]: 51: Hoare triple {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,729 INFO L290 TraceCheckUtils]: 52: Hoare triple {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,729 INFO L272 TraceCheckUtils]: 53: Hoare triple {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,729 INFO L290 TraceCheckUtils]: 54: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,729 INFO L290 TraceCheckUtils]: 55: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,729 INFO L290 TraceCheckUtils]: 56: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,729 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {9187#true} {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #108#return; {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,730 INFO L290 TraceCheckUtils]: 58: Hoare triple {9231#(and (<= 1 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,730 INFO L290 TraceCheckUtils]: 59: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,730 INFO L272 TraceCheckUtils]: 60: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:52,730 INFO L290 TraceCheckUtils]: 61: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:52,730 INFO L290 TraceCheckUtils]: 62: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:52,730 INFO L290 TraceCheckUtils]: 63: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:52,731 INFO L284 TraceCheckUtils]: 64: Hoare quadruple {9187#true} {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #110#return; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:52,731 INFO L290 TraceCheckUtils]: 65: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} havoc #t~mem18;havoc #t~mem19;havoc #t~short20;call #t~mem21 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem22 := read~int(~#j~2.base, ~#j~2.offset, 4); {9241#(not (= |main_#t~mem22| |main_#t~mem21|))} is VALID [2022-04-08 04:18:52,732 INFO L272 TraceCheckUtils]: 66: Hoare triple {9241#(not (= |main_#t~mem22| |main_#t~mem21|))} call __VERIFIER_assert((if #t~mem21 != #t~mem22 then 1 else 0)); {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:18:52,732 INFO L290 TraceCheckUtils]: 67: Hoare triple {9242#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {9243#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 04:18:52,732 INFO L290 TraceCheckUtils]: 68: Hoare triple {9243#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {9188#false} is VALID [2022-04-08 04:18:52,732 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-08 04:18:52,733 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 5 proven. 7 refuted. 0 times theorem prover too weak. 30 trivial. 0 not checked. [2022-04-08 04:18:52,733 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:18:52,733 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [627812980] [2022-04-08 04:18:52,733 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [627812980] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:52,733 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1780771800] [2022-04-08 04:18:52,733 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 04:18:52,733 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:52,733 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:18:52,734 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-04-08 04:18:52,735 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-04-08 04:18:52,814 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 04:18:52,814 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:18:52,816 INFO L263 TraceCheckSpWp]: Trace formula consists of 288 conjuncts, 44 conjunts are in the unsatisfiable core [2022-04-08 04:18:52,829 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:52,843 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:18:52,910 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 10 treesize of output 8 [2022-04-08 04:18:53,028 INFO L356 Elim1Store]: treesize reduction 13, result has 58.1 percent of original size [2022-04-08 04:18:53,028 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 3 new quantified variables, introduced 2 case distinctions, treesize of input 46 treesize of output 54 [2022-04-08 04:18:53,053 INFO L356 Elim1Store]: treesize reduction 35, result has 34.0 percent of original size [2022-04-08 04:18:53,053 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 2 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 4 new quantified variables, introduced 3 case distinctions, treesize of input 46 treesize of output 71 [2022-04-08 04:18:53,058 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 8 treesize of output 7 [2022-04-08 04:18:53,118 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 17 [2022-04-08 04:18:53,122 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 5 treesize of output 3 [2022-04-08 04:18:53,176 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 8 treesize of output 7 [2022-04-08 04:18:53,203 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 36 treesize of output 32 [2022-04-08 04:18:53,228 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 8 treesize of output 7 [2022-04-08 04:18:53,899 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-04-08 04:18:53,899 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 29 treesize of output 17 [2022-04-08 04:18:53,962 INFO L272 TraceCheckUtils]: 0: Hoare triple {9187#true} call ULTIMATE.init(); {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#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(10, 2);call #Ultimate.allocInit(12, 3); {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L290 TraceCheckUtils]: 5: Hoare triple {9187#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L272 TraceCheckUtils]: 6: Hoare triple {9187#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:53,962 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:53,963 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-08 04:18:53,963 INFO L290 TraceCheckUtils]: 11: Hoare triple {9187#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9187#true} is VALID [2022-04-08 04:18:53,963 INFO L272 TraceCheckUtils]: 12: Hoare triple {9187#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {9187#true} is VALID [2022-04-08 04:18:53,963 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9187#true} is VALID [2022-04-08 04:18:53,971 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:53,971 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-08 04:18:53,971 INFO L290 TraceCheckUtils]: 16: Hoare triple {9187#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {9187#true} is VALID [2022-04-08 04:18:53,971 INFO L272 TraceCheckUtils]: 17: Hoare triple {9187#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {9187#true} is VALID [2022-04-08 04:18:53,972 INFO L290 TraceCheckUtils]: 18: Hoare triple {9187#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {9187#true} is VALID [2022-04-08 04:18:53,972 INFO L272 TraceCheckUtils]: 19: Hoare triple {9187#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:53,972 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:53,972 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:53,972 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:53,972 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 04:18:53,972 INFO L272 TraceCheckUtils]: 24: Hoare triple {9187#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:53,975 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:53,975 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:53,975 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:53,975 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 04:18:53,975 INFO L272 TraceCheckUtils]: 29: Hoare triple {9187#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:53,975 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:53,975 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:53,975 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:53,976 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 04:18:53,976 INFO L290 TraceCheckUtils]: 34: Hoare triple {9187#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {9187#true} is VALID [2022-04-08 04:18:53,976 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:53,976 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-08 04:18:53,976 INFO L290 TraceCheckUtils]: 37: Hoare triple {9187#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {9376#(and (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} is VALID [2022-04-08 04:18:53,976 INFO L272 TraceCheckUtils]: 38: Hoare triple {9376#(and (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {9187#true} is VALID [2022-04-08 04:18:53,977 INFO L290 TraceCheckUtils]: 39: Hoare triple {9187#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {9258#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:53,977 INFO L290 TraceCheckUtils]: 40: Hoare triple {9258#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {9386#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:53,978 INFO L290 TraceCheckUtils]: 41: Hoare triple {9386#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {9386#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:18:53,978 INFO L290 TraceCheckUtils]: 42: Hoare triple {9386#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {9393#(or (and (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1)) (and (= (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)))} is VALID [2022-04-08 04:18:53,979 INFO L290 TraceCheckUtils]: 43: Hoare triple {9393#(or (and (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1)) (and (= (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)))} assume true; {9393#(or (and (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1)) (and (= (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)))} is VALID [2022-04-08 04:18:53,980 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {9393#(or (and (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1)) (and (= (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 1) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)))} {9376#(and (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} #104#return; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:53,980 INFO L290 TraceCheckUtils]: 45: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:53,981 INFO L272 TraceCheckUtils]: 46: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} call __VERIFIER_assert(~r~0); {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:53,982 INFO L290 TraceCheckUtils]: 47: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} ~cond := #in~cond; {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:53,987 INFO L290 TraceCheckUtils]: 48: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} assume !(0 == ~cond); {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:53,988 INFO L290 TraceCheckUtils]: 49: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} assume true; {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:53,989 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} #106#return; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:53,989 INFO L290 TraceCheckUtils]: 51: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:53,990 INFO L290 TraceCheckUtils]: 52: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:53,991 INFO L272 TraceCheckUtils]: 53: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:53,992 INFO L290 TraceCheckUtils]: 54: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} ~cond := #in~cond; {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:53,992 INFO L290 TraceCheckUtils]: 55: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} assume !(0 == ~cond); {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:53,992 INFO L290 TraceCheckUtils]: 56: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} assume true; {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:53,997 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} #108#return; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:53,998 INFO L290 TraceCheckUtils]: 58: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:53,999 INFO L290 TraceCheckUtils]: 59: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:54,000 INFO L272 TraceCheckUtils]: 60: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:54,001 INFO L290 TraceCheckUtils]: 61: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} ~cond := #in~cond; {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:54,001 INFO L290 TraceCheckUtils]: 62: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} assume !(0 == ~cond); {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:54,002 INFO L290 TraceCheckUtils]: 63: Hoare triple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} assume true; {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} is VALID [2022-04-08 04:18:54,003 INFO L284 TraceCheckUtils]: 64: Hoare quadruple {9407#(and (exists ((|v_main_~#i~2.base_BEFORE_CALL_4| Int)) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_4|) 0) 0)) (exists ((|v_main_~#j~2.base_BEFORE_CALL_3| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_3|) 0) 1)))} {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} #110#return; {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:18:54,003 INFO L290 TraceCheckUtils]: 65: Hoare triple {9400#(and (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0))} havoc #t~mem18;havoc #t~mem19;havoc #t~short20;call #t~mem21 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem22 := read~int(~#j~2.base, ~#j~2.offset, 4); {9465#(and (= |main_#t~mem22| 1) (= |main_#t~mem21| 0))} is VALID [2022-04-08 04:18:54,004 INFO L272 TraceCheckUtils]: 66: Hoare triple {9465#(and (= |main_#t~mem22| 1) (= |main_#t~mem21| 0))} call __VERIFIER_assert((if #t~mem21 != #t~mem22 then 1 else 0)); {9469#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 04:18:54,004 INFO L290 TraceCheckUtils]: 67: Hoare triple {9469#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {9473#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:54,004 INFO L290 TraceCheckUtils]: 68: Hoare triple {9473#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {9188#false} is VALID [2022-04-08 04:18:54,005 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-08 04:18:54,005 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 36 trivial. 0 not checked. [2022-04-08 04:18:54,005 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:18:54,193 INFO L356 Elim1Store]: treesize reduction 28, result has 33.3 percent of original size [2022-04-08 04:18:54,193 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 3 new quantified variables, introduced 4 case distinctions, treesize of input 56 treesize of output 52 [2022-04-08 04:18:54,199 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:54,199 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 2 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 48 treesize of output 70 [2022-04-08 04:18:54,203 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:54,203 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 1 new quantified variables, introduced 1 case distinctions, treesize of input 35 treesize of output 39 [2022-04-08 04:18:54,210 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 87 treesize of output 75 [2022-04-08 04:18:54,233 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 20 treesize of output 18 [2022-04-08 04:18:54,243 INFO L356 Elim1Store]: treesize reduction 7, result has 12.5 percent of original size [2022-04-08 04:18:54,243 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 13 treesize of output 9 [2022-04-08 04:18:54,303 INFO L356 Elim1Store]: treesize reduction 13, result has 69.0 percent of original size [2022-04-08 04:18:54,303 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 3 new quantified variables, introduced 4 case distinctions, treesize of input 94 treesize of output 87 [2022-04-08 04:18:54,317 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:54,317 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 1 new quantified variables, introduced 1 case distinctions, treesize of input 58 treesize of output 59 [2022-04-08 04:18:54,361 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:54,364 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 4 select indices, 4 select index equivalence classes, 1 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 5 case distinctions, treesize of input 183 treesize of output 203 [2022-04-08 04:18:54,388 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:54,388 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 153 treesize of output 167 [2022-04-08 04:18:54,467 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 6 treesize of output 4 [2022-04-08 04:18:54,484 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 8 treesize of output 6 [2022-04-08 04:18:54,511 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 11 treesize of output 9 [2022-04-08 04:18:54,529 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 8 treesize of output 6 [2022-04-08 04:18:54,649 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:54,649 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 1 case distinctions, treesize of input 15 treesize of output 11 [2022-04-08 04:18:54,706 INFO L356 Elim1Store]: treesize reduction 27, result has 3.6 percent of original size [2022-04-08 04:18:54,706 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 85 treesize of output 1 [2022-04-08 04:18:54,785 INFO L356 Elim1Store]: treesize reduction 10, result has 64.3 percent of original size [2022-04-08 04:18:54,785 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 2 case distinctions, treesize of input 78 treesize of output 84 [2022-04-08 04:18:54,901 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 04:18:54,902 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 1 [2022-04-08 04:18:55,032 INFO L356 Elim1Store]: treesize reduction 10, result has 64.3 percent of original size [2022-04-08 04:18:55,033 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 2 case distinctions, treesize of input 130 treesize of output 137 [2022-04-08 04:18:55,139 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:55,139 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 124 treesize of output 126 [2022-04-08 04:18:55,493 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 04:18:55,494 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 1 [2022-04-08 04:18:55,507 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 04:18:55,507 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 7 treesize of output 1 [2022-04-08 04:18:55,549 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:55,549 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 1 case distinctions, treesize of input 15 treesize of output 11 [2022-04-08 04:18:55,682 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 6 treesize of output 4 [2022-04-08 04:18:55,689 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 6 treesize of output 4 [2022-04-08 04:18:55,705 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 6 treesize of output 4 [2022-04-08 04:18:55,718 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 6 treesize of output 4 [2022-04-08 04:18:55,751 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 24 treesize of output 22 [2022-04-08 04:18:55,793 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 04:18:55,794 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 3 case distinctions, treesize of input 52 treesize of output 68 [2022-04-08 04:18:55,963 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 04:18:55,969 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 6 treesize of output 4 [2022-04-08 04:18:55,982 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 6 treesize of output 4 [2022-04-08 04:18:55,999 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 04:18:56,002 WARN L234 Elim1Store]: Array PQE input equivalent to true [2022-04-08 04:18:56,015 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 20 treesize of output 18 [2022-04-08 04:18:56,343 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-08 04:18:56,343 INFO L290 TraceCheckUtils]: 68: Hoare triple {9473#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {9188#false} is VALID [2022-04-08 04:18:56,343 INFO L290 TraceCheckUtils]: 67: Hoare triple {9469#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {9473#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:18:56,344 INFO L272 TraceCheckUtils]: 66: Hoare triple {9241#(not (= |main_#t~mem22| |main_#t~mem21|))} call __VERIFIER_assert((if #t~mem21 != #t~mem22 then 1 else 0)); {9469#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 04:18:56,344 INFO L290 TraceCheckUtils]: 65: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} havoc #t~mem18;havoc #t~mem19;havoc #t~short20;call #t~mem21 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem22 := read~int(~#j~2.base, ~#j~2.offset, 4); {9241#(not (= |main_#t~mem22| |main_#t~mem21|))} is VALID [2022-04-08 04:18:56,345 INFO L284 TraceCheckUtils]: 64: Hoare quadruple {9187#true} {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #110#return; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,345 INFO L290 TraceCheckUtils]: 63: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,345 INFO L290 TraceCheckUtils]: 62: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:56,345 INFO L290 TraceCheckUtils]: 61: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:56,345 INFO L272 TraceCheckUtils]: 60: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:56,345 INFO L290 TraceCheckUtils]: 59: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,346 INFO L290 TraceCheckUtils]: 58: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,346 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {9187#true} {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #108#return; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,346 INFO L290 TraceCheckUtils]: 56: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,346 INFO L290 TraceCheckUtils]: 55: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:56,347 INFO L290 TraceCheckUtils]: 54: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:56,347 INFO L272 TraceCheckUtils]: 53: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:56,347 INFO L290 TraceCheckUtils]: 52: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,347 INFO L290 TraceCheckUtils]: 51: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,348 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {9187#true} {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #106#return; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,348 INFO L290 TraceCheckUtils]: 49: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,348 INFO L290 TraceCheckUtils]: 48: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:56,348 INFO L290 TraceCheckUtils]: 47: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:56,348 INFO L272 TraceCheckUtils]: 46: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert(~r~0); {9187#true} is VALID [2022-04-08 04:18:56,349 INFO L290 TraceCheckUtils]: 45: Hoare triple {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,350 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {9558#(or (not (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} {9218#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {9236#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:18:56,350 INFO L290 TraceCheckUtils]: 43: Hoare triple {9558#(or (not (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} assume true; {9558#(or (not (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} is VALID [2022-04-08 04:18:56,351 INFO L290 TraceCheckUtils]: 42: Hoare triple {9565#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (and (or (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_j.base| finddup_~_j.base)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (and (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= finddup_~j~1 finddup_~i~1)))) (or (and (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset) (not (= finddup_~j~1 finddup_~i~1))) (= |finddup_#in~_i.base| finddup_~_i.base))))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {9558#(or (not (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} is VALID [2022-04-08 04:18:56,352 INFO L290 TraceCheckUtils]: 41: Hoare triple {9565#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (and (or (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_j.base| finddup_~_j.base)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (and (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= finddup_~j~1 finddup_~i~1)))) (or (and (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset) (not (= finddup_~j~1 finddup_~i~1))) (= |finddup_#in~_i.base| finddup_~_i.base))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {9565#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (and (or (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_j.base| finddup_~_j.base)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (and (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= finddup_~j~1 finddup_~i~1)))) (or (and (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset) (not (= finddup_~j~1 finddup_~i~1))) (= |finddup_#in~_i.base| finddup_~_i.base))))} is VALID [2022-04-08 04:18:56,352 INFO L290 TraceCheckUtils]: 40: Hoare triple {9572#(or (and (or (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_j.base| finddup_~_j.base)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (or (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= |finddup_#in~_j.base| finddup_~_j.base))) (or (and (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)) (= |finddup_#in~_i.base| finddup_~_i.base))) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {9565#(or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (and (or (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_j.base| finddup_~_j.base)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (and (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= finddup_~j~1 finddup_~i~1)))) (or (and (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset) (not (= finddup_~j~1 finddup_~i~1))) (= |finddup_#in~_i.base| finddup_~_i.base))))} is VALID [2022-04-08 04:18:56,353 INFO L290 TraceCheckUtils]: 39: Hoare triple {9187#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {9572#(or (and (or (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_j.base| finddup_~_j.base)) (or (not (= |finddup_#in~_j.base| finddup_~_j.base)) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (or (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= |finddup_#in~_j.base| finddup_~_j.base))) (or (and (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)) (= |finddup_#in~_i.base| finddup_~_i.base))) (= |finddup_#in~_i.base| |finddup_#in~_j.base|))} is VALID [2022-04-08 04:18:56,353 INFO L272 TraceCheckUtils]: 38: Hoare triple {9218#(not (= |main_~#i~2.base| |main_~#j~2.base|))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {9187#true} is VALID [2022-04-08 04:18:56,353 INFO L290 TraceCheckUtils]: 37: Hoare triple {9187#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {9218#(not (= |main_~#i~2.base| |main_~#j~2.base|))} is VALID [2022-04-08 04:18:56,353 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-08 04:18:56,353 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,353 INFO L290 TraceCheckUtils]: 34: Hoare triple {9187#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {9187#true} is VALID [2022-04-08 04:18:56,353 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L272 TraceCheckUtils]: 29: Hoare triple {9187#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L272 TraceCheckUtils]: 24: Hoare triple {9187#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:56,354 INFO L272 TraceCheckUtils]: 19: Hoare triple {9187#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 18: Hoare triple {9187#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L272 TraceCheckUtils]: 17: Hoare triple {9187#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 16: Hoare triple {9187#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L272 TraceCheckUtils]: 12: Hoare triple {9187#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 11: Hoare triple {9187#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L272 TraceCheckUtils]: 6: Hoare triple {9187#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {9187#true} is VALID [2022-04-08 04:18:56,355 INFO L290 TraceCheckUtils]: 5: Hoare triple {9187#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {9187#true} is VALID [2022-04-08 04:18:56,356 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-08 04:18:56,356 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-08 04:18:56,356 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 04:18:56,356 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#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(10, 2);call #Ultimate.allocInit(12, 3); {9187#true} is VALID [2022-04-08 04:18:56,356 INFO L272 TraceCheckUtils]: 0: Hoare triple {9187#true} call ULTIMATE.init(); {9187#true} is VALID [2022-04-08 04:18:56,356 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 6 proven. 0 refuted. 0 times theorem prover too weak. 36 trivial. 0 not checked. [2022-04-08 04:18:56,356 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1780771800] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-08 04:18:56,356 INFO L184 FreeRefinementEngine]: Found 1 perfect and 2 imperfect interpolant sequences. [2022-04-08 04:18:56,356 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [16, 11] total 27 [2022-04-08 04:18:56,357 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:18:56,357 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [751692877] [2022-04-08 04:18:56,357 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [751692877] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:18:56,357 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:18:56,357 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-04-08 04:18:56,357 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [423393158] [2022-04-08 04:18:56,357 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:18:56,357 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 8 states have (on average 3.875) internal successors, (31), 9 states have internal predecessors, (31), 4 states have call successors, (13), 2 states have call predecessors, (13), 2 states have return successors, (11), 2 states have call predecessors, (11), 3 states have call successors, (11) Word has length 70 [2022-04-08 04:18:56,357 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:18:56,358 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 10 states, 8 states have (on average 3.875) internal successors, (31), 9 states have internal predecessors, (31), 4 states have call successors, (13), 2 states have call predecessors, (13), 2 states have return successors, (11), 2 states have call predecessors, (11), 3 states have call successors, (11) [2022-04-08 04:18:56,394 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:56,394 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-08 04:18:56,394 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:56,394 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-08 04:18:56,394 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=77, Invalid=625, Unknown=0, NotChecked=0, Total=702 [2022-04-08 04:18:56,394 INFO L87 Difference]: Start difference. First operand 90 states and 105 transitions. Second operand has 10 states, 8 states have (on average 3.875) internal successors, (31), 9 states have internal predecessors, (31), 4 states have call successors, (13), 2 states have call predecessors, (13), 2 states have return successors, (11), 2 states have call predecessors, (11), 3 states have call successors, (11) [2022-04-08 04:18:57,162 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:57,162 INFO L93 Difference]: Finished difference Result 110 states and 128 transitions. [2022-04-08 04:18:57,162 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-08 04:18:57,162 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 8 states have (on average 3.875) internal successors, (31), 9 states have internal predecessors, (31), 4 states have call successors, (13), 2 states have call predecessors, (13), 2 states have return successors, (11), 2 states have call predecessors, (11), 3 states have call successors, (11) Word has length 70 [2022-04-08 04:18:57,162 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:18:57,162 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 8 states have (on average 3.875) internal successors, (31), 9 states have internal predecessors, (31), 4 states have call successors, (13), 2 states have call predecessors, (13), 2 states have return successors, (11), 2 states have call predecessors, (11), 3 states have call successors, (11) [2022-04-08 04:18:57,165 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 94 transitions. [2022-04-08 04:18:57,167 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 8 states have (on average 3.875) internal successors, (31), 9 states have internal predecessors, (31), 4 states have call successors, (13), 2 states have call predecessors, (13), 2 states have return successors, (11), 2 states have call predecessors, (11), 3 states have call successors, (11) [2022-04-08 04:18:57,168 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 94 transitions. [2022-04-08 04:18:57,168 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 94 transitions. [2022-04-08 04:18:57,236 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:57,237 INFO L225 Difference]: With dead ends: 110 [2022-04-08 04:18:57,237 INFO L226 Difference]: Without dead ends: 108 [2022-04-08 04:18:57,238 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 178 GetRequests, 143 SyntacticMatches, 6 SemanticMatches, 29 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 188 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=99, Invalid=831, Unknown=0, NotChecked=0, Total=930 [2022-04-08 04:18:57,238 INFO L913 BasicCegarLoop]: 59 mSDtfsCounter, 39 mSDsluCounter, 347 mSDsCounter, 0 mSdLazyCounter, 154 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 45 SdHoareTripleChecker+Valid, 406 SdHoareTripleChecker+Invalid, 163 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 154 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-08 04:18:57,238 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [45 Valid, 406 Invalid, 163 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 154 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-08 04:18:57,238 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-08 04:18:57,484 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 106. [2022-04-08 04:18:57,484 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:18:57,484 INFO L82 GeneralOperation]: Start isEquivalent. First operand 108 states. Second operand has 106 states, 72 states have (on average 1.1388888888888888) internal successors, (82), 75 states have internal predecessors, (82), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) [2022-04-08 04:18:57,484 INFO L74 IsIncluded]: Start isIncluded. First operand 108 states. Second operand has 106 states, 72 states have (on average 1.1388888888888888) internal successors, (82), 75 states have internal predecessors, (82), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) [2022-04-08 04:18:57,484 INFO L87 Difference]: Start difference. First operand 108 states. Second operand has 106 states, 72 states have (on average 1.1388888888888888) internal successors, (82), 75 states have internal predecessors, (82), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) [2022-04-08 04:18:57,486 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:57,486 INFO L93 Difference]: Finished difference Result 108 states and 126 transitions. [2022-04-08 04:18:57,486 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 126 transitions. [2022-04-08 04:18:57,486 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:57,486 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:57,487 INFO L74 IsIncluded]: Start isIncluded. First operand has 106 states, 72 states have (on average 1.1388888888888888) internal successors, (82), 75 states have internal predecessors, (82), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) Second operand 108 states. [2022-04-08 04:18:57,487 INFO L87 Difference]: Start difference. First operand has 106 states, 72 states have (on average 1.1388888888888888) internal successors, (82), 75 states have internal predecessors, (82), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) Second operand 108 states. [2022-04-08 04:18:57,488 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:18:57,489 INFO L93 Difference]: Finished difference Result 108 states and 126 transitions. [2022-04-08 04:18:57,489 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 126 transitions. [2022-04-08 04:18:57,489 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:18:57,489 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:18:57,489 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:18:57,489 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:18:57,489 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 106 states, 72 states have (on average 1.1388888888888888) internal successors, (82), 75 states have internal predecessors, (82), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) [2022-04-08 04:18:57,491 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 124 transitions. [2022-04-08 04:18:57,491 INFO L78 Accepts]: Start accepts. Automaton has 106 states and 124 transitions. Word has length 70 [2022-04-08 04:18:57,491 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:18:57,491 INFO L478 AbstractCegarLoop]: Abstraction has 106 states and 124 transitions. [2022-04-08 04:18:57,491 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 8 states have (on average 3.875) internal successors, (31), 9 states have internal predecessors, (31), 4 states have call successors, (13), 2 states have call predecessors, (13), 2 states have return successors, (11), 2 states have call predecessors, (11), 3 states have call successors, (11) [2022-04-08 04:18:57,491 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 106 states and 124 transitions. [2022-04-08 04:18:57,667 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 124 edges. 124 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:18:57,667 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 124 transitions. [2022-04-08 04:18:57,668 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 68 [2022-04-08 04:18:57,668 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:18:57,668 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:18:57,686 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-04-08 04:18:57,875 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable12,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:18:57,875 INFO L403 AbstractCegarLoop]: === Iteration 14 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:18:57,876 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:18:57,876 INFO L85 PathProgramCache]: Analyzing trace with hash 1867983073, now seen corresponding path program 7 times [2022-04-08 04:18:57,876 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:18:57,876 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2000635155] [2022-04-08 04:18:57,876 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:18:57,876 INFO L85 PathProgramCache]: Analyzing trace with hash 1867983073, now seen corresponding path program 8 times [2022-04-08 04:18:57,876 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:18:57,876 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [303102205] [2022-04-08 04:18:57,876 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:18:57,877 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:18:57,915 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:58,358 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:18:58,359 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:58,362 INFO L290 TraceCheckUtils]: 0: Hoare triple {10405#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {10348#true} is VALID [2022-04-08 04:18:58,362 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:18:58,362 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-08 04:18:58,362 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:58,362 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:58,364 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:18:58,364 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:18:58,364 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:18:58,364 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-08 04:18:58,369 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:18:58,370 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:58,378 INFO L290 TraceCheckUtils]: 0: Hoare triple {10406#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-08 04:18:58,379 INFO L290 TraceCheckUtils]: 1: Hoare triple {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-08 04:18:58,379 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {10348#true} #100#return; {10360#(= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc13.base|))} is VALID [2022-04-08 04:18:58,380 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:18:58,391 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:59,268 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:18:59,270 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:59,272 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:18:59,272 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:18:59,272 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:18:59,273 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #116#return; {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} is VALID [2022-04-08 04:18:59,273 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:18:59,274 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:59,275 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:18:59,275 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:18:59,275 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:18:59,276 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #118#return; {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} is VALID [2022-04-08 04:18:59,276 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:18:59,277 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:18:59,298 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:59,299 INFO L290 TraceCheckUtils]: 1: Hoare triple {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:59,299 INFO L290 TraceCheckUtils]: 2: Hoare triple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:59,300 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #120#return; {10421#(and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} is VALID [2022-04-08 04:18:59,301 INFO L290 TraceCheckUtils]: 0: Hoare triple {10406#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} is VALID [2022-04-08 04:18:59,301 INFO L272 TraceCheckUtils]: 1: Hoare triple {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {10348#true} is VALID [2022-04-08 04:18:59,301 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:18:59,301 INFO L290 TraceCheckUtils]: 3: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:18:59,301 INFO L290 TraceCheckUtils]: 4: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:18:59,302 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {10348#true} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #116#return; {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} is VALID [2022-04-08 04:18:59,302 INFO L272 TraceCheckUtils]: 6: Hoare triple {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {10348#true} is VALID [2022-04-08 04:18:59,302 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:18:59,302 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:18:59,302 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:18:59,303 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10348#true} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #118#return; {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} is VALID [2022-04-08 04:18:59,303 INFO L272 TraceCheckUtils]: 11: Hoare triple {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {10348#true} is VALID [2022-04-08 04:18:59,303 INFO L290 TraceCheckUtils]: 12: Hoare triple {10348#true} ~cond := #in~cond; {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:18:59,304 INFO L290 TraceCheckUtils]: 13: Hoare triple {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:59,304 INFO L290 TraceCheckUtils]: 14: Hoare triple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:18:59,305 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #120#return; {10421#(and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} is VALID [2022-04-08 04:18:59,308 INFO L290 TraceCheckUtils]: 16: Hoare triple {10421#(and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {10422#(and (= (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (or (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |#memory_int| |mkdup_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) 0) (= (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (or (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (= (select |#memory_int| |mkdup_#in~a.base|) (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))))))} is VALID [2022-04-08 04:18:59,309 INFO L290 TraceCheckUtils]: 17: Hoare triple {10422#(and (= (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (or (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |#memory_int| |mkdup_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) 0) (= (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (or (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (= (select |#memory_int| |mkdup_#in~a.base|) (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))))))} assume true; {10422#(and (= (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (or (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |#memory_int| |mkdup_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) 0) (= (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (or (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (= (select |#memory_int| |mkdup_#in~a.base|) (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))))))} is VALID [2022-04-08 04:18:59,312 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {10422#(and (= (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (or (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |#memory_int| |mkdup_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) 0) (= (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (or (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (= (select |#memory_int| |mkdup_#in~a.base|) (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))))))} {10361#(= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))} #102#return; {10381#(and (or (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))) (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))) (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))} is VALID [2022-04-08 04:18:59,312 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:18:59,321 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:19:01,799 INFO L290 TraceCheckUtils]: 0: Hoare triple {10406#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {10425#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:19:01,800 INFO L290 TraceCheckUtils]: 1: Hoare triple {10425#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10426#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1))} is VALID [2022-04-08 04:19:01,801 INFO L290 TraceCheckUtils]: 2: Hoare triple {10426#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10427#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (or (and (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))) 0)) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (= |finddup_#t~mem11| |finddup_#t~mem10|)))} is VALID [2022-04-08 04:19:01,802 INFO L290 TraceCheckUtils]: 3: Hoare triple {10427#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (or (and (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))) 0)) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (= |finddup_#t~mem11| |finddup_#t~mem10|)))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10428#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1))} is VALID [2022-04-08 04:19:01,804 INFO L290 TraceCheckUtils]: 4: Hoare triple {10428#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10429#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= 2 finddup_~j~1) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= finddup_~j~1 (+ finddup_~i~1 2)) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (select |#memory_int| finddup_~a.base))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))))} is VALID [2022-04-08 04:19:01,805 INFO L290 TraceCheckUtils]: 5: Hoare triple {10429#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= 2 finddup_~j~1) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= finddup_~j~1 (+ finddup_~i~1 2)) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (select |#memory_int| finddup_~a.base))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10430#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= (+ finddup_~i~1 2) finddup_~j~1) (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= 3 finddup_~n) (<= finddup_~j~1 (+ finddup_~i~1 2)) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4)))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (select |#memory_int| finddup_~a.base))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))))} is VALID [2022-04-08 04:19:01,807 INFO L290 TraceCheckUtils]: 6: Hoare triple {10430#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= (+ finddup_~i~1 2) finddup_~j~1) (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= 3 finddup_~n) (<= finddup_~j~1 (+ finddup_~i~1 2)) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4)))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (select |#memory_int| finddup_~a.base))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10431#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (<= (+ finddup_~i~1 2) finddup_~j~1) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= 3 finddup_~n) (<= finddup_~j~1 (+ finddup_~i~1 2)) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-08 04:19:01,812 INFO L290 TraceCheckUtils]: 7: Hoare triple {10431#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (<= (+ finddup_~i~1 2) finddup_~j~1) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= 3 finddup_~n) (<= finddup_~j~1 (+ finddup_~i~1 2)) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10432#(and (= (* finddup_~i~1 4) 0) (<= 3 finddup_~n) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (or (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (or (and (= (+ finddup_~a.offset (* finddup_~i~1 4) 8) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 8))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))))} is VALID [2022-04-08 04:19:01,815 INFO L290 TraceCheckUtils]: 8: Hoare triple {10432#(and (= (* finddup_~i~1 4) 0) (<= 3 finddup_~n) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (or (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (or (and (= (+ finddup_~a.offset (* finddup_~i~1 4) 8) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 8))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))))} assume !(~j~1 < ~n); {10432#(and (= (* finddup_~i~1 4) 0) (<= 3 finddup_~n) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (or (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (or (and (= (+ finddup_~a.offset (* finddup_~i~1 4) 8) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 8))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))))} is VALID [2022-04-08 04:19:01,822 INFO L290 TraceCheckUtils]: 9: Hoare triple {10432#(and (= (* finddup_~i~1 4) 0) (<= 3 finddup_~n) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (or (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (or (and (= (+ finddup_~a.offset (* finddup_~i~1 4) 8) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 8))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10433#(and (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))))) (<= 3 finddup_~n))} is VALID [2022-04-08 04:19:01,824 INFO L290 TraceCheckUtils]: 10: Hoare triple {10433#(and (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))))) (<= 3 finddup_~n))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10434#(and (or (not (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~j~1 4)))) (<= 3 finddup_~n)) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~j~1 4)))))} is VALID [2022-04-08 04:19:01,826 INFO L290 TraceCheckUtils]: 11: Hoare triple {10434#(and (or (not (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~j~1 4)))) (<= 3 finddup_~n)) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~j~1 4)))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10435#(or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (= |finddup_#t~mem11| |finddup_#t~mem10|) (and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (and (= finddup_~j~1 0) (<= 3 finddup_~n)))} is VALID [2022-04-08 04:19:01,827 INFO L290 TraceCheckUtils]: 12: Hoare triple {10435#(or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (= |finddup_#t~mem11| |finddup_#t~mem10|) (and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (and (= finddup_~j~1 0) (<= 3 finddup_~n)))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10436#(or (and (= finddup_~j~1 0) (<= 3 finddup_~n)) (and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-08 04:19:01,828 INFO L290 TraceCheckUtils]: 13: Hoare triple {10436#(or (and (= finddup_~j~1 0) (<= 3 finddup_~n)) (and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10437#(or (and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (<= (+ finddup_~j~1 1) finddup_~n))} is VALID [2022-04-08 04:19:01,829 INFO L290 TraceCheckUtils]: 14: Hoare triple {10437#(or (and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (<= (+ finddup_~j~1 1) finddup_~n))} assume !(~j~1 < ~n); {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,829 INFO L290 TraceCheckUtils]: 15: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,830 INFO L290 TraceCheckUtils]: 16: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,831 INFO L290 TraceCheckUtils]: 17: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} assume !(~j~1 < ~n); {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,832 INFO L290 TraceCheckUtils]: 18: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,832 INFO L290 TraceCheckUtils]: 19: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} assume !(~i~1 < ~n); {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,833 INFO L290 TraceCheckUtils]: 20: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} #res := 0; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,834 INFO L290 TraceCheckUtils]: 21: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} assume true; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,836 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} {10381#(and (or (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))) (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))) (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))} #104#return; {10349#false} is VALID [2022-04-08 04:19:01,837 INFO L272 TraceCheckUtils]: 0: Hoare triple {10348#true} call ULTIMATE.init(); {10405#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:19:01,837 INFO L290 TraceCheckUtils]: 1: Hoare triple {10405#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L272 TraceCheckUtils]: 4: Hoare triple {10348#true} call #t~ret27 := main(); {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L290 TraceCheckUtils]: 5: Hoare triple {10348#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L272 TraceCheckUtils]: 6: Hoare triple {10348#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:19:01,837 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-08 04:19:01,838 INFO L290 TraceCheckUtils]: 11: Hoare triple {10348#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {10348#true} is VALID [2022-04-08 04:19:01,838 INFO L272 TraceCheckUtils]: 12: Hoare triple {10348#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {10406#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:19:01,839 INFO L290 TraceCheckUtils]: 13: Hoare triple {10406#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-08 04:19:01,839 INFO L290 TraceCheckUtils]: 14: Hoare triple {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-08 04:19:01,840 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {10348#true} #100#return; {10360#(= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc13.base|))} is VALID [2022-04-08 04:19:01,840 INFO L290 TraceCheckUtils]: 16: Hoare triple {10360#(= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc13.base|))} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {10361#(= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))} is VALID [2022-04-08 04:19:01,841 INFO L272 TraceCheckUtils]: 17: Hoare triple {10361#(= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {10406#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:19:01,841 INFO L290 TraceCheckUtils]: 18: Hoare triple {10406#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} is VALID [2022-04-08 04:19:01,841 INFO L272 TraceCheckUtils]: 19: Hoare triple {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {10348#true} is VALID [2022-04-08 04:19:01,841 INFO L290 TraceCheckUtils]: 20: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:19:01,841 INFO L290 TraceCheckUtils]: 21: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:19:01,841 INFO L290 TraceCheckUtils]: 22: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:19:01,842 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {10348#true} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #116#return; {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} is VALID [2022-04-08 04:19:01,842 INFO L272 TraceCheckUtils]: 24: Hoare triple {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {10348#true} is VALID [2022-04-08 04:19:01,842 INFO L290 TraceCheckUtils]: 25: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:19:01,842 INFO L290 TraceCheckUtils]: 26: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:19:01,842 INFO L290 TraceCheckUtils]: 27: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:19:01,843 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {10348#true} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #118#return; {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} is VALID [2022-04-08 04:19:01,843 INFO L272 TraceCheckUtils]: 29: Hoare triple {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {10348#true} is VALID [2022-04-08 04:19:01,843 INFO L290 TraceCheckUtils]: 30: Hoare triple {10348#true} ~cond := #in~cond; {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:19:01,844 INFO L290 TraceCheckUtils]: 31: Hoare triple {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:19:01,844 INFO L290 TraceCheckUtils]: 32: Hoare triple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:19:01,845 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} {10408#(or (and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|)) (= (+ mkdup_~a.offset (* mkdup_~i~0 4)) (+ (* mkdup_~j~0 4) mkdup_~a.offset)))} #120#return; {10421#(and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} is VALID [2022-04-08 04:19:01,848 INFO L290 TraceCheckUtils]: 34: Hoare triple {10421#(and (= |#memory_int| |old(#memory_int)|) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= (* mkdup_~j~0 4) (* mkdup_~i~0 4))))} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {10422#(and (= (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (or (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |#memory_int| |mkdup_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) 0) (= (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (or (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (= (select |#memory_int| |mkdup_#in~a.base|) (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))))))} is VALID [2022-04-08 04:19:01,849 INFO L290 TraceCheckUtils]: 35: Hoare triple {10422#(and (= (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (or (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |#memory_int| |mkdup_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) 0) (= (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (or (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (= (select |#memory_int| |mkdup_#in~a.base|) (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))))))} assume true; {10422#(and (= (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (or (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |#memory_int| |mkdup_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) 0) (= (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (or (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (= (select |#memory_int| |mkdup_#in~a.base|) (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))))))} is VALID [2022-04-08 04:19:01,851 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {10422#(and (= (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)) (or (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |#memory_int| |mkdup_#in~a.base|) ((as const (Array Int Int)) 0)) 0))) (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) 0) (= (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (or (= (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|))) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))) (select |#memory_int| |mkdup_#in~a.base|)))) (= (select |#memory_int| |mkdup_#in~a.base|) (store (select |old(#memory_int)| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)) (select (select |#memory_int| |mkdup_#in~a.base|) (@diff (select |old(#memory_int)| |mkdup_#in~a.base|) (select |#memory_int| |mkdup_#in~a.base|)))))))} {10361#(= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))} #102#return; {10381#(and (or (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))) (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))) (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))} is VALID [2022-04-08 04:19:01,852 INFO L290 TraceCheckUtils]: 37: Hoare triple {10381#(and (or (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))) (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))) (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {10381#(and (or (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))) (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))) (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))} is VALID [2022-04-08 04:19:01,853 INFO L272 TraceCheckUtils]: 38: Hoare triple {10381#(and (or (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))) (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))) (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {10406#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:19:01,853 INFO L290 TraceCheckUtils]: 39: Hoare triple {10406#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {10425#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:19:01,854 INFO L290 TraceCheckUtils]: 40: Hoare triple {10425#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10426#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1))} is VALID [2022-04-08 04:19:01,855 INFO L290 TraceCheckUtils]: 41: Hoare triple {10426#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10427#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (or (and (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))) 0)) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (= |finddup_#t~mem11| |finddup_#t~mem10|)))} is VALID [2022-04-08 04:19:01,855 INFO L290 TraceCheckUtils]: 42: Hoare triple {10427#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (or (and (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))) 0)) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (= |finddup_#t~mem11| |finddup_#t~mem10|)))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10428#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1))} is VALID [2022-04-08 04:19:01,857 INFO L290 TraceCheckUtils]: 43: Hoare triple {10428#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (<= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (<= (+ finddup_~i~1 1) finddup_~j~1))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10429#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= 2 finddup_~j~1) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= finddup_~j~1 (+ finddup_~i~1 2)) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (select |#memory_int| finddup_~a.base))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))))} is VALID [2022-04-08 04:19:01,859 INFO L290 TraceCheckUtils]: 44: Hoare triple {10429#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= 2 finddup_~j~1) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= finddup_~j~1 (+ finddup_~i~1 2)) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (select |#memory_int| finddup_~a.base))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10430#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= (+ finddup_~i~1 2) finddup_~j~1) (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= 3 finddup_~n) (<= finddup_~j~1 (+ finddup_~i~1 2)) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4)))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (select |#memory_int| finddup_~a.base))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))))} is VALID [2022-04-08 04:19:01,860 INFO L290 TraceCheckUtils]: 45: Hoare triple {10430#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (<= (+ finddup_~i~1 2) finddup_~j~1) (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= 3 finddup_~n) (<= finddup_~j~1 (+ finddup_~i~1 2)) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4)))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (select |#memory_int| finddup_~a.base))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10431#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (<= (+ finddup_~i~1 2) finddup_~j~1) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= 3 finddup_~n) (<= finddup_~j~1 (+ finddup_~i~1 2)) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-08 04:19:01,862 INFO L290 TraceCheckUtils]: 46: Hoare triple {10431#(and (= (* finddup_~i~1 4) 0) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (<= (+ finddup_~i~1 2) finddup_~j~1) (= |finddup_#in~a.base| finddup_~a.base) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) 0) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (<= 3 finddup_~n) (<= finddup_~j~1 (+ finddup_~i~1 2)) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10432#(and (= (* finddup_~i~1 4) 0) (<= 3 finddup_~n) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (or (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (or (and (= (+ finddup_~a.offset (* finddup_~i~1 4) 8) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 8))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))))} is VALID [2022-04-08 04:19:01,864 INFO L290 TraceCheckUtils]: 47: Hoare triple {10432#(and (= (* finddup_~i~1 4) 0) (<= 3 finddup_~n) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (or (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (or (and (= (+ finddup_~a.offset (* finddup_~i~1 4) 8) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 8))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))))} assume !(~j~1 < ~n); {10432#(and (= (* finddup_~i~1 4) 0) (<= 3 finddup_~n) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (or (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (or (and (= (+ finddup_~a.offset (* finddup_~i~1 4) 8) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 8))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))))} is VALID [2022-04-08 04:19:01,866 INFO L290 TraceCheckUtils]: 48: Hoare triple {10432#(and (= (* finddup_~i~1 4) 0) (<= 3 finddup_~n) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (or (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)))))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))) (or (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) 0)) (and (or (and (= (+ finddup_~a.offset (* finddup_~i~1 4) 8) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (and (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))) (= (+ finddup_~a.offset (* finddup_~i~1 4) 4) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))) (= (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (+ finddup_~a.offset (* finddup_~i~1 4) 8))) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10433#(and (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))))) (<= 3 finddup_~n))} is VALID [2022-04-08 04:19:01,867 INFO L290 TraceCheckUtils]: 49: Hoare triple {10433#(and (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0))))) (<= 3 finddup_~n))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10434#(and (or (not (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~j~1 4)))) (<= 3 finddup_~n)) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~j~1 4)))))} is VALID [2022-04-08 04:19:01,869 INFO L290 TraceCheckUtils]: 50: Hoare triple {10434#(and (or (not (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~j~1 4)))) (<= 3 finddup_~n)) (or (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))) (and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (@diff (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0))))) (not (= ((as const (Array Int Int)) 0) (store (select |#memory_int| finddup_~a.base) (@diff (select |#memory_int| finddup_~a.base) ((as const (Array Int Int)) 0)) 0)))) (= finddup_~a.offset (+ finddup_~a.offset (* finddup_~j~1 4)))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10435#(or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (= |finddup_#t~mem11| |finddup_#t~mem10|) (and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (and (= finddup_~j~1 0) (<= 3 finddup_~n)))} is VALID [2022-04-08 04:19:01,870 INFO L290 TraceCheckUtils]: 51: Hoare triple {10435#(or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (= |finddup_#t~mem11| |finddup_#t~mem10|) (and (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (and (= finddup_~j~1 0) (<= 3 finddup_~n)))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10436#(or (and (= finddup_~j~1 0) (<= 3 finddup_~n)) (and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))))} is VALID [2022-04-08 04:19:01,871 INFO L290 TraceCheckUtils]: 52: Hoare triple {10436#(or (and (= finddup_~j~1 0) (<= 3 finddup_~n)) (and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10437#(or (and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (<= (+ finddup_~j~1 1) finddup_~n))} is VALID [2022-04-08 04:19:01,872 INFO L290 TraceCheckUtils]: 53: Hoare triple {10437#(or (and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)))) (<= (+ finddup_~j~1 1) finddup_~n))} assume !(~j~1 < ~n); {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,873 INFO L290 TraceCheckUtils]: 54: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,874 INFO L290 TraceCheckUtils]: 55: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,874 INFO L290 TraceCheckUtils]: 56: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} assume !(~j~1 < ~n); {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,875 INFO L290 TraceCheckUtils]: 57: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,876 INFO L290 TraceCheckUtils]: 58: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} assume !(~i~1 < ~n); {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,877 INFO L290 TraceCheckUtils]: 59: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} #res := 0; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,877 INFO L290 TraceCheckUtils]: 60: Hoare triple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} assume true; {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} is VALID [2022-04-08 04:19:01,879 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {10438#(and (or (not (= ((as const (Array Int Int)) 0) (store (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0))) (not (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))) (select (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)))))) (not (= (store (select |old(#memory_int)| |finddup_#in~a.base|) (@diff (select |old(#memory_int)| |finddup_#in~a.base|) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))} {10381#(and (or (= (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) (= (select (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0))) (select (select |#memory_int| main_~a~0.base) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0))))) (= ((as const (Array Int Int)) 0) (store (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) (@diff (store (select |#memory_int| main_~a~0.base) (@diff (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)) 0) ((as const (Array Int Int)) 0)) 0)))} #104#return; {10349#false} is VALID [2022-04-08 04:19:01,879 INFO L290 TraceCheckUtils]: 62: Hoare triple {10349#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {10349#false} is VALID [2022-04-08 04:19:01,879 INFO L272 TraceCheckUtils]: 63: Hoare triple {10349#false} call __VERIFIER_assert(~r~0); {10349#false} is VALID [2022-04-08 04:19:01,879 INFO L290 TraceCheckUtils]: 64: Hoare triple {10349#false} ~cond := #in~cond; {10349#false} is VALID [2022-04-08 04:19:01,879 INFO L290 TraceCheckUtils]: 65: Hoare triple {10349#false} assume 0 == ~cond; {10349#false} is VALID [2022-04-08 04:19:01,879 INFO L290 TraceCheckUtils]: 66: Hoare triple {10349#false} assume !false; {10349#false} is VALID [2022-04-08 04:19:01,880 INFO L134 CoverageAnalysis]: Checked inductivity of 54 backedges. 10 proven. 27 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-08 04:19:01,880 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:19:01,880 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [303102205] [2022-04-08 04:19:01,880 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [303102205] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:19:01,880 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1539155053] [2022-04-08 04:19:01,880 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 04:19:01,881 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:19:01,881 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:19:01,881 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-04-08 04:19:01,882 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-04-08 04:19:01,969 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 04:19:01,969 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:19:01,970 INFO L263 TraceCheckSpWp]: Trace formula consists of 266 conjuncts, 77 conjunts are in the unsatisfiable core [2022-04-08 04:19:01,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:19:01,985 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:19:02,030 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-04-08 04:19:08,369 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 29 treesize of output 24 [2022-04-08 04:19:16,356 INFO L272 TraceCheckUtils]: 0: Hoare triple {10348#true} call ULTIMATE.init(); {10348#true} is VALID [2022-04-08 04:19:16,356 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#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(10, 2);call #Ultimate.allocInit(12, 3); {10348#true} is VALID [2022-04-08 04:19:16,356 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:19:16,356 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-08 04:19:16,356 INFO L272 TraceCheckUtils]: 4: Hoare triple {10348#true} call #t~ret27 := main(); {10348#true} is VALID [2022-04-08 04:19:16,356 INFO L290 TraceCheckUtils]: 5: Hoare triple {10348#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {10348#true} is VALID [2022-04-08 04:19:16,356 INFO L272 TraceCheckUtils]: 6: Hoare triple {10348#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {10348#true} is VALID [2022-04-08 04:19:16,356 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:19:16,357 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:19:16,357 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:19:16,357 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-08 04:19:16,359 INFO L290 TraceCheckUtils]: 11: Hoare triple {10348#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {10475#(= |main_#t~malloc13.offset| 0)} is VALID [2022-04-08 04:19:16,359 INFO L272 TraceCheckUtils]: 12: Hoare triple {10475#(= |main_#t~malloc13.offset| 0)} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {10348#true} is VALID [2022-04-08 04:19:16,359 INFO L290 TraceCheckUtils]: 13: Hoare triple {10348#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-08 04:19:16,360 INFO L290 TraceCheckUtils]: 14: Hoare triple {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} assume true; {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} is VALID [2022-04-08 04:19:16,360 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {10407#(= ((as const (Array Int Int)) 0) (select |#memory_int| |#Ultimate.meminit_#ptr.base|))} {10475#(= |main_#t~malloc13.offset| 0)} #100#return; {10488#(and (= |main_#t~malloc13.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc13.base|)))} is VALID [2022-04-08 04:19:16,361 INFO L290 TraceCheckUtils]: 16: Hoare triple {10488#(and (= |main_#t~malloc13.offset| 0) (= ((as const (Array Int Int)) 0) (select |#memory_int| |main_#t~malloc13.base|)))} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {10492#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))} is VALID [2022-04-08 04:19:16,361 INFO L272 TraceCheckUtils]: 17: Hoare triple {10492#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {10406#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:19:16,362 INFO L290 TraceCheckUtils]: 18: Hoare triple {10406#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {10499#(and (<= mkdup_~n |mkdup_#in~n|) (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|))} is VALID [2022-04-08 04:19:16,362 INFO L272 TraceCheckUtils]: 19: Hoare triple {10499#(and (<= mkdup_~n |mkdup_#in~n|) (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|))} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {10348#true} is VALID [2022-04-08 04:19:16,362 INFO L290 TraceCheckUtils]: 20: Hoare triple {10348#true} ~cond := #in~cond; {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:19:16,362 INFO L290 TraceCheckUtils]: 21: Hoare triple {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:19:16,363 INFO L290 TraceCheckUtils]: 22: Hoare triple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:19:16,364 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} {10499#(and (<= mkdup_~n |mkdup_#in~n|) (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|))} #116#return; {10515#(and (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|))} is VALID [2022-04-08 04:19:16,364 INFO L272 TraceCheckUtils]: 24: Hoare triple {10515#(and (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|))} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {10348#true} is VALID [2022-04-08 04:19:16,364 INFO L290 TraceCheckUtils]: 25: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 04:19:16,364 INFO L290 TraceCheckUtils]: 26: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 04:19:16,364 INFO L290 TraceCheckUtils]: 27: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 04:19:16,365 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {10348#true} {10515#(and (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|))} #118#return; {10515#(and (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|))} is VALID [2022-04-08 04:19:16,365 INFO L272 TraceCheckUtils]: 29: Hoare triple {10515#(and (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|))} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {10348#true} is VALID [2022-04-08 04:19:16,365 INFO L290 TraceCheckUtils]: 30: Hoare triple {10348#true} ~cond := #in~cond; {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 04:19:16,365 INFO L290 TraceCheckUtils]: 31: Hoare triple {10423#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:19:16,365 INFO L290 TraceCheckUtils]: 32: Hoare triple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {10424#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 04:19:16,366 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {10424#(not (= |assume_abort_if_not_#in~cond| 0))} {10515#(and (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|))} #120#return; {10546#(and (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|))} is VALID [2022-04-08 04:19:18,373 WARN L290 TraceCheckUtils]: 34: Hoare triple {10546#(and (= |#memory_int| |old(#memory_int)|) (= |mkdup_#in~a.offset| mkdup_~a.offset) (= mkdup_~a.base |mkdup_#in~a.base|) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|))} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {10550#(exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (= (store |old(#memory_int)| |mkdup_#in~a.base| (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~i~0 4)) mkdup_~x~0) (+ |mkdup_#in~a.offset| (* mkdup_~j~0 4)) mkdup_~x~0)) |#memory_int|) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|)))} is UNKNOWN [2022-04-08 04:19:20,397 WARN L290 TraceCheckUtils]: 35: Hoare triple {10550#(exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (= (store |old(#memory_int)| |mkdup_#in~a.base| (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~i~0 4)) mkdup_~x~0) (+ |mkdup_#in~a.offset| (* mkdup_~j~0 4)) mkdup_~x~0)) |#memory_int|) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|)))} assume true; {10550#(exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (= (store |old(#memory_int)| |mkdup_#in~a.base| (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~i~0 4)) mkdup_~x~0) (+ |mkdup_#in~a.offset| (* mkdup_~j~0 4)) mkdup_~x~0)) |#memory_int|) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|)))} is UNKNOWN [2022-04-08 04:19:20,399 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {10550#(exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (= (store |old(#memory_int)| |mkdup_#in~a.base| (store (store (select |old(#memory_int)| |mkdup_#in~a.base|) (+ |mkdup_#in~a.offset| (* mkdup_~i~0 4)) mkdup_~x~0) (+ |mkdup_#in~a.offset| (* mkdup_~j~0 4)) mkdup_~x~0)) |#memory_int|) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0) (< mkdup_~i~0 |mkdup_#in~n|)))} {10492#(and (= main_~a~0.offset 0) (= (select |#memory_int| main_~a~0.base) ((as const (Array Int Int)) 0)))} #102#return; {10557#(and (= main_~a~0.offset 0) (exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~i~0 main_~n~0) (= (select |#memory_int| main_~a~0.base) (store (store ((as const (Array Int Int)) 0) (+ main_~a~0.offset (* mkdup_~i~0 4)) mkdup_~x~0) (+ main_~a~0.offset (* mkdup_~j~0 4)) mkdup_~x~0)) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0))))} is VALID [2022-04-08 04:19:20,400 INFO L290 TraceCheckUtils]: 37: Hoare triple {10557#(and (= main_~a~0.offset 0) (exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~i~0 main_~n~0) (= (select |#memory_int| main_~a~0.base) (store (store ((as const (Array Int Int)) 0) (+ main_~a~0.offset (* mkdup_~i~0 4)) mkdup_~x~0) (+ main_~a~0.offset (* mkdup_~j~0 4)) mkdup_~x~0)) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0))))} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {10557#(and (= main_~a~0.offset 0) (exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~i~0 main_~n~0) (= (select |#memory_int| main_~a~0.base) (store (store ((as const (Array Int Int)) 0) (+ main_~a~0.offset (* mkdup_~i~0 4)) mkdup_~x~0) (+ main_~a~0.offset (* mkdup_~j~0 4)) mkdup_~x~0)) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0))))} is VALID [2022-04-08 04:19:20,401 INFO L272 TraceCheckUtils]: 38: Hoare triple {10557#(and (= main_~a~0.offset 0) (exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~i~0 main_~n~0) (= (select |#memory_int| main_~a~0.base) (store (store ((as const (Array Int Int)) 0) (+ main_~a~0.offset (* mkdup_~i~0 4)) mkdup_~x~0) (+ main_~a~0.offset (* mkdup_~j~0 4)) mkdup_~x~0)) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0))))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {10406#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:19:20,401 INFO L290 TraceCheckUtils]: 39: Hoare triple {10406#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {10567#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:19:20,402 INFO L290 TraceCheckUtils]: 40: Hoare triple {10567#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10571#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:19:20,402 INFO L290 TraceCheckUtils]: 41: Hoare triple {10571#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10575#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4)))))} is VALID [2022-04-08 04:19:20,403 INFO L290 TraceCheckUtils]: 42: Hoare triple {10575#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4)))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10579#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base))} is VALID [2022-04-08 04:19:20,403 INFO L290 TraceCheckUtils]: 43: Hoare triple {10579#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10583#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4) (- 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~j~1 (- 1)) (+ finddup_~i~1 1)))} is VALID [2022-04-08 04:19:20,404 INFO L290 TraceCheckUtils]: 44: Hoare triple {10583#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4) (- 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~j~1 (- 1)) (+ finddup_~i~1 1)))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10587#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4) (- 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4)))) (= (+ finddup_~j~1 (- 1)) (+ finddup_~i~1 1)))} is VALID [2022-04-08 04:19:20,404 INFO L290 TraceCheckUtils]: 45: Hoare triple {10587#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4) (- 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= |finddup_#t~mem11| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4)))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= |finddup_#t~mem10| (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4)))) (= (+ finddup_~j~1 (- 1)) (+ finddup_~i~1 1)))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10591#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4) (- 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~j~1 (- 1)) (+ finddup_~i~1 1)))} is VALID [2022-04-08 04:19:20,405 INFO L290 TraceCheckUtils]: 46: Hoare triple {10591#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4))))) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~j~1 4) (- 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~j~1 (- 1)) (+ finddup_~i~1 1)))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10595#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (<= finddup_~j~1 (+ finddup_~i~1 3)) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))))} is VALID [2022-04-08 04:19:20,406 INFO L290 TraceCheckUtils]: 47: Hoare triple {10595#(and (<= |finddup_#in~n| finddup_~n) (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (<= finddup_~j~1 (+ finddup_~i~1 3)) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))))} assume !(~j~1 < ~n); {10599#(and (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (<= |finddup_#in~n| (+ finddup_~i~1 3)))} is VALID [2022-04-08 04:19:20,407 INFO L290 TraceCheckUtils]: 48: Hoare triple {10599#(and (= |#memory_int| |old(#memory_int)|) (= finddup_~i~1 0) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)))) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 8)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))))) (<= |finddup_#in~n| (+ finddup_~i~1 3)))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10603#(and (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (- 4) (* finddup_~i~1 4))))) (<= |finddup_#in~n| (+ finddup_~i~1 2)) (= |#memory_int| |old(#memory_int)|) (= (+ finddup_~i~1 (- 1)) 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (- 4) (* finddup_~i~1 4))))))} is VALID [2022-04-08 04:19:20,407 INFO L290 TraceCheckUtils]: 49: Hoare triple {10603#(and (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (- 4) (* finddup_~i~1 4))))) (<= |finddup_#in~n| (+ finddup_~i~1 2)) (= |#memory_int| |old(#memory_int)|) (= (+ finddup_~i~1 (- 1)) 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (- 4) (* finddup_~i~1 4))))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10607#(and (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (- 4) (* finddup_~i~1 4))))) (<= |finddup_#in~n| (+ finddup_~i~1 2)) (= |#memory_int| |old(#memory_int)|) (= (+ finddup_~i~1 (- 1)) 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (- 4) (* finddup_~i~1 4))))))} is VALID [2022-04-08 04:19:20,408 INFO L290 TraceCheckUtils]: 50: Hoare triple {10607#(and (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4) 4)) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (- 4) (* finddup_~i~1 4))))) (<= |finddup_#in~n| (+ finddup_~i~1 2)) (= |#memory_int| |old(#memory_int)|) (= (+ finddup_~i~1 (- 1)) 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (not (= (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (* finddup_~i~1 4))) (select (select |#memory_int| finddup_~a.base) (+ finddup_~a.offset (- 4) (* finddup_~i~1 4))))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {10611#(and (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) |finddup_#t~mem10|) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) |finddup_#t~mem11|) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,408 INFO L290 TraceCheckUtils]: 51: Hoare triple {10611#(and (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) |finddup_#t~mem10|) (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) |finddup_#t~mem11|) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,409 INFO L290 TraceCheckUtils]: 52: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,409 INFO L290 TraceCheckUtils]: 53: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} assume !(~j~1 < ~n); {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,410 INFO L290 TraceCheckUtils]: 54: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,410 INFO L290 TraceCheckUtils]: 55: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,411 INFO L290 TraceCheckUtils]: 56: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} assume !(~j~1 < ~n); {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,414 INFO L290 TraceCheckUtils]: 57: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} #t~post8 := ~i~1;~i~1 := 1 + #t~post8;havoc #t~post8; {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,414 INFO L290 TraceCheckUtils]: 58: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} assume !(~i~1 < ~n); {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,415 INFO L290 TraceCheckUtils]: 59: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} #res := 0; {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,415 INFO L290 TraceCheckUtils]: 60: Hoare triple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} assume true; {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} is VALID [2022-04-08 04:19:20,417 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {10615#(and (= |#memory_int| |old(#memory_int)|) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)))) (<= |finddup_#in~n| 3) (not (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 8)) (select (select |#memory_int| |finddup_#in~a.base|) |finddup_#in~a.offset|))))} {10557#(and (= main_~a~0.offset 0) (exists ((mkdup_~j~0 Int) (mkdup_~x~0 Int) (mkdup_~i~0 Int)) (and (< mkdup_~i~0 main_~n~0) (= (select |#memory_int| main_~a~0.base) (store (store ((as const (Array Int Int)) 0) (+ main_~a~0.offset (* mkdup_~i~0 4)) mkdup_~x~0) (+ main_~a~0.offset (* mkdup_~j~0 4)) mkdup_~x~0)) (not (= mkdup_~j~0 mkdup_~i~0)) (<= 0 mkdup_~i~0))))} #104#return; {10349#false} is VALID [2022-04-08 04:19:20,417 INFO L290 TraceCheckUtils]: 62: Hoare triple {10349#false} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {10349#false} is VALID [2022-04-08 04:19:20,417 INFO L272 TraceCheckUtils]: 63: Hoare triple {10349#false} call __VERIFIER_assert(~r~0); {10349#false} is VALID [2022-04-08 04:19:20,417 INFO L290 TraceCheckUtils]: 64: Hoare triple {10349#false} ~cond := #in~cond; {10349#false} is VALID [2022-04-08 04:19:20,417 INFO L290 TraceCheckUtils]: 65: Hoare triple {10349#false} assume 0 == ~cond; {10349#false} is VALID [2022-04-08 04:19:20,418 INFO L290 TraceCheckUtils]: 66: Hoare triple {10349#false} assume !false; {10349#false} is VALID [2022-04-08 04:19:20,418 INFO L134 CoverageAnalysis]: Checked inductivity of 54 backedges. 9 proven. 30 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-08 04:19:20,418 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:19:22,456 WARN L804 TransFormulaUtils]: predicate-based correctness check returned UNKNOWN, hence correctness of interprocedural sequential composition was not checked. [2022-04-08 04:19:50,922 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1539155053] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:19:50,922 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 04:19:50,922 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [27, 27] total 48 [2022-04-08 04:19:50,922 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:19:50,922 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2000635155] [2022-04-08 04:19:50,922 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2000635155] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:19:50,922 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:19:50,922 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [27] imperfect sequences [] total 27 [2022-04-08 04:19:50,922 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1964186995] [2022-04-08 04:19:50,922 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:19:50,923 INFO L78 Accepts]: Start accepts. Automaton has has 27 states, 25 states have (on average 1.68) internal successors, (42), 23 states have internal predecessors, (42), 5 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 6 states have call predecessors, (8), 4 states have call successors, (8) Word has length 67 [2022-04-08 04:19:50,923 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:19:50,923 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 27 states, 25 states have (on average 1.68) internal successors, (42), 23 states have internal predecessors, (42), 5 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 6 states have call predecessors, (8), 4 states have call successors, (8) [2022-04-08 04:19:50,994 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:19:50,994 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 27 states [2022-04-08 04:19:50,994 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:19:50,995 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2022-04-08 04:19:50,995 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=365, Invalid=3638, Unknown=29, NotChecked=0, Total=4032 [2022-04-08 04:19:50,996 INFO L87 Difference]: Start difference. First operand 106 states and 124 transitions. Second operand has 27 states, 25 states have (on average 1.68) internal successors, (42), 23 states have internal predecessors, (42), 5 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 6 states have call predecessors, (8), 4 states have call successors, (8) [2022-04-08 04:20:07,733 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:20:07,733 INFO L93 Difference]: Finished difference Result 199 states and 239 transitions. [2022-04-08 04:20:07,733 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 33 states. [2022-04-08 04:20:07,733 INFO L78 Accepts]: Start accepts. Automaton has has 27 states, 25 states have (on average 1.68) internal successors, (42), 23 states have internal predecessors, (42), 5 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 6 states have call predecessors, (8), 4 states have call successors, (8) Word has length 67 [2022-04-08 04:20:07,733 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:20:07,734 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 25 states have (on average 1.68) internal successors, (42), 23 states have internal predecessors, (42), 5 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 6 states have call predecessors, (8), 4 states have call successors, (8) [2022-04-08 04:20:07,735 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 148 transitions. [2022-04-08 04:20:07,735 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 25 states have (on average 1.68) internal successors, (42), 23 states have internal predecessors, (42), 5 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 6 states have call predecessors, (8), 4 states have call successors, (8) [2022-04-08 04:20:07,737 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 148 transitions. [2022-04-08 04:20:07,737 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 33 states and 148 transitions. [2022-04-08 04:20:07,953 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 148 edges. 148 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:20:07,955 INFO L225 Difference]: With dead ends: 199 [2022-04-08 04:20:07,955 INFO L226 Difference]: Without dead ends: 125 [2022-04-08 04:20:07,956 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 169 GetRequests, 78 SyntacticMatches, 0 SemanticMatches, 91 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2439 ImplicationChecksByTransitivity, 52.5s TimeCoverageRelationStatistics Valid=690, Invalid=7833, Unknown=33, NotChecked=0, Total=8556 [2022-04-08 04:20:07,957 INFO L913 BasicCegarLoop]: 55 mSDtfsCounter, 179 mSDsluCounter, 12 mSDsCounter, 0 mSdLazyCounter, 1600 mSolverCounterSat, 136 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 3.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 183 SdHoareTripleChecker+Valid, 67 SdHoareTripleChecker+Invalid, 1736 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 136 IncrementalHoareTripleChecker+Valid, 1600 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 3.2s IncrementalHoareTripleChecker+Time [2022-04-08 04:20:07,957 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [183 Valid, 67 Invalid, 1736 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [136 Valid, 1600 Invalid, 0 Unknown, 0 Unchecked, 3.2s Time] [2022-04-08 04:20:07,957 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 125 states. [2022-04-08 04:20:08,272 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 125 to 115. [2022-04-08 04:20:08,273 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:20:08,273 INFO L82 GeneralOperation]: Start isEquivalent. First operand 125 states. Second operand has 115 states, 81 states have (on average 1.1604938271604939) internal successors, (94), 84 states have internal predecessors, (94), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) [2022-04-08 04:20:08,273 INFO L74 IsIncluded]: Start isIncluded. First operand 125 states. Second operand has 115 states, 81 states have (on average 1.1604938271604939) internal successors, (94), 84 states have internal predecessors, (94), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) [2022-04-08 04:20:08,273 INFO L87 Difference]: Start difference. First operand 125 states. Second operand has 115 states, 81 states have (on average 1.1604938271604939) internal successors, (94), 84 states have internal predecessors, (94), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) [2022-04-08 04:20:08,275 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:20:08,275 INFO L93 Difference]: Finished difference Result 125 states and 150 transitions. [2022-04-08 04:20:08,275 INFO L276 IsEmpty]: Start isEmpty. Operand 125 states and 150 transitions. [2022-04-08 04:20:08,276 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:20:08,276 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:20:08,276 INFO L74 IsIncluded]: Start isIncluded. First operand has 115 states, 81 states have (on average 1.1604938271604939) internal successors, (94), 84 states have internal predecessors, (94), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) Second operand 125 states. [2022-04-08 04:20:08,276 INFO L87 Difference]: Start difference. First operand has 115 states, 81 states have (on average 1.1604938271604939) internal successors, (94), 84 states have internal predecessors, (94), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) Second operand 125 states. [2022-04-08 04:20:08,278 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:20:08,278 INFO L93 Difference]: Finished difference Result 125 states and 150 transitions. [2022-04-08 04:20:08,278 INFO L276 IsEmpty]: Start isEmpty. Operand 125 states and 150 transitions. [2022-04-08 04:20:08,278 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:20:08,278 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:20:08,278 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:20:08,278 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:20:08,279 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 115 states, 81 states have (on average 1.1604938271604939) internal successors, (94), 84 states have internal predecessors, (94), 21 states have call successors, (21), 11 states have call predecessors, (21), 12 states have return successors, (21), 19 states have call predecessors, (21), 19 states have call successors, (21) [2022-04-08 04:20:08,280 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 115 states to 115 states and 136 transitions. [2022-04-08 04:20:08,280 INFO L78 Accepts]: Start accepts. Automaton has 115 states and 136 transitions. Word has length 67 [2022-04-08 04:20:08,281 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:20:08,281 INFO L478 AbstractCegarLoop]: Abstraction has 115 states and 136 transitions. [2022-04-08 04:20:08,281 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 27 states, 25 states have (on average 1.68) internal successors, (42), 23 states have internal predecessors, (42), 5 states have call successors, (10), 4 states have call predecessors, (10), 5 states have return successors, (8), 6 states have call predecessors, (8), 4 states have call successors, (8) [2022-04-08 04:20:08,281 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 115 states and 136 transitions. [2022-04-08 04:20:08,552 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 136 edges. 136 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:20:08,552 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 136 transitions. [2022-04-08 04:20:08,552 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 74 [2022-04-08 04:20:08,552 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:20:08,553 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:20:08,569 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-04-08 04:20:08,759 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable13 [2022-04-08 04:20:08,759 INFO L403 AbstractCegarLoop]: === Iteration 15 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:20:08,760 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:20:08,760 INFO L85 PathProgramCache]: Analyzing trace with hash -1243098892, now seen corresponding path program 1 times [2022-04-08 04:20:08,760 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:20:08,760 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1641493127] [2022-04-08 04:20:08,760 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:20:08,760 INFO L85 PathProgramCache]: Analyzing trace with hash -1243098892, now seen corresponding path program 2 times [2022-04-08 04:20:08,760 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:20:08,760 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1067795187] [2022-04-08 04:20:08,760 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:20:08,761 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:20:08,779 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:08,874 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:20:08,875 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:08,877 INFO L290 TraceCheckUtils]: 0: Hoare triple {11766#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {11706#true} is VALID [2022-04-08 04:20:08,877 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,877 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-08 04:20:08,877 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:20:08,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:08,879 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:08,880 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:08,880 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,880 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-08 04:20:08,887 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:20:08,888 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:08,890 INFO L290 TraceCheckUtils]: 0: Hoare triple {11767#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11706#true} is VALID [2022-04-08 04:20:08,890 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,890 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-08 04:20:08,890 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:20:08,893 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:08,896 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:20:08,896 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:08,898 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:08,898 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:08,899 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,899 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 04:20:08,899 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:20:08,899 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:08,901 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:08,901 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:08,901 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,901 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 04:20:08,901 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:20:08,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:08,903 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:08,903 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:08,903 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,903 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 04:20:08,903 INFO L290 TraceCheckUtils]: 0: Hoare triple {11767#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {11706#true} is VALID [2022-04-08 04:20:08,903 INFO L272 TraceCheckUtils]: 1: Hoare triple {11706#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:08,903 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:08,903 INFO L290 TraceCheckUtils]: 3: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:08,903 INFO L290 TraceCheckUtils]: 4: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L272 TraceCheckUtils]: 6: Hoare triple {11706#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L272 TraceCheckUtils]: 11: Hoare triple {11706#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L290 TraceCheckUtils]: 12: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L290 TraceCheckUtils]: 16: Hoare triple {11706#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L290 TraceCheckUtils]: 17: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:08,904 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-08 04:20:08,905 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:20:08,908 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:09,023 INFO L290 TraceCheckUtils]: 0: Hoare triple {11767#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {11780#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,024 INFO L290 TraceCheckUtils]: 1: Hoare triple {11780#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,024 INFO L290 TraceCheckUtils]: 2: Hoare triple {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,025 INFO L290 TraceCheckUtils]: 3: Hoare triple {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,025 INFO L290 TraceCheckUtils]: 4: Hoare triple {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {11782#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,026 INFO L290 TraceCheckUtils]: 5: Hoare triple {11782#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {11782#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,027 INFO L290 TraceCheckUtils]: 6: Hoare triple {11782#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {11783#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} is VALID [2022-04-08 04:20:09,027 INFO L290 TraceCheckUtils]: 7: Hoare triple {11783#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} assume true; {11783#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} is VALID [2022-04-08 04:20:09,028 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {11783#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} {11737#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {11747#(and (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} is VALID [2022-04-08 04:20:09,029 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 49 [2022-04-08 04:20:09,030 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:09,045 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11784#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:20:09,046 INFO L290 TraceCheckUtils]: 1: Hoare triple {11784#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:09,046 INFO L290 TraceCheckUtils]: 2: Hoare triple {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:09,047 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} {11748#(and (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} #106#return; {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} is VALID [2022-04-08 04:20:09,047 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 56 [2022-04-08 04:20:09,048 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:09,050 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:09,050 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:09,050 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,050 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} #108#return; {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} is VALID [2022-04-08 04:20:09,051 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 63 [2022-04-08 04:20:09,051 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:09,053 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:09,053 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:09,053 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,054 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #110#return; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:09,054 INFO L272 TraceCheckUtils]: 0: Hoare triple {11706#true} call ULTIMATE.init(); {11766#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:20:09,054 INFO L290 TraceCheckUtils]: 1: Hoare triple {11766#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {11706#true} is VALID [2022-04-08 04:20:09,054 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,054 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-08 04:20:09,055 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-08 04:20:09,055 INFO L290 TraceCheckUtils]: 5: Hoare triple {11706#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {11706#true} is VALID [2022-04-08 04:20:09,055 INFO L272 TraceCheckUtils]: 6: Hoare triple {11706#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:09,055 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:09,055 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:09,055 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,055 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-08 04:20:09,055 INFO L290 TraceCheckUtils]: 11: Hoare triple {11706#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11706#true} is VALID [2022-04-08 04:20:09,056 INFO L272 TraceCheckUtils]: 12: Hoare triple {11706#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {11767#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:20:09,056 INFO L290 TraceCheckUtils]: 13: Hoare triple {11767#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11706#true} is VALID [2022-04-08 04:20:09,056 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,056 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-08 04:20:09,056 INFO L290 TraceCheckUtils]: 16: Hoare triple {11706#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L272 TraceCheckUtils]: 17: Hoare triple {11706#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {11767#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:20:09,057 INFO L290 TraceCheckUtils]: 18: Hoare triple {11767#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L272 TraceCheckUtils]: 19: Hoare triple {11706#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L272 TraceCheckUtils]: 24: Hoare triple {11706#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 04:20:09,057 INFO L272 TraceCheckUtils]: 29: Hoare triple {11706#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:09,058 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:09,058 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:09,058 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,058 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 04:20:09,058 INFO L290 TraceCheckUtils]: 34: Hoare triple {11706#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {11706#true} is VALID [2022-04-08 04:20:09,058 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,058 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-08 04:20:09,058 INFO L290 TraceCheckUtils]: 37: Hoare triple {11706#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {11737#(not (= |main_~#i~2.base| |main_~#j~2.base|))} is VALID [2022-04-08 04:20:09,059 INFO L272 TraceCheckUtils]: 38: Hoare triple {11737#(not (= |main_~#i~2.base| |main_~#j~2.base|))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {11767#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:20:09,060 INFO L290 TraceCheckUtils]: 39: Hoare triple {11767#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {11780#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,060 INFO L290 TraceCheckUtils]: 40: Hoare triple {11780#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,061 INFO L290 TraceCheckUtils]: 41: Hoare triple {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,061 INFO L290 TraceCheckUtils]: 42: Hoare triple {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,062 INFO L290 TraceCheckUtils]: 43: Hoare triple {11781#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (<= (+ finddup_~i~1 1) finddup_~j~1) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {11782#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,062 INFO L290 TraceCheckUtils]: 44: Hoare triple {11782#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {11782#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:09,063 INFO L290 TraceCheckUtils]: 45: Hoare triple {11782#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (<= (+ finddup_~i~1 2) finddup_~j~1) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {11783#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} is VALID [2022-04-08 04:20:09,063 INFO L290 TraceCheckUtils]: 46: Hoare triple {11783#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} assume true; {11783#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} is VALID [2022-04-08 04:20:09,065 INFO L284 TraceCheckUtils]: 47: Hoare quadruple {11783#(and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (<= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)))} {11737#(not (= |main_~#i~2.base| |main_~#j~2.base|))} #104#return; {11747#(and (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} is VALID [2022-04-08 04:20:09,065 INFO L290 TraceCheckUtils]: 48: Hoare triple {11747#(and (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {11748#(and (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} is VALID [2022-04-08 04:20:09,065 INFO L272 TraceCheckUtils]: 49: Hoare triple {11748#(and (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} call __VERIFIER_assert(~r~0); {11706#true} is VALID [2022-04-08 04:20:09,065 INFO L290 TraceCheckUtils]: 50: Hoare triple {11706#true} ~cond := #in~cond; {11784#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:20:09,066 INFO L290 TraceCheckUtils]: 51: Hoare triple {11784#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:09,066 INFO L290 TraceCheckUtils]: 52: Hoare triple {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:09,067 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} {11748#(and (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} #106#return; {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} is VALID [2022-04-08 04:20:09,067 INFO L290 TraceCheckUtils]: 54: Hoare triple {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} is VALID [2022-04-08 04:20:09,068 INFO L290 TraceCheckUtils]: 55: Hoare triple {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} is VALID [2022-04-08 04:20:09,068 INFO L272 TraceCheckUtils]: 56: Hoare triple {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:09,068 INFO L290 TraceCheckUtils]: 57: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:09,068 INFO L290 TraceCheckUtils]: 58: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:09,068 INFO L290 TraceCheckUtils]: 59: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,068 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {11706#true} {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} #108#return; {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} is VALID [2022-04-08 04:20:09,069 INFO L290 TraceCheckUtils]: 61: Hoare triple {11753#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (<= 2 (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|)))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:09,069 INFO L290 TraceCheckUtils]: 62: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:09,069 INFO L272 TraceCheckUtils]: 63: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:09,069 INFO L290 TraceCheckUtils]: 64: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:09,069 INFO L290 TraceCheckUtils]: 65: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:09,069 INFO L290 TraceCheckUtils]: 66: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:09,070 INFO L284 TraceCheckUtils]: 67: Hoare quadruple {11706#true} {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #110#return; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:09,070 INFO L290 TraceCheckUtils]: 68: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} havoc #t~mem18;havoc #t~mem19;havoc #t~short20;call #t~mem21 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem22 := read~int(~#j~2.base, ~#j~2.offset, 4); {11763#(not (= |main_#t~mem22| |main_#t~mem21|))} is VALID [2022-04-08 04:20:09,071 INFO L272 TraceCheckUtils]: 69: Hoare triple {11763#(not (= |main_#t~mem22| |main_#t~mem21|))} call __VERIFIER_assert((if #t~mem21 != #t~mem22 then 1 else 0)); {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:09,071 INFO L290 TraceCheckUtils]: 70: Hoare triple {11764#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {11765#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 04:20:09,071 INFO L290 TraceCheckUtils]: 71: Hoare triple {11765#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {11707#false} is VALID [2022-04-08 04:20:09,071 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-08 04:20:09,072 INFO L134 CoverageAnalysis]: Checked inductivity of 44 backedges. 7 proven. 7 refuted. 0 times theorem prover too weak. 30 trivial. 0 not checked. [2022-04-08 04:20:09,072 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:20:09,072 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1067795187] [2022-04-08 04:20:09,073 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1067795187] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:20:09,073 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1821808432] [2022-04-08 04:20:09,073 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 04:20:09,073 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:20:09,073 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:20:09,075 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-04-08 04:20:09,076 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-04-08 04:20:09,160 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 04:20:09,160 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:20:09,162 INFO L263 TraceCheckSpWp]: Trace formula consists of 296 conjuncts, 47 conjunts are in the unsatisfiable core [2022-04-08 04:20:09,174 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:09,175 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:20:09,232 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 10 treesize of output 8 [2022-04-08 04:20:09,415 INFO L356 Elim1Store]: treesize reduction 17, result has 46.9 percent of original size [2022-04-08 04:20:09,415 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 0 select indices, 0 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 1 case distinctions, treesize of input 27 treesize of output 23 [2022-04-08 04:20:10,007 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-04-08 04:20:10,008 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 29 treesize of output 17 [2022-04-08 04:20:10,079 INFO L272 TraceCheckUtils]: 0: Hoare triple {11706#true} call ULTIMATE.init(); {11706#true} is VALID [2022-04-08 04:20:10,079 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#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(10, 2);call #Ultimate.allocInit(12, 3); {11706#true} is VALID [2022-04-08 04:20:10,079 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,079 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-08 04:20:10,079 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-08 04:20:10,079 INFO L290 TraceCheckUtils]: 5: Hoare triple {11706#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {11706#true} is VALID [2022-04-08 04:20:10,079 INFO L272 TraceCheckUtils]: 6: Hoare triple {11706#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:10,079 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:10,079 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 11: Hoare triple {11706#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L272 TraceCheckUtils]: 12: Hoare triple {11706#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 16: Hoare triple {11706#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L272 TraceCheckUtils]: 17: Hoare triple {11706#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 18: Hoare triple {11706#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L272 TraceCheckUtils]: 19: Hoare triple {11706#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:10,080 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L272 TraceCheckUtils]: 24: Hoare triple {11706#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L272 TraceCheckUtils]: 29: Hoare triple {11706#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L290 TraceCheckUtils]: 34: Hoare triple {11706#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,081 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-08 04:20:10,082 INFO L290 TraceCheckUtils]: 37: Hoare triple {11706#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {11899#(and (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} is VALID [2022-04-08 04:20:10,082 INFO L272 TraceCheckUtils]: 38: Hoare triple {11899#(and (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {11706#true} is VALID [2022-04-08 04:20:10,082 INFO L290 TraceCheckUtils]: 39: Hoare triple {11706#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {11780#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:10,083 INFO L290 TraceCheckUtils]: 40: Hoare triple {11780#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {11909#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:10,083 INFO L290 TraceCheckUtils]: 41: Hoare triple {11909#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {11909#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:10,084 INFO L290 TraceCheckUtils]: 42: Hoare triple {11909#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {11909#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:10,084 INFO L290 TraceCheckUtils]: 43: Hoare triple {11909#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {11919#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~j~1 (+ finddup_~i~1 2)) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:10,085 INFO L290 TraceCheckUtils]: 44: Hoare triple {11919#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~j~1 (+ finddup_~i~1 2)) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {11919#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~j~1 (+ finddup_~i~1 2)) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:10,085 INFO L290 TraceCheckUtils]: 45: Hoare triple {11919#(and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~j~1 (+ finddup_~i~1 2)) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {11926#(and (= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)) (or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)))} is VALID [2022-04-08 04:20:10,086 INFO L290 TraceCheckUtils]: 46: Hoare triple {11926#(and (= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)) (or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)))} assume true; {11926#(and (= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)) (or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)))} is VALID [2022-04-08 04:20:10,087 INFO L284 TraceCheckUtils]: 47: Hoare quadruple {11926#(and (= 2 (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|)) (or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)))} {11899#(and (= |main_~#j~2.offset| 0) (= |main_~#i~2.offset| 0) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} #104#return; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,087 INFO L290 TraceCheckUtils]: 48: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,088 INFO L272 TraceCheckUtils]: 49: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} call __VERIFIER_assert(~r~0); {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,089 INFO L290 TraceCheckUtils]: 50: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} ~cond := #in~cond; {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,089 INFO L290 TraceCheckUtils]: 51: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} assume !(0 == ~cond); {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,090 INFO L290 TraceCheckUtils]: 52: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} assume true; {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,090 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} #106#return; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,091 INFO L290 TraceCheckUtils]: 54: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,091 INFO L290 TraceCheckUtils]: 55: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,092 INFO L272 TraceCheckUtils]: 56: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,095 INFO L290 TraceCheckUtils]: 57: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} ~cond := #in~cond; {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,096 INFO L290 TraceCheckUtils]: 58: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} assume !(0 == ~cond); {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,096 INFO L290 TraceCheckUtils]: 59: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} assume true; {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,097 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} #108#return; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,097 INFO L290 TraceCheckUtils]: 61: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,097 INFO L290 TraceCheckUtils]: 62: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,098 INFO L272 TraceCheckUtils]: 63: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,099 INFO L290 TraceCheckUtils]: 64: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} ~cond := #in~cond; {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,111 INFO L290 TraceCheckUtils]: 65: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} assume !(0 == ~cond); {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,112 INFO L290 TraceCheckUtils]: 66: Hoare triple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} assume true; {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} is VALID [2022-04-08 04:20:10,112 INFO L284 TraceCheckUtils]: 67: Hoare quadruple {11940#(and (exists ((|v_main_~#j~2.base_BEFORE_CALL_12| Int)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_12|) 0) 2)) (exists ((|v_main_~#i~2.base_BEFORE_CALL_13| Int)) (= 0 (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_13|) 0))))} {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} #110#return; {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} is VALID [2022-04-08 04:20:10,113 INFO L290 TraceCheckUtils]: 68: Hoare triple {11933#(and (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 2) (= |main_~#i~2.offset| 0))} havoc #t~mem18;havoc #t~mem19;havoc #t~short20;call #t~mem21 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem22 := read~int(~#j~2.base, ~#j~2.offset, 4); {11998#(and (= |main_#t~mem22| 2) (= |main_#t~mem21| 0))} is VALID [2022-04-08 04:20:10,113 INFO L272 TraceCheckUtils]: 69: Hoare triple {11998#(and (= |main_#t~mem22| 2) (= |main_#t~mem21| 0))} call __VERIFIER_assert((if #t~mem21 != #t~mem22 then 1 else 0)); {12002#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 04:20:10,114 INFO L290 TraceCheckUtils]: 70: Hoare triple {12002#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {12006#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:20:10,114 INFO L290 TraceCheckUtils]: 71: Hoare triple {12006#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11707#false} is VALID [2022-04-08 04:20:10,114 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-08 04:20:10,114 INFO L134 CoverageAnalysis]: Checked inductivity of 44 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 36 trivial. 0 not checked. [2022-04-08 04:20:10,114 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:20:10,402 INFO L356 Elim1Store]: treesize reduction 10, result has 9.1 percent of original size [2022-04-08 04:20:10,402 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 670 treesize of output 606 [2022-04-08 04:20:10,991 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-08 04:20:10,992 INFO L290 TraceCheckUtils]: 71: Hoare triple {12006#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11707#false} is VALID [2022-04-08 04:20:10,992 INFO L290 TraceCheckUtils]: 70: Hoare triple {12002#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {12006#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:20:10,992 INFO L272 TraceCheckUtils]: 69: Hoare triple {11763#(not (= |main_#t~mem22| |main_#t~mem21|))} call __VERIFIER_assert((if #t~mem21 != #t~mem22 then 1 else 0)); {12002#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 04:20:10,993 INFO L290 TraceCheckUtils]: 68: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} havoc #t~mem18;havoc #t~mem19;havoc #t~short20;call #t~mem21 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem22 := read~int(~#j~2.base, ~#j~2.offset, 4); {11763#(not (= |main_#t~mem22| |main_#t~mem21|))} is VALID [2022-04-08 04:20:10,994 INFO L284 TraceCheckUtils]: 67: Hoare quadruple {11706#true} {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #110#return; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:10,994 INFO L290 TraceCheckUtils]: 66: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,994 INFO L290 TraceCheckUtils]: 65: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:10,994 INFO L290 TraceCheckUtils]: 64: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:10,994 INFO L272 TraceCheckUtils]: 63: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:10,995 INFO L290 TraceCheckUtils]: 62: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:10,995 INFO L290 TraceCheckUtils]: 61: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:10,995 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {11706#true} {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #108#return; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:10,996 INFO L290 TraceCheckUtils]: 59: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,996 INFO L290 TraceCheckUtils]: 58: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:10,996 INFO L290 TraceCheckUtils]: 57: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:10,996 INFO L272 TraceCheckUtils]: 56: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:10,996 INFO L290 TraceCheckUtils]: 55: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:10,997 INFO L290 TraceCheckUtils]: 54: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:10,997 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {11706#true} {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} #106#return; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:10,997 INFO L290 TraceCheckUtils]: 52: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:10,997 INFO L290 TraceCheckUtils]: 51: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:10,997 INFO L290 TraceCheckUtils]: 50: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:10,997 INFO L272 TraceCheckUtils]: 49: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} call __VERIFIER_assert(~r~0); {11706#true} is VALID [2022-04-08 04:20:11,000 INFO L290 TraceCheckUtils]: 48: Hoare triple {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:11,001 INFO L284 TraceCheckUtils]: 47: Hoare quadruple {12092#(or (not (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))) (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)))} {12088#(or (not (= |main_~#j~2.offset| |main_~#i~2.offset|)) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} #104#return; {11758#(not (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)))} is VALID [2022-04-08 04:20:11,002 INFO L290 TraceCheckUtils]: 46: Hoare triple {12092#(or (not (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))) (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)))} assume true; {12092#(or (not (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))) (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)))} is VALID [2022-04-08 04:20:11,003 INFO L290 TraceCheckUtils]: 45: Hoare triple {12099#(or (and (or (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= finddup_~j~1 finddup_~i~1))) (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base))) (or (and (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset) (not (= finddup_~j~1 finddup_~i~1))) (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)))) (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {12092#(or (not (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|))) (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)))} is VALID [2022-04-08 04:20:11,004 INFO L290 TraceCheckUtils]: 44: Hoare triple {12099#(or (and (or (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= finddup_~j~1 finddup_~i~1))) (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base))) (or (and (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset) (not (= finddup_~j~1 finddup_~i~1))) (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)))) (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {12099#(or (and (or (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= finddup_~j~1 finddup_~i~1))) (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base))) (or (and (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset) (not (= finddup_~j~1 finddup_~i~1))) (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)))) (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)))} is VALID [2022-04-08 04:20:11,004 INFO L290 TraceCheckUtils]: 43: Hoare triple {12106#(or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (and (or (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))) (or (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)))))} #t~post9 := ~j~1;~j~1 := 1 + #t~post9;havoc #t~post9; {12099#(or (and (or (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (not (= finddup_~j~1 finddup_~i~1))) (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base))) (or (and (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset) (not (= finddup_~j~1 finddup_~i~1))) (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)))) (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)))} is VALID [2022-04-08 04:20:11,005 INFO L290 TraceCheckUtils]: 42: Hoare triple {12106#(or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (and (or (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))) (or (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)))))} assume !(#t~mem10 == #t~mem11);havoc #t~mem10;havoc #t~mem11; {12106#(or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (and (or (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))) (or (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)))))} is VALID [2022-04-08 04:20:11,006 INFO L290 TraceCheckUtils]: 41: Hoare triple {12106#(or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (and (or (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))) (or (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)))))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {12106#(or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (and (or (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))) (or (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)))))} is VALID [2022-04-08 04:20:11,007 INFO L290 TraceCheckUtils]: 40: Hoare triple {12116#(or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (and (or (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|)) (not (= |finddup_#in~_i.base| finddup_~_i.base))) (or (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)))))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {12106#(or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (and (or (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (not (= |finddup_#in~_i.base| finddup_~_i.base)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|))) (or (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (not (= finddup_~i~1 (+ finddup_~j~1 1))) (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)))))} is VALID [2022-04-08 04:20:11,007 INFO L290 TraceCheckUtils]: 39: Hoare triple {11706#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {12116#(or (and (= |finddup_#in~_i.offset| |finddup_#in~_j.offset|) (= |finddup_#in~_i.base| |finddup_#in~_j.base|)) (and (or (not (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|)) (not (= |finddup_#in~_i.base| finddup_~_i.base))) (or (and (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (and (= |finddup_#in~_j.base| finddup_~_i.base) (= |finddup_#in~_i.base| finddup_~_j.base) (= |finddup_#in~_j.offset| finddup_~_i.offset) (= |finddup_#in~_i.offset| finddup_~_j.offset)))))} is VALID [2022-04-08 04:20:11,007 INFO L272 TraceCheckUtils]: 38: Hoare triple {12088#(or (not (= |main_~#j~2.offset| |main_~#i~2.offset|)) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {11706#true} is VALID [2022-04-08 04:20:11,008 INFO L290 TraceCheckUtils]: 37: Hoare triple {11706#true} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {12088#(or (not (= |main_~#j~2.offset| |main_~#i~2.offset|)) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} is VALID [2022-04-08 04:20:11,008 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-08 04:20:11,008 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:11,008 INFO L290 TraceCheckUtils]: 34: Hoare triple {11706#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {11706#true} is VALID [2022-04-08 04:20:11,008 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 04:20:11,008 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:11,008 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L272 TraceCheckUtils]: 29: Hoare triple {11706#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L272 TraceCheckUtils]: 24: Hoare triple {11706#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L272 TraceCheckUtils]: 19: Hoare triple {11706#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L290 TraceCheckUtils]: 18: Hoare triple {11706#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {11706#true} is VALID [2022-04-08 04:20:11,009 INFO L272 TraceCheckUtils]: 17: Hoare triple {11706#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L290 TraceCheckUtils]: 16: Hoare triple {11706#true} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L272 TraceCheckUtils]: 12: Hoare triple {11706#true} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L290 TraceCheckUtils]: 11: Hoare triple {11706#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L272 TraceCheckUtils]: 6: Hoare triple {11706#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L290 TraceCheckUtils]: 5: Hoare triple {11706#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-08 04:20:11,010 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-08 04:20:11,011 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 04:20:11,011 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#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(10, 2);call #Ultimate.allocInit(12, 3); {11706#true} is VALID [2022-04-08 04:20:11,011 INFO L272 TraceCheckUtils]: 0: Hoare triple {11706#true} call ULTIMATE.init(); {11706#true} is VALID [2022-04-08 04:20:11,011 INFO L134 CoverageAnalysis]: Checked inductivity of 44 backedges. 6 proven. 2 refuted. 0 times theorem prover too weak. 36 trivial. 0 not checked. [2022-04-08 04:20:11,011 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1821808432] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 04:20:11,011 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-08 04:20:11,011 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 12, 11] total 31 [2022-04-08 04:20:11,011 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 04:20:11,011 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1641493127] [2022-04-08 04:20:11,012 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1641493127] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 04:20:11,012 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 04:20:11,012 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [17] imperfect sequences [] total 17 [2022-04-08 04:20:11,012 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [90874275] [2022-04-08 04:20:11,012 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 04:20:11,012 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 14 states have (on average 2.642857142857143) internal successors, (37), 14 states have internal predecessors, (37), 6 states have call successors, (13), 4 states have call predecessors, (13), 3 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) Word has length 73 [2022-04-08 04:20:11,012 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 04:20:11,012 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 17 states, 14 states have (on average 2.642857142857143) internal successors, (37), 14 states have internal predecessors, (37), 6 states have call successors, (13), 4 states have call predecessors, (13), 3 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2022-04-08 04:20:11,053 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:20:11,053 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 17 states [2022-04-08 04:20:11,053 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 04:20:11,054 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2022-04-08 04:20:11,054 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=103, Invalid=827, Unknown=0, NotChecked=0, Total=930 [2022-04-08 04:20:11,054 INFO L87 Difference]: Start difference. First operand 115 states and 136 transitions. Second operand has 17 states, 14 states have (on average 2.642857142857143) internal successors, (37), 14 states have internal predecessors, (37), 6 states have call successors, (13), 4 states have call predecessors, (13), 3 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2022-04-08 04:20:13,713 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:20:13,714 INFO L93 Difference]: Finished difference Result 135 states and 160 transitions. [2022-04-08 04:20:13,714 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-04-08 04:20:13,714 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 14 states have (on average 2.642857142857143) internal successors, (37), 14 states have internal predecessors, (37), 6 states have call successors, (13), 4 states have call predecessors, (13), 3 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) Word has length 73 [2022-04-08 04:20:13,714 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 04:20:13,714 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 14 states have (on average 2.642857142857143) internal successors, (37), 14 states have internal predecessors, (37), 6 states have call successors, (13), 4 states have call predecessors, (13), 3 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2022-04-08 04:20:13,716 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 102 transitions. [2022-04-08 04:20:13,716 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 14 states have (on average 2.642857142857143) internal successors, (37), 14 states have internal predecessors, (37), 6 states have call successors, (13), 4 states have call predecessors, (13), 3 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2022-04-08 04:20:13,717 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 102 transitions. [2022-04-08 04:20:13,717 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 17 states and 102 transitions. [2022-04-08 04:20:13,815 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 102 edges. 102 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:20:13,817 INFO L225 Difference]: With dead ends: 135 [2022-04-08 04:20:13,817 INFO L226 Difference]: Without dead ends: 133 [2022-04-08 04:20:13,817 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 196 GetRequests, 148 SyntacticMatches, 6 SemanticMatches, 42 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 405 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=216, Invalid=1676, Unknown=0, NotChecked=0, Total=1892 [2022-04-08 04:20:13,818 INFO L913 BasicCegarLoop]: 46 mSDtfsCounter, 96 mSDsluCounter, 24 mSDsCounter, 0 mSdLazyCounter, 1053 mSolverCounterSat, 80 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 97 SdHoareTripleChecker+Valid, 70 SdHoareTripleChecker+Invalid, 1133 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 80 IncrementalHoareTripleChecker+Valid, 1053 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.0s IncrementalHoareTripleChecker+Time [2022-04-08 04:20:13,818 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [97 Valid, 70 Invalid, 1133 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [80 Valid, 1053 Invalid, 0 Unknown, 0 Unchecked, 1.0s Time] [2022-04-08 04:20:13,818 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 133 states. [2022-04-08 04:20:14,189 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 133 to 129. [2022-04-08 04:20:14,189 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 04:20:14,189 INFO L82 GeneralOperation]: Start isEquivalent. First operand 133 states. Second operand has 129 states, 90 states have (on average 1.1444444444444444) internal successors, (103), 93 states have internal predecessors, (103), 25 states have call successors, (25), 12 states have call predecessors, (25), 13 states have return successors, (26), 23 states have call predecessors, (26), 23 states have call successors, (26) [2022-04-08 04:20:14,190 INFO L74 IsIncluded]: Start isIncluded. First operand 133 states. Second operand has 129 states, 90 states have (on average 1.1444444444444444) internal successors, (103), 93 states have internal predecessors, (103), 25 states have call successors, (25), 12 states have call predecessors, (25), 13 states have return successors, (26), 23 states have call predecessors, (26), 23 states have call successors, (26) [2022-04-08 04:20:14,190 INFO L87 Difference]: Start difference. First operand 133 states. Second operand has 129 states, 90 states have (on average 1.1444444444444444) internal successors, (103), 93 states have internal predecessors, (103), 25 states have call successors, (25), 12 states have call predecessors, (25), 13 states have return successors, (26), 23 states have call predecessors, (26), 23 states have call successors, (26) [2022-04-08 04:20:14,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:20:14,192 INFO L93 Difference]: Finished difference Result 133 states and 158 transitions. [2022-04-08 04:20:14,192 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 158 transitions. [2022-04-08 04:20:14,192 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:20:14,192 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:20:14,193 INFO L74 IsIncluded]: Start isIncluded. First operand has 129 states, 90 states have (on average 1.1444444444444444) internal successors, (103), 93 states have internal predecessors, (103), 25 states have call successors, (25), 12 states have call predecessors, (25), 13 states have return successors, (26), 23 states have call predecessors, (26), 23 states have call successors, (26) Second operand 133 states. [2022-04-08 04:20:14,193 INFO L87 Difference]: Start difference. First operand has 129 states, 90 states have (on average 1.1444444444444444) internal successors, (103), 93 states have internal predecessors, (103), 25 states have call successors, (25), 12 states have call predecessors, (25), 13 states have return successors, (26), 23 states have call predecessors, (26), 23 states have call successors, (26) Second operand 133 states. [2022-04-08 04:20:14,195 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 04:20:14,195 INFO L93 Difference]: Finished difference Result 133 states and 158 transitions. [2022-04-08 04:20:14,195 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 158 transitions. [2022-04-08 04:20:14,195 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 04:20:14,195 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 04:20:14,195 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 04:20:14,195 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 04:20:14,195 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 129 states, 90 states have (on average 1.1444444444444444) internal successors, (103), 93 states have internal predecessors, (103), 25 states have call successors, (25), 12 states have call predecessors, (25), 13 states have return successors, (26), 23 states have call predecessors, (26), 23 states have call successors, (26) [2022-04-08 04:20:14,197 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 129 states to 129 states and 154 transitions. [2022-04-08 04:20:14,197 INFO L78 Accepts]: Start accepts. Automaton has 129 states and 154 transitions. Word has length 73 [2022-04-08 04:20:14,198 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 04:20:14,198 INFO L478 AbstractCegarLoop]: Abstraction has 129 states and 154 transitions. [2022-04-08 04:20:14,198 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 17 states, 14 states have (on average 2.642857142857143) internal successors, (37), 14 states have internal predecessors, (37), 6 states have call successors, (13), 4 states have call predecessors, (13), 3 states have return successors, (11), 4 states have call predecessors, (11), 5 states have call successors, (11) [2022-04-08 04:20:14,198 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 129 states and 154 transitions. [2022-04-08 04:20:14,529 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 154 edges. 154 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 04:20:14,530 INFO L276 IsEmpty]: Start isEmpty. Operand 129 states and 154 transitions. [2022-04-08 04:20:14,530 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 77 [2022-04-08 04:20:14,530 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 04:20:14,530 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 04:20:14,547 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Forceful destruction successful, exit code 0 [2022-04-08 04:20:14,746 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 10 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable14 [2022-04-08 04:20:14,746 INFO L403 AbstractCegarLoop]: === Iteration 16 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 04:20:14,746 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 04:20:14,747 INFO L85 PathProgramCache]: Analyzing trace with hash 680409498, now seen corresponding path program 1 times [2022-04-08 04:20:14,747 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 04:20:14,747 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [872632006] [2022-04-08 04:20:14,747 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 04:20:14,747 INFO L85 PathProgramCache]: Analyzing trace with hash 680409498, now seen corresponding path program 2 times [2022-04-08 04:20:14,747 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 04:20:14,747 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [400481079] [2022-04-08 04:20:14,747 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 04:20:14,747 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 04:20:14,769 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:14,946 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 04:20:14,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:14,949 INFO L290 TraceCheckUtils]: 0: Hoare triple {13122#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {13058#true} is VALID [2022-04-08 04:20:14,950 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,950 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-08 04:20:14,950 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:20:14,950 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:14,952 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:14,952 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:14,952 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,952 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-08 04:20:14,961 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 04:20:14,962 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:14,964 INFO L290 TraceCheckUtils]: 0: Hoare triple {13123#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {13058#true} is VALID [2022-04-08 04:20:14,964 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,965 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {13058#true} {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} #100#return; {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} is VALID [2022-04-08 04:20:14,965 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 04:20:14,969 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:14,973 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 04:20:14,973 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:14,975 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:14,975 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:14,975 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,975 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-08 04:20:14,975 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 04:20:14,976 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:14,977 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:14,977 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:14,977 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,977 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-08 04:20:14,978 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 04:20:14,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:14,979 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L290 TraceCheckUtils]: 0: Hoare triple {13123#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L272 TraceCheckUtils]: 1: Hoare triple {13058#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L290 TraceCheckUtils]: 3: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L290 TraceCheckUtils]: 4: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L272 TraceCheckUtils]: 6: Hoare triple {13058#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:14,980 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L272 TraceCheckUtils]: 11: Hoare triple {13058#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L290 TraceCheckUtils]: 12: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L290 TraceCheckUtils]: 13: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L290 TraceCheckUtils]: 16: Hoare triple {13058#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {13058#true} is VALID [2022-04-08 04:20:14,981 INFO L290 TraceCheckUtils]: 17: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:14,982 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {13058#true} {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} #102#return; {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} is VALID [2022-04-08 04:20:14,982 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 04:20:14,985 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:15,171 INFO L290 TraceCheckUtils]: 0: Hoare triple {13123#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {13136#(and (or (not (= finddup_~a.offset 0)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~a.offset (* finddup_~i~1 4)) 0) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))) (or (= finddup_~a.offset 0) (= finddup_~a.offset |finddup_#in~a.offset|)))} is VALID [2022-04-08 04:20:15,172 INFO L290 TraceCheckUtils]: 1: Hoare triple {13136#(and (or (not (= finddup_~a.offset 0)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~a.offset (* finddup_~i~1 4)) 0) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))) (or (= finddup_~a.offset 0) (= finddup_~a.offset |finddup_#in~a.offset|)))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {13136#(and (or (not (= finddup_~a.offset 0)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~a.offset (* finddup_~i~1 4)) 0) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))) (or (= finddup_~a.offset 0) (= finddup_~a.offset |finddup_#in~a.offset|)))} is VALID [2022-04-08 04:20:15,173 INFO L290 TraceCheckUtils]: 2: Hoare triple {13136#(and (or (not (= finddup_~a.offset 0)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~a.offset (* finddup_~i~1 4)) 0) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))) (or (= finddup_~a.offset 0) (= finddup_~a.offset |finddup_#in~a.offset|)))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {13137#(or (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (or (= |finddup_#in~_j.base| |finddup_#in~a.base|) (and (= (select (select |#memory_int| |finddup_#in~a.base|) 0) |finddup_#t~mem10|) (= finddup_~i~1 0) (= |finddup_#t~mem11| (select (select |#memory_int| |finddup_#in~a.base|) (* finddup_~j~1 4))) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (= |finddup_#in~_i.base| |finddup_#in~a.base|))) (not (= |finddup_#in~a.offset| 0)))} is VALID [2022-04-08 04:20:15,174 INFO L290 TraceCheckUtils]: 3: Hoare triple {13137#(or (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (or (= |finddup_#in~_j.base| |finddup_#in~a.base|) (and (= (select (select |#memory_int| |finddup_#in~a.base|) 0) |finddup_#t~mem10|) (= finddup_~i~1 0) (= |finddup_#t~mem11| (select (select |#memory_int| |finddup_#in~a.base|) (* finddup_~j~1 4))) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (= |finddup_#in~_i.base| |finddup_#in~a.base|))) (not (= |finddup_#in~a.offset| 0)))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {13138#(or (and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (= (select (select |#memory_int| |finddup_#in~a.base|) 0) (select (select |#memory_int| |finddup_#in~a.base|) (* (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 4)))) (not (= |finddup_#in~a.offset| 0)) (= |finddup_#in~_j.base| |finddup_#in~a.base|) (= |finddup_#in~_i.base| |finddup_#in~a.base|))} is VALID [2022-04-08 04:20:15,174 INFO L290 TraceCheckUtils]: 4: Hoare triple {13138#(or (and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (= (select (select |#memory_int| |finddup_#in~a.base|) 0) (select (select |#memory_int| |finddup_#in~a.base|) (* (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 4)))) (not (= |finddup_#in~a.offset| 0)) (= |finddup_#in~_j.base| |finddup_#in~a.base|) (= |finddup_#in~_i.base| |finddup_#in~a.base|))} assume true; {13138#(or (and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (= (select (select |#memory_int| |finddup_#in~a.base|) 0) (select (select |#memory_int| |finddup_#in~a.base|) (* (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 4)))) (not (= |finddup_#in~a.offset| 0)) (= |finddup_#in~_j.base| |finddup_#in~a.base|) (= |finddup_#in~_i.base| |finddup_#in~a.base|))} is VALID [2022-04-08 04:20:15,176 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {13138#(or (and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (= (select (select |#memory_int| |finddup_#in~a.base|) 0) (select (select |#memory_int| |finddup_#in~a.base|) (* (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 4)))) (not (= |finddup_#in~a.offset| 0)) (= |finddup_#in~_j.base| |finddup_#in~a.base|) (= |finddup_#in~_i.base| |finddup_#in~a.base|))} {13091#(and (= main_~a~0.offset 0) (not (= main_~a~0.base |main_~#j~2.base|)) (not (= |main_~#i~2.base| main_~a~0.base)) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} #104#return; {13098#(and (= main_~a~0.offset 0) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)))} is VALID [2022-04-08 04:20:15,176 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 04:20:15,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:15,194 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13139#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:20:15,195 INFO L290 TraceCheckUtils]: 1: Hoare triple {13139#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:15,195 INFO L290 TraceCheckUtils]: 2: Hoare triple {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:15,196 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} {13099#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} #106#return; {13104#(and (= main_~a~0.offset 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)))} is VALID [2022-04-08 04:20:15,196 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-08 04:20:15,197 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:15,199 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,199 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,199 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,203 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} #108#return; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,204 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 60 [2022-04-08 04:20:15,205 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:15,206 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,207 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,207 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,207 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} #110#return; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,207 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 66 [2022-04-08 04:20:15,208 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:15,210 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,210 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,210 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,210 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} #112#return; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,211 INFO L272 TraceCheckUtils]: 0: Hoare triple {13058#true} call ULTIMATE.init(); {13122#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 04:20:15,211 INFO L290 TraceCheckUtils]: 1: Hoare triple {13122#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #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(10, 2);call #Ultimate.allocInit(12, 3); {13058#true} is VALID [2022-04-08 04:20:15,211 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,211 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-08 04:20:15,211 INFO L272 TraceCheckUtils]: 4: Hoare triple {13058#true} call #t~ret27 := main(); {13058#true} is VALID [2022-04-08 04:20:15,211 INFO L290 TraceCheckUtils]: 5: Hoare triple {13058#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {13058#true} is VALID [2022-04-08 04:20:15,211 INFO L272 TraceCheckUtils]: 6: Hoare triple {13058#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:15,211 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,211 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,212 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,212 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-08 04:20:15,212 INFO L290 TraceCheckUtils]: 11: Hoare triple {13058#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} is VALID [2022-04-08 04:20:15,213 INFO L272 TraceCheckUtils]: 12: Hoare triple {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {13123#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:20:15,213 INFO L290 TraceCheckUtils]: 13: Hoare triple {13123#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {13058#true} is VALID [2022-04-08 04:20:15,213 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,214 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {13058#true} {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} #100#return; {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} is VALID [2022-04-08 04:20:15,214 INFO L290 TraceCheckUtils]: 16: Hoare triple {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} is VALID [2022-04-08 04:20:15,214 INFO L272 TraceCheckUtils]: 17: Hoare triple {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {13123#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 18: Hoare triple {13123#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L272 TraceCheckUtils]: 19: Hoare triple {13058#true} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 20: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 21: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 22: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L272 TraceCheckUtils]: 24: Hoare triple {13058#true} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 25: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 26: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 27: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L272 TraceCheckUtils]: 29: Hoare triple {13058#true} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 30: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,215 INFO L290 TraceCheckUtils]: 31: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,216 INFO L290 TraceCheckUtils]: 32: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,216 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-08 04:20:15,216 INFO L290 TraceCheckUtils]: 34: Hoare triple {13058#true} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {13058#true} is VALID [2022-04-08 04:20:15,216 INFO L290 TraceCheckUtils]: 35: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,216 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {13058#true} {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} #102#return; {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} is VALID [2022-04-08 04:20:15,217 INFO L290 TraceCheckUtils]: 37: Hoare triple {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {13091#(and (= main_~a~0.offset 0) (not (= main_~a~0.base |main_~#j~2.base|)) (not (= |main_~#i~2.base| main_~a~0.base)) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} is VALID [2022-04-08 04:20:15,218 INFO L272 TraceCheckUtils]: 38: Hoare triple {13091#(and (= main_~a~0.offset 0) (not (= main_~a~0.base |main_~#j~2.base|)) (not (= |main_~#i~2.base| main_~a~0.base)) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {13123#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:20:15,218 INFO L290 TraceCheckUtils]: 39: Hoare triple {13123#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {13136#(and (or (not (= finddup_~a.offset 0)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~a.offset (* finddup_~i~1 4)) 0) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))) (or (= finddup_~a.offset 0) (= finddup_~a.offset |finddup_#in~a.offset|)))} is VALID [2022-04-08 04:20:15,219 INFO L290 TraceCheckUtils]: 40: Hoare triple {13136#(and (or (not (= finddup_~a.offset 0)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~a.offset (* finddup_~i~1 4)) 0) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))) (or (= finddup_~a.offset 0) (= finddup_~a.offset |finddup_#in~a.offset|)))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {13136#(and (or (not (= finddup_~a.offset 0)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~a.offset (* finddup_~i~1 4)) 0) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))) (or (= finddup_~a.offset 0) (= finddup_~a.offset |finddup_#in~a.offset|)))} is VALID [2022-04-08 04:20:15,220 INFO L290 TraceCheckUtils]: 41: Hoare triple {13136#(and (or (not (= finddup_~a.offset 0)) (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= (+ finddup_~a.offset (* finddup_~i~1 4)) 0) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))) (or (= finddup_~a.offset 0) (= finddup_~a.offset |finddup_#in~a.offset|)))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {13137#(or (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (or (= |finddup_#in~_j.base| |finddup_#in~a.base|) (and (= (select (select |#memory_int| |finddup_#in~a.base|) 0) |finddup_#t~mem10|) (= finddup_~i~1 0) (= |finddup_#t~mem11| (select (select |#memory_int| |finddup_#in~a.base|) (* finddup_~j~1 4))) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (= |finddup_#in~_i.base| |finddup_#in~a.base|))) (not (= |finddup_#in~a.offset| 0)))} is VALID [2022-04-08 04:20:15,221 INFO L290 TraceCheckUtils]: 42: Hoare triple {13137#(or (and (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~_j.offset |finddup_#in~_j.offset|) (or (= |finddup_#in~_j.base| |finddup_#in~a.base|) (and (= (select (select |#memory_int| |finddup_#in~a.base|) 0) |finddup_#t~mem10|) (= finddup_~i~1 0) (= |finddup_#t~mem11| (select (select |#memory_int| |finddup_#in~a.base|) (* finddup_~j~1 4))) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset)) (= |finddup_#in~_i.base| |finddup_#in~a.base|))) (not (= |finddup_#in~a.offset| 0)))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {13138#(or (and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (= (select (select |#memory_int| |finddup_#in~a.base|) 0) (select (select |#memory_int| |finddup_#in~a.base|) (* (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 4)))) (not (= |finddup_#in~a.offset| 0)) (= |finddup_#in~_j.base| |finddup_#in~a.base|) (= |finddup_#in~_i.base| |finddup_#in~a.base|))} is VALID [2022-04-08 04:20:15,221 INFO L290 TraceCheckUtils]: 43: Hoare triple {13138#(or (and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (= (select (select |#memory_int| |finddup_#in~a.base|) 0) (select (select |#memory_int| |finddup_#in~a.base|) (* (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 4)))) (not (= |finddup_#in~a.offset| 0)) (= |finddup_#in~_j.base| |finddup_#in~a.base|) (= |finddup_#in~_i.base| |finddup_#in~a.base|))} assume true; {13138#(or (and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (= (select (select |#memory_int| |finddup_#in~a.base|) 0) (select (select |#memory_int| |finddup_#in~a.base|) (* (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 4)))) (not (= |finddup_#in~a.offset| 0)) (= |finddup_#in~_j.base| |finddup_#in~a.base|) (= |finddup_#in~_i.base| |finddup_#in~a.base|))} is VALID [2022-04-08 04:20:15,223 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {13138#(or (and (or (= |finddup_#in~_i.base| |finddup_#in~_j.base|) (= (select (select |#memory_int| |finddup_#in~_i.base|) |finddup_#in~_i.offset|) 0)) (= (select (select |#memory_int| |finddup_#in~a.base|) 0) (select (select |#memory_int| |finddup_#in~a.base|) (* (select (select |#memory_int| |finddup_#in~_j.base|) |finddup_#in~_j.offset|) 4)))) (not (= |finddup_#in~a.offset| 0)) (= |finddup_#in~_j.base| |finddup_#in~a.base|) (= |finddup_#in~_i.base| |finddup_#in~a.base|))} {13091#(and (= main_~a~0.offset 0) (not (= main_~a~0.base |main_~#j~2.base|)) (not (= |main_~#i~2.base| main_~a~0.base)) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} #104#return; {13098#(and (= main_~a~0.offset 0) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)))} is VALID [2022-04-08 04:20:15,223 INFO L290 TraceCheckUtils]: 45: Hoare triple {13098#(and (= main_~a~0.offset 0) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= |main_#t~ret14| 0) (= |main_~#i~2.base| |main_~#j~2.base|))) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {13099#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} is VALID [2022-04-08 04:20:15,224 INFO L272 TraceCheckUtils]: 46: Hoare triple {13099#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} call __VERIFIER_assert(~r~0); {13058#true} is VALID [2022-04-08 04:20:15,224 INFO L290 TraceCheckUtils]: 47: Hoare triple {13058#true} ~cond := #in~cond; {13139#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:20:15,224 INFO L290 TraceCheckUtils]: 48: Hoare triple {13139#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:15,224 INFO L290 TraceCheckUtils]: 49: Hoare triple {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:15,225 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} {13099#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)) (or (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (and (= main_~r~0 0) (= |main_~#i~2.base| |main_~#j~2.base|))))} #106#return; {13104#(and (= main_~a~0.offset 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)))} is VALID [2022-04-08 04:20:15,225 INFO L290 TraceCheckUtils]: 51: Hoare triple {13104#(and (= main_~a~0.offset 0) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)) (select (select |#memory_int| main_~a~0.base) 0)))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {13105#(and (or (not |main_#t~short17|) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)))) (= main_~a~0.offset 0))} is VALID [2022-04-08 04:20:15,226 INFO L290 TraceCheckUtils]: 52: Hoare triple {13105#(and (or (not |main_#t~short17|) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4)))) (= main_~a~0.offset 0))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,226 INFO L272 TraceCheckUtils]: 53: Hoare triple {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:15,226 INFO L290 TraceCheckUtils]: 54: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,226 INFO L290 TraceCheckUtils]: 55: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,226 INFO L290 TraceCheckUtils]: 56: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,227 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {13058#true} {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} #108#return; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,227 INFO L290 TraceCheckUtils]: 58: Hoare triple {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,228 INFO L290 TraceCheckUtils]: 59: Hoare triple {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,228 INFO L272 TraceCheckUtils]: 60: Hoare triple {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:15,228 INFO L290 TraceCheckUtils]: 61: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,228 INFO L290 TraceCheckUtils]: 62: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,228 INFO L290 TraceCheckUtils]: 63: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,228 INFO L284 TraceCheckUtils]: 64: Hoare quadruple {13058#true} {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} #110#return; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,229 INFO L290 TraceCheckUtils]: 65: Hoare triple {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} havoc #t~mem18;havoc #t~mem19;havoc #t~short20;call #t~mem21 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem22 := read~int(~#j~2.base, ~#j~2.offset, 4); {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,229 INFO L272 TraceCheckUtils]: 66: Hoare triple {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} call __VERIFIER_assert((if #t~mem21 != #t~mem22 then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:15,229 INFO L290 TraceCheckUtils]: 67: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:15,229 INFO L290 TraceCheckUtils]: 68: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:15,229 INFO L290 TraceCheckUtils]: 69: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:15,230 INFO L284 TraceCheckUtils]: 70: Hoare quadruple {13058#true} {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} #112#return; {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} is VALID [2022-04-08 04:20:15,230 INFO L290 TraceCheckUtils]: 71: Hoare triple {13106#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| main_~a~0.base) (* 4 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|))) (select (select |#memory_int| main_~a~0.base) (* (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 4))))} havoc #t~mem21;havoc #t~mem22;call #t~mem23 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem25 := read~int(~a~0.base, ~a~0.offset + 4 * #t~mem23, 4);call #t~mem24 := read~int(~#j~2.base, ~#j~2.offset, 4);call #t~mem26 := read~int(~a~0.base, ~a~0.offset + 4 * #t~mem24, 4); {13119#(= |main_#t~mem26| |main_#t~mem25|)} is VALID [2022-04-08 04:20:15,230 INFO L272 TraceCheckUtils]: 72: Hoare triple {13119#(= |main_#t~mem26| |main_#t~mem25|)} call __VERIFIER_assert((if #t~mem25 == #t~mem26 then 1 else 0)); {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 04:20:15,231 INFO L290 TraceCheckUtils]: 73: Hoare triple {13120#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {13121#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 04:20:15,231 INFO L290 TraceCheckUtils]: 74: Hoare triple {13121#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {13059#false} is VALID [2022-04-08 04:20:15,231 INFO L290 TraceCheckUtils]: 75: Hoare triple {13059#false} assume !false; {13059#false} is VALID [2022-04-08 04:20:15,231 INFO L134 CoverageAnalysis]: Checked inductivity of 56 backedges. 7 proven. 10 refuted. 0 times theorem prover too weak. 39 trivial. 0 not checked. [2022-04-08 04:20:15,232 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 04:20:15,232 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [400481079] [2022-04-08 04:20:15,232 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [400481079] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 04:20:15,232 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [309986932] [2022-04-08 04:20:15,232 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 04:20:15,232 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 04:20:15,232 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 04:20:15,238 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 04:20:15,239 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Waiting until timeout for monitored process [2022-04-08 04:20:15,337 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 04:20:15,337 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 04:20:15,339 INFO L263 TraceCheckSpWp]: Trace formula consists of 305 conjuncts, 84 conjunts are in the unsatisfiable core [2022-04-08 04:20:15,357 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 04:20:15,358 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 04:20:15,469 INFO L356 Elim1Store]: treesize reduction 29, result has 39.6 percent of original size [2022-04-08 04:20:15,469 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 1 case distinctions, treesize of input 22 treesize of output 31 [2022-04-08 04:20:15,529 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 10 treesize of output 8 [2022-04-08 04:20:15,840 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 04:20:15,841 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 04:20:15,841 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 04:20:15,844 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 1 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 34 [2022-04-08 04:20:24,995 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 04:20:24,996 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 04:20:25,010 INFO L356 Elim1Store]: treesize reduction 38, result has 22.4 percent of original size [2022-04-08 04:20:25,010 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 6 select indices, 6 select index equivalence classes, 3 disjoint index pairs (out of 15 index pairs), introduced 8 new quantified variables, introduced 6 case distinctions, treesize of input 52 treesize of output 36 [2022-04-08 04:20:25,101 INFO L272 TraceCheckUtils]: 0: Hoare triple {13058#true} call ULTIMATE.init(); {13058#true} is VALID [2022-04-08 04:20:25,101 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#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(10, 2);call #Ultimate.allocInit(12, 3); {13058#true} is VALID [2022-04-08 04:20:25,101 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:25,101 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-08 04:20:25,101 INFO L272 TraceCheckUtils]: 4: Hoare triple {13058#true} call #t~ret27 := main(); {13058#true} is VALID [2022-04-08 04:20:25,101 INFO L290 TraceCheckUtils]: 5: Hoare triple {13058#true} assume -2147483648 <= #t~nondet12 && #t~nondet12 <= 2147483647;~n~0 := #t~nondet12;havoc #t~nondet12; {13058#true} is VALID [2022-04-08 04:20:25,101 INFO L272 TraceCheckUtils]: 6: Hoare triple {13058#true} call assume_abort_if_not((if ~n~0 >= 0 && ~n~0 < 1073741824 then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:25,101 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:25,102 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:25,102 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:25,102 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-08 04:20:25,103 INFO L290 TraceCheckUtils]: 11: Hoare triple {13058#true} call #t~malloc13.base, #t~malloc13.offset := #Ultimate.allocOnHeap(4 * ~n~0); {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} is VALID [2022-04-08 04:20:25,103 INFO L272 TraceCheckUtils]: 12: Hoare triple {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} call #Ultimate.meminit(#t~malloc13.base, #t~malloc13.offset, ~n~0, 4, 4 * ~n~0); {13058#true} is VALID [2022-04-08 04:20:25,104 INFO L290 TraceCheckUtils]: 13: Hoare triple {13058#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {13058#true} is VALID [2022-04-08 04:20:25,104 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:25,104 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {13058#true} {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} #100#return; {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} is VALID [2022-04-08 04:20:25,105 INFO L290 TraceCheckUtils]: 16: Hoare triple {13067#(and (= |main_#t~malloc13.offset| 0) (<= (+ |main_#t~malloc13.base| 1) |#StackHeapBarrier|))} ~a~0.base, ~a~0.offset := #t~malloc13.base, #t~malloc13.offset; {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} is VALID [2022-04-08 04:20:25,105 INFO L272 TraceCheckUtils]: 17: Hoare triple {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {13058#true} is VALID [2022-04-08 04:20:25,105 INFO L290 TraceCheckUtils]: 18: Hoare triple {13058#true} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~i~0 := #t~nondet5;havoc #t~nondet5;assume -2147483648 <= #t~nondet6 && #t~nondet6 <= 2147483647;~j~0 := #t~nondet6;havoc #t~nondet6; {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} is VALID [2022-04-08 04:20:25,105 INFO L272 TraceCheckUtils]: 19: Hoare triple {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} call assume_abort_if_not((if 0 <= ~i~0 && ~i~0 < ~n then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:25,105 INFO L290 TraceCheckUtils]: 20: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:25,105 INFO L290 TraceCheckUtils]: 21: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:25,106 INFO L290 TraceCheckUtils]: 22: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:25,106 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {13058#true} {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} #116#return; {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} is VALID [2022-04-08 04:20:25,106 INFO L272 TraceCheckUtils]: 24: Hoare triple {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} call assume_abort_if_not((if 0 <= ~j~0 && ~j~0 < ~n then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:25,106 INFO L290 TraceCheckUtils]: 25: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:25,106 INFO L290 TraceCheckUtils]: 26: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:25,106 INFO L290 TraceCheckUtils]: 27: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:25,107 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {13058#true} {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} #118#return; {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} is VALID [2022-04-08 04:20:25,107 INFO L272 TraceCheckUtils]: 29: Hoare triple {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} call assume_abort_if_not((if ~i~0 != ~j~0 then 1 else 0)); {13058#true} is VALID [2022-04-08 04:20:25,107 INFO L290 TraceCheckUtils]: 30: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 04:20:25,107 INFO L290 TraceCheckUtils]: 31: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 04:20:25,107 INFO L290 TraceCheckUtils]: 32: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:25,108 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {13058#true} {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} #120#return; {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} is VALID [2022-04-08 04:20:25,108 INFO L290 TraceCheckUtils]: 34: Hoare triple {13197#(= mkdup_~a.base |mkdup_#in~a.base|)} assume -2147483648 <= #t~nondet7 && #t~nondet7 <= 2147483647;~x~0 := #t~nondet7;havoc #t~nondet7;call write~int(~x~0, ~a.base, ~a.offset + 4 * ~i~0, 4);call write~int(~x~0, ~a.base, ~a.offset + 4 * ~j~0, 4); {13058#true} is VALID [2022-04-08 04:20:25,108 INFO L290 TraceCheckUtils]: 35: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 04:20:25,108 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {13058#true} {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} #102#return; {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} is VALID [2022-04-08 04:20:25,109 INFO L290 TraceCheckUtils]: 37: Hoare triple {13071#(and (<= (+ main_~a~0.base 1) |#StackHeapBarrier|) (= main_~a~0.offset 0))} call ~#i~2.base, ~#i~2.offset := #Ultimate.allocOnStack(4);call ~#j~2.base, ~#j~2.offset := #Ultimate.allocOnStack(4); {13255#(and (= main_~a~0.offset 0) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} is VALID [2022-04-08 04:20:25,110 INFO L272 TraceCheckUtils]: 38: Hoare triple {13255#(and (= main_~a~0.offset 0) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} call #t~ret14 := finddup(~a~0.base, ~a~0.offset, ~n~0, ~#i~2.base, ~#i~2.offset, ~#j~2.base, ~#j~2.offset); {13123#(= |#memory_int| |old(#memory_int)|)} is VALID [2022-04-08 04:20:25,111 INFO L290 TraceCheckUtils]: 39: Hoare triple {13123#(= |#memory_int| |old(#memory_int)|)} ~a.base, ~a.offset := #in~a.base, #in~a.offset;~n := #in~n;~_i.base, ~_i.offset := #in~_i.base, #in~_i.offset;~_j.base, ~_j.offset := #in~_j.base, #in~_j.offset;havoc ~i~1;havoc ~j~1;~i~1 := 0; {13262#(and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:25,112 INFO L290 TraceCheckUtils]: 40: Hoare triple {13262#(and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= |finddup_#in~a.base| finddup_~a.base) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {13266#(and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:25,112 INFO L290 TraceCheckUtils]: 41: Hoare triple {13266#(and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~a.offset |finddup_#in~a.offset|) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#in~a.base| finddup_~a.base) (= |finddup_#in~_i.base| finddup_~_i.base) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume !!(~j~1 < ~n);call #t~mem10 := read~int(~a.base, ~a.offset + 4 * ~i~1, 4);call #t~mem11 := read~int(~a.base, ~a.offset + 4 * ~j~1, 4); {13270#(and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#t~mem11| (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset|))) (= |finddup_#in~_i.base| finddup_~_i.base) (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| (* finddup_~i~1 4))) |finddup_#t~mem10|) (= |finddup_#in~_i.offset| finddup_~_i.offset))} is VALID [2022-04-08 04:20:25,113 INFO L290 TraceCheckUtils]: 42: Hoare triple {13270#(and (= |#memory_int| |old(#memory_int)|) (= |finddup_#in~_j.base| finddup_~_j.base) (= finddup_~i~1 0) (= finddup_~_j.offset |finddup_#in~_j.offset|) (= finddup_~j~1 (+ finddup_~i~1 1)) (= |finddup_#t~mem11| (select (select |#memory_int| |finddup_#in~a.base|) (+ (* finddup_~j~1 4) |finddup_#in~a.offset|))) (= |finddup_#in~_i.base| finddup_~_i.base) (= (select (select |#memory_int| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| (* finddup_~i~1 4))) |finddup_#t~mem10|) (= |finddup_#in~_i.offset| finddup_~_i.offset))} assume #t~mem10 == #t~mem11;havoc #t~mem10;havoc #t~mem11;call write~int(~i~1, ~_i.base, ~_i.offset, 4);call write~int(~j~1, ~_j.base, ~_j.offset, 4);#res := 1; {13274#(and (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|)) (= |#memory_int| (store (store |old(#memory_int)| |finddup_#in~_i.base| (store (select |old(#memory_int)| |finddup_#in~_i.base|) |finddup_#in~_i.offset| 0)) |finddup_#in~_j.base| (store (select (store |old(#memory_int)| |finddup_#in~_i.base| (store (select |old(#memory_int)| |finddup_#in~_i.base|) |finddup_#in~_i.offset| 0)) |finddup_#in~_j.base|) |finddup_#in~_j.offset| 1))))} is VALID [2022-04-08 04:20:25,114 INFO L290 TraceCheckUtils]: 43: Hoare triple {13274#(and (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|)) (= |#memory_int| (store (store |old(#memory_int)| |finddup_#in~_i.base| (store (select |old(#memory_int)| |finddup_#in~_i.base|) |finddup_#in~_i.offset| 0)) |finddup_#in~_j.base| (store (select (store |old(#memory_int)| |finddup_#in~_i.base| (store (select |old(#memory_int)| |finddup_#in~_i.base|) |finddup_#in~_i.offset| 0)) |finddup_#in~_j.base|) |finddup_#in~_j.offset| 1))))} assume true; {13274#(and (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|)) (= |#memory_int| (store (store |old(#memory_int)| |finddup_#in~_i.base| (store (select |old(#memory_int)| |finddup_#in~_i.base|) |finddup_#in~_i.offset| 0)) |finddup_#in~_j.base| (store (select (store |old(#memory_int)| |finddup_#in~_i.base| (store (select |old(#memory_int)| |finddup_#in~_i.base|) |finddup_#in~_i.offset| 0)) |finddup_#in~_j.base|) |finddup_#in~_j.offset| 1))))} is VALID [2022-04-08 04:20:25,116 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {13274#(and (= (select (select |old(#memory_int)| |finddup_#in~a.base|) (+ |finddup_#in~a.offset| 4)) (select (select |old(#memory_int)| |finddup_#in~a.base|) |finddup_#in~a.offset|)) (= |#memory_int| (store (store |old(#memory_int)| |finddup_#in~_i.base| (store (select |old(#memory_int)| |finddup_#in~_i.base|) |finddup_#in~_i.offset| 0)) |finddup_#in~_j.base| (store (select (store |old(#memory_int)| |finddup_#in~_i.base| (store (select |old(#memory_int)| |finddup_#in~_i.base|) |finddup_#in~_i.offset| 0)) |finddup_#in~_j.base|) |finddup_#in~_j.offset| 1))))} {13255#(and (= main_~a~0.offset 0) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (not (= |main_~#i~2.base| |main_~#j~2.base|)))} #104#return; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,117 INFO L290 TraceCheckUtils]: 45: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} assume -2147483648 <= #t~ret14 && #t~ret14 <= 2147483647;~r~0 := #t~ret14;havoc #t~ret14; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,118 INFO L272 TraceCheckUtils]: 46: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} call __VERIFIER_assert(~r~0); {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,120 INFO L290 TraceCheckUtils]: 47: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} ~cond := #in~cond; {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,121 INFO L290 TraceCheckUtils]: 48: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} assume !(0 == ~cond); {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,122 INFO L290 TraceCheckUtils]: 49: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} assume true; {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,123 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} #106#return; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,124 INFO L290 TraceCheckUtils]: 51: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} call #t~mem15 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := 0 <= #t~mem15; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,124 INFO L290 TraceCheckUtils]: 52: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} assume #t~short17;call #t~mem16 := read~int(~#i~2.base, ~#i~2.offset, 4);#t~short17 := #t~mem16 < ~n~0; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,125 INFO L272 TraceCheckUtils]: 53: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,126 INFO L290 TraceCheckUtils]: 54: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} ~cond := #in~cond; {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,127 INFO L290 TraceCheckUtils]: 55: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} assume !(0 == ~cond); {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,128 INFO L290 TraceCheckUtils]: 56: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} assume true; {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,129 INFO L284 TraceCheckUtils]: 57: Hoare quadruple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} #108#return; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,129 INFO L290 TraceCheckUtils]: 58: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} havoc #t~mem15;havoc #t~mem16;havoc #t~short17;call #t~mem18 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := 0 <= #t~mem18; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,130 INFO L290 TraceCheckUtils]: 59: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} assume #t~short20;call #t~mem19 := read~int(~#j~2.base, ~#j~2.offset, 4);#t~short20 := #t~mem19 < ~n~0; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,131 INFO L272 TraceCheckUtils]: 60: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,132 INFO L290 TraceCheckUtils]: 61: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} ~cond := #in~cond; {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,133 INFO L290 TraceCheckUtils]: 62: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} assume !(0 == ~cond); {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,134 INFO L290 TraceCheckUtils]: 63: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} assume true; {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,135 INFO L284 TraceCheckUtils]: 64: Hoare quadruple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} #110#return; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,135 INFO L290 TraceCheckUtils]: 65: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} havoc #t~mem18;havoc #t~mem19;havoc #t~short20;call #t~mem21 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem22 := read~int(~#j~2.base, ~#j~2.offset, 4); {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,136 INFO L272 TraceCheckUtils]: 66: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} call __VERIFIER_assert((if #t~mem21 != #t~mem22 then 1 else 0)); {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,137 INFO L290 TraceCheckUtils]: 67: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} ~cond := #in~cond; {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,138 INFO L290 TraceCheckUtils]: 68: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} assume !(0 == ~cond); {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,139 INFO L290 TraceCheckUtils]: 69: Hoare triple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} assume true; {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} is VALID [2022-04-08 04:20:25,140 INFO L284 TraceCheckUtils]: 70: Hoare quadruple {13288#(exists ((v_main_~a~0.base_BEFORE_CALL_10 Int) (|v_main_~#i~2.base_BEFORE_CALL_22| Int) (|v_main_~#j~2.base_BEFORE_CALL_21| Int)) (and (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#i~2.base_BEFORE_CALL_22|) (= (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 0) (select (select |#memory_int| v_main_~a~0.base_BEFORE_CALL_10) 4)) (= (select (select |#memory_int| |v_main_~#j~2.base_BEFORE_CALL_21|) 0) 1) (< (+ v_main_~a~0.base_BEFORE_CALL_10 1) |v_main_~#j~2.base_BEFORE_CALL_21|) (= (select (select |#memory_int| |v_main_~#i~2.base_BEFORE_CALL_22|) 0) 0)))} {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} #112#return; {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} is VALID [2022-04-08 04:20:25,141 INFO L290 TraceCheckUtils]: 71: Hoare triple {13281#(and (= main_~a~0.offset 0) (= (select (select |#memory_int| |main_~#j~2.base|) |main_~#j~2.offset|) 1) (= 0 (select (select |#memory_int| |main_~#i~2.base|) |main_~#i~2.offset|)) (= |main_~#j~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#i~2.base|) (= |main_~#i~2.offset| 0) (< (+ main_~a~0.base 1) |main_~#j~2.base|) (= (select (select |#memory_int| main_~a~0.base) (+ main_~a~0.offset 4)) (select (select |#memory_int| main_~a~0.base) main_~a~0.offset)))} havoc #t~mem21;havoc #t~mem22;call #t~mem23 := read~int(~#i~2.base, ~#i~2.offset, 4);call #t~mem25 := read~int(~a~0.base, ~a~0.offset + 4 * #t~mem23, 4);call #t~mem24 := read~int(~#j~2.base, ~#j~2.offset, 4);call #t~mem26 := read~int(~a~0.base, ~a~0.offset + 4 * #t~mem24, 4); {13119#(= |main_#t~mem26| |main_#t~mem25|)} is VALID [2022-04-08 04:20:25,142 INFO L272 TraceCheckUtils]: 72: Hoare triple {13119#(= |main_#t~mem26| |main_#t~mem25|)} call __VERIFIER_assert((if #t~mem25 == #t~mem26 then 1 else 0)); {13367#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 04:20:25,142 INFO L290 TraceCheckUtils]: 73: Hoare triple {13367#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {13371#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 04:20:25,142 INFO L290 TraceCheckUtils]: 74: Hoare triple {13371#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {13059#false} is VALID [2022-04-08 04:20:25,142 INFO L290 TraceCheckUtils]: 75: Hoare triple {13059#false} assume !false; {13059#false} is VALID [2022-04-08 04:20:25,143 INFO L134 CoverageAnalysis]: Checked inductivity of 56 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 48 trivial. 0 not checked. [2022-04-08 04:20:25,143 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 04:20:36,097 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 04:20:36,101 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 6 treesize of output 4 [2022-04-08 04:20:40,290 WARN L804 TransFormulaUtils]: predicate-based correctness check returned UNKNOWN, hence correctness of interprocedural sequential composition was not checked. [2022-04-08 04:20:40,624 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 43912 treesize of output 43532 [2022-04-08 04:20:42,590 INFO L356 Elim1Store]: treesize reduction 9, result has 10.0 percent of original size [2022-04-08 04:20:42,590 INFO L390 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 1 case distinctions, treesize of input 41200 treesize of output 40480 [2022-04-08 04:20:42,935 WARN L319 FreeRefinementEngine]: Global settings require throwing the following exception [2022-04-08 04:20:42,952 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Forceful destruction successful, exit code 0 [2022-04-08 04:20:43,136 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 11 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable15 [2022-04-08 04:20:43,137 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.ArithmeticException: BigInteger out of long range at java.base/java.math.BigInteger.longValueExact(BigInteger.java:4765) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.computeDerApplicabilityScore(QuantifierPusher.java:685) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.selectBestEliminatee(QuantifierPusher.java:668) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.doit(QuantifierPusher.java:604) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToPushOverDualFiniteConnective2(QuantifierPusher.java:446) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToPushOverDualFiniteConnective(QuantifierPusher.java:355) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.convert(QuantifierPushTermWalker.java:172) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.convert(QuantifierPushTermWalker.java:1) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermContextTransformationEngine.transform(TermContextTransformationEngine.java:65) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.TermContextTransformationEngine.transform(TermContextTransformationEngine.java:61) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.eliminate(QuantifierPushTermWalker.java:261) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.eliminate(QuantifierPushTermWalker.java:247) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.PartialQuantifierElimination.eliminate(PartialQuantifierElimination.java:92) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:238) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:420) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.computeBackwardSequence(IterativePredicateTransformer.java:364) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.computeWeakestPreconditionSequence(IterativePredicateTransformer.java:271) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:342) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:185) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:163) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleSpWp.construct(IpTcStrategyModuleSpWp.java:108) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleSpWp.construct(IpTcStrategyModuleSpWp.java:1) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getOrConstruct(IpTcStrategyModuleBase.java:101) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getInterpolantComputationStatus(IpTcStrategyModuleBase.java:77) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.tryExecuteInterpolantGenerator(AutomatonFreeRefinementEngine.java:266) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.generateProof(AutomatonFreeRefinementEngine.java:147) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.executeStrategy(AutomatonFreeRefinementEngine.java:137) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.(AutomatonFreeRefinementEngine.java:85) at de.uni_freiburg.informatik.ultimate.lib.acceleratedinterpolation.AcceleratedInterpolationCore.runStrategy(AcceleratedInterpolationCore.java:300) at de.uni_freiburg.informatik.ultimate.lib.acceleratedinterpolation.AcceleratedInterpolationCore.acceleratedInterpolationCoreIsCorrect(AcceleratedInterpolationCore.java:203) at de.uni_freiburg.informatik.ultimate.lib.acceleratedinterpolation.AcceleratedInterpolation.(AcceleratedInterpolation.java:190) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleAcceleratedInterpolation.construct(IpTcStrategyModuleAcceleratedInterpolation.java:80) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getOrConstruct(IpTcStrategyModuleBase.java:101) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.isCorrect(IpTcStrategyModuleBase.java:57) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.checkFeasibility(AutomatonFreeRefinementEngine.java:209) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.executeStrategy(AutomatonFreeRefinementEngine.java:121) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.(AutomatonFreeRefinementEngine.java:85) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:82) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:595) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:414) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.startCegar(AbstractCegarLoop.java:349) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.runCegar(AbstractCegarLoop.java:331) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopUtils.getCegarLoopResult(CegarLoopUtils.java:56) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.executeCegarLoop(TraceAbstractionStarter.java:412) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.analyseProgram(TraceAbstractionStarter.java:302) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.analyseSequentialProgram(TraceAbstractionStarter.java:262) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:175) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:154) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-04-08 04:20:43,140 INFO L158 Benchmark]: Toolchain (without parser) took 162265.66ms. Allocated memory was 205.5MB in the beginning and 360.7MB in the end (delta: 155.2MB). Free memory was 178.6MB in the beginning and 125.2MB in the end (delta: 53.4MB). Peak memory consumption was 231.2MB. Max. memory is 8.0GB. [2022-04-08 04:20:43,141 INFO L158 Benchmark]: CDTParser took 0.09ms. Allocated memory is still 205.5MB. Free memory was 165.2MB in the beginning and 165.2MB in the end (delta: 67.2kB). There was no memory consumed. Max. memory is 8.0GB. [2022-04-08 04:20:43,141 INFO L158 Benchmark]: CACSL2BoogieTranslator took 252.02ms. Allocated memory is still 205.5MB. Free memory was 178.4MB in the beginning and 175.0MB in the end (delta: 3.4MB). Peak memory consumption was 9.9MB. Max. memory is 8.0GB. [2022-04-08 04:20:43,141 INFO L158 Benchmark]: Boogie Preprocessor took 50.81ms. Allocated memory is still 205.5MB. Free memory was 175.0MB in the beginning and 172.9MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. [2022-04-08 04:20:43,141 INFO L158 Benchmark]: RCFGBuilder took 366.91ms. Allocated memory is still 205.5MB. Free memory was 172.6MB in the beginning and 155.8MB in the end (delta: 16.8MB). Peak memory consumption was 16.8MB. Max. memory is 8.0GB. [2022-04-08 04:20:43,141 INFO L158 Benchmark]: TraceAbstraction took 161590.18ms. Allocated memory was 205.5MB in the beginning and 360.7MB in the end (delta: 155.2MB). Free memory was 155.5MB in the beginning and 125.2MB in the end (delta: 30.3MB). Peak memory consumption was 208.7MB. Max. memory is 8.0GB. [2022-04-08 04:20:43,142 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.09ms. Allocated memory is still 205.5MB. Free memory was 165.2MB in the beginning and 165.2MB in the end (delta: 67.2kB). There was no memory consumed. Max. memory is 8.0GB. * CACSL2BoogieTranslator took 252.02ms. Allocated memory is still 205.5MB. Free memory was 178.4MB in the beginning and 175.0MB in the end (delta: 3.4MB). Peak memory consumption was 9.9MB. Max. memory is 8.0GB. * Boogie Preprocessor took 50.81ms. Allocated memory is still 205.5MB. Free memory was 175.0MB in the beginning and 172.9MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. * RCFGBuilder took 366.91ms. Allocated memory is still 205.5MB. Free memory was 172.6MB in the beginning and 155.8MB in the end (delta: 16.8MB). Peak memory consumption was 16.8MB. Max. memory is 8.0GB. * TraceAbstraction took 161590.18ms. Allocated memory was 205.5MB in the beginning and 360.7MB in the end (delta: 155.2MB). Free memory was 155.5MB in the beginning and 125.2MB in the end (delta: 30.3MB). Peak memory consumption was 208.7MB. Max. memory is 8.0GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: ArithmeticException: BigInteger out of long range de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: ArithmeticException: BigInteger out of long range: java.base/java.math.BigInteger.longValueExact(BigInteger.java:4765) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-04-08 04:20:43,347 WARN L435 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forcibly destroying the process [2022-04-08 04:20:43,371 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 137 Received shutdown request...