/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/acceleratedInterpolationQvasr_64.epf -i ../../../trunk/examples/svcomp/verifythis/duplets.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-34549b5 [2022-04-08 10:37:59,257 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-08 10:37:59,258 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-08 10:37:59,293 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-08 10:37:59,293 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-08 10:37:59,294 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-08 10:37:59,296 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-08 10:37:59,297 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-08 10:37:59,298 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-08 10:37:59,302 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-08 10:37:59,302 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-08 10:37:59,303 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-08 10:37:59,303 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-08 10:37:59,307 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-08 10:37:59,307 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-08 10:37:59,309 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-08 10:37:59,310 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-08 10:37:59,310 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-08 10:37:59,312 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-08 10:37:59,315 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-08 10:37:59,317 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-08 10:37:59,317 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-08 10:37:59,318 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-08 10:37:59,318 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-08 10:37:59,319 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-08 10:37:59,323 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-08 10:37:59,323 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-08 10:37:59,323 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-08 10:37:59,324 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-08 10:37:59,324 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-08 10:37:59,325 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-08 10:37:59,325 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-08 10:37:59,325 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-08 10:37:59,325 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-08 10:37:59,326 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-08 10:37:59,326 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-08 10:37:59,326 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-08 10:37:59,327 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-08 10:37:59,327 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-08 10:37:59,327 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-08 10:37:59,328 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-08 10:37:59,330 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-08 10:37:59,330 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationQvasr_64.epf [2022-04-08 10:37:59,341 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-08 10:37:59,341 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-08 10:37:59,343 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-08 10:37:59,343 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-08 10:37:59,343 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-08 10:37:59,343 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-08 10:37:59,343 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-08 10:37:59,344 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-08 10:37:59,344 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-08 10:37:59,344 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-08 10:37:59,344 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-08 10:37:59,344 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * To the following directory=./dump/ [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-08 10:37:59,345 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=Craig_NestedInterpolation [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * Trace refinement strategy=ACCELERATED_INTERPOLATION [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * Trace refinement strategy used in Accelerated Interpolation=CAMEL [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-08 10:37:59,345 INFO L138 SettingsManager]: * Loop acceleration method that is used by accelerated interpolation=QVASR [2022-04-08 10:37:59,345 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 10:37:59,506 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-08 10:37:59,522 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-08 10:37:59,524 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-08 10:37:59,524 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-08 10:37:59,525 INFO L275 PluginConnector]: CDTParser initialized [2022-04-08 10:37:59,525 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 10:37:59,571 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/784793935/05fb8d6b49d84e38a4684ab9441b1657/FLAGb11bf9f18 [2022-04-08 10:37:59,930 INFO L306 CDTParser]: Found 1 translation units. [2022-04-08 10:37:59,931 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/verifythis/duplets.c [2022-04-08 10:37:59,938 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/784793935/05fb8d6b49d84e38a4684ab9441b1657/FLAGb11bf9f18 [2022-04-08 10:37:59,961 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/784793935/05fb8d6b49d84e38a4684ab9441b1657 [2022-04-08 10:37:59,963 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-08 10:37:59,964 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-08 10:37:59,967 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-08 10:37:59,967 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-08 10:37:59,970 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-08 10:37:59,970 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.04 10:37:59" (1/1) ... [2022-04-08 10:37:59,971 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@66833bfb and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:37:59, skipping insertion in model container [2022-04-08 10:37:59,971 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.04 10:37:59" (1/1) ... [2022-04-08 10:37:59,975 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-08 10:37:59,986 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-08 10:38:00,113 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 10:38:00,135 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-08 10:38:00,146 INFO L203 MainTranslator]: Completed pre-run [2022-04-08 10:38:00,153 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 10:38:00,161 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-08 10:38:00,170 INFO L208 MainTranslator]: Completed translation [2022-04-08 10:38:00,171 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00 WrapperNode [2022-04-08 10:38:00,171 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-08 10:38:00,172 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-08 10:38:00,172 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-08 10:38:00,172 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-08 10:38:00,184 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (1/1) ... [2022-04-08 10:38:00,184 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (1/1) ... [2022-04-08 10:38:00,199 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (1/1) ... [2022-04-08 10:38:00,199 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (1/1) ... [2022-04-08 10:38:00,212 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (1/1) ... [2022-04-08 10:38:00,215 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (1/1) ... [2022-04-08 10:38:00,221 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (1/1) ... [2022-04-08 10:38:00,223 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-08 10:38:00,224 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-08 10:38:00,224 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-08 10:38:00,224 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-08 10:38:00,225 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (1/1) ... [2022-04-08 10:38:00,230 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-08 10:38:00,236 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:00,245 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 10:38:00,252 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 10:38:00,278 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-08 10:38:00,281 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-08 10:38:00,281 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-08 10:38:00,282 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-08 10:38:00,282 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-08 10:38:00,282 INFO L138 BoogieDeclarations]: Found implementation of procedure mkdup [2022-04-08 10:38:00,282 INFO L138 BoogieDeclarations]: Found implementation of procedure finddup [2022-04-08 10:38:00,282 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-08 10:38:00,282 INFO L138 BoogieDeclarations]: Found implementation of procedure #Ultimate.meminit [2022-04-08 10:38:00,282 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2022-04-08 10:38:00,282 INFO L130 BoogieDeclarations]: Found specification of procedure free [2022-04-08 10:38:00,282 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-08 10:38:00,282 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-08 10:38:00,282 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-08 10:38:00,282 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-08 10:38:00,282 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure mkdup [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure finddup [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.meminit [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-08 10:38:00,283 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-08 10:38:00,340 INFO L234 CfgBuilder]: Building ICFG [2022-04-08 10:38:00,341 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-08 10:38:00,609 INFO L275 CfgBuilder]: Performing block encoding [2022-04-08 10:38:00,614 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-08 10:38:00,614 INFO L299 CfgBuilder]: Removed 2 assume(true) statements. [2022-04-08 10:38:00,615 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.04 10:38:00 BoogieIcfgContainer [2022-04-08 10:38:00,615 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-08 10:38:00,616 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-08 10:38:00,617 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-08 10:38:00,624 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-08 10:38:00,625 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 08.04 10:37:59" (1/3) ... [2022-04-08 10:38:00,626 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@fca45d1 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 08.04 10:38:00, skipping insertion in model container [2022-04-08 10:38:00,626 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 10:38:00" (2/3) ... [2022-04-08 10:38:00,626 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@fca45d1 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 08.04 10:38:00, skipping insertion in model container [2022-04-08 10:38:00,627 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.04 10:38:00" (3/3) ... [2022-04-08 10:38:00,629 INFO L111 eAbstractionObserver]: Analyzing ICFG duplets.c [2022-04-08 10:38:00,633 INFO L203 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:Craig_NestedInterpolation Determinization: PREDICATE_ABSTRACTION [2022-04-08 10:38:00,633 INFO L162 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-08 10:38:00,658 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-08 10:38:00,662 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 10:38:00,662 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-08 10:38:00,691 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 10:38:00,697 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-04-08 10:38:00,697 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:00,698 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 10:38:00,698 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:00,704 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:00,704 INFO L85 PathProgramCache]: Analyzing trace with hash -1531213237, now seen corresponding path program 1 times [2022-04-08 10:38:00,709 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:00,709 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [12052366] [2022-04-08 10:38:00,717 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:00,718 INFO L85 PathProgramCache]: Analyzing trace with hash -1531213237, now seen corresponding path program 2 times [2022-04-08 10:38:00,721 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:00,722 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1980157208] [2022-04-08 10:38:00,722 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:00,722 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:00,831 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:00,882 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:00,892 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:00,915 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 10:38:00,915 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 10:38:00,915 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {62#true} {62#true} #122#return; {62#true} is VALID [2022-04-08 10:38:00,916 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:00,917 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:00,923 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:00,924 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:00,924 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:00,924 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {62#true} #98#return; {63#false} is VALID [2022-04-08 10:38:00,931 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:00,934 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:00,944 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 10:38:00,944 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 10:38:00,944 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {62#true} {63#false} #100#return; {63#false} is VALID [2022-04-08 10:38:00,945 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:00,960 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:00,968 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:00,971 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:00,976 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:00,977 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:00,977 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:00,977 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-08 10:38:00,977 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:00,982 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:00,988 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:00,988 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:00,988 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:00,989 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-08 10:38:00,989 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:00,991 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:00,996 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:00,996 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:00,996 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:00,997 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-08 10:38:00,997 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 10:38:00,997 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 10:38:00,997 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:00,998 INFO L290 TraceCheckUtils]: 3: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:00,999 INFO L290 TraceCheckUtils]: 4: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:00,999 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-08 10:38:00,999 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 10:38:00,999 INFO L290 TraceCheckUtils]: 7: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:01,000 INFO L290 TraceCheckUtils]: 8: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:01,000 INFO L290 TraceCheckUtils]: 9: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:01,000 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-08 10:38:01,000 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 10:38:01,001 INFO L290 TraceCheckUtils]: 12: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:01,001 INFO L290 TraceCheckUtils]: 13: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:01,001 INFO L290 TraceCheckUtils]: 14: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:01,002 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-08 10:38:01,002 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 10:38:01,002 INFO L290 TraceCheckUtils]: 17: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:01,002 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {63#false} {63#false} #102#return; {63#false} is VALID [2022-04-08 10:38:01,003 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:01,014 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,026 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 10:38:01,027 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume !(~i~1 < ~n); {62#true} is VALID [2022-04-08 10:38:01,027 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} #res := 0; {62#true} is VALID [2022-04-08 10:38:01,027 INFO L290 TraceCheckUtils]: 3: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 10:38:01,027 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {62#true} {63#false} #104#return; {63#false} is VALID [2022-04-08 10:38:01,029 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 10:38:01,029 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 10:38:01,029 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 10:38:01,029 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {62#true} {62#true} #122#return; {62#true} is VALID [2022-04-08 10:38:01,029 INFO L272 TraceCheckUtils]: 4: Hoare triple {62#true} call #t~ret27 := main(); {62#true} is VALID [2022-04-08 10:38:01,030 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 10:38:01,030 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 10:38:01,030 INFO L290 TraceCheckUtils]: 7: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:01,033 INFO L290 TraceCheckUtils]: 8: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:01,033 INFO L290 TraceCheckUtils]: 9: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:01,033 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {63#false} {62#true} #98#return; {63#false} is VALID [2022-04-08 10:38:01,034 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 10:38:01,034 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 10:38:01,034 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 10:38:01,034 INFO L290 TraceCheckUtils]: 14: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 10:38:01,034 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {62#true} {63#false} #100#return; {63#false} is VALID [2022-04-08 10:38:01,034 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 10:38:01,035 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 10:38:01,035 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 10:38:01,035 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 10:38:01,035 INFO L290 TraceCheckUtils]: 20: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:01,036 INFO L290 TraceCheckUtils]: 21: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:01,036 INFO L290 TraceCheckUtils]: 22: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:01,036 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-08 10:38:01,036 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 10:38:01,037 INFO L290 TraceCheckUtils]: 25: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:01,037 INFO L290 TraceCheckUtils]: 26: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:01,037 INFO L290 TraceCheckUtils]: 27: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:01,037 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-08 10:38:01,037 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 10:38:01,038 INFO L290 TraceCheckUtils]: 30: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-08 10:38:01,038 INFO L290 TraceCheckUtils]: 31: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-08 10:38:01,038 INFO L290 TraceCheckUtils]: 32: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:01,039 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-08 10:38:01,039 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 10:38:01,039 INFO L290 TraceCheckUtils]: 35: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-08 10:38:01,039 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {63#false} {63#false} #102#return; {63#false} is VALID [2022-04-08 10:38:01,040 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 10:38:01,040 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 10:38:01,040 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 10:38:01,041 INFO L290 TraceCheckUtils]: 40: Hoare triple {62#true} assume !(~i~1 < ~n); {62#true} is VALID [2022-04-08 10:38:01,042 INFO L290 TraceCheckUtils]: 41: Hoare triple {62#true} #res := 0; {62#true} is VALID [2022-04-08 10:38:01,042 INFO L290 TraceCheckUtils]: 42: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-08 10:38:01,042 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {62#true} {63#false} #104#return; {63#false} is VALID [2022-04-08 10:38:01,042 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 10:38:01,043 INFO L272 TraceCheckUtils]: 45: Hoare triple {63#false} call __VERIFIER_assert(~r~0); {63#false} is VALID [2022-04-08 10:38:01,043 INFO L290 TraceCheckUtils]: 46: Hoare triple {63#false} ~cond := #in~cond; {63#false} is VALID [2022-04-08 10:38:01,043 INFO L290 TraceCheckUtils]: 47: Hoare triple {63#false} assume 0 == ~cond; {63#false} is VALID [2022-04-08 10:38:01,043 INFO L290 TraceCheckUtils]: 48: Hoare triple {63#false} assume !false; {63#false} is VALID [2022-04-08 10:38:01,044 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 10:38:01,044 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:01,044 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1980157208] [2022-04-08 10:38:01,045 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1980157208] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:01,045 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:01,046 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-04-08 10:38:01,049 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:01,049 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [12052366] [2022-04-08 10:38:01,049 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [12052366] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:01,049 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:01,049 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-04-08 10:38:01,050 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1987487708] [2022-04-08 10:38:01,050 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:01,056 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 10:38:01,057 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:01,060 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 10:38:01,107 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 10:38:01,107 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-04-08 10:38:01,107 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:01,130 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-04-08 10:38:01,131 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-04-08 10:38:01,133 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 10:38:01,456 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:01,456 INFO L93 Difference]: Finished difference Result 113 states and 153 transitions. [2022-04-08 10:38:01,457 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-08 10:38:01,457 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 10:38:01,457 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:01,458 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 10:38:01,476 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 153 transitions. [2022-04-08 10:38:01,478 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 10:38:01,485 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 153 transitions. [2022-04-08 10:38:01,485 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 153 transitions. [2022-04-08 10:38:01,618 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 10:38:01,626 INFO L225 Difference]: With dead ends: 113 [2022-04-08 10:38:01,626 INFO L226 Difference]: Without dead ends: 56 [2022-04-08 10:38:01,628 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 10:38:01,630 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 10:38:01,630 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 10:38:01,641 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2022-04-08 10:38:01,653 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 54. [2022-04-08 10:38:01,653 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:01,654 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 10:38:01,654 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 10:38:01,655 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 10:38:01,658 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:01,658 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2022-04-08 10:38:01,658 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 67 transitions. [2022-04-08 10:38:01,659 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:01,659 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:01,659 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 10:38:01,660 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 10:38:01,662 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:01,662 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2022-04-08 10:38:01,663 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 67 transitions. [2022-04-08 10:38:01,663 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:01,663 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:01,663 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:01,663 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:01,664 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 10:38:01,666 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 65 transitions. [2022-04-08 10:38:01,667 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 65 transitions. Word has length 49 [2022-04-08 10:38:01,667 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:01,667 INFO L478 AbstractCegarLoop]: Abstraction has 54 states and 65 transitions. [2022-04-08 10:38:01,667 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 10:38:01,668 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 54 states and 65 transitions. [2022-04-08 10:38:01,727 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 10:38:01,727 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 65 transitions. [2022-04-08 10:38:01,728 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-04-08 10:38:01,728 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:01,728 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 10:38:01,728 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-08 10:38:01,729 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:01,729 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:01,729 INFO L85 PathProgramCache]: Analyzing trace with hash -1121655349, now seen corresponding path program 1 times [2022-04-08 10:38:01,729 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:01,729 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1223561342] [2022-04-08 10:38:01,730 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:01,730 INFO L85 PathProgramCache]: Analyzing trace with hash -1121655349, now seen corresponding path program 2 times [2022-04-08 10:38:01,730 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:01,730 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1812367654] [2022-04-08 10:38:01,730 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:01,731 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:01,769 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,832 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:01,834 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,837 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 10:38:01,837 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:01,837 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-08 10:38:01,838 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:01,838 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,840 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:01,841 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:01,841 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:01,841 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-08 10:38:01,844 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:01,845 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,847 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 10:38:01,847 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:01,848 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-08 10:38:01,848 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:01,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,894 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:01,897 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,914 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 10:38:01,914 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 10:38:01,915 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 10:38:01,916 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 10:38:01,916 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:01,917 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,923 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:01,924 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:01,924 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:01,925 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 10:38:01,925 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:01,929 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:01,945 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:01,946 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:01,947 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:01,948 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 10:38:01,950 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 10:38:01,950 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 10:38:01,951 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 10:38:01,962 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 10:38:01,962 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 10:38:01,963 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 10:38:01,964 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 10:38:01,964 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:01,964 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:01,964 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:01,968 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 10:38:01,968 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 10:38:01,968 INFO L290 TraceCheckUtils]: 12: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:01,969 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:01,969 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:01,969 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 10:38:01,970 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 10:38:01,970 INFO L290 TraceCheckUtils]: 17: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 10:38:01,971 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 10:38:01,972 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:01,975 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:02,007 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 10:38:02,008 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 10:38:02,008 INFO L290 TraceCheckUtils]: 2: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 10:38:02,008 INFO L290 TraceCheckUtils]: 3: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 10:38:02,010 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 10:38:02,010 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 10:38:02,010 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 10:38:02,011 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,011 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-08 10:38:02,011 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-08 10:38:02,011 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 10:38:02,011 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 10:38:02,011 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:02,012 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:02,012 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,012 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-08 10:38:02,012 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 10:38:02,013 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 10:38:02,013 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 10:38:02,013 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,014 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-08 10:38:02,014 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 10:38:02,014 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 10:38:02,015 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 10:38:02,015 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 10:38:02,015 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 10:38:02,016 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 10:38:02,016 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 10:38:02,017 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 10:38:02,017 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 10:38:02,017 INFO L290 TraceCheckUtils]: 25: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:02,017 INFO L290 TraceCheckUtils]: 26: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:02,018 INFO L290 TraceCheckUtils]: 27: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,018 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 10:38:02,018 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 10:38:02,019 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:02,019 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:02,020 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,021 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 10:38:02,021 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 10:38:02,021 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 10:38:02,022 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 10:38:02,023 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 10:38:02,026 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 10:38:02,027 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 10:38:02,028 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 10:38:02,028 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 10:38:02,028 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 10:38:02,030 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 10:38:02,030 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 10:38:02,030 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-08 10:38:02,030 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-08 10:38:02,030 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-08 10:38:02,030 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-08 10:38:02,031 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 10:38:02,031 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:02,031 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1812367654] [2022-04-08 10:38:02,031 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1812367654] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:02,032 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [194120213] [2022-04-08 10:38:02,032 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 10:38:02,032 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:38:02,032 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:02,034 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 10:38:02,035 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 10:38:02,111 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 10:38:02,111 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:38:02,114 INFO L263 TraceCheckSpWp]: Trace formula consists of 224 conjuncts, 11 conjunts are in the unsatisfiable core [2022-04-08 10:38:02,141 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:02,145 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:38:02,403 INFO L272 TraceCheckUtils]: 0: Hoare triple {563#true} call ULTIMATE.init(); {563#true} is VALID [2022-04-08 10:38:02,404 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 10:38:02,404 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,404 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-08 10:38:02,404 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-08 10:38:02,404 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 10:38:02,404 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 10:38:02,404 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:02,405 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:02,405 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,405 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-08 10:38:02,405 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 10:38:02,405 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 10:38:02,405 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {563#true} is VALID [2022-04-08 10:38:02,405 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,405 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-08 10:38:02,406 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 10:38:02,406 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 10:38:02,406 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 10:38:02,406 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 10:38:02,407 INFO L290 TraceCheckUtils]: 20: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:02,407 INFO L290 TraceCheckUtils]: 21: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:02,407 INFO L290 TraceCheckUtils]: 22: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,407 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 10:38:02,407 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 10:38:02,408 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 10:38:02,408 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 10:38:02,408 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 10:38:02,409 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 10:38:02,409 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 10:38:02,409 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:02,409 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:02,410 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:02,410 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 10:38:02,410 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 10:38:02,411 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 10:38:02,411 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 10:38:02,412 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 10:38:02,412 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 10:38:02,412 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 10:38:02,413 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 10:38:02,413 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 10:38:02,413 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 10:38:02,414 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 10:38:02,415 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 10:38:02,415 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-08 10:38:02,415 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-08 10:38:02,415 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-08 10:38:02,415 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-08 10:38:02,415 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 10:38:02,415 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:38:03,053 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-08 10:38:03,053 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-08 10:38:03,054 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-08 10:38:03,057 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-08 10:38:03,057 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 10:38:03,059 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 10:38:03,060 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 10:38:03,062 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-08 10:38:03,064 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 10:38:03,065 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 10:38: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); {563#true} is VALID [2022-04-08 10:38:03,065 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 10:38:03,066 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 10:38:03,067 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-08 10:38:03,068 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 10:38:03,071 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 10:38:03,072 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:03,073 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:03,073 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:03,073 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 10:38:03,074 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 10:38:03,074 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 10:38:03,074 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 10:38:03,075 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 10:38:03,075 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 10:38:03,075 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 10:38:03,076 INFO L290 TraceCheckUtils]: 22: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:03,076 INFO L290 TraceCheckUtils]: 21: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:03,076 INFO L290 TraceCheckUtils]: 20: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:03,076 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 10:38:03,077 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 10:38:03,077 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 10:38:03,077 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 10:38:03,077 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-08 10:38:03,077 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:03,077 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {563#true} is VALID [2022-04-08 10:38:03,077 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 10:38:03,077 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 10:38:03,078 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-08 10:38:03,078 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:03,078 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-08 10:38:03,078 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-08 10:38:03,078 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 10:38:03,078 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 10:38:03,078 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-08 10:38:03,079 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-08 10:38:03,079 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-08 10:38:03,079 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 10:38:03,079 INFO L272 TraceCheckUtils]: 0: Hoare triple {563#true} call ULTIMATE.init(); {563#true} is VALID [2022-04-08 10:38:03,081 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 10:38:03,081 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [194120213] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 10:38:03,081 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-08 10:38:03,081 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 9, 9] total 17 [2022-04-08 10:38:03,082 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:03,083 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1223561342] [2022-04-08 10:38:03,083 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1223561342] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:03,083 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:03,083 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-08 10:38:03,083 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [133305166] [2022-04-08 10:38:03,083 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:03,084 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 10:38:03,084 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:03,085 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 10:38:03,117 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 10:38:03,117 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-08 10:38:03,117 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:03,118 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-08 10:38:03,118 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=227, Unknown=0, NotChecked=0, Total=272 [2022-04-08 10:38:03,119 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 10:38:04,136 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:04,136 INFO L93 Difference]: Finished difference Result 84 states and 103 transitions. [2022-04-08 10:38:04,137 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-08 10:38:04,137 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 10:38:04,137 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:04,137 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 10:38:04,139 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 103 transitions. [2022-04-08 10:38:04,140 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 10:38:04,141 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 103 transitions. [2022-04-08 10:38:04,142 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 103 transitions. [2022-04-08 10:38:04,224 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 10:38:04,227 INFO L225 Difference]: With dead ends: 84 [2022-04-08 10:38:04,227 INFO L226 Difference]: Without dead ends: 63 [2022-04-08 10:38:04,228 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 10:38:04,228 INFO L913 BasicCegarLoop]: 42 mSDtfsCounter, 96 mSDsluCounter, 14 mSDsCounter, 0 mSdLazyCounter, 468 mSolverCounterSat, 63 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s 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.4s IncrementalHoareTripleChecker+Time [2022-04-08 10:38:04,229 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.4s Time] [2022-04-08 10:38:04,229 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 63 states. [2022-04-08 10:38:04,245 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 63 to 55. [2022-04-08 10:38:04,246 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:04,246 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 10:38:04,246 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 10:38:04,247 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 10:38:04,249 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:04,249 INFO L93 Difference]: Finished difference Result 63 states and 76 transitions. [2022-04-08 10:38:04,249 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 76 transitions. [2022-04-08 10:38:04,249 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:04,250 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:04,250 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 10:38:04,250 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 10:38:04,252 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:04,252 INFO L93 Difference]: Finished difference Result 63 states and 76 transitions. [2022-04-08 10:38:04,252 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 76 transitions. [2022-04-08 10:38:04,253 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:04,253 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:04,253 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:04,253 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:04,253 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 10:38:04,255 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 66 transitions. [2022-04-08 10:38:04,255 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 66 transitions. Word has length 49 [2022-04-08 10:38:04,255 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:04,255 INFO L478 AbstractCegarLoop]: Abstraction has 55 states and 66 transitions. [2022-04-08 10:38:04,256 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 10:38:04,256 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 55 states and 66 transitions. [2022-04-08 10:38:04,317 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 10:38:04,317 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 66 transitions. [2022-04-08 10:38:04,318 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 10:38:04,318 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:04,318 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 10:38:04,339 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 10:38:04,522 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 10:38:04,522 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:04,523 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:04,523 INFO L85 PathProgramCache]: Analyzing trace with hash -2096379008, now seen corresponding path program 1 times [2022-04-08 10:38:04,524 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:04,524 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1866308250] [2022-04-08 10:38:04,524 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:04,524 INFO L85 PathProgramCache]: Analyzing trace with hash -2096379008, now seen corresponding path program 2 times [2022-04-08 10:38:04,525 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:04,525 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1511172743] [2022-04-08 10:38:04,525 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:04,525 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:04,587 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,642 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:04,645 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,647 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 10:38:04,647 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,647 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1344#true} {1344#true} #122#return; {1344#true} is VALID [2022-04-08 10:38:04,648 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:04,648 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,651 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,651 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,651 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,652 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #98#return; {1344#true} is VALID [2022-04-08 10:38:04,656 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:04,659 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,664 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 10:38:04,664 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,664 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1344#true} {1344#true} #100#return; {1344#true} is VALID [2022-04-08 10:38:04,664 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:04,672 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,678 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:04,679 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,682 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,682 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,682 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,682 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-08 10:38:04,682 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:04,683 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,689 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,689 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,690 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,690 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-08 10:38:04,690 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:04,690 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,693 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,693 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,693 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,694 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-08 10:38:04,694 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 10:38:04,694 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 10:38:04,695 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,695 INFO L290 TraceCheckUtils]: 3: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,695 INFO L290 TraceCheckUtils]: 4: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,695 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-08 10:38:04,695 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 10:38:04,695 INFO L290 TraceCheckUtils]: 7: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,696 INFO L290 TraceCheckUtils]: 8: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,696 INFO L290 TraceCheckUtils]: 9: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,696 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-08 10:38:04,696 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 10:38:04,696 INFO L290 TraceCheckUtils]: 12: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,696 INFO L290 TraceCheckUtils]: 13: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,696 INFO L290 TraceCheckUtils]: 14: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,696 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-08 10:38:04,696 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 10:38:04,696 INFO L290 TraceCheckUtils]: 17: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,697 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1344#true} {1344#true} #102#return; {1344#true} is VALID [2022-04-08 10:38:04,697 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:04,703 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:04,718 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 10:38:04,719 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {1344#true} is VALID [2022-04-08 10:38:04,719 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 10:38:04,719 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 10:38:04,720 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 10:38:04,721 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 10:38:04,722 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 10:38:04,722 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 10:38:04,722 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,722 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #122#return; {1344#true} is VALID [2022-04-08 10:38:04,722 INFO L272 TraceCheckUtils]: 4: Hoare triple {1344#true} call #t~ret27 := main(); {1344#true} is VALID [2022-04-08 10:38:04,722 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 10:38:04,722 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 10:38:04,722 INFO L290 TraceCheckUtils]: 7: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,722 INFO L290 TraceCheckUtils]: 8: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,722 INFO L290 TraceCheckUtils]: 9: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,723 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1344#true} {1344#true} #98#return; {1344#true} is VALID [2022-04-08 10:38:04,723 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 10:38:04,723 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 10:38:04,724 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 10:38:04,724 INFO L290 TraceCheckUtils]: 14: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,724 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1344#true} {1344#true} #100#return; {1344#true} is VALID [2022-04-08 10:38:04,724 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 10:38:04,724 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 10:38:04,725 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 10:38:04,725 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 10:38:04,725 INFO L290 TraceCheckUtils]: 20: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,725 INFO L290 TraceCheckUtils]: 21: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,725 INFO L290 TraceCheckUtils]: 22: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,725 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-08 10:38:04,725 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 10:38:04,725 INFO L290 TraceCheckUtils]: 25: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,725 INFO L290 TraceCheckUtils]: 26: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,725 INFO L290 TraceCheckUtils]: 27: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,726 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-08 10:38:04,726 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 10:38:04,726 INFO L290 TraceCheckUtils]: 30: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-08 10:38:04,726 INFO L290 TraceCheckUtils]: 31: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-08 10:38:04,726 INFO L290 TraceCheckUtils]: 32: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,726 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-08 10:38:04,726 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 10:38:04,726 INFO L290 TraceCheckUtils]: 35: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-08 10:38:04,726 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1344#true} {1344#true} #102#return; {1344#true} is VALID [2022-04-08 10:38:04,726 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 10:38:04,727 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 10:38:04,728 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 10:38:04,728 INFO L290 TraceCheckUtils]: 40: Hoare triple {1344#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {1344#true} is VALID [2022-04-08 10:38:04,728 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 10:38:04,728 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 10:38:04,729 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 10:38:04,730 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 10:38:04,730 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 10:38:04,731 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 10:38:04,731 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 10:38:04,731 INFO L290 TraceCheckUtils]: 48: Hoare triple {1384#(= __VERIFIER_assert_~cond 1)} assume 0 == ~cond; {1345#false} is VALID [2022-04-08 10:38:04,731 INFO L290 TraceCheckUtils]: 49: Hoare triple {1345#false} assume !false; {1345#false} is VALID [2022-04-08 10:38:04,731 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 10:38:04,732 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:04,732 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1511172743] [2022-04-08 10:38:04,732 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1511172743] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:04,732 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:04,732 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 10:38:04,732 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:04,732 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1866308250] [2022-04-08 10:38:04,732 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1866308250] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:04,732 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:04,732 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 10:38:04,732 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1621406003] [2022-04-08 10:38:04,733 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:04,733 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 10:38:04,733 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:04,733 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 10:38:04,759 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 10:38:04,759 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-08 10:38:04,759 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:04,759 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-08 10:38:04,759 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=57, Unknown=0, NotChecked=0, Total=72 [2022-04-08 10:38:04,760 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 10:38:05,605 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:05,606 INFO L93 Difference]: Finished difference Result 75 states and 91 transitions. [2022-04-08 10:38:05,606 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-08 10:38:05,606 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 10:38:05,606 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:05,606 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 10:38:05,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 90 transitions. [2022-04-08 10:38:05,608 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 10:38:05,610 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 90 transitions. [2022-04-08 10:38:05,610 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 90 transitions. [2022-04-08 10:38:05,682 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 10:38:05,684 INFO L225 Difference]: With dead ends: 75 [2022-04-08 10:38:05,684 INFO L226 Difference]: Without dead ends: 73 [2022-04-08 10:38:05,684 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 10:38:05,685 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 10:38:05,685 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 10:38:05,686 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2022-04-08 10:38:05,708 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 63. [2022-04-08 10:38:05,708 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:05,708 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 10:38:05,709 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 10:38:05,709 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 10:38:05,713 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:05,714 INFO L93 Difference]: Finished difference Result 73 states and 89 transitions. [2022-04-08 10:38:05,714 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 89 transitions. [2022-04-08 10:38:05,714 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:05,714 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:05,715 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 10:38:05,715 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 10:38:05,718 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:05,718 INFO L93 Difference]: Finished difference Result 73 states and 89 transitions. [2022-04-08 10:38:05,718 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 89 transitions. [2022-04-08 10:38:05,718 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:05,719 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:05,719 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:05,719 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:05,719 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 10:38:05,721 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 63 states to 63 states and 74 transitions. [2022-04-08 10:38:05,721 INFO L78 Accepts]: Start accepts. Automaton has 63 states and 74 transitions. Word has length 50 [2022-04-08 10:38:05,721 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:05,721 INFO L478 AbstractCegarLoop]: Abstraction has 63 states and 74 transitions. [2022-04-08 10:38:05,721 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 10:38:05,721 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 63 states and 74 transitions. [2022-04-08 10:38:05,792 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 10:38:05,792 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 74 transitions. [2022-04-08 10:38:05,793 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2022-04-08 10:38:05,793 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:05,793 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 10:38:05,793 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-04-08 10:38:05,793 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:05,793 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:05,793 INFO L85 PathProgramCache]: Analyzing trace with hash 983031743, now seen corresponding path program 1 times [2022-04-08 10:38:05,793 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:05,794 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2100074471] [2022-04-08 10:38:05,794 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:05,794 INFO L85 PathProgramCache]: Analyzing trace with hash 983031743, now seen corresponding path program 2 times [2022-04-08 10:38:05,794 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:05,794 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1384203187] [2022-04-08 10:38:05,794 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:05,794 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:05,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:05,865 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:05,866 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:05,868 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 10:38:05,868 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:05,868 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-08 10:38:05,868 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:05,869 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:05,870 INFO L290 TraceCheckUtils]: 0: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-08 10:38:05,870 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-08 10:38:05,871 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:05,871 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-08 10:38:05,874 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:05,875 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:05,882 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 10:38:05,882 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:05,882 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-08 10:38:05,883 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:05,894 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:06,012 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:06,014 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:06,029 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 10:38:06,030 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 10:38:06,030 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 10:38:06,031 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 10:38:06,031 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:06,034 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:06,040 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 10:38:06,040 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 10:38:06,041 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 10:38:06,041 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 10:38:06,042 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:06,043 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:06,047 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 10:38:06,048 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 10:38:06,048 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 10:38:06,049 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 10:38:06,049 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 10:38:06,049 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 10:38:06,049 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 10:38:06,050 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 10:38:06,050 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 10:38:06,051 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 10:38:06,051 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 10:38:06,051 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 10:38:06,052 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 10:38:06,052 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 10:38:06,053 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 10:38:06,053 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 10:38:06,053 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 10:38:06,053 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 10:38:06,054 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 10:38:06,054 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 10:38:06,054 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 10:38:06,055 INFO L290 TraceCheckUtils]: 17: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 10:38:06,055 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 10:38:06,056 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:06,058 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:06,105 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 10:38:06,106 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 10:38:06,106 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 10:38:06,107 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 10:38:06,107 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 10:38:06,107 INFO L290 TraceCheckUtils]: 5: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 10:38:06,124 INFO L290 TraceCheckUtils]: 6: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 10:38:06,125 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 10:38:06,126 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 10:38:06,126 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 10:38:06,126 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:06,126 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-08 10:38:06,126 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-08 10:38:06,126 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 10:38:06,126 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 10:38:06,126 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-08 10:38:06,126 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-08 10:38:06,126 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:06,127 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-08 10:38:06,127 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 10:38:06,127 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 10:38:06,127 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 10:38:06,128 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:06,128 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-08 10:38:06,128 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 10:38:06,128 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 10:38:06,129 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 10:38:06,129 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 10:38:06,129 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 10:38:06,129 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 10:38:06,130 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 10:38:06,131 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 10:38:06,131 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 10:38:06,131 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 10:38:06,131 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 10:38:06,132 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 10:38:06,132 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 10:38:06,133 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 10:38:06,133 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 10:38:06,133 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 10:38:06,134 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 10:38:06,134 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 10:38:06,134 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 10:38:06,135 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 10:38:06,135 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 10:38:06,136 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 10:38:06,137 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 10:38:06,137 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 10:38:06,138 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 10:38:06,138 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 10:38:06,139 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 10:38:06,139 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 10:38:06,139 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 10:38:06,139 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 10:38:06,141 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 10:38:06,141 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 10:38:06,141 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-08 10:38:06,141 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-08 10:38:06,141 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-08 10:38:06,141 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-08 10:38:06,141 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 10:38:06,142 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:06,142 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1384203187] [2022-04-08 10:38:06,142 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1384203187] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:06,142 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2102711755] [2022-04-08 10:38:06,142 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 10:38:06,142 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:38:06,142 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:06,143 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 10:38:06,159 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 10:38:06,219 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 10:38:06,220 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:38:06,221 INFO L263 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 22 conjunts are in the unsatisfiable core [2022-04-08 10:38:06,233 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:06,234 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:38:06,730 INFO L272 TraceCheckUtils]: 0: Hoare triple {1837#true} call ULTIMATE.init(); {1837#true} is VALID [2022-04-08 10:38:06,730 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 10:38:06,730 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:06,731 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-08 10:38:06,731 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-08 10:38:06,731 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 10:38:06,731 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 10:38:06,731 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-08 10:38:06,731 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-08 10:38:06,731 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:06,731 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-08 10:38:06,731 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 10:38:06,731 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 10:38:06,731 INFO L290 TraceCheckUtils]: 13: Hoare triple {1837#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1837#true} is VALID [2022-04-08 10:38:06,732 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:06,732 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-08 10:38:06,732 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 10:38:06,732 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 10:38:06,732 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 10:38:06,732 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 10:38:06,733 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 10:38:06,733 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 10:38:06,734 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 10:38:06,734 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 10:38:06,734 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 10:38:06,735 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 10:38:06,735 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 10:38:06,735 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 10:38:06,736 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 10:38:06,736 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 10:38:06,737 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 10:38:06,737 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 10:38:06,737 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 10:38:06,738 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 10:38:06,738 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 10:38:06,739 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 10:38:06,739 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 10:38:06,740 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 10:38:06,740 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 10:38:06,740 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 10:38:06,741 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 10:38:06,741 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 10:38:06,741 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 10:38:06,742 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 10:38:06,742 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 10:38:06,742 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 10:38:06,743 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 10:38:06,744 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 10:38:06,744 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-08 10:38:06,744 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-08 10:38:06,744 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-08 10:38:06,744 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-08 10:38:06,744 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 10:38:06,744 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:38:08,626 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-08 10:38:08,626 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-08 10:38:08,626 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-08 10:38:08,626 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-08 10:38:08,626 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 10:38:08,628 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 10:38:08,628 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 10:38:08,628 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-08 10:38:08,629 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 10:38:08,629 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 10:38:08,629 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 10:38:08,630 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 10:38:08,630 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 10:38:08,630 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 10:38:08,631 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 10:38:08,631 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 10:38:08,632 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-08 10:38:08,632 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 10:38:08,632 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 10:38:08,633 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 10:38:08,633 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 10:38:08,633 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 10:38:08,633 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 10:38:08,634 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 10:38:08,635 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 10:38:08,635 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 10:38:08,635 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 10:38:08,635 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 10:38:08,636 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 10:38:08,636 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 10:38:08,637 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 10:38:08,637 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 10:38:08,637 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 10:38:08,638 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 10:38:08,638 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 10:38:08,638 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 10:38:08,638 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-08 10:38:08,638 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:08,638 INFO L290 TraceCheckUtils]: 13: Hoare triple {1837#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1837#true} is VALID [2022-04-08 10:38:08,638 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 10:38:08,638 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 10:38:08,638 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-08 10:38:08,638 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:08,638 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-08 10:38:08,639 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-08 10:38:08,639 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 10:38:08,639 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 10:38:08,639 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-08 10:38:08,639 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-08 10:38:08,639 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-08 10:38:08,639 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 10:38:08,639 INFO L272 TraceCheckUtils]: 0: Hoare triple {1837#true} call ULTIMATE.init(); {1837#true} is VALID [2022-04-08 10:38:08,639 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 10:38:08,639 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2102711755] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:08,640 INFO L184 FreeRefinementEngine]: Found 1 perfect and 2 imperfect interpolant sequences. [2022-04-08 10:38:08,640 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [15, 12] total 25 [2022-04-08 10:38:08,640 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:08,640 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2100074471] [2022-04-08 10:38:08,640 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2100074471] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:08,640 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:08,640 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-08 10:38:08,640 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [322413822] [2022-04-08 10:38:08,640 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:08,641 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 10:38:08,641 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:08,641 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 10:38:08,673 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 10:38:08,673 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-08 10:38:08,673 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:08,673 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-08 10:38:08,674 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=526, Unknown=0, NotChecked=0, Total=600 [2022-04-08 10:38:08,674 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 10:38:09,280 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:09,280 INFO L93 Difference]: Finished difference Result 104 states and 126 transitions. [2022-04-08 10:38:09,280 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 10:38:09,281 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 10:38:09,281 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:09,281 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 10:38:09,283 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 112 transitions. [2022-04-08 10:38:09,283 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 10:38:09,285 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 112 transitions. [2022-04-08 10:38:09,285 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 112 transitions. [2022-04-08 10:38:09,371 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 10:38:09,374 INFO L225 Difference]: With dead ends: 104 [2022-04-08 10:38:09,374 INFO L226 Difference]: Without dead ends: 70 [2022-04-08 10:38:09,375 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 10:38:09,376 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 10:38:09,377 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 10:38:09,378 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2022-04-08 10:38:09,422 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 64. [2022-04-08 10:38:09,422 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:09,423 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 10:38:09,424 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 10:38:09,425 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 10:38:09,427 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:09,427 INFO L93 Difference]: Finished difference Result 70 states and 83 transitions. [2022-04-08 10:38:09,427 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 83 transitions. [2022-04-08 10:38:09,428 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:09,428 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:09,429 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 10:38:09,430 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 10:38:09,432 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:09,432 INFO L93 Difference]: Finished difference Result 70 states and 83 transitions. [2022-04-08 10:38:09,432 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 83 transitions. [2022-04-08 10:38:09,433 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:09,433 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:09,433 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:09,433 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:09,434 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 10:38:09,435 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 64 states to 64 states and 75 transitions. [2022-04-08 10:38:09,435 INFO L78 Accepts]: Start accepts. Automaton has 64 states and 75 transitions. Word has length 52 [2022-04-08 10:38:09,436 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:09,436 INFO L478 AbstractCegarLoop]: Abstraction has 64 states and 75 transitions. [2022-04-08 10:38:09,436 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 10:38:09,436 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 64 states and 75 transitions. [2022-04-08 10:38:09,503 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 10:38:09,503 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 75 transitions. [2022-04-08 10:38:09,504 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2022-04-08 10:38:09,504 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:09,504 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 10:38:09,520 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Ended with exit code 0 [2022-04-08 10:38:09,720 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 10:38:09,721 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:09,721 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:09,721 INFO L85 PathProgramCache]: Analyzing trace with hash 2045094069, now seen corresponding path program 1 times [2022-04-08 10:38:09,721 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:09,721 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1641900271] [2022-04-08 10:38:09,722 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:09,722 INFO L85 PathProgramCache]: Analyzing trace with hash 2045094069, now seen corresponding path program 2 times [2022-04-08 10:38:09,722 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:09,722 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1870070797] [2022-04-08 10:38:09,722 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:09,722 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:09,754 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,774 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:09,776 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,783 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 10:38:09,783 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,784 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-08 10:38:09,784 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:09,784 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,786 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,786 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,786 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,786 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-08 10:38:09,788 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:09,789 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,791 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 10:38:09,791 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,791 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-08 10:38:09,792 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:09,796 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,799 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:09,800 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,801 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,801 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,801 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,802 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 10:38:09,802 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:09,803 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,805 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,805 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,805 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,805 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 10:38:09,805 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:09,806 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,808 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,808 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,808 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,808 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 10:38:09,808 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 10:38:09,808 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 10:38:09,808 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L290 TraceCheckUtils]: 3: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L290 TraceCheckUtils]: 4: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 10:38:09,809 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 10:38:09,809 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 10:38:09,809 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 10:38:09,809 INFO L290 TraceCheckUtils]: 12: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,809 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 10:38:09,810 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 10:38:09,810 INFO L290 TraceCheckUtils]: 17: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,810 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-08 10:38:09,810 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:09,813 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,836 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 10:38:09,836 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 10:38:09,837 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 10:38:09,837 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 10:38:09,838 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 10:38:09,838 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 10:38:09,838 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 10:38:09,839 INFO L290 TraceCheckUtils]: 7: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-08 10:38:09,839 INFO L290 TraceCheckUtils]: 8: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-08 10:38:09,839 INFO L290 TraceCheckUtils]: 9: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-08 10:38:09,839 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-08 10:38:09,839 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 10:38:09,839 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 10:38:09,839 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,840 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-08 10:38:09,840 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-08 10:38:09,840 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 10:38:09,840 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 10:38:09,840 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,840 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,840 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,840 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-08 10:38:09,840 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 10:38:09,841 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 10:38:09,841 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 10:38:09,841 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,841 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-08 10:38:09,841 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 10:38:09,842 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 10:38:09,842 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 10:38:09,842 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 10:38:09,842 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,842 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,842 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,842 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 10:38:09,842 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 10:38:09,842 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,842 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,842 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,843 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 10:38:09,843 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 10:38:09,843 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:09,843 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:09,843 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,843 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 10:38:09,843 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 10:38:09,843 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:09,843 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-08 10:38:09,843 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 10:38:09,844 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 10:38:09,844 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 10:38:09,845 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 10:38:09,845 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 10:38:09,845 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 10:38:09,846 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 10:38:09,846 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 10:38:09,846 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 10:38:09,847 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-08 10:38:09,847 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-08 10:38:09,847 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-08 10:38:09,847 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-08 10:38:09,847 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 10:38:09,847 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-08 10:38:09,847 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-08 10:38:09,847 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-08 10:38:09,847 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-08 10:38:09,847 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 10:38:09,847 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:09,848 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1870070797] [2022-04-08 10:38:09,848 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1870070797] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:09,848 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [708359066] [2022-04-08 10:38:09,848 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 10:38:09,848 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:38:09,848 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:09,868 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 10:38:09,882 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 10:38:09,943 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 10:38:09,944 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:38:09,945 INFO L263 TraceCheckSpWp]: Trace formula consists of 238 conjuncts, 4 conjunts are in the unsatisfiable core [2022-04-08 10:38:09,960 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:09,962 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:38:10,084 INFO L272 TraceCheckUtils]: 0: Hoare triple {2702#true} call ULTIMATE.init(); {2702#true} is VALID [2022-04-08 10:38:10,084 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 10:38:10,084 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,084 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-08 10:38:10,085 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-08 10:38:10,085 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 10:38:10,085 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 10:38:10,085 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:10,085 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:10,085 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,085 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-08 10:38:10,085 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 10:38:10,085 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 10:38:10,085 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2702#true} is VALID [2022-04-08 10:38:10,085 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,085 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-08 10:38:10,085 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 10:38:10,086 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 10:38:10,086 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 10:38:10,086 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 10:38:10,086 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:10,086 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:10,086 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,086 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 10:38:10,086 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 10:38:10,086 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:10,086 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:10,086 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,086 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 10:38:10,086 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 10:38:10,087 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:10,087 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:10,087 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,087 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 10:38:10,087 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 10:38:10,087 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,087 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-08 10:38:10,087 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 10:38:10,087 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 10:38:10,087 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 10:38:10,088 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 10:38:10,088 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 10:38:10,089 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 10:38:10,089 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 10:38:10,089 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 10:38:10,090 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 10:38:10,090 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-08 10:38:10,090 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-08 10:38:10,090 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-08 10:38:10,090 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-08 10:38:10,090 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 10:38:10,091 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-08 10:38:10,091 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-08 10:38:10,091 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-08 10:38:10,091 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-08 10:38:10,091 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 10:38:10,091 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:38:10,279 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-08 10:38:10,279 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-08 10:38:10,279 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-08 10:38:10,279 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-08 10:38:10,279 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 10:38:10,279 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-08 10:38:10,279 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-08 10:38:10,279 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-08 10:38:10,280 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-08 10:38:10,280 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 10:38:10,281 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 10:38:10,281 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 10:38:10,281 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 10:38:10,282 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 10:38:10,282 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 10:38:10,282 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 10:38:10,282 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 10:38:10,282 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 10:38:10,283 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-08 10:38:10,283 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,283 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 10:38:10,283 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-08 10:38:10,283 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,283 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:10,283 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:10,283 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 10:38:10,283 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-08 10:38:10,283 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,283 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:10,283 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:10,283 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 10:38:10,284 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-08 10:38:10,284 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,284 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:10,284 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:10,284 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 10:38:10,284 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 10:38:10,284 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 10:38:10,284 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 10:38:10,284 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-08 10:38:10,284 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,284 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2702#true} is VALID [2022-04-08 10:38:10,284 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 10:38:10,284 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 10:38:10,285 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-08 10:38:10,285 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,285 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-08 10:38:10,285 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-08 10:38:10,285 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 10:38:10,285 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 10:38:10,285 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-08 10:38:10,285 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-08 10:38:10,285 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-08 10:38:10,285 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 10:38:10,285 INFO L272 TraceCheckUtils]: 0: Hoare triple {2702#true} call ULTIMATE.init(); {2702#true} is VALID [2022-04-08 10:38:10,285 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 10:38:10,286 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [708359066] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 10:38:10,286 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-08 10:38:10,286 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 5, 5] total 7 [2022-04-08 10:38:10,286 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:10,286 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1641900271] [2022-04-08 10:38:10,286 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1641900271] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:10,286 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:10,286 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-04-08 10:38:10,286 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1978162134] [2022-04-08 10:38:10,286 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:10,287 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 10:38:10,287 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:10,287 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 10:38:10,318 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 10:38:10,319 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-04-08 10:38:10,319 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:10,319 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-04-08 10:38:10,319 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2022-04-08 10:38:10,319 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 10:38:10,791 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:10,792 INFO L93 Difference]: Finished difference Result 88 states and 106 transitions. [2022-04-08 10:38:10,792 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-08 10:38:10,792 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 10:38:10,792 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:10,792 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 10:38:10,794 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 98 transitions. [2022-04-08 10:38:10,794 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 10:38:10,795 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 98 transitions. [2022-04-08 10:38:10,795 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 98 transitions. [2022-04-08 10:38:10,874 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 10:38:10,875 INFO L225 Difference]: With dead ends: 88 [2022-04-08 10:38:10,876 INFO L226 Difference]: Without dead ends: 67 [2022-04-08 10:38:10,876 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 10:38:10,876 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 10:38:10,877 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 10:38:10,877 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 67 states. [2022-04-08 10:38:10,931 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 67 to 67. [2022-04-08 10:38:10,931 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:10,932 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 10:38:10,932 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 10:38:10,932 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 10:38:10,934 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:10,935 INFO L93 Difference]: Finished difference Result 67 states and 79 transitions. [2022-04-08 10:38:10,935 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-08 10:38:10,935 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:10,935 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:10,935 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 10:38:10,935 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 10:38:10,937 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:10,937 INFO L93 Difference]: Finished difference Result 67 states and 79 transitions. [2022-04-08 10:38:10,937 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-08 10:38:10,938 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:10,938 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:10,938 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:10,938 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:10,938 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 10:38:10,940 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 67 states to 67 states and 79 transitions. [2022-04-08 10:38:10,940 INFO L78 Accepts]: Start accepts. Automaton has 67 states and 79 transitions. Word has length 55 [2022-04-08 10:38:10,940 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:10,940 INFO L478 AbstractCegarLoop]: Abstraction has 67 states and 79 transitions. [2022-04-08 10:38:10,941 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 10:38:10,941 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 67 states and 79 transitions. [2022-04-08 10:38:11,021 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 10:38:11,021 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-08 10:38:11,021 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-08 10:38:11,021 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:11,021 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 10:38:11,041 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 10:38:11,222 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 10:38:11,222 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:11,222 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:11,222 INFO L85 PathProgramCache]: Analyzing trace with hash 629236887, now seen corresponding path program 1 times [2022-04-08 10:38:11,222 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:11,223 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2001694287] [2022-04-08 10:38:11,223 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:11,223 INFO L85 PathProgramCache]: Analyzing trace with hash 629236887, now seen corresponding path program 2 times [2022-04-08 10:38:11,223 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:11,223 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [809240454] [2022-04-08 10:38:11,223 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:11,223 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:11,242 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,329 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:11,330 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,332 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 10:38:11,332 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,333 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-08 10:38:11,333 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:11,333 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,335 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,335 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,335 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,335 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-08 10:38:11,343 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:11,344 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,346 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 10:38:11,346 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,346 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-08 10:38:11,346 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:11,350 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,353 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:11,353 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,355 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,355 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,355 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,355 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-08 10:38:11,355 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:11,355 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,357 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,357 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,357 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,357 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-08 10:38:11,357 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:11,358 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,359 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,359 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,359 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,359 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-08 10:38:11,359 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 10:38:11,359 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 10:38:11,359 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,359 INFO L290 TraceCheckUtils]: 3: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,360 INFO L290 TraceCheckUtils]: 4: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,360 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-08 10:38:11,360 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 10:38:11,360 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,360 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,360 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,360 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-08 10:38:11,360 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 10:38:11,360 INFO L290 TraceCheckUtils]: 12: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,360 INFO L290 TraceCheckUtils]: 13: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,360 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,360 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-08 10:38:11,360 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 10:38:11,361 INFO L290 TraceCheckUtils]: 17: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,361 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-08 10:38:11,361 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:11,364 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,513 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 10:38:11,514 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 10:38:11,515 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 10:38:11,516 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 10:38:11,516 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 10:38:11,517 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 10:38:11,517 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 10:38:11,519 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,546 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:38:11,546 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 10:38:11,546 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 10:38:11,547 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 10:38:11,547 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 10:38:11,548 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 10:38:11,548 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,548 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-08 10:38:11,548 INFO L272 TraceCheckUtils]: 4: Hoare triple {3545#true} call #t~ret27 := main(); {3545#true} is VALID [2022-04-08 10:38:11,548 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 10:38:11,548 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 10:38:11,548 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,548 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,549 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,549 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-08 10:38:11,549 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 10:38:11,549 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 10:38:11,549 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 10:38:11,549 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,549 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-08 10:38:11,549 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 10:38:11,550 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 10:38:11,550 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 10:38:11,550 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 10:38:11,550 INFO L290 TraceCheckUtils]: 20: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,550 INFO L290 TraceCheckUtils]: 21: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,550 INFO L290 TraceCheckUtils]: 22: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,550 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-08 10:38:11,550 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 10:38:11,550 INFO L290 TraceCheckUtils]: 25: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,551 INFO L290 TraceCheckUtils]: 26: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,551 INFO L290 TraceCheckUtils]: 27: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,551 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-08 10:38:11,551 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 10:38:11,551 INFO L290 TraceCheckUtils]: 30: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:11,552 INFO L290 TraceCheckUtils]: 31: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:11,552 INFO L290 TraceCheckUtils]: 32: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,552 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-08 10:38:11,552 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 10:38:11,552 INFO L290 TraceCheckUtils]: 35: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:11,552 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-08 10:38:11,552 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 10:38:11,553 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 10:38:11,553 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 10:38:11,554 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 10:38:11,554 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 10:38:11,555 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 10:38:11,555 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 10:38:11,556 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 10:38:11,557 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 10:38:11,557 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 10:38:11,557 INFO L290 TraceCheckUtils]: 47: Hoare triple {3545#true} ~cond := #in~cond; {3612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:38:11,557 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 10:38:11,557 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 10:38:11,558 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 10:38:11,558 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 10:38:11,559 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 10:38:11,564 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 10:38:11,564 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 10:38:11,564 INFO L290 TraceCheckUtils]: 55: Hoare triple {3593#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {3546#false} is VALID [2022-04-08 10:38:11,565 INFO L290 TraceCheckUtils]: 56: Hoare triple {3546#false} assume !false; {3546#false} is VALID [2022-04-08 10:38:11,565 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 10:38:11,565 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:11,565 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [809240454] [2022-04-08 10:38:11,565 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [809240454] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:11,565 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1934060971] [2022-04-08 10:38:11,565 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 10:38:11,565 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:38:11,566 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:11,566 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 10:38:11,570 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 10:38:11,634 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 10:38:11,634 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:38:11,636 INFO L263 TraceCheckSpWp]: Trace formula consists of 259 conjuncts, 31 conjunts are in the unsatisfiable core [2022-04-08 10:38:11,651 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:11,652 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:38:11,737 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 10:38:11,883 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 10:38:11,892 INFO L356 Elim1Store]: treesize reduction 11, result has 45.0 percent of original size [2022-04-08 10:38:11,892 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 10:38:11,898 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 10:38:12,059 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 10:38:12,129 INFO L272 TraceCheckUtils]: 0: Hoare triple {3545#true} call ULTIMATE.init(); {3545#true} is VALID [2022-04-08 10:38:12,130 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 10:38:12,130 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:12,130 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-08 10:38:12,130 INFO L272 TraceCheckUtils]: 4: Hoare triple {3545#true} call #t~ret27 := main(); {3545#true} is VALID [2022-04-08 10:38:12,130 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 10:38:12,130 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 10:38:12,130 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:12,130 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:12,130 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:12,130 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-08 10:38:12,130 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 10:38:12,130 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 10:38:12,130 INFO L290 TraceCheckUtils]: 13: Hoare triple {3545#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3545#true} is VALID [2022-04-08 10:38:12,131 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:12,131 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-08 10:38:12,131 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 10:38:12,131 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 10:38:12,131 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 10:38:12,131 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 10:38:12,131 INFO L290 TraceCheckUtils]: 20: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:12,131 INFO L290 TraceCheckUtils]: 21: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:12,131 INFO L290 TraceCheckUtils]: 22: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:12,131 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-08 10:38:12,131 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 10:38:12,131 INFO L290 TraceCheckUtils]: 25: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:12,131 INFO L290 TraceCheckUtils]: 26: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:12,131 INFO L290 TraceCheckUtils]: 27: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:12,132 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-08 10:38:12,132 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 10:38:12,132 INFO L290 TraceCheckUtils]: 30: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:12,132 INFO L290 TraceCheckUtils]: 31: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:12,132 INFO L290 TraceCheckUtils]: 32: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:12,132 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-08 10:38:12,132 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 10:38:12,132 INFO L290 TraceCheckUtils]: 35: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:12,132 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-08 10:38:12,133 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 10:38:12,133 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 10:38:12,133 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 10:38:12,134 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 10:38:12,134 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 10:38:12,134 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 10:38:12,135 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 10:38:12,136 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 10:38:12,136 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 10:38:12,137 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 10:38:12,137 INFO L290 TraceCheckUtils]: 47: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-08 10:38:12,137 INFO L290 TraceCheckUtils]: 48: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-08 10:38:12,137 INFO L290 TraceCheckUtils]: 49: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-08 10:38:12,137 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 10:38:12,138 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 10:38:12,138 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 10:38:12,138 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 10:38:12,139 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 10:38:12,139 INFO L290 TraceCheckUtils]: 55: Hoare triple {3784#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3546#false} is VALID [2022-04-08 10:38:12,139 INFO L290 TraceCheckUtils]: 56: Hoare triple {3546#false} assume !false; {3546#false} is VALID [2022-04-08 10:38:12,139 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 10:38:12,139 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-08 10:38:12,139 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1934060971] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:12,140 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-08 10:38:12,140 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [17] total 24 [2022-04-08 10:38:12,140 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:12,140 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2001694287] [2022-04-08 10:38:12,140 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2001694287] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:12,140 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:12,140 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-04-08 10:38:12,140 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [231065146] [2022-04-08 10:38:12,140 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:12,141 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 10:38:12,141 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:12,141 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 10:38:12,167 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 10:38:12,168 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-08 10:38:12,168 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:12,168 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-08 10:38:12,168 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=499, Unknown=0, NotChecked=0, Total=552 [2022-04-08 10:38:12,168 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 10:38:12,865 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:12,865 INFO L93 Difference]: Finished difference Result 85 states and 102 transitions. [2022-04-08 10:38:12,865 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-08 10:38:12,865 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 10:38:12,866 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:12,866 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 10:38:12,867 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 93 transitions. [2022-04-08 10:38:12,867 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 10:38:12,869 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 93 transitions. [2022-04-08 10:38:12,869 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 93 transitions. [2022-04-08 10:38:12,926 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 10:38:12,929 INFO L225 Difference]: With dead ends: 85 [2022-04-08 10:38:12,929 INFO L226 Difference]: Without dead ends: 83 [2022-04-08 10:38:12,930 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 10:38:12,930 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 10:38:12,930 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 10:38:12,930 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2022-04-08 10:38:13,002 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 74. [2022-04-08 10:38:13,002 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:13,002 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 10:38:13,003 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 10:38:13,003 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 10:38:13,005 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:13,005 INFO L93 Difference]: Finished difference Result 83 states and 100 transitions. [2022-04-08 10:38:13,005 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 100 transitions. [2022-04-08 10:38:13,005 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:13,005 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:13,006 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 10:38:13,006 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 10:38:13,008 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:13,008 INFO L93 Difference]: Finished difference Result 83 states and 100 transitions. [2022-04-08 10:38:13,008 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 100 transitions. [2022-04-08 10:38:13,008 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:13,008 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:13,008 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:13,008 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:13,009 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 10:38:13,010 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 87 transitions. [2022-04-08 10:38:13,010 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 87 transitions. Word has length 57 [2022-04-08 10:38:13,010 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:13,010 INFO L478 AbstractCegarLoop]: Abstraction has 74 states and 87 transitions. [2022-04-08 10:38:13,011 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 10:38:13,011 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 74 states and 87 transitions. [2022-04-08 10:38:13,116 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 10:38:13,116 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 87 transitions. [2022-04-08 10:38:13,117 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-08 10:38:13,117 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:13,117 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 10:38:13,138 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 10:38:13,337 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 10:38:13,338 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:13,338 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:13,338 INFO L85 PathProgramCache]: Analyzing trace with hash 631083929, now seen corresponding path program 1 times [2022-04-08 10:38:13,338 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:13,338 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [732775493] [2022-04-08 10:38:13,338 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:13,338 INFO L85 PathProgramCache]: Analyzing trace with hash 631083929, now seen corresponding path program 2 times [2022-04-08 10:38:13,339 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:13,339 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1402840620] [2022-04-08 10:38:13,339 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:13,339 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:13,352 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,396 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:13,400 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,402 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 10:38:13,402 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,402 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4284#true} {4284#true} #122#return; {4284#true} is VALID [2022-04-08 10:38:13,402 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:13,403 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,404 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,404 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,404 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,404 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #98#return; {4284#true} is VALID [2022-04-08 10:38:13,409 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:13,415 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,417 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 10:38:13,417 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,417 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4284#true} {4284#true} #100#return; {4284#true} is VALID [2022-04-08 10:38:13,418 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:13,421 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,424 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:13,424 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,426 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,426 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,426 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,426 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-08 10:38:13,426 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:13,427 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,428 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,428 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,428 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,428 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-08 10:38:13,428 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:13,429 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,430 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,430 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,430 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,430 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-08 10:38:13,430 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 10:38:13,430 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 10:38:13,430 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,430 INFO L290 TraceCheckUtils]: 3: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,430 INFO L290 TraceCheckUtils]: 4: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,430 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-08 10:38:13,431 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 10:38:13,431 INFO L290 TraceCheckUtils]: 7: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,431 INFO L290 TraceCheckUtils]: 8: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,431 INFO L290 TraceCheckUtils]: 9: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,431 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-08 10:38:13,431 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 10:38:13,431 INFO L290 TraceCheckUtils]: 12: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,431 INFO L290 TraceCheckUtils]: 13: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,431 INFO L290 TraceCheckUtils]: 14: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,431 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-08 10:38:13,431 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 10:38:13,431 INFO L290 TraceCheckUtils]: 17: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,431 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {4284#true} {4284#true} #102#return; {4284#true} is VALID [2022-04-08 10:38:13,432 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:13,434 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,468 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 10:38:13,469 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 10:38:13,470 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 10:38:13,470 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 10:38:13,471 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 10:38:13,472 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 10:38:13,472 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 10:38:13,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:13,489 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4346#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:38:13,489 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 10:38:13,489 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 10:38:13,490 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 10:38:13,490 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 10:38:13,490 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 10:38:13,490 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,491 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #122#return; {4284#true} is VALID [2022-04-08 10:38:13,491 INFO L272 TraceCheckUtils]: 4: Hoare triple {4284#true} call #t~ret27 := main(); {4284#true} is VALID [2022-04-08 10:38:13,491 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 10:38:13,491 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 10:38:13,491 INFO L290 TraceCheckUtils]: 7: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,491 INFO L290 TraceCheckUtils]: 8: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,491 INFO L290 TraceCheckUtils]: 9: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,491 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4284#true} {4284#true} #98#return; {4284#true} is VALID [2022-04-08 10:38:13,491 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 10:38:13,492 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 10:38:13,492 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 10:38:13,492 INFO L290 TraceCheckUtils]: 14: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,492 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4284#true} {4284#true} #100#return; {4284#true} is VALID [2022-04-08 10:38:13,492 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 10:38:13,493 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 10:38:13,493 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 10:38:13,493 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 10:38:13,493 INFO L290 TraceCheckUtils]: 20: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,493 INFO L290 TraceCheckUtils]: 21: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,493 INFO L290 TraceCheckUtils]: 22: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,493 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-08 10:38:13,493 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 10:38:13,493 INFO L290 TraceCheckUtils]: 25: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,493 INFO L290 TraceCheckUtils]: 26: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,493 INFO L290 TraceCheckUtils]: 27: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,493 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-08 10:38:13,493 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 10:38:13,494 INFO L290 TraceCheckUtils]: 30: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-08 10:38:13,494 INFO L290 TraceCheckUtils]: 31: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-08 10:38:13,494 INFO L290 TraceCheckUtils]: 32: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,494 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-08 10:38:13,494 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 10:38:13,494 INFO L290 TraceCheckUtils]: 35: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-08 10:38:13,494 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4284#true} {4284#true} #102#return; {4284#true} is VALID [2022-04-08 10:38:13,494 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 10:38:13,495 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 10:38:13,496 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 10:38:13,496 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 10:38:13,497 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 10:38:13,497 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 10:38:13,498 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 10:38:13,499 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 10:38:13,499 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 10:38:13,499 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 10:38:13,500 INFO L290 TraceCheckUtils]: 47: Hoare triple {4284#true} ~cond := #in~cond; {4346#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:38:13,500 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 10:38:13,500 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 10:38:13,501 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 10:38:13,501 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 10:38:13,501 INFO L290 TraceCheckUtils]: 52: Hoare triple {4329#|main_#t~short17|} assume !#t~short17; {4285#false} is VALID [2022-04-08 10:38:13,501 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 10:38:13,501 INFO L290 TraceCheckUtils]: 54: Hoare triple {4285#false} ~cond := #in~cond; {4285#false} is VALID [2022-04-08 10:38:13,502 INFO L290 TraceCheckUtils]: 55: Hoare triple {4285#false} assume 0 == ~cond; {4285#false} is VALID [2022-04-08 10:38:13,502 INFO L290 TraceCheckUtils]: 56: Hoare triple {4285#false} assume !false; {4285#false} is VALID [2022-04-08 10:38:13,502 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 10:38:13,502 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:13,502 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1402840620] [2022-04-08 10:38:13,502 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1402840620] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:13,502 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:13,502 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-08 10:38:13,502 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:13,502 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [732775493] [2022-04-08 10:38:13,503 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [732775493] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:13,503 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:13,503 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-08 10:38:13,503 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [424046260] [2022-04-08 10:38:13,503 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:13,503 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 10:38:13,503 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:13,504 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 10:38:13,533 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 10:38:13,533 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-08 10:38:13,533 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:13,534 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-08 10:38:13,534 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=25, Invalid=131, Unknown=0, NotChecked=0, Total=156 [2022-04-08 10:38:13,534 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 10:38:14,932 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:14,932 INFO L93 Difference]: Finished difference Result 106 states and 130 transitions. [2022-04-08 10:38:14,932 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 10:38:14,933 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 10:38:14,933 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:14,933 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 10:38:14,935 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 111 transitions. [2022-04-08 10:38:14,935 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 10:38:14,936 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 111 transitions. [2022-04-08 10:38:14,936 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 111 transitions. [2022-04-08 10:38:15,016 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 10:38:15,017 INFO L225 Difference]: With dead ends: 106 [2022-04-08 10:38:15,017 INFO L226 Difference]: Without dead ends: 92 [2022-04-08 10:38:15,018 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 10:38:15,018 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 10:38:15,018 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 10:38:15,019 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 92 states. [2022-04-08 10:38:15,105 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 92 to 83. [2022-04-08 10:38:15,105 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:15,105 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 10:38:15,105 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 10:38:15,106 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 10:38:15,108 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:15,108 INFO L93 Difference]: Finished difference Result 92 states and 112 transitions. [2022-04-08 10:38:15,108 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 112 transitions. [2022-04-08 10:38:15,108 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:15,108 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:15,109 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 10:38:15,109 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 10:38:15,111 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:15,111 INFO L93 Difference]: Finished difference Result 92 states and 112 transitions. [2022-04-08 10:38:15,111 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 112 transitions. [2022-04-08 10:38:15,112 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:15,112 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:15,112 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:15,112 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:15,112 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 10:38:15,114 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 83 states to 83 states and 99 transitions. [2022-04-08 10:38:15,114 INFO L78 Accepts]: Start accepts. Automaton has 83 states and 99 transitions. Word has length 57 [2022-04-08 10:38:15,114 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:15,114 INFO L478 AbstractCegarLoop]: Abstraction has 83 states and 99 transitions. [2022-04-08 10:38:15,114 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 10:38:15,114 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 83 states and 99 transitions. [2022-04-08 10:38:15,196 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 10:38:15,196 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 99 transitions. [2022-04-08 10:38:15,197 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 59 [2022-04-08 10:38:15,197 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:15,197 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 10:38:15,197 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6 [2022-04-08 10:38:15,197 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:15,197 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:15,197 INFO L85 PathProgramCache]: Analyzing trace with hash -1636680555, now seen corresponding path program 3 times [2022-04-08 10:38:15,197 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:15,197 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [234641624] [2022-04-08 10:38:15,198 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:15,198 INFO L85 PathProgramCache]: Analyzing trace with hash -1636680555, now seen corresponding path program 4 times [2022-04-08 10:38:15,198 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:15,198 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2135533319] [2022-04-08 10:38:15,198 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:15,198 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:15,229 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:15,307 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:15,308 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:15,310 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 10:38:15,310 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:15,310 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-08 10:38:15,310 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:15,311 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:15,313 INFO L290 TraceCheckUtils]: 0: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-08 10:38:15,313 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-08 10:38:15,313 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:15,313 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-08 10:38:15,316 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:15,319 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:15,324 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 10:38:15,325 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:15,325 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 10:38:15,326 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:15,365 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:15,757 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:15,759 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:15,777 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 10:38:15,778 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 10:38:15,778 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 10:38:15,779 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 10:38:15,779 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:15,781 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:15,795 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 10:38:15,795 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 10:38:15,795 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 10:38:15,797 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 10:38:15,797 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:15,799 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:15,817 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 10:38:15,818 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 10:38:15,818 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 10:38:15,819 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 10:38:15,820 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 10:38:15,820 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 10:38:15,820 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 10:38:15,820 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 10:38:15,820 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 10:38:15,821 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 10:38:15,821 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 10:38:15,821 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 10:38:15,822 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 10:38:15,822 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 10:38:15,823 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 10:38:15,823 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 10:38:15,823 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 10:38:15,824 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 10:38:15,824 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 10:38:15,825 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 10:38:15,826 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 10:38:15,826 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 10:38:15,827 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 10:38:15,828 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:15,833 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:16,005 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 10:38:16,006 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 10:38:16,007 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 10:38:16,007 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 10:38:16,008 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 10:38:16,008 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 10:38:16,009 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 10:38:16,009 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 10:38:16,010 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 10:38:16,010 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 10:38:16,010 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 10:38:16,011 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 10:38:16,011 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 10:38:16,013 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 10:38:16,013 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 10:38:16,013 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 10:38:16,013 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:16,013 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-08 10:38:16,014 INFO L272 TraceCheckUtils]: 4: Hoare triple {4931#true} call #t~ret27 := main(); {4931#true} is VALID [2022-04-08 10:38:16,014 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 10:38:16,014 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 10:38:16,014 INFO L290 TraceCheckUtils]: 7: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-08 10:38:16,014 INFO L290 TraceCheckUtils]: 8: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-08 10:38:16,014 INFO L290 TraceCheckUtils]: 9: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:16,014 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-08 10:38:16,014 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 10:38:16,015 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 10:38:16,015 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 10:38:16,015 INFO L290 TraceCheckUtils]: 14: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:16,016 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 10:38:16,016 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 10:38:16,017 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 10:38:16,017 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 10:38:16,017 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 10:38:16,018 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 10:38:16,018 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 10:38:16,018 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 10:38:16,019 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 10:38:16,019 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 10:38:16,020 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 10:38:16,020 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 10:38:16,020 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 10:38:16,021 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 10:38:16,021 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 10:38:16,022 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 10:38:16,022 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 10:38:16,022 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 10:38:16,024 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 10:38:16,025 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 10:38:16,025 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 10:38:16,026 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 10:38:16,027 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 10:38:16,028 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 10:38:16,028 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 10:38:16,029 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 10:38:16,029 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 10:38:16,030 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 10:38:16,030 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 10:38:16,031 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 10:38:16,031 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 10:38:16,032 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 10:38:16,032 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 10:38:16,033 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 10:38:16,033 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 10:38:16,034 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 10:38:16,034 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 10:38:16,036 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 10:38:16,036 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 10:38:16,036 INFO L272 TraceCheckUtils]: 54: Hoare triple {4932#false} call __VERIFIER_assert(~r~0); {4932#false} is VALID [2022-04-08 10:38:16,036 INFO L290 TraceCheckUtils]: 55: Hoare triple {4932#false} ~cond := #in~cond; {4932#false} is VALID [2022-04-08 10:38:16,036 INFO L290 TraceCheckUtils]: 56: Hoare triple {4932#false} assume 0 == ~cond; {4932#false} is VALID [2022-04-08 10:38:16,036 INFO L290 TraceCheckUtils]: 57: Hoare triple {4932#false} assume !false; {4932#false} is VALID [2022-04-08 10:38:16,036 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 10:38:16,036 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:16,037 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2135533319] [2022-04-08 10:38:16,037 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2135533319] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:16,037 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1381084214] [2022-04-08 10:38:16,037 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 10:38:16,037 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:38:16,037 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:16,038 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 10:38:16,039 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 10:38:16,103 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 10:38:16,103 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:38:16,104 INFO L263 TraceCheckSpWp]: Trace formula consists of 244 conjuncts, 53 conjunts are in the unsatisfiable core [2022-04-08 10:38:16,117 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:16,118 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:38:16,537 INFO L356 Elim1Store]: treesize reduction 37, result has 22.9 percent of original size [2022-04-08 10:38:16,537 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 10:38:25,386 INFO L272 TraceCheckUtils]: 0: Hoare triple {4931#true} call ULTIMATE.init(); {4931#true} is VALID [2022-04-08 10:38:25,386 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 10:38:25,386 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:25,386 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-08 10:38:25,386 INFO L272 TraceCheckUtils]: 4: Hoare triple {4931#true} call #t~ret27 := main(); {4931#true} is VALID [2022-04-08 10:38:25,386 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 10:38:25,386 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 10:38:25,386 INFO L290 TraceCheckUtils]: 7: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-08 10:38:25,386 INFO L290 TraceCheckUtils]: 8: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-08 10:38:25,387 INFO L290 TraceCheckUtils]: 9: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:25,387 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-08 10:38:25,387 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 10:38:25,387 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 10:38:25,387 INFO L290 TraceCheckUtils]: 13: Hoare triple {4931#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4931#true} is VALID [2022-04-08 10:38:25,387 INFO L290 TraceCheckUtils]: 14: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-08 10:38:25,387 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4931#true} {4931#true} #100#return; {4931#true} is VALID [2022-04-08 10:38:25,387 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 10:38:25,387 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 10:38:25,388 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 10:38:25,388 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 10:38:25,388 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 10:38:25,388 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 10:38:25,389 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 10:38:25,389 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 10:38:25,389 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 10:38:25,390 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 10:38:25,390 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 10:38:25,390 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 10:38:25,391 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 10:38:25,391 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 10:38:25,391 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 10:38:25,392 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 10:38:25,392 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 10:38:25,393 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 10:38:25,394 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 10:38:26,012 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 10:38:26,016 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 10:38:26,019 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 10:38:26,020 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 10:38:26,021 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 10:38:26,021 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 10:38:26,022 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 10:38:26,023 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 10:38:26,023 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 10:38:26,027 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 10:38:26,028 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 10:38:26,029 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 10:38:26,029 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 10:38:26,030 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 10:38:26,030 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 10:38:26,031 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 10:38:26,031 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 10:38:26,033 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 10:38:26,034 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 10:38:26,034 INFO L272 TraceCheckUtils]: 54: Hoare triple {4932#false} call __VERIFIER_assert(~r~0); {4932#false} is VALID [2022-04-08 10:38:26,034 INFO L290 TraceCheckUtils]: 55: Hoare triple {4932#false} ~cond := #in~cond; {4932#false} is VALID [2022-04-08 10:38:26,034 INFO L290 TraceCheckUtils]: 56: Hoare triple {4932#false} assume 0 == ~cond; {4932#false} is VALID [2022-04-08 10:38:26,034 INFO L290 TraceCheckUtils]: 57: Hoare triple {4932#false} assume !false; {4932#false} is VALID [2022-04-08 10:38:26,034 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 10:38:26,034 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:38:26,474 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1381084214] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:26,474 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 10:38:26,474 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 17] total 33 [2022-04-08 10:38:26,475 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:26,475 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [234641624] [2022-04-08 10:38:26,475 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [234641624] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:26,475 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:26,475 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [21] imperfect sequences [] total 21 [2022-04-08 10:38:26,475 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [348438792] [2022-04-08 10:38:26,475 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:26,475 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 10:38:26,476 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:26,476 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 10:38:26,520 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 10:38:26,520 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 21 states [2022-04-08 10:38:26,520 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:26,520 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2022-04-08 10:38:26,521 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=92, Invalid=1026, Unknown=4, NotChecked=0, Total=1122 [2022-04-08 10:38:26,521 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 10:38:37,761 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:37,761 INFO L93 Difference]: Finished difference Result 149 states and 184 transitions. [2022-04-08 10:38:37,761 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2022-04-08 10:38:37,761 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 10:38:37,761 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:37,761 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 10:38:37,764 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 140 transitions. [2022-04-08 10:38:37,765 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 10:38:37,766 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 140 transitions. [2022-04-08 10:38:37,767 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 26 states and 140 transitions. [2022-04-08 10:38:37,923 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 10:38:37,925 INFO L225 Difference]: With dead ends: 149 [2022-04-08 10:38:37,925 INFO L226 Difference]: Without dead ends: 104 [2022-04-08 10:38:37,928 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 120 GetRequests, 66 SyntacticMatches, 0 SemanticMatches, 54 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 602 ImplicationChecksByTransitivity, 15.7s TimeCoverageRelationStatistics Valid=291, Invalid=2784, Unknown=5, NotChecked=0, Total=3080 [2022-04-08 10:38:37,929 INFO L913 BasicCegarLoop]: 52 mSDtfsCounter, 146 mSDsluCounter, 16 mSDsCounter, 0 mSdLazyCounter, 1236 mSolverCounterSat, 111 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.2s 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.2s IncrementalHoareTripleChecker+Time [2022-04-08 10:38:37,929 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.2s Time] [2022-04-08 10:38:37,929 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2022-04-08 10:38:38,083 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 86. [2022-04-08 10:38:38,083 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:38,083 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 10:38:38,083 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 10:38:38,085 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 10:38:38,088 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:38,088 INFO L93 Difference]: Finished difference Result 104 states and 128 transitions. [2022-04-08 10:38:38,088 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 128 transitions. [2022-04-08 10:38:38,089 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:38,089 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:38,094 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 10:38:38,095 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 10:38:38,098 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:38,098 INFO L93 Difference]: Finished difference Result 104 states and 128 transitions. [2022-04-08 10:38:38,098 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 128 transitions. [2022-04-08 10:38:38,099 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:38,099 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:38,099 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:38,099 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:38,099 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 10:38:38,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 86 states to 86 states and 103 transitions. [2022-04-08 10:38:38,101 INFO L78 Accepts]: Start accepts. Automaton has 86 states and 103 transitions. Word has length 58 [2022-04-08 10:38:38,102 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:38,102 INFO L478 AbstractCegarLoop]: Abstraction has 86 states and 103 transitions. [2022-04-08 10:38:38,102 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 10:38:38,102 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 86 states and 103 transitions. [2022-04-08 10:38:38,280 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 10:38:38,281 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 103 transitions. [2022-04-08 10:38:38,281 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 62 [2022-04-08 10:38:38,281 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:38,281 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 10:38:38,305 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 10:38:38,482 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 10:38:38,482 INFO L403 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:38,483 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:38,483 INFO L85 PathProgramCache]: Analyzing trace with hash 596047115, now seen corresponding path program 5 times [2022-04-08 10:38:38,483 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:38,483 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [765372111] [2022-04-08 10:38:38,483 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:38,483 INFO L85 PathProgramCache]: Analyzing trace with hash 596047115, now seen corresponding path program 6 times [2022-04-08 10:38:38,483 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:38,483 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [27676561] [2022-04-08 10:38:38,484 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:38,484 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:38,502 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,514 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:38,515 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,517 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 10:38:38,517 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,517 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-08 10:38:38,517 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:38,518 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,520 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,520 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,520 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,520 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-08 10:38:38,522 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:38,523 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,524 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 10:38:38,524 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,525 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-08 10:38:38,525 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:38,528 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,531 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:38,531 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,533 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,533 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,533 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,533 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 10:38:38,533 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:38,533 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,535 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,535 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,535 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,535 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 10:38:38,536 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:38,538 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,539 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,539 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,539 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,540 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 10:38:38,540 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 10:38:38,540 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 10:38:38,540 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,540 INFO L290 TraceCheckUtils]: 3: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,540 INFO L290 TraceCheckUtils]: 4: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,540 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 10:38:38,540 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 10:38:38,540 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,540 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,540 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,540 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 10:38:38,540 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 10:38:38,541 INFO L290 TraceCheckUtils]: 12: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,541 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,541 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,541 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 10:38:38,541 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 10:38:38,541 INFO L290 TraceCheckUtils]: 17: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,567 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-08 10:38:38,568 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:38,572 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,617 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 10:38:38,618 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 10:38:38,618 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 10:38:38,618 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 10:38:38,619 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 10:38:38,619 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 10:38:38,619 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 10:38:38,620 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 10:38:38,620 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 10:38:38,620 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 10:38:38,621 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 10:38:38,621 INFO L290 TraceCheckUtils]: 11: Hoare triple {6000#(<= (+ finddup_~j~1 1) finddup_~n)} assume !(~j~1 < ~n); {5935#false} is VALID [2022-04-08 10:38:38,621 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 10:38:38,621 INFO L290 TraceCheckUtils]: 13: Hoare triple {5935#false} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-08 10:38:38,622 INFO L290 TraceCheckUtils]: 14: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-08 10:38:38,622 INFO L290 TraceCheckUtils]: 15: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-08 10:38:38,622 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-08 10:38:38,622 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 10:38:38,622 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 10:38:38,622 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,622 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-08 10:38:38,622 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-08 10:38:38,623 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 10:38:38,623 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 10:38:38,623 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,623 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,623 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,623 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-08 10:38:38,623 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 10:38:38,624 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 10:38:38,624 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 10:38:38,624 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,624 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-08 10:38:38,624 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 10:38:38,624 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 10:38:38,625 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 10:38:38,625 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 10:38:38,625 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,625 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,625 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,625 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 10:38:38,625 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 10:38:38,625 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,625 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,625 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,625 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 10:38:38,625 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 10:38:38,625 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,625 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,626 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,626 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 10:38:38,626 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 10:38:38,626 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,626 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-08 10:38:38,626 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 10:38:38,627 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 10:38:38,627 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 10:38:38,627 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 10:38:38,627 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 10:38:38,628 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 10:38:38,628 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 10:38:38,629 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 10:38:38,629 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 10:38:38,629 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 10:38:38,630 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 10:38:38,630 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 10:38:38,630 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 10:38:38,631 INFO L290 TraceCheckUtils]: 50: Hoare triple {6000#(<= (+ finddup_~j~1 1) finddup_~n)} assume !(~j~1 < ~n); {5935#false} is VALID [2022-04-08 10:38:38,631 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 10:38:38,631 INFO L290 TraceCheckUtils]: 52: Hoare triple {5935#false} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-08 10:38:38,631 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-08 10:38:38,631 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-08 10:38:38,631 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-08 10:38:38,631 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 10:38:38,631 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-08 10:38:38,631 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-08 10:38:38,632 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-08 10:38:38,632 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-08 10:38:38,632 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 10:38:38,632 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:38,632 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [27676561] [2022-04-08 10:38:38,632 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [27676561] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:38,632 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [949639043] [2022-04-08 10:38:38,632 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 10:38:38,632 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:38:38,632 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:38,633 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 10:38:38,634 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 10:38:38,722 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-08 10:38:38,722 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:38:38,724 INFO L263 TraceCheckSpWp]: Trace formula consists of 252 conjuncts, 6 conjunts are in the unsatisfiable core [2022-04-08 10:38:38,735 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:38,736 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:38:38,934 INFO L272 TraceCheckUtils]: 0: Hoare triple {5934#true} call ULTIMATE.init(); {5934#true} is VALID [2022-04-08 10:38:38,934 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 10:38:38,934 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,934 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-08 10:38:38,934 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-08 10:38:38,934 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 10:38:38,935 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 10:38:38,935 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,935 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,935 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,935 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-08 10:38:38,935 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 10:38:38,935 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 10:38:38,935 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5934#true} is VALID [2022-04-08 10:38:38,935 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,935 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-08 10:38:38,935 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 10:38:38,935 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 10:38:38,935 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 10:38:38,935 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 10:38:38,936 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 10:38:38,936 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 10:38:38,936 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 10:38:38,936 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 10:38:38,936 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,936 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 10:38:38,937 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 10:38:38,937 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:38,937 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-08 10:38:38,937 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 10:38:38,937 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 10:38:38,937 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 10:38:38,937 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 10:38:38,938 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 10:38:38,938 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 10:38:38,939 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 10:38:38,939 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 10:38:38,940 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 10:38:38,940 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 10:38:38,940 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 10:38:38,941 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 10:38:38,941 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 10:38:38,942 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 10:38:38,942 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 10:38:38,942 INFO L290 TraceCheckUtils]: 52: Hoare triple {6157#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-08 10:38:38,942 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-08 10:38:38,943 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-08 10:38:38,943 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-08 10:38:38,943 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 10:38:38,943 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-08 10:38:38,943 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-08 10:38:38,943 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-08 10:38:38,943 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-08 10:38:38,943 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 10:38:38,943 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:38:39,184 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-08 10:38:39,185 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-08 10:38:39,185 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-08 10:38:39,185 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-08 10:38:39,185 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 10:38:39,185 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-08 10:38:39,185 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-08 10:38:39,185 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-08 10:38:39,186 INFO L290 TraceCheckUtils]: 52: Hoare triple {6157#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-08 10:38:39,186 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 10:38:39,187 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 10:38:39,187 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 10:38:39,187 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 10:38:39,188 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 10:38:39,188 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 10:38:39,188 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 10:38:39,189 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 10:38:39,189 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 10:38:39,190 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 10:38:39,190 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 10:38:39,190 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 10:38:39,190 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 10:38:39,191 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 10:38:39,191 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 10:38:39,191 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-08 10:38:39,191 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:39,191 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 10:38:39,191 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-08 10:38:39,191 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:39,191 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:39,191 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:39,191 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 10:38:39,191 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-08 10:38:39,191 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:39,191 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:39,192 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:39,192 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 10:38:39,192 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-08 10:38:39,192 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:39,192 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:39,192 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:39,192 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 10:38:39,192 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 10:38:39,192 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 10:38:39,192 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 10:38:39,192 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-08 10:38:39,192 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:39,192 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5934#true} is VALID [2022-04-08 10:38:39,193 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 10:38:39,193 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 10:38:39,193 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-08 10:38:39,193 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:39,193 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-08 10:38:39,193 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-08 10:38:39,193 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 10:38:39,193 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 10:38:39,193 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-08 10:38:39,193 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-08 10:38:39,193 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-08 10:38:39,193 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 10:38:39,193 INFO L272 TraceCheckUtils]: 0: Hoare triple {5934#true} call ULTIMATE.init(); {5934#true} is VALID [2022-04-08 10:38:39,194 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 10:38:39,194 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [949639043] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 10:38:39,194 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-08 10:38:39,194 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 7, 7] total 10 [2022-04-08 10:38:39,194 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:39,194 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [765372111] [2022-04-08 10:38:39,194 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [765372111] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:39,194 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:39,194 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 10:38:39,194 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [888774870] [2022-04-08 10:38:39,194 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:39,195 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 10:38:39,195 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:39,195 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 10:38:39,232 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 10:38:39,232 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-08 10:38:39,232 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:39,233 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-08 10:38:39,233 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=21, Invalid=69, Unknown=0, NotChecked=0, Total=90 [2022-04-08 10:38:39,233 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 10:38:40,081 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:40,081 INFO L93 Difference]: Finished difference Result 140 states and 170 transitions. [2022-04-08 10:38:40,081 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 10:38:40,081 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 10:38:40,081 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:40,081 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 10:38:40,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 116 transitions. [2022-04-08 10:38:40,083 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 10:38:40,084 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 116 transitions. [2022-04-08 10:38:40,084 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 116 transitions. [2022-04-08 10:38:40,176 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 10:38:40,178 INFO L225 Difference]: With dead ends: 140 [2022-04-08 10:38:40,178 INFO L226 Difference]: Without dead ends: 96 [2022-04-08 10:38:40,178 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 10:38:40,179 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 10:38:40,179 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 10:38:40,179 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2022-04-08 10:38:40,363 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 92. [2022-04-08 10:38:40,363 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:40,364 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 10:38:40,364 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 10:38:40,364 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 10:38:40,367 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:40,367 INFO L93 Difference]: Finished difference Result 96 states and 115 transitions. [2022-04-08 10:38:40,367 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 115 transitions. [2022-04-08 10:38:40,367 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:40,367 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:40,367 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 10:38:40,368 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 10:38:40,369 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:40,370 INFO L93 Difference]: Finished difference Result 96 states and 115 transitions. [2022-04-08 10:38:40,370 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 115 transitions. [2022-04-08 10:38:40,370 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:40,370 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:40,370 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:40,370 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:40,370 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 10:38:40,373 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 92 states to 92 states and 111 transitions. [2022-04-08 10:38:40,373 INFO L78 Accepts]: Start accepts. Automaton has 92 states and 111 transitions. Word has length 61 [2022-04-08 10:38:40,373 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:40,374 INFO L478 AbstractCegarLoop]: Abstraction has 92 states and 111 transitions. [2022-04-08 10:38:40,374 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 10:38:40,374 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 92 states and 111 transitions. [2022-04-08 10:38:40,519 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 10:38:40,520 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 111 transitions. [2022-04-08 10:38:40,520 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-08 10:38:40,520 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:40,520 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 10:38:40,539 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 10:38:40,721 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 10:38:40,721 INFO L403 AbstractCegarLoop]: === Iteration 10 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:40,721 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:40,721 INFO L85 PathProgramCache]: Analyzing trace with hash 645513954, now seen corresponding path program 1 times [2022-04-08 10:38:40,721 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:40,722 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [5994464] [2022-04-08 10:38:40,722 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:40,722 INFO L85 PathProgramCache]: Analyzing trace with hash 645513954, now seen corresponding path program 2 times [2022-04-08 10:38:40,722 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:40,722 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [456212976] [2022-04-08 10:38:40,722 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:40,722 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:40,738 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,759 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:40,760 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,762 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 10:38:40,762 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,762 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7042#true} {7042#true} #122#return; {7042#true} is VALID [2022-04-08 10:38:40,762 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:40,762 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,764 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,764 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,764 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,764 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #98#return; {7042#true} is VALID [2022-04-08 10:38:40,767 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:40,768 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,770 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 10:38:40,770 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,770 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7042#true} {7042#true} #100#return; {7042#true} is VALID [2022-04-08 10:38:40,770 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:40,773 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,783 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:40,809 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,811 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,812 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,812 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,812 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-08 10:38:40,812 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:40,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,828 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,828 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,828 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,828 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-08 10:38:40,828 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:40,829 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,831 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,831 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,831 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,831 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-08 10:38:40,831 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 10:38:40,831 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 10:38:40,831 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,831 INFO L290 TraceCheckUtils]: 3: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,831 INFO L290 TraceCheckUtils]: 4: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,832 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-08 10:38:40,832 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 10:38:40,832 INFO L290 TraceCheckUtils]: 7: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,832 INFO L290 TraceCheckUtils]: 8: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,832 INFO L290 TraceCheckUtils]: 9: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,832 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-08 10:38:40,832 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 10:38:40,832 INFO L290 TraceCheckUtils]: 12: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,832 INFO L290 TraceCheckUtils]: 13: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,832 INFO L290 TraceCheckUtils]: 14: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,832 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-08 10:38:40,832 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 10:38:40,832 INFO L290 TraceCheckUtils]: 17: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,833 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {7042#true} {7042#true} #102#return; {7042#true} is VALID [2022-04-08 10:38:40,833 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:40,842 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,903 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 10:38:40,904 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 10:38:40,904 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 10:38:40,905 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 10:38:40,905 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 10:38:40,906 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 10:38:40,907 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 10:38:40,907 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,909 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,910 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,910 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,910 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 10:38:40,910 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-08 10:38:40,911 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:40,913 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,913 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,913 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,913 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 10:38:40,914 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 10:38:40,914 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 10:38:40,914 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,914 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #122#return; {7042#true} is VALID [2022-04-08 10:38:40,914 INFO L272 TraceCheckUtils]: 4: Hoare triple {7042#true} call #t~ret27 := main(); {7042#true} is VALID [2022-04-08 10:38:40,914 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 10:38:40,914 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 10:38:40,914 INFO L290 TraceCheckUtils]: 7: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,914 INFO L290 TraceCheckUtils]: 8: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,914 INFO L290 TraceCheckUtils]: 9: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,914 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7042#true} {7042#true} #98#return; {7042#true} is VALID [2022-04-08 10:38:40,915 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 10:38:40,915 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 10:38:40,915 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 10:38:40,915 INFO L290 TraceCheckUtils]: 14: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,915 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7042#true} {7042#true} #100#return; {7042#true} is VALID [2022-04-08 10:38:40,915 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 10:38:40,932 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 10:38:40,932 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 10:38:40,932 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 10:38:40,932 INFO L290 TraceCheckUtils]: 20: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,932 INFO L290 TraceCheckUtils]: 21: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,932 INFO L290 TraceCheckUtils]: 22: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,932 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-08 10:38:40,932 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 10:38:40,932 INFO L290 TraceCheckUtils]: 25: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,932 INFO L290 TraceCheckUtils]: 26: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,932 INFO L290 TraceCheckUtils]: 27: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,933 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-08 10:38:40,933 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 10:38:40,933 INFO L290 TraceCheckUtils]: 30: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,933 INFO L290 TraceCheckUtils]: 31: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,933 INFO L290 TraceCheckUtils]: 32: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,933 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-08 10:38:40,933 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 10:38:40,933 INFO L290 TraceCheckUtils]: 35: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,933 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7042#true} {7042#true} #102#return; {7042#true} is VALID [2022-04-08 10:38:40,933 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 10:38:40,934 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 10:38:40,935 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 10:38:40,935 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 10:38:40,935 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 10:38:40,936 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 10:38:40,936 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 10:38:40,937 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 10:38:40,938 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 10:38:40,938 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 10:38:40,938 INFO L290 TraceCheckUtils]: 47: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,938 INFO L290 TraceCheckUtils]: 48: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,938 INFO L290 TraceCheckUtils]: 49: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,938 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 10:38:40,939 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 10:38:40,939 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 10:38:40,939 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 10:38:40,939 INFO L290 TraceCheckUtils]: 54: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-08 10:38:40,939 INFO L290 TraceCheckUtils]: 55: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-08 10:38:40,939 INFO L290 TraceCheckUtils]: 56: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-08 10:38:40,940 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 10:38:40,940 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 10:38:40,940 INFO L290 TraceCheckUtils]: 59: Hoare triple {7088#|main_#t~short20|} assume !#t~short20; {7043#false} is VALID [2022-04-08 10:38:40,940 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 10:38:40,941 INFO L290 TraceCheckUtils]: 61: Hoare triple {7043#false} ~cond := #in~cond; {7043#false} is VALID [2022-04-08 10:38:40,941 INFO L290 TraceCheckUtils]: 62: Hoare triple {7043#false} assume 0 == ~cond; {7043#false} is VALID [2022-04-08 10:38:40,941 INFO L290 TraceCheckUtils]: 63: Hoare triple {7043#false} assume !false; {7043#false} is VALID [2022-04-08 10:38:40,941 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 10:38:40,941 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:40,941 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [456212976] [2022-04-08 10:38:40,941 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [456212976] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:40,941 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:40,941 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 10:38:40,943 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:40,943 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [5994464] [2022-04-08 10:38:40,943 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [5994464] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:40,943 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:40,943 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 10:38:40,943 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1799589221] [2022-04-08 10:38:40,943 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:40,944 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 10:38:40,944 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:40,944 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 10:38:40,993 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 10:38:40,993 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-08 10:38:40,993 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:40,993 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-08 10:38:40,993 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=57, Unknown=0, NotChecked=0, Total=72 [2022-04-08 10:38:40,994 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 10:38:42,092 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:42,092 INFO L93 Difference]: Finished difference Result 111 states and 135 transitions. [2022-04-08 10:38:42,092 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-08 10:38:42,093 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 10:38:42,093 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:42,093 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 10:38:42,094 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 98 transitions. [2022-04-08 10:38:42,094 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 10:38:42,095 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 98 transitions. [2022-04-08 10:38:42,095 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 98 transitions. [2022-04-08 10:38:42,177 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 10:38:42,179 INFO L225 Difference]: With dead ends: 111 [2022-04-08 10:38:42,179 INFO L226 Difference]: Without dead ends: 100 [2022-04-08 10:38:42,179 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 10:38:42,180 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 10:38:42,180 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 10:38:42,180 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 100 states. [2022-04-08 10:38:42,398 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 100 to 95. [2022-04-08 10:38:42,398 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:42,399 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 10:38:42,399 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 10:38:42,399 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 10:38:42,401 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:42,401 INFO L93 Difference]: Finished difference Result 100 states and 122 transitions. [2022-04-08 10:38:42,401 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 122 transitions. [2022-04-08 10:38:42,401 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:42,401 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:42,401 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 10:38:42,402 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 10:38:42,403 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:42,403 INFO L93 Difference]: Finished difference Result 100 states and 122 transitions. [2022-04-08 10:38:42,403 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 122 transitions. [2022-04-08 10:38:42,404 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:42,404 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:42,404 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:42,404 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:42,404 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 10:38:42,405 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 95 states to 95 states and 115 transitions. [2022-04-08 10:38:42,405 INFO L78 Accepts]: Start accepts. Automaton has 95 states and 115 transitions. Word has length 64 [2022-04-08 10:38:42,405 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:42,406 INFO L478 AbstractCegarLoop]: Abstraction has 95 states and 115 transitions. [2022-04-08 10:38:42,406 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 10:38:42,406 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 95 states and 115 transitions. [2022-04-08 10:38:42,561 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 10:38:42,561 INFO L276 IsEmpty]: Start isEmpty. Operand 95 states and 115 transitions. [2022-04-08 10:38:42,561 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-08 10:38:42,562 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:42,562 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 10:38:42,562 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable9 [2022-04-08 10:38:42,562 INFO L403 AbstractCegarLoop]: === Iteration 11 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:42,562 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:42,562 INFO L85 PathProgramCache]: Analyzing trace with hash 643666912, now seen corresponding path program 1 times [2022-04-08 10:38:42,562 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:42,562 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1502471122] [2022-04-08 10:38:42,562 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:42,563 INFO L85 PathProgramCache]: Analyzing trace with hash 643666912, now seen corresponding path program 2 times [2022-04-08 10:38:42,563 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:42,563 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1090225846] [2022-04-08 10:38:42,563 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:42,563 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:42,580 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,609 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:42,610 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,612 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 10:38:42,612 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,612 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7733#true} {7733#true} #122#return; {7733#true} is VALID [2022-04-08 10:38:42,612 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:42,612 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,614 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,614 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,614 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,614 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #98#return; {7733#true} is VALID [2022-04-08 10:38:42,619 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:42,619 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,621 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 10:38:42,621 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,621 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7733#true} {7733#true} #100#return; {7733#true} is VALID [2022-04-08 10:38:42,621 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:42,625 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,627 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:42,628 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,629 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,630 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,630 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,630 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-08 10:38:42,630 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:42,630 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,631 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,631 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,632 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,632 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-08 10:38:42,632 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:42,632 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,633 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,634 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,634 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,634 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-08 10:38:42,634 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 10:38:42,634 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 10:38:42,634 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,634 INFO L290 TraceCheckUtils]: 3: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,634 INFO L290 TraceCheckUtils]: 4: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,634 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-08 10:38:42,634 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 10:38:42,634 INFO L290 TraceCheckUtils]: 7: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,634 INFO L290 TraceCheckUtils]: 8: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,635 INFO L290 TraceCheckUtils]: 9: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,635 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-08 10:38:42,635 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 10:38:42,635 INFO L290 TraceCheckUtils]: 12: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,635 INFO L290 TraceCheckUtils]: 13: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,635 INFO L290 TraceCheckUtils]: 14: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,635 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-08 10:38:42,635 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 10:38:42,635 INFO L290 TraceCheckUtils]: 17: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,635 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {7733#true} {7733#true} #102#return; {7733#true} is VALID [2022-04-08 10:38:42,635 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:42,639 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,676 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 10:38:42,676 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 10:38:42,677 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 10:38:42,677 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 10:38:42,678 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 10:38:42,679 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 10:38:42,679 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 10:38:42,680 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,682 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,682 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,682 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,682 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 10:38:42,683 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-08 10:38:42,683 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:42,685 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,685 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,685 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,686 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 10:38:42,686 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 10:38:42,686 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 10:38:42,686 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,686 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #122#return; {7733#true} is VALID [2022-04-08 10:38:42,686 INFO L272 TraceCheckUtils]: 4: Hoare triple {7733#true} call #t~ret27 := main(); {7733#true} is VALID [2022-04-08 10:38:42,687 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 10:38:42,687 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 10:38:42,687 INFO L290 TraceCheckUtils]: 7: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,687 INFO L290 TraceCheckUtils]: 8: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,687 INFO L290 TraceCheckUtils]: 9: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,687 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7733#true} {7733#true} #98#return; {7733#true} is VALID [2022-04-08 10:38:42,687 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 10:38:42,688 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 10:38:42,688 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 10:38:42,688 INFO L290 TraceCheckUtils]: 14: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,688 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7733#true} {7733#true} #100#return; {7733#true} is VALID [2022-04-08 10:38:42,688 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 10:38:42,688 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 10:38:42,689 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 10:38:42,689 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 10:38:42,689 INFO L290 TraceCheckUtils]: 20: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,689 INFO L290 TraceCheckUtils]: 21: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,689 INFO L290 TraceCheckUtils]: 22: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,689 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-08 10:38:42,689 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 10:38:42,689 INFO L290 TraceCheckUtils]: 25: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,689 INFO L290 TraceCheckUtils]: 26: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,689 INFO L290 TraceCheckUtils]: 27: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,689 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-08 10:38:42,689 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 10:38:42,689 INFO L290 TraceCheckUtils]: 30: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,689 INFO L290 TraceCheckUtils]: 31: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,690 INFO L290 TraceCheckUtils]: 32: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,690 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-08 10:38:42,690 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 10:38:42,690 INFO L290 TraceCheckUtils]: 35: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,690 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7733#true} {7733#true} #102#return; {7733#true} is VALID [2022-04-08 10:38:42,690 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 10:38:42,691 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 10:38:42,691 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 10:38:42,692 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 10:38:42,692 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 10:38:42,693 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 10:38:42,693 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 10:38:42,694 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 10:38:42,694 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 10:38:42,695 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 10:38:42,695 INFO L290 TraceCheckUtils]: 47: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,695 INFO L290 TraceCheckUtils]: 48: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,695 INFO L290 TraceCheckUtils]: 49: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,695 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 10:38:42,695 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 10:38:42,696 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 10:38:42,696 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 10:38:42,696 INFO L290 TraceCheckUtils]: 54: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-08 10:38:42,696 INFO L290 TraceCheckUtils]: 55: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-08 10:38:42,696 INFO L290 TraceCheckUtils]: 56: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-08 10:38:42,697 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 10:38:42,697 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 10:38:42,697 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 10:38:42,698 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 10:38:42,698 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 10:38:42,698 INFO L290 TraceCheckUtils]: 62: Hoare triple {7781#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {7734#false} is VALID [2022-04-08 10:38:42,698 INFO L290 TraceCheckUtils]: 63: Hoare triple {7734#false} assume !false; {7734#false} is VALID [2022-04-08 10:38:42,699 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 10:38:42,699 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:42,699 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1090225846] [2022-04-08 10:38:42,699 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1090225846] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:42,699 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:42,699 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-08 10:38:42,699 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:42,699 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1502471122] [2022-04-08 10:38:42,699 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1502471122] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:42,699 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:42,699 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-08 10:38:42,699 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1178091922] [2022-04-08 10:38:42,700 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:42,700 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 10:38:42,700 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:42,700 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 10:38:42,754 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 10:38:42,754 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-08 10:38:42,754 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:42,754 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-08 10:38:42,754 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=91, Unknown=0, NotChecked=0, Total=110 [2022-04-08 10:38:42,755 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 10:38:44,010 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:44,011 INFO L93 Difference]: Finished difference Result 106 states and 127 transitions. [2022-04-08 10:38:44,011 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 10:38:44,011 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 10:38:44,011 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:44,011 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 10:38:44,012 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 89 transitions. [2022-04-08 10:38:44,012 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 10:38:44,013 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 89 transitions. [2022-04-08 10:38:44,013 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 89 transitions. [2022-04-08 10:38:44,105 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 10:38:44,107 INFO L225 Difference]: With dead ends: 106 [2022-04-08 10:38:44,107 INFO L226 Difference]: Without dead ends: 104 [2022-04-08 10:38:44,107 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 10:38:44,108 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 10:38:44,108 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 10:38:44,108 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2022-04-08 10:38:44,285 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 100. [2022-04-08 10:38:44,285 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:44,285 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 10:38:44,285 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 10:38:44,286 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 10:38:44,288 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:44,288 INFO L93 Difference]: Finished difference Result 104 states and 125 transitions. [2022-04-08 10:38:44,288 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 125 transitions. [2022-04-08 10:38:44,288 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:44,288 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:44,288 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 10:38:44,288 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 10:38:44,290 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:44,290 INFO L93 Difference]: Finished difference Result 104 states and 125 transitions. [2022-04-08 10:38:44,290 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 125 transitions. [2022-04-08 10:38:44,290 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:44,291 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:44,291 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:44,291 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:44,291 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 10:38:44,292 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 120 transitions. [2022-04-08 10:38:44,292 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 120 transitions. Word has length 64 [2022-04-08 10:38:44,293 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:44,293 INFO L478 AbstractCegarLoop]: Abstraction has 100 states and 120 transitions. [2022-04-08 10:38:44,293 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 10:38:44,293 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 100 states and 120 transitions. [2022-04-08 10:38:44,457 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 10:38:44,457 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 120 transitions. [2022-04-08 10:38:44,458 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 67 [2022-04-08 10:38:44,458 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:44,458 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 10:38:44,458 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable10 [2022-04-08 10:38:44,458 INFO L403 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:44,458 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:44,458 INFO L85 PathProgramCache]: Analyzing trace with hash -779883059, now seen corresponding path program 1 times [2022-04-08 10:38:44,458 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:44,459 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [521370108] [2022-04-08 10:38:44,459 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:44,459 INFO L85 PathProgramCache]: Analyzing trace with hash -779883059, now seen corresponding path program 2 times [2022-04-08 10:38:44,459 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:44,460 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2086111569] [2022-04-08 10:38:44,460 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:44,460 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:44,480 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,526 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:44,527 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,528 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 10:38:44,528 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,528 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8440#true} {8440#true} #122#return; {8440#true} is VALID [2022-04-08 10:38:44,529 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:44,529 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,531 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,531 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,531 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,531 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #98#return; {8440#true} is VALID [2022-04-08 10:38:44,536 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:44,536 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,538 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 10:38:44,538 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,538 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8440#true} {8440#true} #100#return; {8440#true} is VALID [2022-04-08 10:38:44,538 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:44,541 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,566 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:44,567 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,568 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,568 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,568 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,568 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-08 10:38:44,568 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:44,573 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,575 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,575 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,575 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,575 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-08 10:38:44,575 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:44,576 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,577 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,577 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,577 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,577 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-08 10:38:44,578 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 10:38:44,578 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 10:38:44,578 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,578 INFO L290 TraceCheckUtils]: 3: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,578 INFO L290 TraceCheckUtils]: 4: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,578 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-08 10:38:44,578 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 10:38:44,578 INFO L290 TraceCheckUtils]: 7: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,578 INFO L290 TraceCheckUtils]: 8: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,578 INFO L290 TraceCheckUtils]: 9: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,578 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-08 10:38:44,578 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 10:38:44,578 INFO L290 TraceCheckUtils]: 12: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,579 INFO L290 TraceCheckUtils]: 13: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,579 INFO L290 TraceCheckUtils]: 14: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,579 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-08 10:38:44,579 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 10:38:44,579 INFO L290 TraceCheckUtils]: 17: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,579 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {8440#true} {8440#true} #102#return; {8440#true} is VALID [2022-04-08 10:38:44,579 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:44,583 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,643 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 10:38:44,644 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 10:38:44,645 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 10:38:44,645 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 10:38:44,646 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 10:38:44,646 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 10:38:44,647 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 10:38:44,647 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 10:38:44,648 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 10:38:44,648 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 10:38:44,649 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 10:38:44,649 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 10:38:44,650 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 10:38:44,650 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 10:38:44,651 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 10:38:44,651 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 55 [2022-04-08 10:38:44,652 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:44,671 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8512#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:38:44,672 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 10:38:44,672 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 10:38:44,672 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 10:38:44,673 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 10:38:44,673 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 10:38:44,673 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,673 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #122#return; {8440#true} is VALID [2022-04-08 10:38:44,673 INFO L272 TraceCheckUtils]: 4: Hoare triple {8440#true} call #t~ret27 := main(); {8440#true} is VALID [2022-04-08 10:38:44,673 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 10:38:44,674 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 10:38:44,674 INFO L290 TraceCheckUtils]: 7: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,674 INFO L290 TraceCheckUtils]: 8: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,674 INFO L290 TraceCheckUtils]: 9: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,674 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8440#true} {8440#true} #98#return; {8440#true} is VALID [2022-04-08 10:38:44,674 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 10:38:44,675 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 10:38:44,675 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 10:38:44,675 INFO L290 TraceCheckUtils]: 14: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,675 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {8440#true} {8440#true} #100#return; {8440#true} is VALID [2022-04-08 10:38:44,675 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 10:38:44,675 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 10:38:44,675 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 10:38:44,676 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 10:38:44,676 INFO L290 TraceCheckUtils]: 20: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,676 INFO L290 TraceCheckUtils]: 21: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,676 INFO L290 TraceCheckUtils]: 22: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,676 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-08 10:38:44,676 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 10:38:44,676 INFO L290 TraceCheckUtils]: 25: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,676 INFO L290 TraceCheckUtils]: 26: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,676 INFO L290 TraceCheckUtils]: 27: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,676 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-08 10:38:44,676 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 10:38:44,676 INFO L290 TraceCheckUtils]: 30: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-08 10:38:44,676 INFO L290 TraceCheckUtils]: 31: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-08 10:38:44,676 INFO L290 TraceCheckUtils]: 32: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,677 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-08 10:38:44,677 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 10:38:44,677 INFO L290 TraceCheckUtils]: 35: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-08 10:38:44,677 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {8440#true} {8440#true} #102#return; {8440#true} is VALID [2022-04-08 10:38:44,677 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 10:38:44,678 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 10:38:44,678 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 10:38:44,679 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 10:38:44,679 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 10:38:44,680 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 10:38:44,680 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 10:38:44,681 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 10:38:44,681 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 10:38:44,682 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 10:38:44,682 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 10:38:44,683 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 10:38:44,683 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 10:38:44,684 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 10:38:44,685 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 10:38:44,685 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 10:38:44,686 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 10:38:44,686 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 10:38:44,686 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 10:38:44,686 INFO L290 TraceCheckUtils]: 56: Hoare triple {8440#true} ~cond := #in~cond; {8512#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:38:44,687 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 10:38:44,687 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 10:38:44,688 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 10:38:44,688 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 10:38:44,688 INFO L290 TraceCheckUtils]: 61: Hoare triple {8494#|main_#t~short17|} assume !#t~short17; {8441#false} is VALID [2022-04-08 10:38:44,688 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 10:38:44,688 INFO L290 TraceCheckUtils]: 63: Hoare triple {8441#false} ~cond := #in~cond; {8441#false} is VALID [2022-04-08 10:38:44,688 INFO L290 TraceCheckUtils]: 64: Hoare triple {8441#false} assume 0 == ~cond; {8441#false} is VALID [2022-04-08 10:38:44,688 INFO L290 TraceCheckUtils]: 65: Hoare triple {8441#false} assume !false; {8441#false} is VALID [2022-04-08 10:38:44,689 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 10:38:44,689 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:44,689 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2086111569] [2022-04-08 10:38:44,689 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2086111569] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:44,689 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:44,689 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-08 10:38:44,689 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:44,689 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [521370108] [2022-04-08 10:38:44,689 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [521370108] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:44,689 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:44,689 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-08 10:38:44,690 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1024653297] [2022-04-08 10:38:44,690 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:44,690 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 10:38:44,690 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:44,693 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 10:38:44,724 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 10:38:44,724 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-08 10:38:44,725 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:44,725 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-08 10:38:44,725 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=154, Unknown=0, NotChecked=0, Total=182 [2022-04-08 10:38:44,728 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 10:38:46,467 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:46,467 INFO L93 Difference]: Finished difference Result 126 states and 149 transitions. [2022-04-08 10:38:46,467 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-08 10:38:46,467 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 10:38:46,467 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:46,467 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 10:38:46,468 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 109 transitions. [2022-04-08 10:38:46,469 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 10:38:46,470 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 109 transitions. [2022-04-08 10:38:46,470 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 109 transitions. [2022-04-08 10:38:46,592 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 10:38:46,593 INFO L225 Difference]: With dead ends: 126 [2022-04-08 10:38:46,593 INFO L226 Difference]: Without dead ends: 108 [2022-04-08 10:38:46,593 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 10:38:46,594 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 10:38:46,594 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 10:38:46,594 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-08 10:38:46,783 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 90. [2022-04-08 10:38:46,783 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:46,783 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 10:38:46,784 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 10:38:46,784 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 10:38:46,785 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:46,785 INFO L93 Difference]: Finished difference Result 108 states and 129 transitions. [2022-04-08 10:38:46,786 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 129 transitions. [2022-04-08 10:38:46,786 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:46,786 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:46,786 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 10:38:46,786 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 10:38:46,788 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:46,788 INFO L93 Difference]: Finished difference Result 108 states and 129 transitions. [2022-04-08 10:38:46,788 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 129 transitions. [2022-04-08 10:38:46,788 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:46,788 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:46,788 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:46,788 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:46,789 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 10:38:46,790 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 105 transitions. [2022-04-08 10:38:46,790 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 105 transitions. Word has length 66 [2022-04-08 10:38:46,790 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:46,790 INFO L478 AbstractCegarLoop]: Abstraction has 90 states and 105 transitions. [2022-04-08 10:38:46,790 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 10:38:46,790 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 90 states and 105 transitions. [2022-04-08 10:38:46,914 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 10:38:46,915 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 105 transitions. [2022-04-08 10:38:46,915 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 71 [2022-04-08 10:38:46,915 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:46,915 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 10:38:46,915 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable11 [2022-04-08 10:38:46,915 INFO L403 AbstractCegarLoop]: === Iteration 13 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:46,916 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:46,916 INFO L85 PathProgramCache]: Analyzing trace with hash 297933182, now seen corresponding path program 1 times [2022-04-08 10:38:46,916 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:46,916 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [652839528] [2022-04-08 10:38:46,916 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:46,916 INFO L85 PathProgramCache]: Analyzing trace with hash 297933182, now seen corresponding path program 2 times [2022-04-08 10:38:46,916 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:46,916 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [750712535] [2022-04-08 10:38:46,916 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:46,916 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:46,936 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,001 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:47,003 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,004 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 10:38:47,004 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,004 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-08 10:38:47,004 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:47,005 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,006 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,006 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,006 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,006 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-08 10:38:47,011 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:47,012 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,013 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 10:38:47,013 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,013 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-08 10:38:47,013 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:47,016 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,018 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:47,018 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,020 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,020 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,020 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,020 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 10:38:47,021 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:47,021 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,022 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,022 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,022 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,022 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 10:38:47,022 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:47,023 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,024 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,024 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,024 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,024 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 10:38:47,024 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 10:38:47,024 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 10:38:47,024 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,024 INFO L290 TraceCheckUtils]: 3: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,024 INFO L290 TraceCheckUtils]: 4: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,024 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 10:38:47,024 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 10:38:47,025 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,025 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,025 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,025 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 10:38:47,025 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 10:38:47,025 INFO L290 TraceCheckUtils]: 12: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,025 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,025 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,025 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 10:38:47,025 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 10:38:47,025 INFO L290 TraceCheckUtils]: 17: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,025 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-08 10:38:47,025 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:47,028 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,098 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 10:38:47,099 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 10:38:47,099 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 10:38:47,100 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 10:38:47,100 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 10:38:47,101 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 10:38:47,101 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 10:38:47,105 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,119 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9261#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:38:47,119 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 10:38:47,119 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 10:38:47,120 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 10:38:47,120 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-08 10:38:47,122 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,133 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,133 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,133 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,134 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 10:38:47,134 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 60 [2022-04-08 10:38:47,135 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,137 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,137 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,137 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,138 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 10:38:47,138 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 10:38:47,139 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 10:38:47,139 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,139 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-08 10:38:47,139 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-08 10:38:47,139 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 10:38:47,139 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 10:38:47,139 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,139 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,139 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,139 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-08 10:38:47,139 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 10:38:47,140 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 10:38:47,140 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 10:38:47,140 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,140 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-08 10:38:47,140 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 10:38:47,141 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 10:38:47,141 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 10:38:47,141 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 10:38:47,141 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,141 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,141 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,141 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 10:38:47,141 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 10:38:47,141 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,141 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,141 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,142 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 10:38:47,142 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 10:38:47,142 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,142 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,142 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,142 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 10:38:47,142 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 10:38:47,142 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,142 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-08 10:38:47,143 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 10:38:47,144 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 10:38:47,144 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 10:38:47,144 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 10:38:47,145 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 10:38:47,146 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 10:38:47,146 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 10:38:47,147 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 10:38:47,148 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 10:38:47,148 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 10:38:47,148 INFO L290 TraceCheckUtils]: 47: Hoare triple {9187#true} ~cond := #in~cond; {9261#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:38:47,148 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 10:38:47,149 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 10:38:47,149 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 10:38:47,150 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 10:38:47,150 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 10:38:47,150 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 10:38:47,150 INFO L290 TraceCheckUtils]: 54: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,150 INFO L290 TraceCheckUtils]: 55: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,151 INFO L290 TraceCheckUtils]: 56: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,151 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 10:38:47,151 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 10:38:47,152 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 10:38:47,152 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 10:38:47,152 INFO L290 TraceCheckUtils]: 61: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:47,152 INFO L290 TraceCheckUtils]: 62: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:47,152 INFO L290 TraceCheckUtils]: 63: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:47,153 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 10:38:47,153 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 10:38:47,154 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 10:38:47,154 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 10:38:47,154 INFO L290 TraceCheckUtils]: 68: Hoare triple {9243#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {9188#false} is VALID [2022-04-08 10:38:47,154 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-08 10:38:47,155 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 10:38:47,155 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:47,155 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [750712535] [2022-04-08 10:38:47,155 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [750712535] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:47,155 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [459693066] [2022-04-08 10:38:47,155 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 10:38:47,155 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:38:47,155 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:47,166 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 10:38:47,167 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 10:38:47,261 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 10:38:47,261 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:38:47,262 INFO L263 TraceCheckSpWp]: Trace formula consists of 288 conjuncts, 44 conjunts are in the unsatisfiable core [2022-04-08 10:38:47,274 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:47,275 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:38:47,334 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 10:38:47,433 INFO L356 Elim1Store]: treesize reduction 13, result has 58.1 percent of original size [2022-04-08 10:38:47,433 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 10:38:47,461 INFO L356 Elim1Store]: treesize reduction 35, result has 34.0 percent of original size [2022-04-08 10:38:47,462 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 10:38:47,493 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 10:38:47,539 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 10:38:47,541 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 10:38:47,568 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 10:38:47,582 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 10:38:47,596 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 10:38:48,095 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-04-08 10:38:48,096 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 10:38:48,165 INFO L272 TraceCheckUtils]: 0: Hoare triple {9187#true} call ULTIMATE.init(); {9187#true} is VALID [2022-04-08 10:38:48,166 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 10:38:48,166 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:48,166 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-08 10:38:48,166 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-08 10:38:48,166 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 10:38:48,166 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 10:38:48,166 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:48,166 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:48,166 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:48,166 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-08 10:38:48,166 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 10:38:48,166 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 10:38:48,167 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9187#true} is VALID [2022-04-08 10:38:48,167 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:48,167 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-08 10:38:48,167 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 10:38:48,176 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 10:38:48,176 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 10:38:48,176 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 10:38:48,176 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:48,176 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:48,176 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:48,176 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 10:38:48,176 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 10:38:48,176 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:48,176 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:48,176 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:48,176 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 10:38:48,176 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 10:38:48,177 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:48,177 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:48,177 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:48,177 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 10:38:48,177 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 10:38:48,177 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:48,177 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-08 10:38:48,182 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 10:38:48,182 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 10:38:48,183 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 10:38:48,183 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 10:38:48,184 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 10:38:48,184 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 10:38:48,185 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 10:38:48,186 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 10:38:48,186 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 10:38:48,187 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 10:38:48,199 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 10:38:48,199 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 10:38:48,200 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 10:38:48,205 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 10:38:48,205 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 10:38:48,206 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 10:38:48,207 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 10:38:48,210 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 10:38:48,210 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 10:38:48,211 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 10:38:48,211 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 10:38:48,212 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 10:38:48,212 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 10:38:48,214 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 10:38:48,214 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 10:38:48,220 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 10:38:48,221 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 10:38:48,222 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 10:38:48,222 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 10:38:48,222 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 10:38:48,223 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 10:38:48,223 INFO L290 TraceCheckUtils]: 68: Hoare triple {9473#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {9188#false} is VALID [2022-04-08 10:38:48,223 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-08 10:38:48,246 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 10:38:48,246 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:38:48,494 INFO L356 Elim1Store]: treesize reduction 28, result has 33.3 percent of original size [2022-04-08 10:38:48,494 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 10:38:48,501 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:48,501 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 10:38:48,506 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:48,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, 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 10:38:48,518 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 10:38:48,540 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 10:38:48,550 INFO L356 Elim1Store]: treesize reduction 7, result has 12.5 percent of original size [2022-04-08 10:38:48,550 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 10:38:48,618 INFO L356 Elim1Store]: treesize reduction 13, result has 69.0 percent of original size [2022-04-08 10:38:48,619 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 10:38:48,624 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:48,624 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 10:38:48,667 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:48,671 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 10:38:48,694 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:48,694 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 10:38:48,768 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 10:38:48,784 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 10:38:48,811 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 10:38:48,830 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 10:38:48,950 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:48,951 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 10:38:49,009 INFO L356 Elim1Store]: treesize reduction 27, result has 3.6 percent of original size [2022-04-08 10:38:49,009 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 10:38:49,093 INFO L356 Elim1Store]: treesize reduction 10, result has 64.3 percent of original size [2022-04-08 10:38:49,093 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 10:38:49,201 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 10:38:49,201 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 10:38:49,340 INFO L356 Elim1Store]: treesize reduction 10, result has 64.3 percent of original size [2022-04-08 10:38:49,341 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 10:38:49,442 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:49,443 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 10:38:49,786 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 10:38:49,787 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 10:38:49,795 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 10:38:49,796 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 10:38:49,820 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:49,820 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 10:38:49,931 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 10:38:49,936 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 10:38:49,948 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 10:38:49,957 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 10:38:49,979 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 10:38:50,021 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-08 10:38:50,021 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 10:38:50,148 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 10:38:50,152 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 10:38:50,161 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 10:38:50,173 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 10:38:50,175 WARN L234 Elim1Store]: Array PQE input equivalent to true [2022-04-08 10:38:50,184 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 10:38:50,547 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-08 10:38:50,547 INFO L290 TraceCheckUtils]: 68: Hoare triple {9473#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {9188#false} is VALID [2022-04-08 10:38:50,547 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 10:38:50,548 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 10:38:50,548 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 10:38:50,549 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 10:38:50,549 INFO L290 TraceCheckUtils]: 63: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,549 INFO L290 TraceCheckUtils]: 62: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:50,549 INFO L290 TraceCheckUtils]: 61: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:50,549 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 10:38:50,549 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 10:38:50,550 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 10:38:50,550 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 10:38:50,550 INFO L290 TraceCheckUtils]: 56: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,550 INFO L290 TraceCheckUtils]: 55: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:50,550 INFO L290 TraceCheckUtils]: 54: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:50,550 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 10:38:50,551 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 10:38:50,551 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 10:38:50,552 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 10:38:50,552 INFO L290 TraceCheckUtils]: 49: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,552 INFO L290 TraceCheckUtils]: 48: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:50,552 INFO L290 TraceCheckUtils]: 47: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:50,552 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 10:38:50,552 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 10:38:50,553 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 10:38:50,553 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 10:38:50,554 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 10:38:50,555 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 10:38:50,556 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 10:38:50,556 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 10:38:50,556 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 10:38:50,556 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 10:38:50,556 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-08 10:38:50,557 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,557 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 10:38:50,557 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-08 10:38:50,557 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,557 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:50,557 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:50,557 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 10:38:50,557 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-08 10:38:50,557 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,557 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:50,557 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:50,557 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 10:38:50,557 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-08 10:38:50,558 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,558 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:50,558 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:50,558 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 10:38:50,558 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 10:38:50,558 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 10:38:50,558 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 10:38:50,558 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-08 10:38:50,558 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,558 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9187#true} is VALID [2022-04-08 10:38:50,558 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 10:38:50,558 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 10:38:50,558 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-08 10:38:50,558 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,558 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-08 10:38:50,559 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-08 10:38:50,559 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 10:38:50,559 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 10:38:50,559 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-08 10:38:50,559 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-08 10:38:50,559 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-08 10:38:50,559 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 10:38:50,559 INFO L272 TraceCheckUtils]: 0: Hoare triple {9187#true} call ULTIMATE.init(); {9187#true} is VALID [2022-04-08 10:38:50,562 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 10:38:50,562 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [459693066] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:50,563 INFO L184 FreeRefinementEngine]: Found 1 perfect and 2 imperfect interpolant sequences. [2022-04-08 10:38:50,563 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [16, 11] total 27 [2022-04-08 10:38:50,563 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:38:50,563 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [652839528] [2022-04-08 10:38:50,563 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [652839528] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:38:50,563 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:38:50,563 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-04-08 10:38:50,563 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1898469667] [2022-04-08 10:38:50,563 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:38:50,564 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 10:38:50,564 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:38:50,564 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 10:38:50,606 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 10:38:50,606 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-08 10:38:50,606 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:50,606 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-08 10:38:50,606 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=77, Invalid=625, Unknown=0, NotChecked=0, Total=702 [2022-04-08 10:38:50,607 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 10:38:51,311 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:51,312 INFO L93 Difference]: Finished difference Result 110 states and 128 transitions. [2022-04-08 10:38:51,312 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-08 10:38:51,320 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 10:38:51,321 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:38:51,321 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 10:38:51,323 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 94 transitions. [2022-04-08 10:38:51,323 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 10:38:51,324 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 94 transitions. [2022-04-08 10:38:51,324 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 94 transitions. [2022-04-08 10:38:51,402 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 10:38:51,404 INFO L225 Difference]: With dead ends: 110 [2022-04-08 10:38:51,404 INFO L226 Difference]: Without dead ends: 108 [2022-04-08 10:38:51,404 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 178 GetRequests, 143 SyntacticMatches, 6 SemanticMatches, 29 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 188 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=99, Invalid=831, Unknown=0, NotChecked=0, Total=930 [2022-04-08 10:38:51,405 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 10:38:51,405 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 10:38:51,405 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-08 10:38:51,651 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 106. [2022-04-08 10:38:51,652 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:38:51,652 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 10:38:51,652 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 10:38:51,652 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 10:38:51,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:51,655 INFO L93 Difference]: Finished difference Result 108 states and 126 transitions. [2022-04-08 10:38:51,655 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 126 transitions. [2022-04-08 10:38:51,655 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:51,655 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:51,656 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 10:38:51,656 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 10:38:51,658 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:38:51,658 INFO L93 Difference]: Finished difference Result 108 states and 126 transitions. [2022-04-08 10:38:51,658 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 126 transitions. [2022-04-08 10:38:51,659 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:38:51,659 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:38:51,659 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:38:51,659 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:38:51,660 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 10:38:51,661 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 124 transitions. [2022-04-08 10:38:51,662 INFO L78 Accepts]: Start accepts. Automaton has 106 states and 124 transitions. Word has length 70 [2022-04-08 10:38:51,662 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:38:51,663 INFO L478 AbstractCegarLoop]: Abstraction has 106 states and 124 transitions. [2022-04-08 10:38:51,663 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 10:38:51,663 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 106 states and 124 transitions. [2022-04-08 10:38:51,857 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 10:38:51,857 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 124 transitions. [2022-04-08 10:38:51,858 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 68 [2022-04-08 10:38:51,858 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:38:51,858 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 10:38:51,874 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 10:38:52,058 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 10:38:52,059 INFO L403 AbstractCegarLoop]: === Iteration 14 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:38:52,059 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:38:52,059 INFO L85 PathProgramCache]: Analyzing trace with hash 1867983073, now seen corresponding path program 7 times [2022-04-08 10:38:52,059 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:38:52,059 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1382828123] [2022-04-08 10:38:52,059 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:38:52,060 INFO L85 PathProgramCache]: Analyzing trace with hash 1867983073, now seen corresponding path program 8 times [2022-04-08 10:38:52,060 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:38:52,060 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2006417739] [2022-04-08 10:38:52,060 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:38:52,060 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:38:52,109 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:52,500 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:38:52,502 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:52,516 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 10:38:52,516 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:52,516 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-08 10:38:52,516 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:52,517 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:52,522 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:38:52,522 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:38:52,522 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:52,522 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-08 10:38:52,526 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:38:52,527 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:52,548 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 10:38:52,548 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 10:38:52,549 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 10:38:52,549 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:38:52,558 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:53,451 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:38:53,452 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:53,457 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:38:53,457 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:38:53,457 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:53,458 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 10:38:53,458 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:38:53,459 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:53,462 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:38:53,462 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:38:53,462 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:53,463 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 10:38:53,463 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:38:53,464 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:53,484 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 10:38:53,484 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 10:38:53,484 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 10:38:53,485 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 10:38:53,485 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 10:38:53,486 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 10:38:53,486 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:38:53,486 INFO L290 TraceCheckUtils]: 3: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:38:53,486 INFO L290 TraceCheckUtils]: 4: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:53,486 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 10:38:53,486 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 10:38:53,486 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:38:53,486 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:38:53,487 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:53,487 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 10:38:53,487 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 10:38:53,488 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 10:38:53,488 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 10:38:53,488 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 10:38:53,489 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 10:38:53,491 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 10:38:53,492 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 10:38:53,494 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 10:38:53,494 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:38:53,510 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:56,118 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 10:38:56,119 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 10:38:56,119 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 10:38:56,120 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 10:38:56,122 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 10:38:56,123 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 10:38:56,124 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 10:38:56,127 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 10:38:56,149 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 10:38:56,152 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 10:38:56,153 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 10:38:56,155 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 10:38:56,156 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 10:38:56,157 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 10:38:56,157 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 10:38:56,158 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 10:38:56,159 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 10:38:56,159 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 10:38:56,160 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 10:38:56,160 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 10:38:56,161 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 10:38:56,162 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 10:38:56,163 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 10:38:56,164 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 10:38:56,164 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 10:38:56,164 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:56,164 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-08 10:38:56,164 INFO L272 TraceCheckUtils]: 4: Hoare triple {10348#true} call #t~ret27 := main(); {10348#true} is VALID [2022-04-08 10:38:56,164 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 10:38:56,165 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 10:38:56,165 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:38:56,165 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:38:56,165 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:56,165 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-08 10:38:56,165 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 10:38:56,166 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 10:38:56,166 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 10:38:56,166 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 10:38:56,167 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 10:38:56,167 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 10:38:56,168 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 10:38:56,168 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 10:38:56,168 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 10:38:56,168 INFO L290 TraceCheckUtils]: 20: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:38:56,168 INFO L290 TraceCheckUtils]: 21: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:38:56,168 INFO L290 TraceCheckUtils]: 22: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:56,169 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 10:38:56,169 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 10:38:56,169 INFO L290 TraceCheckUtils]: 25: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:38:56,169 INFO L290 TraceCheckUtils]: 26: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:38:56,169 INFO L290 TraceCheckUtils]: 27: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:38:56,170 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 10:38:56,170 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 10:38:56,170 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 10:38:56,170 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 10:38:56,170 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 10:38:56,171 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 10:38:56,174 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 10:38:56,175 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 10:38:56,177 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 10:38:56,178 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 10:38:56,179 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 10:38:56,179 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 10:38:56,180 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 10:38:56,180 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 10:38:56,181 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 10:38:56,183 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 10:38:56,184 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 10:38:56,185 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 10:38:56,188 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 10:38:56,189 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 10:38:56,191 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 10:38:56,193 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 10:38:56,194 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 10:38:56,195 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 10:38:56,196 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 10:38:56,196 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 10:38:56,197 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 10:38:56,198 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 10:38:56,198 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 10:38:56,199 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 10:38:56,199 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 10:38:56,200 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 10:38:56,201 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 10:38:56,202 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 10:38:56,202 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 10:38:56,202 INFO L272 TraceCheckUtils]: 63: Hoare triple {10349#false} call __VERIFIER_assert(~r~0); {10349#false} is VALID [2022-04-08 10:38:56,202 INFO L290 TraceCheckUtils]: 64: Hoare triple {10349#false} ~cond := #in~cond; {10349#false} is VALID [2022-04-08 10:38:56,202 INFO L290 TraceCheckUtils]: 65: Hoare triple {10349#false} assume 0 == ~cond; {10349#false} is VALID [2022-04-08 10:38:56,202 INFO L290 TraceCheckUtils]: 66: Hoare triple {10349#false} assume !false; {10349#false} is VALID [2022-04-08 10:38:56,210 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 10:38:56,210 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:38:56,210 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2006417739] [2022-04-08 10:38:56,210 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2006417739] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:38:56,211 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1896221120] [2022-04-08 10:38:56,211 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 10:38:56,211 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:38:56,211 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:38:56,212 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 10:38:56,213 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 10:38:56,282 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 10:38:56,282 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:38:56,284 INFO L263 TraceCheckSpWp]: Trace formula consists of 266 conjuncts, 77 conjunts are in the unsatisfiable core [2022-04-08 10:38:56,298 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:38:56,302 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:38:56,345 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 10:39:14,039 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 10:39:21,629 INFO L272 TraceCheckUtils]: 0: Hoare triple {10348#true} call ULTIMATE.init(); {10348#true} is VALID [2022-04-08 10:39:21,629 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 10:39:21,629 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:39:21,629 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-08 10:39:21,629 INFO L272 TraceCheckUtils]: 4: Hoare triple {10348#true} call #t~ret27 := main(); {10348#true} is VALID [2022-04-08 10:39:21,629 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 10:39:21,629 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 10:39:21,629 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:39:21,629 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:39:21,629 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:39:21,629 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-08 10:39:21,630 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 10:39:21,630 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 10:39:21,630 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 10:39:21,630 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 10:39:21,631 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 10:39:21,632 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 10:39:21,632 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 10:39:21,633 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 10:39:21,633 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 10:39:21,633 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 10:39:21,633 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 10:39:21,633 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 10:39:21,634 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 10:39:21,634 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 10:39:21,634 INFO L290 TraceCheckUtils]: 25: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-08 10:39:21,635 INFO L290 TraceCheckUtils]: 26: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-08 10:39:21,635 INFO L290 TraceCheckUtils]: 27: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-08 10:39:21,635 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 10:39:21,635 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 10:39:21,635 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 10:39:21,636 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 10:39:21,636 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 10:39:21,637 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 10:39:23,644 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 10:39:25,676 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 10:39:25,678 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 10:39:25,679 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 10:39:25,681 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 10:39:25,681 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 10:39:25,682 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 10:39:25,683 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 10:39:25,684 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 10:39:25,684 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 10:39:25,685 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 10:39:25,686 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 10:39:25,687 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 10:39:25,687 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 10:39:25,688 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 10:39:25,689 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 10:39:25,689 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 10:39:25,690 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 10:39:25,690 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 10:39:25,691 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 10:39:25,692 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 10:39:25,692 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 10:39:25,693 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 10:39:25,693 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 10:39:25,694 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 10:39:25,694 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 10:39:25,695 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 10:39:25,697 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 10:39:25,697 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 10:39:25,697 INFO L272 TraceCheckUtils]: 63: Hoare triple {10349#false} call __VERIFIER_assert(~r~0); {10349#false} is VALID [2022-04-08 10:39:25,697 INFO L290 TraceCheckUtils]: 64: Hoare triple {10349#false} ~cond := #in~cond; {10349#false} is VALID [2022-04-08 10:39:25,697 INFO L290 TraceCheckUtils]: 65: Hoare triple {10349#false} assume 0 == ~cond; {10349#false} is VALID [2022-04-08 10:39:25,697 INFO L290 TraceCheckUtils]: 66: Hoare triple {10349#false} assume !false; {10349#false} is VALID [2022-04-08 10:39:25,698 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 10:39:25,698 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:39:27,737 WARN L804 TransFormulaUtils]: predicate-based correctness check returned UNKNOWN, hence correctness of interprocedural sequential composition was not checked. [2022-04-08 10:39:53,783 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1896221120] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:39:53,783 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 10:39:53,783 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [27, 27] total 48 [2022-04-08 10:39:53,783 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:39:53,783 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1382828123] [2022-04-08 10:39:53,784 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1382828123] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:39:53,784 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:39:53,784 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [27] imperfect sequences [] total 27 [2022-04-08 10:39:53,784 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1952641911] [2022-04-08 10:39:53,784 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:39:53,784 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 10:39:53,785 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:39:53,785 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 10:39:53,860 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 10:39:53,861 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 27 states [2022-04-08 10:39:53,861 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:39:53,861 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2022-04-08 10:39:53,862 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=365, Invalid=3632, Unknown=35, NotChecked=0, Total=4032 [2022-04-08 10:39:53,862 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 10:40:14,868 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:40:14,868 INFO L93 Difference]: Finished difference Result 199 states and 239 transitions. [2022-04-08 10:40:14,868 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 33 states. [2022-04-08 10:40:14,869 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 10:40:14,869 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:40:14,869 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 10:40:14,884 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 148 transitions. [2022-04-08 10:40:14,884 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 10:40:14,900 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 148 transitions. [2022-04-08 10:40:14,900 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 33 states and 148 transitions. [2022-04-08 10:40:15,152 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 10:40:15,154 INFO L225 Difference]: With dead ends: 199 [2022-04-08 10:40:15,154 INFO L226 Difference]: Without dead ends: 125 [2022-04-08 10:40:15,155 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 169 GetRequests, 78 SyntacticMatches, 0 SemanticMatches, 91 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2437 ImplicationChecksByTransitivity, 64.6s TimeCoverageRelationStatistics Valid=690, Invalid=7826, Unknown=40, NotChecked=0, Total=8556 [2022-04-08 10:40:15,156 INFO L913 BasicCegarLoop]: 55 mSDtfsCounter, 179 mSDsluCounter, 12 mSDsCounter, 0 mSdLazyCounter, 1600 mSolverCounterSat, 136 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 3.5s 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.5s IncrementalHoareTripleChecker+Time [2022-04-08 10:40:15,156 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.5s Time] [2022-04-08 10:40:15,156 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 125 states. [2022-04-08 10:40:15,514 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 125 to 115. [2022-04-08 10:40:15,514 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:40:15,515 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 10:40:15,515 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 10:40:15,515 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 10:40:15,517 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:40:15,517 INFO L93 Difference]: Finished difference Result 125 states and 150 transitions. [2022-04-08 10:40:15,517 INFO L276 IsEmpty]: Start isEmpty. Operand 125 states and 150 transitions. [2022-04-08 10:40:15,518 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:40:15,518 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:40:15,518 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 10:40:15,518 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 10:40:15,520 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:40:15,520 INFO L93 Difference]: Finished difference Result 125 states and 150 transitions. [2022-04-08 10:40:15,520 INFO L276 IsEmpty]: Start isEmpty. Operand 125 states and 150 transitions. [2022-04-08 10:40:15,520 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:40:15,520 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:40:15,521 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:40:15,521 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:40:15,521 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 10:40:15,522 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 115 states to 115 states and 136 transitions. [2022-04-08 10:40:15,523 INFO L78 Accepts]: Start accepts. Automaton has 115 states and 136 transitions. Word has length 67 [2022-04-08 10:40:15,523 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:40:15,523 INFO L478 AbstractCegarLoop]: Abstraction has 115 states and 136 transitions. [2022-04-08 10:40:15,523 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 10:40:15,523 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 115 states and 136 transitions. [2022-04-08 10:40:15,797 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 10:40:15,797 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 136 transitions. [2022-04-08 10:40:15,798 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 74 [2022-04-08 10:40:15,798 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:40:15,798 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 10:40:15,814 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 10:40:15,999 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 10:40:15,999 INFO L403 AbstractCegarLoop]: === Iteration 15 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:40:15,999 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:40:15,999 INFO L85 PathProgramCache]: Analyzing trace with hash -1243098892, now seen corresponding path program 1 times [2022-04-08 10:40:15,999 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:40:15,999 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1929798091] [2022-04-08 10:40:16,000 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:40:16,000 INFO L85 PathProgramCache]: Analyzing trace with hash -1243098892, now seen corresponding path program 2 times [2022-04-08 10:40:16,000 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:40:16,000 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2146421623] [2022-04-08 10:40:16,000 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:40:16,000 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:40:16,019 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,129 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:40:16,130 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,132 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 10:40:16,132 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,132 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-08 10:40:16,132 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:40:16,132 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,134 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,134 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,134 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,134 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-08 10:40:16,142 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:40:16,142 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,144 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 10:40:16,144 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,144 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-08 10:40:16,144 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:40:16,148 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,150 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:40:16,151 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,153 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,153 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,153 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,153 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 10:40:16,153 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:40:16,153 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,155 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,155 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,155 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,155 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 10:40:16,155 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:40:16,155 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,157 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,157 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,157 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,157 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 10:40:16,157 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 10:40:16,157 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 10:40:16,157 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,157 INFO L290 TraceCheckUtils]: 3: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,157 INFO L290 TraceCheckUtils]: 4: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,157 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 10:40:16,157 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 10:40:16,158 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,158 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,158 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,158 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 10:40:16,158 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 10:40:16,158 INFO L290 TraceCheckUtils]: 12: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,158 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,158 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,158 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 10:40:16,158 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 10:40:16,158 INFO L290 TraceCheckUtils]: 17: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,158 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-08 10:40:16,158 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:40:16,162 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,294 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 10:40:16,295 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 10:40:16,296 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 10:40:16,296 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 10:40:16,297 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 10:40:16,297 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 10:40:16,298 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 10:40:16,298 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 10:40:16,299 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 10:40:16,300 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 49 [2022-04-08 10:40:16,301 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,315 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11784#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:40:16,315 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 10:40:16,316 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 10:40:16,317 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 10:40:16,317 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 56 [2022-04-08 10:40:16,318 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,319 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,320 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,320 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,320 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 10:40:16,320 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 63 [2022-04-08 10:40:16,321 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,323 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,323 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,323 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,323 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 10:40:16,324 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 10:40:16,324 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 10:40:16,324 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,324 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-08 10:40:16,324 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-08 10:40:16,324 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 10:40:16,324 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 10:40:16,324 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,324 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,324 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,324 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-08 10:40:16,324 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 10:40:16,325 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 10:40:16,325 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 10:40:16,325 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,325 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-08 10:40:16,325 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 10:40:16,326 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 10:40:16,326 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 10:40:16,326 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 10:40:16,326 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,326 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,326 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,326 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 10:40:16,327 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 10:40:16,327 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,327 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,327 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,327 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 10:40:16,327 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 10:40:16,327 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,327 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,327 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,327 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 10:40:16,327 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 10:40:16,327 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,327 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-08 10:40:16,328 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 10:40:16,329 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 10:40:16,329 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 10:40:16,330 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 10:40:16,330 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 10:40:16,331 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 10:40:16,331 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 10:40:16,332 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 10:40:16,332 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 10:40:16,333 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 10:40:16,334 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 10:40:16,335 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 10:40:16,335 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 10:40:16,335 INFO L290 TraceCheckUtils]: 50: Hoare triple {11706#true} ~cond := #in~cond; {11784#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:40:16,335 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 10:40:16,336 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 10:40:16,336 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 10:40:16,337 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 10:40:16,337 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 10:40:16,337 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 10:40:16,337 INFO L290 TraceCheckUtils]: 57: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,338 INFO L290 TraceCheckUtils]: 58: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,338 INFO L290 TraceCheckUtils]: 59: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,338 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 10:40:16,339 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 10:40:16,339 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 10:40:16,339 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 10:40:16,339 INFO L290 TraceCheckUtils]: 64: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:16,339 INFO L290 TraceCheckUtils]: 65: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:16,339 INFO L290 TraceCheckUtils]: 66: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:16,340 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 10:40:16,340 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 10:40:16,341 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 10:40:16,341 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 10:40:16,341 INFO L290 TraceCheckUtils]: 71: Hoare triple {11765#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {11707#false} is VALID [2022-04-08 10:40:16,341 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-08 10:40:16,342 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 10:40:16,342 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:40:16,342 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2146421623] [2022-04-08 10:40:16,342 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2146421623] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:40:16,342 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1614850748] [2022-04-08 10:40:16,342 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 10:40:16,342 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:40:16,342 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:40:16,356 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 10:40:16,357 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 10:40:16,441 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 10:40:16,441 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:40:16,443 INFO L263 TraceCheckSpWp]: Trace formula consists of 296 conjuncts, 47 conjunts are in the unsatisfiable core [2022-04-08 10:40:16,457 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:16,458 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:40:16,528 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 10:40:16,712 INFO L356 Elim1Store]: treesize reduction 17, result has 46.9 percent of original size [2022-04-08 10:40:16,713 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 10:40:17,223 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-04-08 10:40:17,223 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 10:40:17,290 INFO L272 TraceCheckUtils]: 0: Hoare triple {11706#true} call ULTIMATE.init(); {11706#true} is VALID [2022-04-08 10:40:17,290 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 10:40:17,290 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:17,290 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-08 10:40:17,290 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-08 10:40:17,290 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 10:40:17,290 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 10:40:17,290 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:17,290 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:17,290 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:17,290 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-08 10:40:17,290 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 10:40:17,290 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 10:40:17,291 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11706#true} is VALID [2022-04-08 10:40:17,291 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:17,291 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-08 10:40:17,291 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 10:40:17,313 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 10:40:17,313 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 10:40:17,313 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 10:40:17,313 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:17,313 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:17,313 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:17,313 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 10:40:17,313 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 10:40:17,313 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:17,313 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:17,313 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:17,314 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 10:40:17,314 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 10:40:17,314 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:17,314 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:17,314 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:17,314 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 10:40:17,314 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 10:40:17,314 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:17,314 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-08 10:40:17,315 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 10:40:17,315 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 10:40:17,315 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 10:40:17,316 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 10:40:17,316 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 10:40:17,316 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 10:40:17,317 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 10:40:17,317 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 10:40:17,318 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 10:40:17,318 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 10:40:17,319 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 10:40:17,320 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 10:40:17,321 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 10:40:17,321 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 10:40:17,321 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 10:40:17,322 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 10:40:17,322 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 10:40:17,323 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 10:40:17,323 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 10:40:17,324 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 10:40:17,324 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 10:40:17,325 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 10:40:17,325 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 10:40:17,326 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 10:40:17,326 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 10:40:17,326 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 10:40:17,327 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 10:40:17,328 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 10:40:17,328 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 10:40:17,328 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 10:40:17,329 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 10:40:17,329 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 10:40:17,330 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 10:40:17,330 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 10:40:17,330 INFO L290 TraceCheckUtils]: 71: Hoare triple {12006#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11707#false} is VALID [2022-04-08 10:40:17,330 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-08 10:40:17,331 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 10:40:17,331 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:40:17,612 INFO L356 Elim1Store]: treesize reduction 10, result has 9.1 percent of original size [2022-04-08 10:40:17,612 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 10:40:18,224 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-08 10:40:18,224 INFO L290 TraceCheckUtils]: 71: Hoare triple {12006#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11707#false} is VALID [2022-04-08 10:40:18,224 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 10:40:18,225 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 10:40:18,225 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 10:40:18,226 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 10:40:18,226 INFO L290 TraceCheckUtils]: 66: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,226 INFO L290 TraceCheckUtils]: 65: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:18,226 INFO L290 TraceCheckUtils]: 64: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:18,226 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 10:40:18,227 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 10:40:18,227 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 10:40:18,228 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 10:40:18,228 INFO L290 TraceCheckUtils]: 59: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,228 INFO L290 TraceCheckUtils]: 58: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:18,228 INFO L290 TraceCheckUtils]: 57: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:18,228 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 10:40:18,229 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 10:40:18,229 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 10:40:18,230 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 10:40:18,230 INFO L290 TraceCheckUtils]: 52: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,230 INFO L290 TraceCheckUtils]: 51: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:18,230 INFO L290 TraceCheckUtils]: 50: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:18,230 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 10:40:18,231 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 10:40:18,232 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 10:40:18,233 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 10:40:18,234 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 10:40:18,235 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 10:40:18,235 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 10:40:18,236 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 10:40:18,237 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 10:40:18,238 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 10:40:18,239 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 10:40:18,239 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 10:40:18,239 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 10:40:18,239 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-08 10:40:18,240 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,240 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 10:40:18,240 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-08 10:40:18,240 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,240 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:18,240 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:18,240 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 10:40:18,240 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-08 10:40:18,240 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,240 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:18,240 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:18,240 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 10:40:18,240 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-08 10:40:18,241 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,241 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:18,241 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:18,241 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 10:40:18,241 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 10:40:18,241 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 10:40:18,241 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 10:40:18,241 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-08 10:40:18,241 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,241 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11706#true} is VALID [2022-04-08 10:40:18,241 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 10:40:18,241 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 10:40:18,241 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-08 10:40:18,241 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,242 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-08 10:40:18,242 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-08 10:40:18,242 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 10:40:18,242 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 10:40:18,242 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-08 10:40:18,242 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-08 10:40:18,242 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-08 10:40:18,242 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 10:40:18,242 INFO L272 TraceCheckUtils]: 0: Hoare triple {11706#true} call ULTIMATE.init(); {11706#true} is VALID [2022-04-08 10:40:18,242 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 10:40:18,243 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1614850748] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 10:40:18,243 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-08 10:40:18,243 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 12, 11] total 31 [2022-04-08 10:40:18,244 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 10:40:18,244 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1929798091] [2022-04-08 10:40:18,244 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1929798091] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 10:40:18,244 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 10:40:18,244 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [17] imperfect sequences [] total 17 [2022-04-08 10:40:18,244 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1928013468] [2022-04-08 10:40:18,244 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 10:40:18,245 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 10:40:18,245 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 10:40:18,245 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 10:40:18,293 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 10:40:18,293 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 17 states [2022-04-08 10:40:18,293 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 10:40:18,294 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2022-04-08 10:40:18,294 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=103, Invalid=827, Unknown=0, NotChecked=0, Total=930 [2022-04-08 10:40:18,294 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 10:40:20,659 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:40:20,659 INFO L93 Difference]: Finished difference Result 135 states and 160 transitions. [2022-04-08 10:40:20,659 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-04-08 10:40:20,660 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 10:40:20,661 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 10:40:20,661 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 10:40:20,663 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 102 transitions. [2022-04-08 10:40:20,663 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 10:40:20,664 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 102 transitions. [2022-04-08 10:40:20,664 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 17 states and 102 transitions. [2022-04-08 10:40:20,774 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 10:40:20,777 INFO L225 Difference]: With dead ends: 135 [2022-04-08 10:40:20,777 INFO L226 Difference]: Without dead ends: 133 [2022-04-08 10:40:20,779 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 10:40:20,780 INFO L913 BasicCegarLoop]: 46 mSDtfsCounter, 96 mSDsluCounter, 24 mSDsCounter, 0 mSdLazyCounter, 1053 mSolverCounterSat, 80 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.9s 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, 0.9s IncrementalHoareTripleChecker+Time [2022-04-08 10:40:20,780 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [97 Valid, 70 Invalid, 1133 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [80 Valid, 1053 Invalid, 0 Unknown, 0 Unchecked, 0.9s Time] [2022-04-08 10:40:20,781 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 133 states. [2022-04-08 10:40:21,109 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 133 to 129. [2022-04-08 10:40:21,110 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 10:40:21,110 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 10:40:21,110 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 10:40:21,111 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 10:40:21,113 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:40:21,113 INFO L93 Difference]: Finished difference Result 133 states and 158 transitions. [2022-04-08 10:40:21,113 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 158 transitions. [2022-04-08 10:40:21,113 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:40:21,113 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:40:21,113 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 10:40:21,114 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 10:40:21,116 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 10:40:21,116 INFO L93 Difference]: Finished difference Result 133 states and 158 transitions. [2022-04-08 10:40:21,116 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 158 transitions. [2022-04-08 10:40:21,117 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 10:40:21,117 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 10:40:21,117 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 10:40:21,117 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 10:40:21,117 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 10:40:21,119 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 129 states to 129 states and 154 transitions. [2022-04-08 10:40:21,120 INFO L78 Accepts]: Start accepts. Automaton has 129 states and 154 transitions. Word has length 73 [2022-04-08 10:40:21,120 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 10:40:21,120 INFO L478 AbstractCegarLoop]: Abstraction has 129 states and 154 transitions. [2022-04-08 10:40:21,120 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 10:40:21,120 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 129 states and 154 transitions. [2022-04-08 10:40:21,467 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 10:40:21,467 INFO L276 IsEmpty]: Start isEmpty. Operand 129 states and 154 transitions. [2022-04-08 10:40:21,468 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 77 [2022-04-08 10:40:21,468 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 10:40:21,468 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 10:40:21,486 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 10:40:21,684 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 10:40:21,684 INFO L403 AbstractCegarLoop]: === Iteration 16 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 10:40:21,684 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 10:40:21,684 INFO L85 PathProgramCache]: Analyzing trace with hash 680409498, now seen corresponding path program 1 times [2022-04-08 10:40:21,684 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 10:40:21,684 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1414402505] [2022-04-08 10:40:21,685 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 10:40:21,685 INFO L85 PathProgramCache]: Analyzing trace with hash 680409498, now seen corresponding path program 2 times [2022-04-08 10:40:21,685 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 10:40:21,685 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [170558223] [2022-04-08 10:40:21,685 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 10:40:21,685 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 10:40:21,704 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:21,888 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 10:40:21,889 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:21,894 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 10:40:21,894 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,894 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-08 10:40:21,894 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:40:21,894 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:21,895 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:21,896 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:21,896 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,896 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-08 10:40:21,902 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 10:40:21,903 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:21,908 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 10:40:21,908 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,909 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 10:40:21,909 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-08 10:40:21,914 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:21,928 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-08 10:40:21,928 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:21,929 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:21,929 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:21,929 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,929 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-08 10:40:21,929 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 10:40:21,930 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:21,931 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:21,931 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:21,931 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,931 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-08 10:40:21,931 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-08 10:40:21,932 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:21,933 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:21,933 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:21,933 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,933 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-08 10:40:21,933 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 10:40:21,933 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 10:40:21,933 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:21,933 INFO L290 TraceCheckUtils]: 3: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:21,933 INFO L290 TraceCheckUtils]: 4: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,933 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-08 10:40:21,933 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 10:40:21,934 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:21,934 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:21,934 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,934 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-08 10:40:21,934 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 10:40:21,934 INFO L290 TraceCheckUtils]: 12: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:21,934 INFO L290 TraceCheckUtils]: 13: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:21,934 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,934 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-08 10:40:21,934 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 10:40:21,934 INFO L290 TraceCheckUtils]: 17: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:21,935 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 10:40:21,935 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-08 10:40:21,938 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:22,106 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 10:40:22,107 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 10:40:22,107 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 10:40:22,108 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 10:40:22,109 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 10:40:22,110 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 10:40:22,110 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-08 10:40:22,111 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:22,131 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13139#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:40:22,132 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 10:40:22,132 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 10:40:22,133 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 10:40:22,133 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-08 10:40:22,134 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:22,135 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,135 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,135 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,136 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 10:40:22,136 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 60 [2022-04-08 10:40:22,137 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:22,138 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,138 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,139 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,139 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 10:40:22,139 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 66 [2022-04-08 10:40:22,140 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:22,141 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,141 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,142 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,142 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 10:40:22,142 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 10:40:22,143 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 10:40:22,143 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,143 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-08 10:40:22,143 INFO L272 TraceCheckUtils]: 4: Hoare triple {13058#true} call #t~ret27 := main(); {13058#true} is VALID [2022-04-08 10:40:22,143 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 10:40:22,143 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 10:40:22,143 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,143 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,143 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,143 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-08 10:40:22,144 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 10:40:22,144 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 10:40:22,145 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 10:40:22,145 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,145 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 10:40:22,145 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 10:40:22,146 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 10:40:22,146 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 10:40:22,146 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 10:40:22,146 INFO L290 TraceCheckUtils]: 20: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,146 INFO L290 TraceCheckUtils]: 21: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,146 INFO L290 TraceCheckUtils]: 22: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,146 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-08 10:40:22,146 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 10:40:22,147 INFO L290 TraceCheckUtils]: 25: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,147 INFO L290 TraceCheckUtils]: 26: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,147 INFO L290 TraceCheckUtils]: 27: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,147 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-08 10:40:22,147 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 10:40:22,147 INFO L290 TraceCheckUtils]: 30: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,147 INFO L290 TraceCheckUtils]: 31: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,147 INFO L290 TraceCheckUtils]: 32: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,147 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-08 10:40:22,147 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 10:40:22,147 INFO L290 TraceCheckUtils]: 35: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,148 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 10:40:22,149 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 10:40:22,149 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 10:40:22,150 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 10:40:22,150 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 10:40:22,151 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 10:40:22,152 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 10:40:22,153 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 10:40:22,154 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 10:40:22,154 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 10:40:22,154 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 10:40:22,155 INFO L290 TraceCheckUtils]: 47: Hoare triple {13058#true} ~cond := #in~cond; {13139#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 10:40:22,155 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 10:40:22,155 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 10:40:22,156 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 10:40:22,156 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 10:40:22,157 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 10:40:22,157 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 10:40:22,157 INFO L290 TraceCheckUtils]: 54: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,157 INFO L290 TraceCheckUtils]: 55: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,157 INFO L290 TraceCheckUtils]: 56: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,158 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 10:40:22,158 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 10:40:22,159 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 10:40:22,159 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 10:40:22,159 INFO L290 TraceCheckUtils]: 61: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,159 INFO L290 TraceCheckUtils]: 62: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,159 INFO L290 TraceCheckUtils]: 63: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,159 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 10:40:22,160 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 10:40:22,160 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 10:40:22,160 INFO L290 TraceCheckUtils]: 67: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:22,160 INFO L290 TraceCheckUtils]: 68: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:22,160 INFO L290 TraceCheckUtils]: 69: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:22,161 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 10:40:22,161 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 10:40:22,162 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 10:40:22,162 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 10:40:22,162 INFO L290 TraceCheckUtils]: 74: Hoare triple {13121#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {13059#false} is VALID [2022-04-08 10:40:22,162 INFO L290 TraceCheckUtils]: 75: Hoare triple {13059#false} assume !false; {13059#false} is VALID [2022-04-08 10:40:22,163 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 10:40:22,163 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 10:40:22,163 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [170558223] [2022-04-08 10:40:22,163 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [170558223] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-08 10:40:22,163 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [50440820] [2022-04-08 10:40:22,163 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 10:40:22,163 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 10:40:22,163 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 10:40:22,164 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 10:40:22,195 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 10:40:22,283 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 10:40:22,283 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 10:40:22,285 INFO L263 TraceCheckSpWp]: Trace formula consists of 305 conjuncts, 84 conjunts are in the unsatisfiable core [2022-04-08 10:40:22,299 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 10:40:22,302 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 10:40:22,421 INFO L356 Elim1Store]: treesize reduction 29, result has 39.6 percent of original size [2022-04-08 10:40:22,421 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 10:40:22,458 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 10:40:22,755 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 10:40:22,756 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 10:40:22,756 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 10:40:22,759 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 10:40:27,623 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 10:40:27,624 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-08 10:40:27,636 INFO L356 Elim1Store]: treesize reduction 38, result has 22.4 percent of original size [2022-04-08 10:40:27,636 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 10:40:27,710 INFO L272 TraceCheckUtils]: 0: Hoare triple {13058#true} call ULTIMATE.init(); {13058#true} is VALID [2022-04-08 10:40:27,711 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 10:40:27,711 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:27,711 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-08 10:40:27,711 INFO L272 TraceCheckUtils]: 4: Hoare triple {13058#true} call #t~ret27 := main(); {13058#true} is VALID [2022-04-08 10:40:27,711 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 10:40:27,711 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 10:40:27,711 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:27,711 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:27,711 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:27,711 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-08 10:40:27,712 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 10:40:27,712 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 10:40:27,712 INFO L290 TraceCheckUtils]: 13: Hoare triple {13058#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {13058#true} is VALID [2022-04-08 10:40:27,712 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:27,713 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 10:40:27,713 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 10:40:27,713 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 10:40:27,713 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 10:40:27,714 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 10:40:27,714 INFO L290 TraceCheckUtils]: 20: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:27,714 INFO L290 TraceCheckUtils]: 21: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:27,714 INFO L290 TraceCheckUtils]: 22: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:27,714 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 10:40:27,714 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 10:40:27,714 INFO L290 TraceCheckUtils]: 25: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:27,714 INFO L290 TraceCheckUtils]: 26: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:27,714 INFO L290 TraceCheckUtils]: 27: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:27,715 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 10:40:27,715 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 10:40:27,715 INFO L290 TraceCheckUtils]: 30: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-08 10:40:27,715 INFO L290 TraceCheckUtils]: 31: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-08 10:40:27,715 INFO L290 TraceCheckUtils]: 32: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:27,715 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 10:40:27,716 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 10:40:27,716 INFO L290 TraceCheckUtils]: 35: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-08 10:40:27,717 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 10:40:27,717 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 10:40:27,718 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 10:40:27,719 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 10:40:27,719 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 10:40:27,720 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 10:40:27,720 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 10:40:27,721 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 10:40:27,722 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 10:40:27,723 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 10:40:27,724 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 10:40:27,725 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 10:40:27,726 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 10:40:27,726 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 10:40:27,727 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 10:40:27,727 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 10:40:27,728 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 10:40:27,729 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 10:40:27,730 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 10:40:27,731 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 10:40:27,732 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 10:40:27,732 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 10:40:27,733 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 10:40:27,733 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 10:40:27,734 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 10:40:27,735 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 10:40:27,736 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 10:40:27,737 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 10:40:27,737 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 10:40:27,738 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 10:40:27,739 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 10:40:27,740 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 10:40:27,740 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 10:40:27,741 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 10:40:27,742 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 10:40:27,742 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 10:40:27,743 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 10:40:27,743 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 10:40:27,743 INFO L290 TraceCheckUtils]: 74: Hoare triple {13371#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {13059#false} is VALID [2022-04-08 10:40:27,743 INFO L290 TraceCheckUtils]: 75: Hoare triple {13059#false} assume !false; {13059#false} is VALID [2022-04-08 10:40:27,744 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 10:40:27,744 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 10:40:28,592 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-08 10:40:28,595 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 10:40:32,767 WARN L804 TransFormulaUtils]: predicate-based correctness check returned UNKNOWN, hence correctness of interprocedural sequential composition was not checked. [2022-04-08 10:40:33,085 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 10:40:34,975 INFO L356 Elim1Store]: treesize reduction 9, result has 10.0 percent of original size [2022-04-08 10:40:34,975 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 10:40:35,307 WARN L319 FreeRefinementEngine]: Global settings require throwing the following exception [2022-04-08 10:40:35,326 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 10:40:35,525 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 10:40:35,526 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.<init>(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.<init>(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.<init>(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.<init>(AutomatonFreeRefinementEngine.java:85) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.<init>(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.<init>(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 10:40:35,533 INFO L158 Benchmark]: Toolchain (without parser) took 155568.70ms. Allocated memory was 228.6MB in the beginning and 408.9MB in the end (delta: 180.4MB). Free memory was 176.7MB in the beginning and 277.1MB in the end (delta: -100.3MB). Peak memory consumption was 222.8MB. Max. memory is 8.0GB. [2022-04-08 10:40:35,533 INFO L158 Benchmark]: CDTParser took 0.12ms. Allocated memory is still 228.6MB. Free memory is still 193.2MB. There was no memory consumed. Max. memory is 8.0GB. [2022-04-08 10:40:35,533 INFO L158 Benchmark]: CACSL2BoogieTranslator took 204.18ms. Allocated memory is still 228.6MB. Free memory was 176.6MB in the beginning and 203.1MB in the end (delta: -26.6MB). Peak memory consumption was 11.5MB. Max. memory is 8.0GB. [2022-04-08 10:40:35,533 INFO L158 Benchmark]: Boogie Preprocessor took 51.74ms. Allocated memory is still 228.6MB. Free memory was 203.1MB in the beginning and 201.0MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. [2022-04-08 10:40:35,534 INFO L158 Benchmark]: RCFGBuilder took 391.55ms. Allocated memory is still 228.6MB. Free memory was 201.0MB in the beginning and 184.5MB in the end (delta: 16.6MB). Peak memory consumption was 16.8MB. Max. memory is 8.0GB. [2022-04-08 10:40:35,534 INFO L158 Benchmark]: TraceAbstraction took 154915.63ms. Allocated memory was 228.6MB in the beginning and 408.9MB in the end (delta: 180.4MB). Free memory was 183.9MB in the beginning and 277.1MB in the end (delta: -93.2MB). Peak memory consumption was 230.2MB. Max. memory is 8.0GB. [2022-04-08 10:40:35,535 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.12ms. Allocated memory is still 228.6MB. Free memory is still 193.2MB. There was no memory consumed. Max. memory is 8.0GB. * CACSL2BoogieTranslator took 204.18ms. Allocated memory is still 228.6MB. Free memory was 176.6MB in the beginning and 203.1MB in the end (delta: -26.6MB). Peak memory consumption was 11.5MB. Max. memory is 8.0GB. * Boogie Preprocessor took 51.74ms. Allocated memory is still 228.6MB. Free memory was 203.1MB in the beginning and 201.0MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. * RCFGBuilder took 391.55ms. Allocated memory is still 228.6MB. Free memory was 201.0MB in the beginning and 184.5MB in the end (delta: 16.6MB). Peak memory consumption was 16.8MB. Max. memory is 8.0GB. * TraceAbstraction took 154915.63ms. Allocated memory was 228.6MB in the beginning and 408.9MB in the end (delta: 180.4MB). Free memory was 183.9MB in the beginning and 277.1MB in the end (delta: -93.2MB). Peak memory consumption was 230.2MB. 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 10:40:35,746 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 10:40:35,752 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 0 Received shutdown request...