/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-fb4f59a-m [2022-04-28 10:41:03,911 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-28 10:41:03,920 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-28 10:41:03,968 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-28 10:41:03,968 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-28 10:41:03,970 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-28 10:41:03,973 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-28 10:41:03,977 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-28 10:41:03,978 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-28 10:41:03,979 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-28 10:41:03,979 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-28 10:41:03,980 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-28 10:41:03,980 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-28 10:41:03,981 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-28 10:41:03,982 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-28 10:41:03,983 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-28 10:41:03,984 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-28 10:41:03,984 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-28 10:41:03,986 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-28 10:41:03,989 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-28 10:41:03,992 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-28 10:41:03,996 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-28 10:41:03,997 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-28 10:41:03,999 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-28 10:41:04,001 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-28 10:41:04,010 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-28 10:41:04,010 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-28 10:41:04,011 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-28 10:41:04,011 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-28 10:41:04,012 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-28 10:41:04,012 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-28 10:41:04,013 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-28 10:41:04,014 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-28 10:41:04,015 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-28 10:41:04,015 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-28 10:41:04,016 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-28 10:41:04,016 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-28 10:41:04,017 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-28 10:41:04,017 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-28 10:41:04,017 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-28 10:41:04,018 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-28 10:41:04,020 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-28 10:41:04,020 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationQvasr_64.epf [2022-04-28 10:41:04,032 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-28 10:41:04,033 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-28 10:41:04,034 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-28 10:41:04,034 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-28 10:41:04,034 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-28 10:41:04,034 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-28 10:41:04,034 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-28 10:41:04,034 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-28 10:41:04,035 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-28 10:41:04,035 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-28 10:41:04,035 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-28 10:41:04,036 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-28 10:41:04,036 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-28 10:41:04,036 INFO L138 SettingsManager]: * To the following directory=./dump/ [2022-04-28 10:41:04,036 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-28 10:41:04,036 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-28 10:41:04,036 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-28 10:41:04,036 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=Craig_NestedInterpolation [2022-04-28 10:41:04,037 INFO L138 SettingsManager]: * Trace refinement strategy=ACCELERATED_INTERPOLATION [2022-04-28 10:41:04,037 INFO L138 SettingsManager]: * Trace refinement strategy used in Accelerated Interpolation=CAMEL [2022-04-28 10:41:04,037 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-28 10:41:04,037 INFO L138 SettingsManager]: * Loop acceleration method that is used by accelerated interpolation=QVASR [2022-04-28 10:41:04,037 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-28 10:41:04,235 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-28 10:41:04,257 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-28 10:41:04,259 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-28 10:41:04,260 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-28 10:41:04,261 INFO L275 PluginConnector]: CDTParser initialized [2022-04-28 10:41:04,262 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/verifythis/duplets.c [2022-04-28 10:41:04,316 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9bd4190c5/d50d3449f4ea46abb69331a8fa991455/FLAGd68ff7744 [2022-04-28 10:41:04,739 INFO L306 CDTParser]: Found 1 translation units. [2022-04-28 10:41:04,740 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/verifythis/duplets.c [2022-04-28 10:41:04,744 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9bd4190c5/d50d3449f4ea46abb69331a8fa991455/FLAGd68ff7744 [2022-04-28 10:41:04,753 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9bd4190c5/d50d3449f4ea46abb69331a8fa991455 [2022-04-28 10:41:04,754 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-28 10:41:04,755 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-28 10:41:04,757 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-28 10:41:04,757 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-28 10:41:04,761 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-28 10:41:04,762 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:04,763 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@788a6502 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04, skipping insertion in model container [2022-04-28 10:41:04,763 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:04,769 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-28 10:41:04,782 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-28 10:41:04,901 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-28 10:41:04,937 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-28 10:41:04,946 INFO L203 MainTranslator]: Completed pre-run [2022-04-28 10:41:04,955 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-28 10:41:04,965 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-28 10:41:04,977 INFO L208 MainTranslator]: Completed translation [2022-04-28 10:41:04,978 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04 WrapperNode [2022-04-28 10:41:04,978 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-28 10:41:04,979 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-28 10:41:04,979 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-28 10:41:04,979 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-28 10:41:04,988 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:04,988 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:05,006 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:05,006 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:05,016 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:05,034 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:05,039 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:05,041 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-28 10:41:05,042 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-28 10:41:05,042 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-28 10:41:05,042 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-28 10:41:05,049 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (1/1) ... [2022-04-28 10:41:05,057 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-28 10:41:05,066 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:41:05,080 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-28 10:41:05,095 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-28 10:41:05,117 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-28 10:41:05,118 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-28 10:41:05,118 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-28 10:41:05,118 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-28 10:41:05,118 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-28 10:41:05,119 INFO L138 BoogieDeclarations]: Found implementation of procedure mkdup [2022-04-28 10:41:05,119 INFO L138 BoogieDeclarations]: Found implementation of procedure finddup [2022-04-28 10:41:05,119 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-28 10:41:05,119 INFO L138 BoogieDeclarations]: Found implementation of procedure #Ultimate.meminit [2022-04-28 10:41:05,120 INFO L130 BoogieDeclarations]: Found specification of procedure calloc [2022-04-28 10:41:05,120 INFO L130 BoogieDeclarations]: Found specification of procedure free [2022-04-28 10:41:05,120 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-28 10:41:05,120 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-28 10:41:05,121 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-28 10:41:05,122 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-28 10:41:05,122 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-28 10:41:05,122 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-28 10:41:05,122 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-28 10:41:05,122 INFO L130 BoogieDeclarations]: Found specification of procedure mkdup [2022-04-28 10:41:05,123 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-28 10:41:05,123 INFO L130 BoogieDeclarations]: Found specification of procedure finddup [2022-04-28 10:41:05,123 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-28 10:41:05,123 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-28 10:41:05,123 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnHeap [2022-04-28 10:41:05,126 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-04-28 10:41:05,127 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.meminit [2022-04-28 10:41:05,127 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-28 10:41:05,127 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-28 10:41:05,127 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-28 10:41:05,127 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-28 10:41:05,238 INFO L234 CfgBuilder]: Building ICFG [2022-04-28 10:41:05,239 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-28 10:41:05,570 INFO L275 CfgBuilder]: Performing block encoding [2022-04-28 10:41:05,576 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-28 10:41:05,577 INFO L299 CfgBuilder]: Removed 2 assume(true) statements. [2022-04-28 10:41:05,578 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.04 10:41:05 BoogieIcfgContainer [2022-04-28 10:41:05,578 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-28 10:41:05,583 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-28 10:41:05,583 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-28 10:41:05,586 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-28 10:41:05,586 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 28.04 10:41:04" (1/3) ... [2022-04-28 10:41:05,587 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7a463a1 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.04 10:41:05, skipping insertion in model container [2022-04-28 10:41:05,587 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 10:41:04" (2/3) ... [2022-04-28 10:41:05,588 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7a463a1 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.04 10:41:05, skipping insertion in model container [2022-04-28 10:41:05,588 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.04 10:41:05" (3/3) ... [2022-04-28 10:41:05,591 INFO L111 eAbstractionObserver]: Analyzing ICFG duplets.c [2022-04-28 10:41:05,603 INFO L201 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:Craig_NestedInterpolation Determinization: PREDICATE_ABSTRACTION [2022-04-28 10:41:05,603 INFO L160 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-28 10:41:05,661 INFO L356 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-28 10:41:05,669 INFO L357 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, mPorIndependenceSettings=de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.IndependenceSettings@42caa8cc, mLbeIndependenceSettings=de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.IndependenceSettings@45f8c6c6 [2022-04-28 10:41:05,669 INFO L358 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-28 10:41:05,676 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-28 10:41:05,686 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-04-28 10:41:05,686 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:05,686 INFO L195 NwaCegarLoop]: 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-28 10:41:05,687 INFO L420 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:05,691 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:05,692 INFO L85 PathProgramCache]: Analyzing trace with hash -1531213237, now seen corresponding path program 1 times [2022-04-28 10:41:05,698 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:05,698 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1392048242] [2022-04-28 10:41:05,710 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:05,710 INFO L85 PathProgramCache]: Analyzing trace with hash -1531213237, now seen corresponding path program 2 times [2022-04-28 10:41:05,713 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:05,713 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2031612791] [2022-04-28 10:41:05,713 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:05,714 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:05,826 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:05,892 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:05,906 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:05,931 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-28 10:41:05,932 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-28 10:41:05,932 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {62#true} {62#true} #122#return; {62#true} is VALID [2022-04-28 10:41:05,933 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:05,936 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:05,941 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:05,942 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:05,942 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:05,942 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {62#true} #98#return; {63#false} is VALID [2022-04-28 10:41:05,946 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:05,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:05,956 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-28 10:41:05,956 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-28 10:41:05,956 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {62#true} {63#false} #100#return; {63#false} is VALID [2022-04-28 10:41:05,957 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:05,973 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:05,984 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:05,986 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:05,992 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:05,993 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:05,993 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:05,993 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-28 10:41:05,994 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:05,995 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:06,005 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,005 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,006 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,006 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-28 10:41:06,006 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:06,007 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:06,014 INFO L290 TraceCheckUtils]: 0: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,014 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,014 INFO L290 TraceCheckUtils]: 2: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,015 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-28 10:41:06,015 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-28 10:41:06,015 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-28 10:41:06,016 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,016 INFO L290 TraceCheckUtils]: 3: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,016 INFO L290 TraceCheckUtils]: 4: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,017 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-28 10:41:06,017 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-28 10:41:06,017 INFO L290 TraceCheckUtils]: 7: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,017 INFO L290 TraceCheckUtils]: 8: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,018 INFO L290 TraceCheckUtils]: 9: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,018 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-28 10:41:06,018 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-28 10:41:06,018 INFO L290 TraceCheckUtils]: 12: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,019 INFO L290 TraceCheckUtils]: 13: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,019 INFO L290 TraceCheckUtils]: 14: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,019 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-28 10:41:06,020 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-28 10:41:06,020 INFO L290 TraceCheckUtils]: 17: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,020 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {63#false} {63#false} #102#return; {63#false} is VALID [2022-04-28 10:41:06,020 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:06,024 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:06,029 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-28 10:41:06,030 INFO L290 TraceCheckUtils]: 1: Hoare triple {62#true} assume !(~i~1 < ~n); {62#true} is VALID [2022-04-28 10:41:06,031 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} #res := 0; {62#true} is VALID [2022-04-28 10:41:06,031 INFO L290 TraceCheckUtils]: 3: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-28 10:41:06,031 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {62#true} {63#false} #104#return; {63#false} is VALID [2022-04-28 10:41:06,032 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-28 10:41:06,032 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-28 10:41:06,035 INFO L290 TraceCheckUtils]: 2: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-28 10:41:06,035 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {62#true} {62#true} #122#return; {62#true} is VALID [2022-04-28 10:41:06,036 INFO L272 TraceCheckUtils]: 4: Hoare triple {62#true} call #t~ret27 := main(); {62#true} is VALID [2022-04-28 10:41:06,036 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-28 10:41:06,036 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-28 10:41:06,037 INFO L290 TraceCheckUtils]: 7: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,037 INFO L290 TraceCheckUtils]: 8: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,038 INFO L290 TraceCheckUtils]: 9: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,040 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {63#false} {62#true} #98#return; {63#false} is VALID [2022-04-28 10:41:06,040 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-28 10:41:06,041 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-28 10:41:06,041 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-28 10:41:06,041 INFO L290 TraceCheckUtils]: 14: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-28 10:41:06,041 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {62#true} {63#false} #100#return; {63#false} is VALID [2022-04-28 10:41:06,042 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-28 10:41:06,042 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-28 10:41:06,042 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-28 10:41:06,042 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-28 10:41:06,042 INFO L290 TraceCheckUtils]: 20: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,044 INFO L290 TraceCheckUtils]: 21: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,044 INFO L290 TraceCheckUtils]: 22: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,044 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {63#false} {62#true} #116#return; {63#false} is VALID [2022-04-28 10:41:06,044 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-28 10:41:06,044 INFO L290 TraceCheckUtils]: 25: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,045 INFO L290 TraceCheckUtils]: 26: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,045 INFO L290 TraceCheckUtils]: 27: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,045 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {63#false} {63#false} #118#return; {63#false} is VALID [2022-04-28 10:41:06,045 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-28 10:41:06,059 INFO L290 TraceCheckUtils]: 30: Hoare triple {62#true} ~cond := #in~cond; {62#true} is VALID [2022-04-28 10:41:06,060 INFO L290 TraceCheckUtils]: 31: Hoare triple {62#true} assume 0 == ~cond;assume false; {63#false} is VALID [2022-04-28 10:41:06,060 INFO L290 TraceCheckUtils]: 32: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,061 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {63#false} {63#false} #120#return; {63#false} is VALID [2022-04-28 10:41:06,061 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-28 10:41:06,061 INFO L290 TraceCheckUtils]: 35: Hoare triple {63#false} assume true; {63#false} is VALID [2022-04-28 10:41:06,061 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {63#false} {63#false} #102#return; {63#false} is VALID [2022-04-28 10:41:06,061 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-28 10:41:06,062 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-28 10:41:06,062 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-28 10:41:06,062 INFO L290 TraceCheckUtils]: 40: Hoare triple {62#true} assume !(~i~1 < ~n); {62#true} is VALID [2022-04-28 10:41:06,062 INFO L290 TraceCheckUtils]: 41: Hoare triple {62#true} #res := 0; {62#true} is VALID [2022-04-28 10:41:06,062 INFO L290 TraceCheckUtils]: 42: Hoare triple {62#true} assume true; {62#true} is VALID [2022-04-28 10:41:06,063 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {62#true} {63#false} #104#return; {63#false} is VALID [2022-04-28 10:41:06,063 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-28 10:41:06,063 INFO L272 TraceCheckUtils]: 45: Hoare triple {63#false} call __VERIFIER_assert(~r~0); {63#false} is VALID [2022-04-28 10:41:06,063 INFO L290 TraceCheckUtils]: 46: Hoare triple {63#false} ~cond := #in~cond; {63#false} is VALID [2022-04-28 10:41:06,063 INFO L290 TraceCheckUtils]: 47: Hoare triple {63#false} assume 0 == ~cond; {63#false} is VALID [2022-04-28 10:41:06,064 INFO L290 TraceCheckUtils]: 48: Hoare triple {63#false} assume !false; {63#false} is VALID [2022-04-28 10:41:06,064 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-28 10:41:06,065 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:06,065 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2031612791] [2022-04-28 10:41:06,066 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2031612791] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:06,066 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:06,066 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-04-28 10:41:06,069 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:06,070 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1392048242] [2022-04-28 10:41:06,070 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1392048242] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:06,070 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:06,070 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-04-28 10:41:06,070 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [811726746] [2022-04-28 10:41:06,071 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:06,076 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-28 10:41:06,077 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:06,088 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-28 10:41:06,160 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-28 10:41:06,160 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-04-28 10:41:06,160 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:06,187 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-04-28 10:41:06,187 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-04-28 10:41:06,191 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-28 10:41:06,607 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:06,607 INFO L93 Difference]: Finished difference Result 113 states and 153 transitions. [2022-04-28 10:41:06,607 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-28 10:41:06,608 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-28 10:41:06,608 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:06,609 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-28 10:41:06,628 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 153 transitions. [2022-04-28 10:41:06,628 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-28 10:41:06,633 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 153 transitions. [2022-04-28 10:41:06,634 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 153 transitions. [2022-04-28 10:41:06,787 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-28 10:41:06,799 INFO L225 Difference]: With dead ends: 113 [2022-04-28 10:41:06,799 INFO L226 Difference]: Without dead ends: 56 [2022-04-28 10:41:06,802 INFO L412 NwaCegarLoop]: 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-28 10:41:06,807 INFO L413 NwaCegarLoop]: 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-28 10:41:06,811 INFO L414 NwaCegarLoop]: 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-28 10:41:06,824 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2022-04-28 10:41:06,841 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 54. [2022-04-28 10:41:06,841 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:06,842 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-28 10:41:06,843 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-28 10:41:06,844 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-28 10:41:06,849 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:06,849 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2022-04-28 10:41:06,849 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 67 transitions. [2022-04-28 10:41:06,850 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:06,850 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:06,850 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-28 10:41:06,851 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-28 10:41:06,855 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:06,855 INFO L93 Difference]: Finished difference Result 56 states and 67 transitions. [2022-04-28 10:41:06,855 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 67 transitions. [2022-04-28 10:41:06,856 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:06,856 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:06,856 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:06,856 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:06,857 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-28 10:41:06,860 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 65 transitions. [2022-04-28 10:41:06,861 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 65 transitions. Word has length 49 [2022-04-28 10:41:06,861 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:06,861 INFO L495 AbstractCegarLoop]: Abstraction has 54 states and 65 transitions. [2022-04-28 10:41:06,862 INFO L496 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-28 10:41:06,862 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 54 states and 65 transitions. [2022-04-28 10:41:06,933 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-28 10:41:06,934 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 65 transitions. [2022-04-28 10:41:06,940 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-04-28 10:41:06,941 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:06,941 INFO L195 NwaCegarLoop]: 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-28 10:41:06,941 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-28 10:41:06,941 INFO L420 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:06,942 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:06,942 INFO L85 PathProgramCache]: Analyzing trace with hash -1121655349, now seen corresponding path program 1 times [2022-04-28 10:41:06,942 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:06,943 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1879225244] [2022-04-28 10:41:06,943 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:06,943 INFO L85 PathProgramCache]: Analyzing trace with hash -1121655349, now seen corresponding path program 2 times [2022-04-28 10:41:06,943 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:06,944 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1321550328] [2022-04-28 10:41:06,944 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:06,944 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:07,025 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,070 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:07,072 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,076 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-28 10:41:07,076 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,076 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-28 10:41:07,076 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:07,077 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,080 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,080 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,080 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,080 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-28 10:41:07,084 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:07,085 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,088 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-28 10:41:07,089 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,089 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-28 10:41:07,089 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:07,103 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,144 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:07,147 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,168 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-28 10:41:07,169 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-28 10:41:07,169 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-28 10:41:07,170 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-28 10:41:07,171 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:07,173 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,176 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,177 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,177 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,178 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-28 10:41:07,178 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:07,179 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,182 INFO L290 TraceCheckUtils]: 0: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,183 INFO L290 TraceCheckUtils]: 1: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,183 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,184 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:07,184 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-28 10:41:07,184 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-28 10:41:07,185 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-28 10:41:07,185 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-28 10:41:07,186 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-28 10:41:07,187 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-28 10:41:07,187 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-28 10:41:07,187 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,187 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,188 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,188 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-28 10:41:07,189 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-28 10:41:07,189 INFO L290 TraceCheckUtils]: 12: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,189 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,189 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,190 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:07,190 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-28 10:41:07,191 INFO L290 TraceCheckUtils]: 17: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:07,192 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {612#(<= 1 |mkdup_#in~n|)} {563#true} #102#return; {594#(<= 1 main_~n~0)} is VALID [2022-04-28 10:41:07,192 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:07,195 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,224 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-28 10:41:07,225 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-28 10:41:07,226 INFO L290 TraceCheckUtils]: 2: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-28 10:41:07,226 INFO L290 TraceCheckUtils]: 3: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-28 10:41:07,228 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {620#(<= |finddup_#in~n| 0)} {594#(<= 1 main_~n~0)} #104#return; {564#false} is VALID [2022-04-28 10:41:07,229 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-28 10:41:07,229 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-28 10:41:07,229 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,229 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-28 10:41:07,229 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-28 10:41:07,230 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-28 10:41:07,230 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-28 10:41:07,230 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,230 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,230 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,231 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-28 10:41:07,231 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-28 10:41:07,232 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-28 10:41:07,232 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-28 10:41:07,232 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,233 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-28 10:41:07,233 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-28 10:41:07,234 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-28 10:41:07,234 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-28 10:41:07,234 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-28 10:41:07,235 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-28 10:41:07,235 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-28 10:41:07,236 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-28 10:41:07,237 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-28 10:41:07,237 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-28 10:41:07,237 INFO L290 TraceCheckUtils]: 25: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,237 INFO L290 TraceCheckUtils]: 26: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,237 INFO L290 TraceCheckUtils]: 27: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,238 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-28 10:41:07,238 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-28 10:41:07,239 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,239 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,239 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,240 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:07,240 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-28 10:41:07,241 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:07,241 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {612#(<= 1 |mkdup_#in~n|)} {563#true} #102#return; {594#(<= 1 main_~n~0)} is VALID [2022-04-28 10:41:07,242 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-28 10:41:07,244 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-28 10:41:07,245 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-28 10:41:07,246 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-28 10:41:07,246 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-28 10:41:07,247 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-28 10:41:07,248 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {620#(<= |finddup_#in~n| 0)} {594#(<= 1 main_~n~0)} #104#return; {564#false} is VALID [2022-04-28 10:41:07,248 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-28 10:41:07,249 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-28 10:41:07,249 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-28 10:41:07,249 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-28 10:41:07,249 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-28 10:41:07,250 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-28 10:41:07,250 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:07,250 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1321550328] [2022-04-28 10:41:07,250 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1321550328] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:41:07,250 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2003044070] [2022-04-28 10:41:07,251 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 10:41:07,251 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:41:07,251 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:41:07,255 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-28 10:41:07,264 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-28 10:41:07,372 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 10:41:07,372 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:41:07,386 INFO L263 TraceCheckSpWp]: Trace formula consists of 224 conjuncts, 11 conjunts are in the unsatisfiable core [2022-04-28 10:41:07,428 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:07,433 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:41:07,822 INFO L272 TraceCheckUtils]: 0: Hoare triple {563#true} call ULTIMATE.init(); {563#true} is VALID [2022-04-28 10:41:07,822 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-28 10:41:07,823 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,823 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-28 10:41:07,823 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-28 10:41:07,823 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-28 10:41:07,824 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-28 10:41:07,824 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,824 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,825 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,827 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-28 10:41:07,827 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-28 10:41:07,832 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-28 10:41:07,832 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {563#true} is VALID [2022-04-28 10:41:07,833 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,833 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-28 10:41:07,833 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-28 10:41:07,833 INFO L272 TraceCheckUtils]: 17: Hoare triple {563#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {563#true} is VALID [2022-04-28 10:41:07,834 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-28 10:41:07,835 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-28 10:41:07,835 INFO L290 TraceCheckUtils]: 20: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,835 INFO L290 TraceCheckUtils]: 21: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,835 INFO L290 TraceCheckUtils]: 22: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,836 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-28 10:41:07,836 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-28 10:41:07,837 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-28 10:41:07,837 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-28 10:41:07,837 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-28 10:41:07,838 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-28 10:41:07,839 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-28 10:41:07,839 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:07,839 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:07,839 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:07,840 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:07,840 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-28 10:41:07,841 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:07,841 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {612#(<= 1 |mkdup_#in~n|)} {563#true} #102#return; {594#(<= 1 main_~n~0)} is VALID [2022-04-28 10:41:07,842 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-28 10:41:07,842 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-28 10:41:07,843 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-28 10:41:07,843 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-28 10:41:07,844 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-28 10:41:07,844 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-28 10:41:07,846 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {620#(<= |finddup_#in~n| 0)} {594#(<= 1 main_~n~0)} #104#return; {564#false} is VALID [2022-04-28 10:41:07,846 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-28 10:41:07,846 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-28 10:41:07,846 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-28 10:41:07,846 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-28 10:41:07,847 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-28 10:41:07,847 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-28 10:41:07,848 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:41:08,602 INFO L290 TraceCheckUtils]: 48: Hoare triple {564#false} assume !false; {564#false} is VALID [2022-04-28 10:41:08,602 INFO L290 TraceCheckUtils]: 47: Hoare triple {564#false} assume 0 == ~cond; {564#false} is VALID [2022-04-28 10:41:08,602 INFO L290 TraceCheckUtils]: 46: Hoare triple {564#false} ~cond := #in~cond; {564#false} is VALID [2022-04-28 10:41:08,607 INFO L272 TraceCheckUtils]: 45: Hoare triple {564#false} call __VERIFIER_assert(~r~0); {564#false} is VALID [2022-04-28 10:41:08,607 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-28 10:41:08,609 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {620#(<= |finddup_#in~n| 0)} {594#(<= 1 main_~n~0)} #104#return; {564#false} is VALID [2022-04-28 10:41:08,610 INFO L290 TraceCheckUtils]: 42: Hoare triple {620#(<= |finddup_#in~n| 0)} assume true; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-28 10:41:08,613 INFO L290 TraceCheckUtils]: 41: Hoare triple {620#(<= |finddup_#in~n| 0)} #res := 0; {620#(<= |finddup_#in~n| 0)} is VALID [2022-04-28 10:41:08,615 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-28 10:41:08,615 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-28 10:41:08,616 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-28 10:41:08,616 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-28 10:41:08,617 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {612#(<= 1 |mkdup_#in~n|)} {563#true} #102#return; {594#(<= 1 main_~n~0)} is VALID [2022-04-28 10:41:08,618 INFO L290 TraceCheckUtils]: 35: Hoare triple {612#(<= 1 |mkdup_#in~n|)} assume true; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:08,619 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-28 10:41:08,622 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {563#true} {612#(<= 1 |mkdup_#in~n|)} #120#return; {612#(<= 1 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:08,623 INFO L290 TraceCheckUtils]: 32: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:08,623 INFO L290 TraceCheckUtils]: 31: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:08,623 INFO L290 TraceCheckUtils]: 30: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:08,623 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-28 10:41:08,624 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-28 10:41:08,625 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-28 10:41:08,625 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-28 10:41:08,626 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-28 10:41:08,626 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-28 10:41:08,626 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-28 10:41:08,627 INFO L290 TraceCheckUtils]: 22: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:08,627 INFO L290 TraceCheckUtils]: 21: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:08,627 INFO L290 TraceCheckUtils]: 20: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:08,627 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-28 10:41:08,628 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-28 10:41:08,628 INFO L272 TraceCheckUtils]: 17: Hoare triple {563#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {563#true} is VALID [2022-04-28 10:41:08,628 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-28 10:41:08,628 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {563#true} {563#true} #100#return; {563#true} is VALID [2022-04-28 10:41:08,628 INFO L290 TraceCheckUtils]: 14: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:08,628 INFO L290 TraceCheckUtils]: 13: Hoare triple {563#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {563#true} is VALID [2022-04-28 10:41:08,629 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-28 10:41:08,629 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-28 10:41:08,629 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {563#true} {563#true} #98#return; {563#true} is VALID [2022-04-28 10:41:08,629 INFO L290 TraceCheckUtils]: 9: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:08,629 INFO L290 TraceCheckUtils]: 8: Hoare triple {563#true} assume !(0 == ~cond); {563#true} is VALID [2022-04-28 10:41:08,629 INFO L290 TraceCheckUtils]: 7: Hoare triple {563#true} ~cond := #in~cond; {563#true} is VALID [2022-04-28 10:41:08,630 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-28 10:41:08,630 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-28 10:41:08,630 INFO L272 TraceCheckUtils]: 4: Hoare triple {563#true} call #t~ret27 := main(); {563#true} is VALID [2022-04-28 10:41:08,630 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {563#true} {563#true} #122#return; {563#true} is VALID [2022-04-28 10:41:08,630 INFO L290 TraceCheckUtils]: 2: Hoare triple {563#true} assume true; {563#true} is VALID [2022-04-28 10:41:08,630 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-28 10:41:08,630 INFO L272 TraceCheckUtils]: 0: Hoare triple {563#true} call ULTIMATE.init(); {563#true} is VALID [2022-04-28 10:41:08,631 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-28 10:41:08,631 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2003044070] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 10:41:08,631 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 10:41:08,631 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 9, 9] total 17 [2022-04-28 10:41:08,632 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:08,632 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1879225244] [2022-04-28 10:41:08,633 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1879225244] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:08,633 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:08,633 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-28 10:41:08,633 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1299961331] [2022-04-28 10:41:08,633 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:08,634 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-28 10:41:08,634 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:08,635 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-28 10:41:08,672 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-28 10:41:08,673 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-28 10:41:08,673 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:08,673 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-28 10:41:08,674 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=227, Unknown=0, NotChecked=0, Total=272 [2022-04-28 10:41:08,674 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-28 10:41:10,088 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:10,088 INFO L93 Difference]: Finished difference Result 84 states and 103 transitions. [2022-04-28 10:41:10,088 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-28 10:41:10,088 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-28 10:41:10,089 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:10,089 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-28 10:41:10,092 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 103 transitions. [2022-04-28 10:41:10,093 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-28 10:41:10,096 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 103 transitions. [2022-04-28 10:41:10,096 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 103 transitions. [2022-04-28 10:41:10,201 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-28 10:41:10,203 INFO L225 Difference]: With dead ends: 84 [2022-04-28 10:41:10,203 INFO L226 Difference]: Without dead ends: 63 [2022-04-28 10:41:10,204 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 131 GetRequests, 103 SyntacticMatches, 3 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 77 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=123, Invalid=579, Unknown=0, NotChecked=0, Total=702 [2022-04-28 10:41:10,205 INFO L413 NwaCegarLoop]: 42 mSDtfsCounter, 96 mSDsluCounter, 14 mSDsCounter, 0 mSdLazyCounter, 468 mSolverCounterSat, 63 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.6s 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.6s IncrementalHoareTripleChecker+Time [2022-04-28 10:41:10,206 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [97 Valid, 56 Invalid, 531 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [63 Valid, 468 Invalid, 0 Unknown, 0 Unchecked, 0.6s Time] [2022-04-28 10:41:10,206 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 63 states. [2022-04-28 10:41:10,227 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 63 to 55. [2022-04-28 10:41:10,227 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:10,228 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-28 10:41:10,228 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-28 10:41:10,229 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-28 10:41:10,232 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:10,232 INFO L93 Difference]: Finished difference Result 63 states and 76 transitions. [2022-04-28 10:41:10,232 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 76 transitions. [2022-04-28 10:41:10,233 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:10,233 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:10,233 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-28 10:41:10,234 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-28 10:41:10,237 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:10,237 INFO L93 Difference]: Finished difference Result 63 states and 76 transitions. [2022-04-28 10:41:10,237 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 76 transitions. [2022-04-28 10:41:10,237 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:10,238 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:10,238 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:10,238 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:10,238 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-28 10:41:10,241 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 66 transitions. [2022-04-28 10:41:10,241 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 66 transitions. Word has length 49 [2022-04-28 10:41:10,241 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:10,241 INFO L495 AbstractCegarLoop]: Abstraction has 55 states and 66 transitions. [2022-04-28 10:41:10,242 INFO L496 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-28 10:41:10,242 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 55 states and 66 transitions. [2022-04-28 10:41:10,316 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-28 10:41:10,316 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 66 transitions. [2022-04-28 10:41:10,318 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-28 10:41:10,318 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:10,319 INFO L195 NwaCegarLoop]: 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-28 10:41:10,347 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-28 10:41:10,543 WARN L477 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-28 10:41:10,543 INFO L420 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:10,544 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:10,544 INFO L85 PathProgramCache]: Analyzing trace with hash -2096379008, now seen corresponding path program 1 times [2022-04-28 10:41:10,544 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:10,544 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [599318523] [2022-04-28 10:41:10,544 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:10,545 INFO L85 PathProgramCache]: Analyzing trace with hash -2096379008, now seen corresponding path program 2 times [2022-04-28 10:41:10,545 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:10,545 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [320711263] [2022-04-28 10:41:10,545 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:10,545 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:10,578 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,626 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:10,628 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,631 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-28 10:41:10,631 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,631 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1344#true} {1344#true} #122#return; {1344#true} is VALID [2022-04-28 10:41:10,631 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:10,632 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,635 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,635 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,635 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,635 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #98#return; {1344#true} is VALID [2022-04-28 10:41:10,641 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:10,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,647 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-28 10:41:10,647 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,647 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1344#true} {1344#true} #100#return; {1344#true} is VALID [2022-04-28 10:41:10,647 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:10,675 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,681 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:10,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,684 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,685 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,685 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,685 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-28 10:41:10,685 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:10,686 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,688 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,689 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,689 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,689 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-28 10:41:10,689 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:10,690 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,692 INFO L290 TraceCheckUtils]: 0: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,692 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,692 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,693 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-28 10:41:10,693 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-28 10:41:10,693 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-28 10:41:10,693 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,693 INFO L290 TraceCheckUtils]: 3: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,693 INFO L290 TraceCheckUtils]: 4: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,693 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-28 10:41:10,693 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-28 10:41:10,694 INFO L290 TraceCheckUtils]: 7: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,694 INFO L290 TraceCheckUtils]: 8: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,694 INFO L290 TraceCheckUtils]: 9: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,694 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-28 10:41:10,694 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-28 10:41:10,694 INFO L290 TraceCheckUtils]: 12: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,694 INFO L290 TraceCheckUtils]: 13: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,694 INFO L290 TraceCheckUtils]: 14: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,695 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-28 10:41:10,695 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-28 10:41:10,695 INFO L290 TraceCheckUtils]: 17: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,695 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1344#true} {1344#true} #102#return; {1344#true} is VALID [2022-04-28 10:41:10,695 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:10,701 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:10,719 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-28 10:41:10,720 INFO L290 TraceCheckUtils]: 1: Hoare triple {1344#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {1344#true} is VALID [2022-04-28 10:41:10,720 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-28 10:41:10,720 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-28 10:41:10,721 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-28 10:41:10,722 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-28 10:41:10,723 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-28 10:41:10,723 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-28 10:41:10,723 INFO L290 TraceCheckUtils]: 2: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,723 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1344#true} {1344#true} #122#return; {1344#true} is VALID [2022-04-28 10:41:10,724 INFO L272 TraceCheckUtils]: 4: Hoare triple {1344#true} call #t~ret27 := main(); {1344#true} is VALID [2022-04-28 10:41:10,724 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-28 10:41:10,724 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-28 10:41:10,724 INFO L290 TraceCheckUtils]: 7: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,724 INFO L290 TraceCheckUtils]: 8: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,724 INFO L290 TraceCheckUtils]: 9: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,724 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1344#true} {1344#true} #98#return; {1344#true} is VALID [2022-04-28 10:41:10,724 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-28 10:41:10,725 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-28 10:41:10,726 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-28 10:41:10,726 INFO L290 TraceCheckUtils]: 14: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,726 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1344#true} {1344#true} #100#return; {1344#true} is VALID [2022-04-28 10:41:10,726 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-28 10:41:10,727 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-28 10:41:10,727 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-28 10:41:10,727 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-28 10:41:10,727 INFO L290 TraceCheckUtils]: 20: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,727 INFO L290 TraceCheckUtils]: 21: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,727 INFO L290 TraceCheckUtils]: 22: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,728 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1344#true} {1344#true} #116#return; {1344#true} is VALID [2022-04-28 10:41:10,728 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-28 10:41:10,728 INFO L290 TraceCheckUtils]: 25: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,728 INFO L290 TraceCheckUtils]: 26: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,728 INFO L290 TraceCheckUtils]: 27: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,728 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1344#true} {1344#true} #118#return; {1344#true} is VALID [2022-04-28 10:41:10,729 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-28 10:41:10,729 INFO L290 TraceCheckUtils]: 30: Hoare triple {1344#true} ~cond := #in~cond; {1344#true} is VALID [2022-04-28 10:41:10,729 INFO L290 TraceCheckUtils]: 31: Hoare triple {1344#true} assume !(0 == ~cond); {1344#true} is VALID [2022-04-28 10:41:10,729 INFO L290 TraceCheckUtils]: 32: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,729 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {1344#true} {1344#true} #120#return; {1344#true} is VALID [2022-04-28 10:41:10,729 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-28 10:41:10,729 INFO L290 TraceCheckUtils]: 35: Hoare triple {1344#true} assume true; {1344#true} is VALID [2022-04-28 10:41:10,729 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1344#true} {1344#true} #102#return; {1344#true} is VALID [2022-04-28 10:41:10,730 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-28 10:41:10,731 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-28 10:41:10,731 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-28 10:41:10,731 INFO L290 TraceCheckUtils]: 40: Hoare triple {1344#true} assume !!(~i~1 < ~n);~j~1 := 1 + ~i~1; {1344#true} is VALID [2022-04-28 10:41:10,731 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-28 10:41:10,732 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-28 10:41:10,732 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-28 10:41:10,734 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-28 10:41:10,734 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-28 10:41:10,735 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-28 10:41:10,735 INFO L290 TraceCheckUtils]: 47: Hoare triple {1383#(= |__VERIFIER_assert_#in~cond| 1)} ~cond := #in~cond; {1384#(= __VERIFIER_assert_~cond 1)} is VALID [2022-04-28 10:41:10,736 INFO L290 TraceCheckUtils]: 48: Hoare triple {1384#(= __VERIFIER_assert_~cond 1)} assume 0 == ~cond; {1345#false} is VALID [2022-04-28 10:41:10,736 INFO L290 TraceCheckUtils]: 49: Hoare triple {1345#false} assume !false; {1345#false} is VALID [2022-04-28 10:41:10,736 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-28 10:41:10,736 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:10,737 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [320711263] [2022-04-28 10:41:10,737 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [320711263] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:10,737 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:10,737 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-28 10:41:10,737 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:10,737 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [599318523] [2022-04-28 10:41:10,737 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [599318523] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:10,737 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:10,738 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-28 10:41:10,738 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1033556716] [2022-04-28 10:41:10,738 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:10,738 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-28 10:41:10,739 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:10,739 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-28 10:41:10,773 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-28 10:41:10,773 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-28 10:41:10,774 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:10,774 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-28 10:41:10,774 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=57, Unknown=0, NotChecked=0, Total=72 [2022-04-28 10:41:10,774 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-28 10:41:11,841 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:11,841 INFO L93 Difference]: Finished difference Result 75 states and 91 transitions. [2022-04-28 10:41:11,841 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-28 10:41:11,842 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-28 10:41:11,842 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:11,842 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-28 10:41:11,845 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 90 transitions. [2022-04-28 10:41:11,845 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-28 10:41:11,847 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 90 transitions. [2022-04-28 10:41:11,847 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 90 transitions. [2022-04-28 10:41:11,942 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-28 10:41:11,946 INFO L225 Difference]: With dead ends: 75 [2022-04-28 10:41:11,946 INFO L226 Difference]: Without dead ends: 73 [2022-04-28 10:41:11,947 INFO L412 NwaCegarLoop]: 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-28 10:41:11,954 INFO L413 NwaCegarLoop]: 53 mSDtfsCounter, 80 mSDsluCounter, 10 mSDsCounter, 0 mSdLazyCounter, 425 mSolverCounterSat, 52 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s 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.5s IncrementalHoareTripleChecker+Time [2022-04-28 10:41:11,956 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [87 Valid, 63 Invalid, 477 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [52 Valid, 425 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-04-28 10:41:11,957 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2022-04-28 10:41:11,986 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 63. [2022-04-28 10:41:11,986 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:11,986 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-28 10:41:11,989 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-28 10:41:11,989 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-28 10:41:11,994 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:11,994 INFO L93 Difference]: Finished difference Result 73 states and 89 transitions. [2022-04-28 10:41:11,994 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 89 transitions. [2022-04-28 10:41:12,006 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:12,007 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:12,009 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-28 10:41:12,009 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-28 10:41:12,013 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:12,013 INFO L93 Difference]: Finished difference Result 73 states and 89 transitions. [2022-04-28 10:41:12,013 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 89 transitions. [2022-04-28 10:41:12,014 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:12,014 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:12,014 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:12,014 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:12,014 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-28 10:41:12,016 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 63 states to 63 states and 74 transitions. [2022-04-28 10:41:12,017 INFO L78 Accepts]: Start accepts. Automaton has 63 states and 74 transitions. Word has length 50 [2022-04-28 10:41:12,017 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:12,017 INFO L495 AbstractCegarLoop]: Abstraction has 63 states and 74 transitions. [2022-04-28 10:41:12,017 INFO L496 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-28 10:41:12,017 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 63 states and 74 transitions. [2022-04-28 10:41:12,086 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-28 10:41:12,087 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 74 transitions. [2022-04-28 10:41:12,087 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2022-04-28 10:41:12,087 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:12,087 INFO L195 NwaCegarLoop]: 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-28 10:41:12,088 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-04-28 10:41:12,088 INFO L420 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:12,088 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:12,088 INFO L85 PathProgramCache]: Analyzing trace with hash 983031743, now seen corresponding path program 1 times [2022-04-28 10:41:12,088 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:12,088 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [527777254] [2022-04-28 10:41:12,089 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:12,089 INFO L85 PathProgramCache]: Analyzing trace with hash 983031743, now seen corresponding path program 2 times [2022-04-28 10:41:12,089 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:12,089 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [378481645] [2022-04-28 10:41:12,089 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:12,089 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:12,150 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,205 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:12,206 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,209 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-28 10:41:12,209 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:12,209 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-28 10:41:12,210 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:12,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,214 INFO L290 TraceCheckUtils]: 0: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-28 10:41:12,214 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-28 10:41:12,214 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:12,217 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-28 10:41:12,221 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:12,222 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,226 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-28 10:41:12,226 INFO L290 TraceCheckUtils]: 1: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:12,227 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-28 10:41:12,227 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:12,256 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,422 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:12,425 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,444 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-28 10:41:12,445 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-28 10:41:12,445 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-28 10:41:12,446 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-28 10:41:12,447 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:12,450 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,458 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-28 10:41:12,459 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-28 10:41:12,459 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-28 10:41:12,460 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-28 10:41:12,460 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:12,462 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,474 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-28 10:41:12,475 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-28 10:41:12,475 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-28 10:41:12,476 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-28 10:41:12,476 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-28 10:41:12,476 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-28 10:41:12,477 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-28 10:41:12,477 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-28 10:41:12,477 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-28 10:41:12,478 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-28 10:41:12,478 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-28 10:41:12,479 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-28 10:41:12,479 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-28 10:41:12,479 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-28 10:41:12,480 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-28 10:41:12,481 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-28 10:41:12,481 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-28 10:41:12,481 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-28 10:41:12,482 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-28 10:41:12,482 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-28 10:41:12,483 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-28 10:41:12,483 INFO L290 TraceCheckUtils]: 17: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:12,484 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {1894#(<= 2 |mkdup_#in~n|)} {1837#true} #102#return; {1868#(<= 2 main_~n~0)} is VALID [2022-04-28 10:41:12,484 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:12,490 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,551 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-28 10:41:12,552 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-28 10:41:12,552 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-28 10:41:12,553 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-28 10:41:12,553 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-28 10:41:12,554 INFO L290 TraceCheckUtils]: 5: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:12,556 INFO L290 TraceCheckUtils]: 6: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:12,558 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {1900#(<= |finddup_#in~n| 1)} {1868#(<= 2 main_~n~0)} #104#return; {1838#false} is VALID [2022-04-28 10:41:12,559 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-28 10:41:12,559 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-28 10:41:12,559 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:12,559 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-28 10:41:12,559 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-28 10:41:12,559 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-28 10:41:12,559 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-28 10:41:12,559 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-28 10:41:12,559 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-28 10:41:12,560 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:12,560 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-28 10:41:12,560 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-28 10:41:12,561 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-28 10:41:12,561 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-28 10:41:12,561 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:12,561 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-28 10:41:12,561 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-28 10:41:12,562 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-28 10:41:12,563 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-28 10:41:12,563 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-28 10:41:12,563 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-28 10:41:12,564 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-28 10:41:12,564 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-28 10:41:12,565 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-28 10:41:12,565 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-28 10:41:12,565 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-28 10:41:12,566 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-28 10:41:12,566 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-28 10:41:12,567 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-28 10:41:12,567 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-28 10:41:12,568 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-28 10:41:12,568 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-28 10:41:12,569 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-28 10:41:12,569 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-28 10:41:12,570 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-28 10:41:12,570 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:12,571 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1894#(<= 2 |mkdup_#in~n|)} {1837#true} #102#return; {1868#(<= 2 main_~n~0)} is VALID [2022-04-28 10:41:12,571 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-28 10:41:12,572 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-28 10:41:12,573 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-28 10:41:12,574 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-28 10:41:12,574 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-28 10:41:12,575 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-28 10:41:12,575 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-28 10:41:12,575 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:12,576 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:12,577 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1900#(<= |finddup_#in~n| 1)} {1868#(<= 2 main_~n~0)} #104#return; {1838#false} is VALID [2022-04-28 10:41:12,577 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-28 10:41:12,577 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-28 10:41:12,577 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-28 10:41:12,577 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-28 10:41:12,577 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-28 10:41:12,578 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-28 10:41:12,578 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:12,578 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [378481645] [2022-04-28 10:41:12,578 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [378481645] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:41:12,578 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1698626622] [2022-04-28 10:41:12,578 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 10:41:12,578 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:41:12,579 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:41:12,580 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-28 10:41:12,608 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-28 10:41:12,671 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 10:41:12,671 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:41:12,673 INFO L263 TraceCheckSpWp]: Trace formula consists of 230 conjuncts, 22 conjunts are in the unsatisfiable core [2022-04-28 10:41:12,694 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:12,696 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:41:13,394 INFO L272 TraceCheckUtils]: 0: Hoare triple {1837#true} call ULTIMATE.init(); {1837#true} is VALID [2022-04-28 10:41:13,394 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-28 10:41:13,394 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:13,394 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-28 10:41:13,395 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-28 10:41:13,395 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-28 10:41:13,395 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-28 10:41:13,395 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-28 10:41:13,395 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-28 10:41:13,395 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:13,395 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-28 10:41:13,395 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-28 10:41:13,395 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-28 10:41:13,395 INFO L290 TraceCheckUtils]: 13: Hoare triple {1837#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1837#true} is VALID [2022-04-28 10:41:13,396 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:13,396 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-28 10:41:13,396 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-28 10:41:13,396 INFO L272 TraceCheckUtils]: 17: Hoare triple {1837#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {1837#true} is VALID [2022-04-28 10:41:13,397 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-28 10:41:13,397 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-28 10:41:13,397 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-28 10:41:13,398 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-28 10:41:13,398 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-28 10:41:13,399 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-28 10:41:13,399 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-28 10:41:13,400 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-28 10:41:13,400 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-28 10:41:13,400 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-28 10:41:13,401 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-28 10:41:13,402 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-28 10:41:13,402 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-28 10:41:13,402 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-28 10:41:13,403 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-28 10:41:13,404 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-28 10:41:13,404 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-28 10:41:13,404 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:13,405 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1894#(<= 2 |mkdup_#in~n|)} {1837#true} #102#return; {1868#(<= 2 main_~n~0)} is VALID [2022-04-28 10:41:13,406 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-28 10:41:13,406 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-28 10:41:13,406 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-28 10:41:13,407 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-28 10:41:13,407 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-28 10:41:13,408 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-28 10:41:13,408 INFO L290 TraceCheckUtils]: 43: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume !(~i~1 < ~n); {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:13,409 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:13,409 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:13,410 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1900#(<= |finddup_#in~n| 1)} {1868#(<= 2 main_~n~0)} #104#return; {1838#false} is VALID [2022-04-28 10:41:13,411 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-28 10:41:13,411 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-28 10:41:13,411 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-28 10:41:13,411 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-28 10:41:13,411 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-28 10:41:13,411 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-28 10:41:13,411 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:41:15,702 INFO L290 TraceCheckUtils]: 51: Hoare triple {1838#false} assume !false; {1838#false} is VALID [2022-04-28 10:41:15,702 INFO L290 TraceCheckUtils]: 50: Hoare triple {1838#false} assume 0 == ~cond; {1838#false} is VALID [2022-04-28 10:41:15,702 INFO L290 TraceCheckUtils]: 49: Hoare triple {1838#false} ~cond := #in~cond; {1838#false} is VALID [2022-04-28 10:41:15,702 INFO L272 TraceCheckUtils]: 48: Hoare triple {1838#false} call __VERIFIER_assert(~r~0); {1838#false} is VALID [2022-04-28 10:41:15,702 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-28 10:41:15,704 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {1900#(<= |finddup_#in~n| 1)} {1868#(<= 2 main_~n~0)} #104#return; {1838#false} is VALID [2022-04-28 10:41:15,704 INFO L290 TraceCheckUtils]: 45: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume true; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:15,704 INFO L290 TraceCheckUtils]: 44: Hoare triple {1900#(<= |finddup_#in~n| 1)} #res := 0; {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:15,705 INFO L290 TraceCheckUtils]: 43: Hoare triple {1900#(<= |finddup_#in~n| 1)} assume !(~i~1 < ~n); {1900#(<= |finddup_#in~n| 1)} is VALID [2022-04-28 10:41:15,705 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-28 10:41:15,706 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-28 10:41:15,706 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-28 10:41:15,707 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-28 10:41:15,707 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-28 10:41:15,707 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-28 10:41:15,708 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {1894#(<= 2 |mkdup_#in~n|)} {1837#true} #102#return; {1868#(<= 2 main_~n~0)} is VALID [2022-04-28 10:41:15,708 INFO L290 TraceCheckUtils]: 35: Hoare triple {1894#(<= 2 |mkdup_#in~n|)} assume true; {1894#(<= 2 |mkdup_#in~n|)} is VALID [2022-04-28 10:41:15,708 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-28 10:41:15,709 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-28 10:41:15,709 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-28 10:41:15,710 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-28 10:41:15,710 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-28 10:41:15,710 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-28 10:41:15,711 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-28 10:41:15,712 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-28 10:41:15,712 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-28 10:41:15,712 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-28 10:41:15,712 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-28 10:41:15,713 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-28 10:41:15,714 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-28 10:41:15,714 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-28 10:41:15,714 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-28 10:41:15,715 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-28 10:41:15,715 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-28 10:41:15,715 INFO L272 TraceCheckUtils]: 17: Hoare triple {1837#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {1837#true} is VALID [2022-04-28 10:41:15,715 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-28 10:41:15,715 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {1837#true} {1837#true} #100#return; {1837#true} is VALID [2022-04-28 10:41:15,716 INFO L290 TraceCheckUtils]: 14: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:15,716 INFO L290 TraceCheckUtils]: 13: Hoare triple {1837#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {1837#true} is VALID [2022-04-28 10:41:15,716 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-28 10:41:15,716 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-28 10:41:15,716 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1837#true} {1837#true} #98#return; {1837#true} is VALID [2022-04-28 10:41:15,716 INFO L290 TraceCheckUtils]: 9: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:15,716 INFO L290 TraceCheckUtils]: 8: Hoare triple {1837#true} assume !(0 == ~cond); {1837#true} is VALID [2022-04-28 10:41:15,716 INFO L290 TraceCheckUtils]: 7: Hoare triple {1837#true} ~cond := #in~cond; {1837#true} is VALID [2022-04-28 10:41:15,716 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-28 10:41:15,717 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-28 10:41:15,717 INFO L272 TraceCheckUtils]: 4: Hoare triple {1837#true} call #t~ret27 := main(); {1837#true} is VALID [2022-04-28 10:41:15,717 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1837#true} {1837#true} #122#return; {1837#true} is VALID [2022-04-28 10:41:15,717 INFO L290 TraceCheckUtils]: 2: Hoare triple {1837#true} assume true; {1837#true} is VALID [2022-04-28 10:41:15,717 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-28 10:41:15,717 INFO L272 TraceCheckUtils]: 0: Hoare triple {1837#true} call ULTIMATE.init(); {1837#true} is VALID [2022-04-28 10:41:15,717 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-28 10:41:15,718 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1698626622] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-28 10:41:15,718 INFO L184 FreeRefinementEngine]: Found 1 perfect and 2 imperfect interpolant sequences. [2022-04-28 10:41:15,718 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [15, 12] total 25 [2022-04-28 10:41:15,718 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:15,718 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [527777254] [2022-04-28 10:41:15,718 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [527777254] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:15,718 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:15,718 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [12] imperfect sequences [] total 12 [2022-04-28 10:41:15,719 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1751277384] [2022-04-28 10:41:15,719 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:15,719 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-28 10:41:15,720 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:15,720 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-28 10:41:15,753 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-28 10:41:15,754 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-28 10:41:15,754 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:15,754 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-28 10:41:15,754 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=526, Unknown=0, NotChecked=0, Total=600 [2022-04-28 10:41:15,755 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-28 10:41:16,491 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:16,492 INFO L93 Difference]: Finished difference Result 104 states and 126 transitions. [2022-04-28 10:41:16,492 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-28 10:41:16,492 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-28 10:41:16,492 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:16,493 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-28 10:41:16,495 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 112 transitions. [2022-04-28 10:41:16,495 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-28 10:41:16,497 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 112 transitions. [2022-04-28 10:41:16,498 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 112 transitions. [2022-04-28 10:41:16,595 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-28 10:41:16,596 INFO L225 Difference]: With dead ends: 104 [2022-04-28 10:41:16,597 INFO L226 Difference]: Without dead ends: 70 [2022-04-28 10:41:16,597 INFO L412 NwaCegarLoop]: 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-28 10:41:16,598 INFO L413 NwaCegarLoop]: 58 mSDtfsCounter, 42 mSDsluCounter, 421 mSDsCounter, 0 mSdLazyCounter, 181 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s 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.2s IncrementalHoareTripleChecker+Time [2022-04-28 10:41:16,598 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [50 Valid, 479 Invalid, 186 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 181 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-28 10:41:16,599 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2022-04-28 10:41:16,660 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 64. [2022-04-28 10:41:16,660 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:16,661 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-28 10:41:16,661 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-28 10:41:16,661 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-28 10:41:16,664 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:16,664 INFO L93 Difference]: Finished difference Result 70 states and 83 transitions. [2022-04-28 10:41:16,664 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 83 transitions. [2022-04-28 10:41:16,664 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:16,664 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:16,665 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-28 10:41:16,665 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-28 10:41:16,667 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:16,668 INFO L93 Difference]: Finished difference Result 70 states and 83 transitions. [2022-04-28 10:41:16,668 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 83 transitions. [2022-04-28 10:41:16,668 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:16,668 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:16,668 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:16,668 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:16,668 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-28 10:41:16,670 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 64 states to 64 states and 75 transitions. [2022-04-28 10:41:16,671 INFO L78 Accepts]: Start accepts. Automaton has 64 states and 75 transitions. Word has length 52 [2022-04-28 10:41:16,671 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:16,671 INFO L495 AbstractCegarLoop]: Abstraction has 64 states and 75 transitions. [2022-04-28 10:41:16,671 INFO L496 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-28 10:41:16,671 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 64 states and 75 transitions. [2022-04-28 10:41:16,753 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-28 10:41:16,753 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 75 transitions. [2022-04-28 10:41:16,754 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2022-04-28 10:41:16,754 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:16,754 INFO L195 NwaCegarLoop]: 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-28 10:41:16,770 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-28 10:41:16,955 WARN L477 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-28 10:41:16,956 INFO L420 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:16,956 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:16,956 INFO L85 PathProgramCache]: Analyzing trace with hash 2045094069, now seen corresponding path program 1 times [2022-04-28 10:41:16,956 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:16,956 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [820430098] [2022-04-28 10:41:16,957 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:16,957 INFO L85 PathProgramCache]: Analyzing trace with hash 2045094069, now seen corresponding path program 2 times [2022-04-28 10:41:16,957 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:16,957 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [396114794] [2022-04-28 10:41:16,957 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:16,957 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:16,999 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,015 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:17,016 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,018 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-28 10:41:17,019 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,019 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-28 10:41:17,019 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:17,019 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,021 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,021 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,021 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,022 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-28 10:41:17,024 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:17,025 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,027 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-28 10:41:17,027 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,027 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-28 10:41:17,027 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:17,033 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,037 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:17,038 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,039 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,040 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,040 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,040 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-28 10:41:17,040 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:17,041 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,042 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,043 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,043 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,043 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-28 10:41:17,043 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:17,043 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,045 INFO L290 TraceCheckUtils]: 0: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,046 INFO L290 TraceCheckUtils]: 1: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,046 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,046 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-28 10:41:17,046 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-28 10:41:17,046 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-28 10:41:17,046 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,046 INFO L290 TraceCheckUtils]: 3: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,046 INFO L290 TraceCheckUtils]: 4: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,046 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-28 10:41:17,047 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-28 10:41:17,047 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,047 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,047 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,047 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-28 10:41:17,047 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-28 10:41:17,047 INFO L290 TraceCheckUtils]: 12: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,047 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,048 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,048 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-28 10:41:17,048 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-28 10:41:17,048 INFO L290 TraceCheckUtils]: 17: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,048 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-28 10:41:17,048 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:17,055 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,085 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-28 10:41:17,086 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-28 10:41:17,086 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-28 10:41:17,087 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-28 10:41:17,087 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-28 10:41:17,087 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-28 10:41:17,088 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-28 10:41:17,088 INFO L290 TraceCheckUtils]: 7: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-28 10:41:17,088 INFO L290 TraceCheckUtils]: 8: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-28 10:41:17,089 INFO L290 TraceCheckUtils]: 9: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-28 10:41:17,089 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-28 10:41:17,089 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-28 10:41:17,089 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-28 10:41:17,089 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,090 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-28 10:41:17,090 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-28 10:41:17,090 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-28 10:41:17,090 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-28 10:41:17,090 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,090 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,090 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,090 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-28 10:41:17,090 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-28 10:41:17,091 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-28 10:41:17,091 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-28 10:41:17,091 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,091 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-28 10:41:17,092 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-28 10:41:17,092 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-28 10:41:17,092 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-28 10:41:17,092 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-28 10:41:17,093 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,093 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,093 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,093 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-28 10:41:17,093 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-28 10:41:17,093 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,093 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,093 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,093 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-28 10:41:17,093 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-28 10:41:17,094 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,094 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,094 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,094 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-28 10:41:17,094 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-28 10:41:17,094 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,094 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-28 10:41:17,094 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-28 10:41:17,095 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-28 10:41:17,095 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-28 10:41:17,096 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-28 10:41:17,096 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-28 10:41:17,097 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-28 10:41:17,097 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-28 10:41:17,098 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-28 10:41:17,098 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-28 10:41:17,098 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-28 10:41:17,099 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-28 10:41:17,099 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-28 10:41:17,099 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-28 10:41:17,099 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-28 10:41:17,099 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-28 10:41:17,099 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-28 10:41:17,099 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-28 10:41:17,099 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-28 10:41:17,100 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-28 10:41:17,100 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:17,100 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [396114794] [2022-04-28 10:41:17,100 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [396114794] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:41:17,100 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1381162057] [2022-04-28 10:41:17,100 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 10:41:17,100 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:41:17,100 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:41:17,104 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-28 10:41:17,113 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-28 10:41:17,191 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 10:41:17,191 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:41:17,192 INFO L263 TraceCheckSpWp]: Trace formula consists of 238 conjuncts, 4 conjunts are in the unsatisfiable core [2022-04-28 10:41:17,206 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:17,207 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:41:17,342 INFO L272 TraceCheckUtils]: 0: Hoare triple {2702#true} call ULTIMATE.init(); {2702#true} is VALID [2022-04-28 10:41:17,342 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-28 10:41:17,342 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,342 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-28 10:41:17,342 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-28 10:41:17,342 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-28 10:41:17,343 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-28 10:41:17,343 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,343 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,343 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,343 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-28 10:41:17,343 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-28 10:41:17,343 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-28 10:41:17,343 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2702#true} is VALID [2022-04-28 10:41:17,343 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,344 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-28 10:41:17,344 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-28 10:41:17,344 INFO L272 TraceCheckUtils]: 17: Hoare triple {2702#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {2702#true} is VALID [2022-04-28 10:41:17,344 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-28 10:41:17,344 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-28 10:41:17,344 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,344 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,344 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,344 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-28 10:41:17,345 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-28 10:41:17,345 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,345 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,345 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,345 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-28 10:41:17,345 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-28 10:41:17,345 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,345 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,345 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,346 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-28 10:41:17,346 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-28 10:41:17,346 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,346 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-28 10:41:17,346 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-28 10:41:17,346 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-28 10:41:17,346 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-28 10:41:17,359 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-28 10:41:17,359 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-28 10:41:17,360 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-28 10:41:17,360 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-28 10:41:17,361 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-28 10:41:17,361 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-28 10:41:17,362 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-28 10:41:17,362 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-28 10:41:17,362 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-28 10:41:17,362 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-28 10:41:17,362 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-28 10:41:17,362 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-28 10:41:17,362 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-28 10:41:17,362 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-28 10:41:17,362 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-28 10:41:17,363 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-28 10:41:17,363 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:41:17,546 INFO L290 TraceCheckUtils]: 54: Hoare triple {2703#false} assume !false; {2703#false} is VALID [2022-04-28 10:41:17,546 INFO L290 TraceCheckUtils]: 53: Hoare triple {2703#false} assume 0 == ~cond; {2703#false} is VALID [2022-04-28 10:41:17,547 INFO L290 TraceCheckUtils]: 52: Hoare triple {2703#false} ~cond := #in~cond; {2703#false} is VALID [2022-04-28 10:41:17,547 INFO L272 TraceCheckUtils]: 51: Hoare triple {2703#false} call __VERIFIER_assert(~r~0); {2703#false} is VALID [2022-04-28 10:41:17,547 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-28 10:41:17,547 INFO L284 TraceCheckUtils]: 49: Hoare quadruple {2703#false} {2702#true} #104#return; {2703#false} is VALID [2022-04-28 10:41:17,547 INFO L290 TraceCheckUtils]: 48: Hoare triple {2703#false} assume true; {2703#false} is VALID [2022-04-28 10:41:17,547 INFO L290 TraceCheckUtils]: 47: Hoare triple {2703#false} #res := 0; {2703#false} is VALID [2022-04-28 10:41:17,548 INFO L290 TraceCheckUtils]: 46: Hoare triple {2760#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {2703#false} is VALID [2022-04-28 10:41:17,548 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-28 10:41:17,548 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-28 10:41:17,549 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-28 10:41:17,549 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-28 10:41:17,559 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-28 10:41:17,560 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-28 10:41:17,560 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-28 10:41:17,560 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-28 10:41:17,560 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-28 10:41:17,560 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2702#true} {2702#true} #102#return; {2702#true} is VALID [2022-04-28 10:41:17,560 INFO L290 TraceCheckUtils]: 35: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,561 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-28 10:41:17,561 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {2702#true} {2702#true} #120#return; {2702#true} is VALID [2022-04-28 10:41:17,561 INFO L290 TraceCheckUtils]: 32: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,561 INFO L290 TraceCheckUtils]: 31: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,561 INFO L290 TraceCheckUtils]: 30: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,561 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-28 10:41:17,561 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2702#true} {2702#true} #118#return; {2702#true} is VALID [2022-04-28 10:41:17,561 INFO L290 TraceCheckUtils]: 27: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,561 INFO L290 TraceCheckUtils]: 26: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,562 INFO L290 TraceCheckUtils]: 25: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,562 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-28 10:41:17,562 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2702#true} {2702#true} #116#return; {2702#true} is VALID [2022-04-28 10:41:17,562 INFO L290 TraceCheckUtils]: 22: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,562 INFO L290 TraceCheckUtils]: 21: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,562 INFO L290 TraceCheckUtils]: 20: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,562 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-28 10:41:17,562 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-28 10:41:17,562 INFO L272 TraceCheckUtils]: 17: Hoare triple {2702#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {2702#true} is VALID [2022-04-28 10:41:17,566 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-28 10:41:17,566 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {2702#true} {2702#true} #100#return; {2702#true} is VALID [2022-04-28 10:41:17,566 INFO L290 TraceCheckUtils]: 14: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,566 INFO L290 TraceCheckUtils]: 13: Hoare triple {2702#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {2702#true} is VALID [2022-04-28 10:41:17,567 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-28 10:41:17,567 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-28 10:41:17,567 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2702#true} {2702#true} #98#return; {2702#true} is VALID [2022-04-28 10:41:17,567 INFO L290 TraceCheckUtils]: 9: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,567 INFO L290 TraceCheckUtils]: 8: Hoare triple {2702#true} assume !(0 == ~cond); {2702#true} is VALID [2022-04-28 10:41:17,567 INFO L290 TraceCheckUtils]: 7: Hoare triple {2702#true} ~cond := #in~cond; {2702#true} is VALID [2022-04-28 10:41:17,567 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-28 10:41:17,567 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-28 10:41:17,567 INFO L272 TraceCheckUtils]: 4: Hoare triple {2702#true} call #t~ret27 := main(); {2702#true} is VALID [2022-04-28 10:41:17,568 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2702#true} {2702#true} #122#return; {2702#true} is VALID [2022-04-28 10:41:17,568 INFO L290 TraceCheckUtils]: 2: Hoare triple {2702#true} assume true; {2702#true} is VALID [2022-04-28 10:41:17,568 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-28 10:41:17,568 INFO L272 TraceCheckUtils]: 0: Hoare triple {2702#true} call ULTIMATE.init(); {2702#true} is VALID [2022-04-28 10:41:17,568 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-28 10:41:17,568 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1381162057] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 10:41:17,568 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 10:41:17,569 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 5, 5] total 7 [2022-04-28 10:41:17,569 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:17,569 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [820430098] [2022-04-28 10:41:17,569 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [820430098] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:17,569 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:17,569 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-04-28 10:41:17,569 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2120153891] [2022-04-28 10:41:17,570 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:17,570 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-28 10:41:17,572 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:17,572 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-28 10:41:17,603 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-28 10:41:17,603 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-04-28 10:41:17,604 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:17,604 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-04-28 10:41:17,604 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=12, Invalid=30, Unknown=0, NotChecked=0, Total=42 [2022-04-28 10:41:17,604 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-28 10:41:18,141 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:18,141 INFO L93 Difference]: Finished difference Result 88 states and 106 transitions. [2022-04-28 10:41:18,141 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-28 10:41:18,141 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-28 10:41:18,142 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:18,142 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-28 10:41:18,144 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 98 transitions. [2022-04-28 10:41:18,144 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-28 10:41:18,145 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 98 transitions. [2022-04-28 10:41:18,145 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 98 transitions. [2022-04-28 10:41:18,243 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-28 10:41:18,245 INFO L225 Difference]: With dead ends: 88 [2022-04-28 10:41:18,245 INFO L226 Difference]: Without dead ends: 67 [2022-04-28 10:41:18,246 INFO L412 NwaCegarLoop]: 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-28 10:41:18,246 INFO L413 NwaCegarLoop]: 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-28 10:41:18,247 INFO L414 NwaCegarLoop]: 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-28 10:41:18,247 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 67 states. [2022-04-28 10:41:18,315 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 67 to 67. [2022-04-28 10:41:18,315 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:18,315 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-28 10:41:18,315 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-28 10:41:18,316 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-28 10:41:18,318 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:18,318 INFO L93 Difference]: Finished difference Result 67 states and 79 transitions. [2022-04-28 10:41:18,318 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-28 10:41:18,318 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:18,319 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:18,319 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-28 10:41:18,319 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-28 10:41:18,321 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:18,321 INFO L93 Difference]: Finished difference Result 67 states and 79 transitions. [2022-04-28 10:41:18,321 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-28 10:41:18,322 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:18,322 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:18,322 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:18,322 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:18,322 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-28 10:41:18,324 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 67 states to 67 states and 79 transitions. [2022-04-28 10:41:18,325 INFO L78 Accepts]: Start accepts. Automaton has 67 states and 79 transitions. Word has length 55 [2022-04-28 10:41:18,325 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:18,325 INFO L495 AbstractCegarLoop]: Abstraction has 67 states and 79 transitions. [2022-04-28 10:41:18,325 INFO L496 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-28 10:41:18,325 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 67 states and 79 transitions. [2022-04-28 10:41:18,412 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-28 10:41:18,412 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 79 transitions. [2022-04-28 10:41:18,412 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-28 10:41:18,412 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:18,413 INFO L195 NwaCegarLoop]: 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-28 10:41:18,435 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-28 10:41:18,627 WARN L477 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-28 10:41:18,627 INFO L420 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:18,628 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:18,628 INFO L85 PathProgramCache]: Analyzing trace with hash 629236887, now seen corresponding path program 1 times [2022-04-28 10:41:18,628 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:18,628 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [586054342] [2022-04-28 10:41:18,628 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:18,628 INFO L85 PathProgramCache]: Analyzing trace with hash 629236887, now seen corresponding path program 2 times [2022-04-28 10:41:18,629 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:18,629 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [511487124] [2022-04-28 10:41:18,629 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:18,629 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:18,660 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:18,781 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:18,783 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:18,786 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-28 10:41:18,786 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,786 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-28 10:41:18,786 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:18,787 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:18,789 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:18,789 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:18,789 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,789 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-28 10:41:18,799 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:18,803 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:18,806 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-28 10:41:18,806 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,806 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-28 10:41:18,806 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:18,817 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:18,823 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:18,824 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:18,826 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:18,826 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:18,826 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,826 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-28 10:41:18,826 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:18,827 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:18,829 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:18,830 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:18,830 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,830 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-28 10:41:18,830 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:18,831 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:18,832 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:18,832 INFO L290 TraceCheckUtils]: 1: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:18,832 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,833 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-28 10:41:18,833 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-28 10:41:18,833 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-28 10:41:18,833 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:18,833 INFO L290 TraceCheckUtils]: 3: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:18,833 INFO L290 TraceCheckUtils]: 4: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,833 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-28 10:41:18,833 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-28 10:41:18,833 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:18,834 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:18,834 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,834 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-28 10:41:18,834 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-28 10:41:18,834 INFO L290 TraceCheckUtils]: 12: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:18,834 INFO L290 TraceCheckUtils]: 13: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:18,834 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,834 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-28 10:41:18,834 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-28 10:41:18,834 INFO L290 TraceCheckUtils]: 17: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:18,835 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-28 10:41:18,835 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:18,838 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:19,031 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-28 10:41:19,032 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-28 10:41:19,033 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-28 10:41:19,033 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-28 10:41:19,034 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-28 10:41:19,035 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-28 10:41:19,035 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-28 10:41:19,036 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:19,052 INFO L290 TraceCheckUtils]: 0: Hoare triple {3545#true} ~cond := #in~cond; {3612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:41:19,053 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-28 10:41:19,053 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-28 10:41:19,053 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-28 10:41:19,054 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-28 10:41:19,054 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-28 10:41:19,054 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,054 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-28 10:41:19,054 INFO L272 TraceCheckUtils]: 4: Hoare triple {3545#true} call #t~ret27 := main(); {3545#true} is VALID [2022-04-28 10:41:19,054 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-28 10:41:19,054 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-28 10:41:19,054 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,055 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,055 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,055 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-28 10:41:19,055 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-28 10:41:19,056 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-28 10:41:19,056 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-28 10:41:19,056 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,056 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-28 10:41:19,056 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-28 10:41:19,056 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-28 10:41:19,057 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-28 10:41:19,057 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-28 10:41:19,057 INFO L290 TraceCheckUtils]: 20: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,057 INFO L290 TraceCheckUtils]: 21: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,057 INFO L290 TraceCheckUtils]: 22: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,057 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-28 10:41:19,057 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-28 10:41:19,057 INFO L290 TraceCheckUtils]: 25: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,057 INFO L290 TraceCheckUtils]: 26: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,057 INFO L290 TraceCheckUtils]: 27: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,058 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-28 10:41:19,058 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-28 10:41:19,058 INFO L290 TraceCheckUtils]: 30: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,058 INFO L290 TraceCheckUtils]: 31: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,058 INFO L290 TraceCheckUtils]: 32: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,058 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-28 10:41:19,058 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-28 10:41:19,058 INFO L290 TraceCheckUtils]: 35: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,059 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-28 10:41:19,059 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-28 10:41:19,061 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-28 10:41:19,061 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-28 10:41:19,062 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-28 10:41:19,063 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-28 10:41:19,063 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-28 10:41:19,064 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-28 10:41:19,065 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-28 10:41:19,066 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-28 10:41:19,066 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-28 10:41:19,066 INFO L290 TraceCheckUtils]: 47: Hoare triple {3545#true} ~cond := #in~cond; {3612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:41:19,066 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-28 10:41:19,067 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-28 10:41:19,067 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-28 10:41:19,068 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-28 10:41:19,068 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-28 10:41:19,069 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-28 10:41:19,071 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-28 10:41:19,072 INFO L290 TraceCheckUtils]: 55: Hoare triple {3593#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {3546#false} is VALID [2022-04-28 10:41:19,072 INFO L290 TraceCheckUtils]: 56: Hoare triple {3546#false} assume !false; {3546#false} is VALID [2022-04-28 10:41:19,072 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-28 10:41:19,072 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:19,072 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [511487124] [2022-04-28 10:41:19,072 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [511487124] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:41:19,072 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [272694239] [2022-04-28 10:41:19,073 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 10:41:19,073 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:41:19,073 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:41:19,076 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-28 10:41:19,104 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-28 10:41:19,171 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 10:41:19,171 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:41:19,172 INFO L263 TraceCheckSpWp]: Trace formula consists of 259 conjuncts, 31 conjunts are in the unsatisfiable core [2022-04-28 10:41:19,199 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:19,201 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:41:19,300 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-28 10:41:19,500 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-28 10:41:19,512 INFO L356 Elim1Store]: treesize reduction 11, result has 45.0 percent of original size [2022-04-28 10:41:19,512 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-28 10:41:19,524 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-28 10:41:19,735 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-28 10:41:19,831 INFO L272 TraceCheckUtils]: 0: Hoare triple {3545#true} call ULTIMATE.init(); {3545#true} is VALID [2022-04-28 10:41:19,831 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-28 10:41:19,831 INFO L290 TraceCheckUtils]: 2: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,831 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3545#true} {3545#true} #122#return; {3545#true} is VALID [2022-04-28 10:41:19,831 INFO L272 TraceCheckUtils]: 4: Hoare triple {3545#true} call #t~ret27 := main(); {3545#true} is VALID [2022-04-28 10:41:19,831 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-28 10:41:19,832 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-28 10:41:19,832 INFO L290 TraceCheckUtils]: 7: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,832 INFO L290 TraceCheckUtils]: 8: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,832 INFO L290 TraceCheckUtils]: 9: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,832 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3545#true} {3545#true} #98#return; {3545#true} is VALID [2022-04-28 10:41:19,832 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-28 10:41:19,832 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-28 10:41:19,832 INFO L290 TraceCheckUtils]: 13: Hoare triple {3545#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {3545#true} is VALID [2022-04-28 10:41:19,832 INFO L290 TraceCheckUtils]: 14: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,833 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {3545#true} {3545#true} #100#return; {3545#true} is VALID [2022-04-28 10:41:19,833 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-28 10:41:19,833 INFO L272 TraceCheckUtils]: 17: Hoare triple {3545#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {3545#true} is VALID [2022-04-28 10:41:19,833 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-28 10:41:19,833 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-28 10:41:19,833 INFO L290 TraceCheckUtils]: 20: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,833 INFO L290 TraceCheckUtils]: 21: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,833 INFO L290 TraceCheckUtils]: 22: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,833 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3545#true} {3545#true} #116#return; {3545#true} is VALID [2022-04-28 10:41:19,833 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-28 10:41:19,834 INFO L290 TraceCheckUtils]: 25: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,834 INFO L290 TraceCheckUtils]: 26: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,834 INFO L290 TraceCheckUtils]: 27: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,834 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3545#true} {3545#true} #118#return; {3545#true} is VALID [2022-04-28 10:41:19,834 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-28 10:41:19,834 INFO L290 TraceCheckUtils]: 30: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,834 INFO L290 TraceCheckUtils]: 31: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,834 INFO L290 TraceCheckUtils]: 32: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,834 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {3545#true} {3545#true} #120#return; {3545#true} is VALID [2022-04-28 10:41:19,834 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-28 10:41:19,835 INFO L290 TraceCheckUtils]: 35: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,835 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {3545#true} {3545#true} #102#return; {3545#true} is VALID [2022-04-28 10:41:19,835 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-28 10:41:19,835 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-28 10:41:19,836 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-28 10:41:19,836 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-28 10:41:19,837 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-28 10:41:19,838 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-28 10:41:19,838 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-28 10:41:19,839 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-28 10:41:19,840 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-28 10:41:19,840 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-28 10:41:19,840 INFO L290 TraceCheckUtils]: 47: Hoare triple {3545#true} ~cond := #in~cond; {3545#true} is VALID [2022-04-28 10:41:19,840 INFO L290 TraceCheckUtils]: 48: Hoare triple {3545#true} assume !(0 == ~cond); {3545#true} is VALID [2022-04-28 10:41:19,840 INFO L290 TraceCheckUtils]: 49: Hoare triple {3545#true} assume true; {3545#true} is VALID [2022-04-28 10:41:19,841 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-28 10:41:19,841 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-28 10:41:19,841 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-28 10:41:19,842 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-28 10:41:19,842 INFO L290 TraceCheckUtils]: 54: Hoare triple {3780#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3784#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:41:19,843 INFO L290 TraceCheckUtils]: 55: Hoare triple {3784#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3546#false} is VALID [2022-04-28 10:41:19,843 INFO L290 TraceCheckUtils]: 56: Hoare triple {3546#false} assume !false; {3546#false} is VALID [2022-04-28 10:41:19,843 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-28 10:41:19,843 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-28 10:41:19,843 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [272694239] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:19,843 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-28 10:41:19,843 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [17] total 24 [2022-04-28 10:41:19,844 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:19,844 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [586054342] [2022-04-28 10:41:19,844 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [586054342] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:19,844 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:19,844 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-04-28 10:41:19,844 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1768780763] [2022-04-28 10:41:19,844 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:19,845 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-28 10:41:19,846 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:19,846 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-28 10:41:19,879 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-28 10:41:19,879 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-28 10:41:19,880 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:19,881 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-28 10:41:19,881 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=499, Unknown=0, NotChecked=0, Total=552 [2022-04-28 10:41:19,881 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-28 10:41:20,700 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:20,700 INFO L93 Difference]: Finished difference Result 85 states and 102 transitions. [2022-04-28 10:41:20,700 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-28 10:41:20,701 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-28 10:41:20,701 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:20,701 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-28 10:41:20,703 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 93 transitions. [2022-04-28 10:41:20,703 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-28 10:41:20,705 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 93 transitions. [2022-04-28 10:41:20,705 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 93 transitions. [2022-04-28 10:41:20,781 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-28 10:41:20,783 INFO L225 Difference]: With dead ends: 85 [2022-04-28 10:41:20,783 INFO L226 Difference]: Without dead ends: 83 [2022-04-28 10:41:20,783 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 93 GetRequests, 66 SyntacticMatches, 0 SemanticMatches, 27 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 84 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=81, Invalid=731, Unknown=0, NotChecked=0, Total=812 [2022-04-28 10:41:20,784 INFO L413 NwaCegarLoop]: 57 mSDtfsCounter, 45 mSDsluCounter, 376 mSDsCounter, 0 mSdLazyCounter, 174 mSolverCounterSat, 13 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s 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.2s IncrementalHoareTripleChecker+Time [2022-04-28 10:41:20,785 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [51 Valid, 433 Invalid, 187 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [13 Valid, 174 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-28 10:41:20,785 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2022-04-28 10:41:20,889 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 74. [2022-04-28 10:41:20,889 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:20,889 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-28 10:41:20,890 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-28 10:41:20,890 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-28 10:41:20,892 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:20,892 INFO L93 Difference]: Finished difference Result 83 states and 100 transitions. [2022-04-28 10:41:20,892 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 100 transitions. [2022-04-28 10:41:20,893 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:20,893 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:20,893 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-28 10:41:20,894 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-28 10:41:20,896 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:20,896 INFO L93 Difference]: Finished difference Result 83 states and 100 transitions. [2022-04-28 10:41:20,896 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 100 transitions. [2022-04-28 10:41:20,896 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:20,896 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:20,897 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:20,897 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:20,897 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-28 10:41:20,899 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 87 transitions. [2022-04-28 10:41:20,899 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 87 transitions. Word has length 57 [2022-04-28 10:41:20,899 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:20,899 INFO L495 AbstractCegarLoop]: Abstraction has 74 states and 87 transitions. [2022-04-28 10:41:20,899 INFO L496 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-28 10:41:20,899 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 74 states and 87 transitions. [2022-04-28 10:41:21,011 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-28 10:41:21,012 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 87 transitions. [2022-04-28 10:41:21,012 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-28 10:41:21,012 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:21,012 INFO L195 NwaCegarLoop]: 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-28 10:41:21,039 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-28 10:41:21,213 WARN L477 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-28 10:41:21,213 INFO L420 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:21,213 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:21,213 INFO L85 PathProgramCache]: Analyzing trace with hash 631083929, now seen corresponding path program 1 times [2022-04-28 10:41:21,214 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:21,214 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1001159068] [2022-04-28 10:41:21,214 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:21,214 INFO L85 PathProgramCache]: Analyzing trace with hash 631083929, now seen corresponding path program 2 times [2022-04-28 10:41:21,214 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:21,214 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1824349780] [2022-04-28 10:41:21,214 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:21,215 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:21,235 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,312 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:21,313 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,316 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-28 10:41:21,316 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,316 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4284#true} {4284#true} #122#return; {4284#true} is VALID [2022-04-28 10:41:21,316 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:21,317 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,319 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,319 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,319 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,319 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #98#return; {4284#true} is VALID [2022-04-28 10:41:21,325 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:21,326 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,328 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-28 10:41:21,329 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,329 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4284#true} {4284#true} #100#return; {4284#true} is VALID [2022-04-28 10:41:21,329 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:21,333 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,342 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:21,342 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,344 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,345 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,345 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,345 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-28 10:41:21,345 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:21,345 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,347 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,347 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,347 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,347 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-28 10:41:21,347 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:21,348 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,349 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,350 INFO L290 TraceCheckUtils]: 1: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,350 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,350 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-28 10:41:21,350 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-28 10:41:21,350 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-28 10:41:21,350 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,350 INFO L290 TraceCheckUtils]: 3: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,350 INFO L290 TraceCheckUtils]: 4: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,350 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-28 10:41:21,351 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-28 10:41:21,351 INFO L290 TraceCheckUtils]: 7: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,351 INFO L290 TraceCheckUtils]: 8: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,351 INFO L290 TraceCheckUtils]: 9: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,351 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-28 10:41:21,351 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-28 10:41:21,351 INFO L290 TraceCheckUtils]: 12: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,351 INFO L290 TraceCheckUtils]: 13: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,351 INFO L290 TraceCheckUtils]: 14: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,351 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-28 10:41:21,352 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-28 10:41:21,352 INFO L290 TraceCheckUtils]: 17: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,352 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {4284#true} {4284#true} #102#return; {4284#true} is VALID [2022-04-28 10:41:21,352 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:21,356 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,401 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-28 10:41:21,403 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-28 10:41:21,403 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-28 10:41:21,404 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-28 10:41:21,404 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-28 10:41:21,406 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-28 10:41:21,406 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-28 10:41:21,407 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:21,433 INFO L290 TraceCheckUtils]: 0: Hoare triple {4284#true} ~cond := #in~cond; {4346#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:41:21,435 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-28 10:41:21,436 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-28 10:41:21,436 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-28 10:41:21,437 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-28 10:41:21,437 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-28 10:41:21,437 INFO L290 TraceCheckUtils]: 2: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,437 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4284#true} {4284#true} #122#return; {4284#true} is VALID [2022-04-28 10:41:21,437 INFO L272 TraceCheckUtils]: 4: Hoare triple {4284#true} call #t~ret27 := main(); {4284#true} is VALID [2022-04-28 10:41:21,437 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-28 10:41:21,437 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-28 10:41:21,437 INFO L290 TraceCheckUtils]: 7: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,437 INFO L290 TraceCheckUtils]: 8: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,438 INFO L290 TraceCheckUtils]: 9: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,438 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4284#true} {4284#true} #98#return; {4284#true} is VALID [2022-04-28 10:41:21,438 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-28 10:41:21,438 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-28 10:41:21,438 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-28 10:41:21,439 INFO L290 TraceCheckUtils]: 14: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,439 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4284#true} {4284#true} #100#return; {4284#true} is VALID [2022-04-28 10:41:21,439 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-28 10:41:21,439 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-28 10:41:21,439 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-28 10:41:21,439 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-28 10:41:21,440 INFO L290 TraceCheckUtils]: 20: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L290 TraceCheckUtils]: 21: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L290 TraceCheckUtils]: 22: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4284#true} {4284#true} #116#return; {4284#true} is VALID [2022-04-28 10:41:21,440 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-28 10:41:21,440 INFO L290 TraceCheckUtils]: 25: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L290 TraceCheckUtils]: 26: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L290 TraceCheckUtils]: 27: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4284#true} {4284#true} #118#return; {4284#true} is VALID [2022-04-28 10:41:21,440 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-28 10:41:21,440 INFO L290 TraceCheckUtils]: 30: Hoare triple {4284#true} ~cond := #in~cond; {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L290 TraceCheckUtils]: 31: Hoare triple {4284#true} assume !(0 == ~cond); {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L290 TraceCheckUtils]: 32: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,440 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {4284#true} {4284#true} #120#return; {4284#true} is VALID [2022-04-28 10:41:21,441 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-28 10:41:21,441 INFO L290 TraceCheckUtils]: 35: Hoare triple {4284#true} assume true; {4284#true} is VALID [2022-04-28 10:41:21,441 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4284#true} {4284#true} #102#return; {4284#true} is VALID [2022-04-28 10:41:21,441 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-28 10:41:21,442 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-28 10:41:21,443 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-28 10:41:21,443 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-28 10:41:21,444 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-28 10:41:21,445 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-28 10:41:21,445 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-28 10:41:21,447 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-28 10:41:21,447 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-28 10:41:21,447 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-28 10:41:21,448 INFO L290 TraceCheckUtils]: 47: Hoare triple {4284#true} ~cond := #in~cond; {4346#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:41:21,448 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-28 10:41:21,448 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-28 10:41:21,449 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-28 10:41:21,450 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-28 10:41:21,450 INFO L290 TraceCheckUtils]: 52: Hoare triple {4329#|main_#t~short17|} assume !#t~short17; {4285#false} is VALID [2022-04-28 10:41:21,450 INFO L272 TraceCheckUtils]: 53: Hoare triple {4285#false} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {4285#false} is VALID [2022-04-28 10:41:21,450 INFO L290 TraceCheckUtils]: 54: Hoare triple {4285#false} ~cond := #in~cond; {4285#false} is VALID [2022-04-28 10:41:21,450 INFO L290 TraceCheckUtils]: 55: Hoare triple {4285#false} assume 0 == ~cond; {4285#false} is VALID [2022-04-28 10:41:21,450 INFO L290 TraceCheckUtils]: 56: Hoare triple {4285#false} assume !false; {4285#false} is VALID [2022-04-28 10:41:21,451 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-28 10:41:21,451 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:21,451 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1824349780] [2022-04-28 10:41:21,451 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1824349780] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:21,451 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:21,451 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 10:41:21,451 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:21,451 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1001159068] [2022-04-28 10:41:21,451 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1001159068] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:21,451 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:21,451 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 10:41:21,451 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [264121165] [2022-04-28 10:41:21,451 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:21,452 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-28 10:41:21,452 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:21,452 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-28 10:41:21,486 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-28 10:41:21,486 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-28 10:41:21,486 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:21,486 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-28 10:41:21,486 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=25, Invalid=131, Unknown=0, NotChecked=0, Total=156 [2022-04-28 10:41:21,487 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-28 10:41:23,039 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:23,039 INFO L93 Difference]: Finished difference Result 106 states and 130 transitions. [2022-04-28 10:41:23,040 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-28 10:41:23,043 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-28 10:41:23,043 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:23,044 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-28 10:41:23,050 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 111 transitions. [2022-04-28 10:41:23,050 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-28 10:41:23,052 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 111 transitions. [2022-04-28 10:41:23,052 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 111 transitions. [2022-04-28 10:41:23,152 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-28 10:41:23,154 INFO L225 Difference]: With dead ends: 106 [2022-04-28 10:41:23,154 INFO L226 Difference]: Without dead ends: 92 [2022-04-28 10:41:23,154 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 37 GetRequests, 17 SyntacticMatches, 0 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 42 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=83, Invalid=379, Unknown=0, NotChecked=0, Total=462 [2022-04-28 10:41:23,155 INFO L413 NwaCegarLoop]: 40 mSDtfsCounter, 100 mSDsluCounter, 18 mSDsCounter, 0 mSdLazyCounter, 643 mSolverCounterSat, 87 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.7s 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.7s IncrementalHoareTripleChecker+Time [2022-04-28 10:41:23,155 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [101 Valid, 58 Invalid, 730 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [87 Valid, 643 Invalid, 0 Unknown, 0 Unchecked, 0.7s Time] [2022-04-28 10:41:23,155 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 92 states. [2022-04-28 10:41:23,292 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 92 to 83. [2022-04-28 10:41:23,293 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:23,293 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-28 10:41:23,293 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-28 10:41:23,293 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-28 10:41:23,296 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:23,296 INFO L93 Difference]: Finished difference Result 92 states and 112 transitions. [2022-04-28 10:41:23,296 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 112 transitions. [2022-04-28 10:41:23,297 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:23,297 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:23,297 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-28 10:41:23,298 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-28 10:41:23,300 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:23,300 INFO L93 Difference]: Finished difference Result 92 states and 112 transitions. [2022-04-28 10:41:23,300 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 112 transitions. [2022-04-28 10:41:23,301 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:23,301 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:23,301 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:23,301 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:23,301 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-28 10:41:23,303 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 83 states to 83 states and 99 transitions. [2022-04-28 10:41:23,304 INFO L78 Accepts]: Start accepts. Automaton has 83 states and 99 transitions. Word has length 57 [2022-04-28 10:41:23,304 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:23,304 INFO L495 AbstractCegarLoop]: Abstraction has 83 states and 99 transitions. [2022-04-28 10:41:23,304 INFO L496 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-28 10:41:23,304 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 83 states and 99 transitions. [2022-04-28 10:41:23,456 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-28 10:41:23,456 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 99 transitions. [2022-04-28 10:41:23,457 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 59 [2022-04-28 10:41:23,457 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:23,457 INFO L195 NwaCegarLoop]: 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-28 10:41:23,457 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6 [2022-04-28 10:41:23,457 INFO L420 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:23,458 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:23,458 INFO L85 PathProgramCache]: Analyzing trace with hash -1636680555, now seen corresponding path program 3 times [2022-04-28 10:41:23,458 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:23,458 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [24150031] [2022-04-28 10:41:23,458 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:23,458 INFO L85 PathProgramCache]: Analyzing trace with hash -1636680555, now seen corresponding path program 4 times [2022-04-28 10:41:23,458 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:23,458 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [922532478] [2022-04-28 10:41:23,459 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:23,459 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:23,497 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:23,597 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:23,599 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:23,601 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-28 10:41:23,601 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:23,601 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-28 10:41:23,601 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:23,602 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:23,604 INFO L290 TraceCheckUtils]: 0: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-28 10:41:23,604 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-28 10:41:23,604 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:23,604 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-28 10:41:23,608 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:23,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:23,611 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-28 10:41:23,612 INFO L290 TraceCheckUtils]: 1: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:23,612 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-28 10:41:23,612 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:23,638 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:24,201 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:24,204 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:24,232 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-28 10:41:24,232 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-28 10:41:24,233 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-28 10:41:24,234 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-28 10:41:24,234 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:24,240 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:24,251 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-28 10:41:24,251 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-28 10:41:24,252 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-28 10:41:24,254 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-28 10:41:24,254 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:24,264 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:24,279 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-28 10:41:24,279 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-28 10:41:24,280 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-28 10:41:24,281 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-28 10:41:24,282 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-28 10:41:24,282 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-28 10:41:24,282 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-28 10:41:24,283 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-28 10:41:24,283 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-28 10:41:24,284 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-28 10:41:24,285 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-28 10:41:24,285 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-28 10:41:24,285 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-28 10:41:24,286 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-28 10:41:24,287 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-28 10:41:24,287 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-28 10:41:24,288 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-28 10:41:24,288 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-28 10:41:24,288 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-28 10:41:24,290 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-28 10:41:24,291 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-28 10:41:24,292 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-28 10:41:24,293 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-28 10:41:24,293 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:24,300 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:24,531 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-28 10:41:24,532 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-28 10:41:24,533 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-28 10:41:24,534 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-28 10:41:24,534 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-28 10:41:24,535 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-28 10:41:24,535 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-28 10:41:24,536 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-28 10:41:24,537 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-28 10:41:24,537 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-28 10:41:24,538 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-28 10:41:24,538 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-28 10:41:24,538 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-28 10:41:24,540 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-28 10:41:24,541 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-28 10:41:24,541 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-28 10:41:24,541 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:24,541 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-28 10:41:24,542 INFO L272 TraceCheckUtils]: 4: Hoare triple {4931#true} call #t~ret27 := main(); {4931#true} is VALID [2022-04-28 10:41:24,542 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-28 10:41:24,542 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-28 10:41:24,542 INFO L290 TraceCheckUtils]: 7: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-28 10:41:24,542 INFO L290 TraceCheckUtils]: 8: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-28 10:41:24,542 INFO L290 TraceCheckUtils]: 9: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:24,542 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-28 10:41:24,543 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-28 10:41:24,544 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-28 10:41:24,544 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-28 10:41:24,544 INFO L290 TraceCheckUtils]: 14: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:24,545 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-28 10:41:24,545 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-28 10:41:24,546 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-28 10:41:24,547 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-28 10:41:24,547 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-28 10:41:24,547 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-28 10:41:24,547 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-28 10:41:24,548 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-28 10:41:24,549 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-28 10:41:24,549 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-28 10:41:24,550 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-28 10:41:24,550 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-28 10:41:24,550 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-28 10:41:24,552 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-28 10:41:24,552 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-28 10:41:24,552 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-28 10:41:24,553 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-28 10:41:24,553 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-28 10:41:24,554 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-28 10:41:24,555 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-28 10:41:24,556 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-28 10:41:24,557 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-28 10:41:24,557 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-28 10:41:24,559 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-28 10:41:24,559 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-28 10:41:24,560 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-28 10:41:24,560 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-28 10:41:24,561 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-28 10:41:24,561 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-28 10:41:24,562 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-28 10:41:24,562 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-28 10:41:24,562 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-28 10:41:24,563 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-28 10:41:24,563 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-28 10:41:24,564 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-28 10:41:24,564 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-28 10:41:24,564 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-28 10:41:24,566 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-28 10:41:24,566 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-28 10:41:24,566 INFO L272 TraceCheckUtils]: 54: Hoare triple {4932#false} call __VERIFIER_assert(~r~0); {4932#false} is VALID [2022-04-28 10:41:24,566 INFO L290 TraceCheckUtils]: 55: Hoare triple {4932#false} ~cond := #in~cond; {4932#false} is VALID [2022-04-28 10:41:24,566 INFO L290 TraceCheckUtils]: 56: Hoare triple {4932#false} assume 0 == ~cond; {4932#false} is VALID [2022-04-28 10:41:24,566 INFO L290 TraceCheckUtils]: 57: Hoare triple {4932#false} assume !false; {4932#false} is VALID [2022-04-28 10:41:24,567 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-28 10:41:24,567 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:24,567 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [922532478] [2022-04-28 10:41:24,567 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [922532478] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:41:24,567 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1006989780] [2022-04-28 10:41:24,567 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 10:41:24,567 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:41:24,568 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:41:24,568 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-28 10:41:24,569 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-28 10:41:24,645 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 10:41:24,646 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:41:24,647 INFO L263 TraceCheckSpWp]: Trace formula consists of 244 conjuncts, 53 conjunts are in the unsatisfiable core [2022-04-28 10:41:24,663 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:24,665 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:41:25,204 INFO L356 Elim1Store]: treesize reduction 37, result has 22.9 percent of original size [2022-04-28 10:41:25,205 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-28 10:41:37,787 INFO L272 TraceCheckUtils]: 0: Hoare triple {4931#true} call ULTIMATE.init(); {4931#true} is VALID [2022-04-28 10:41:37,787 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-28 10:41:37,787 INFO L290 TraceCheckUtils]: 2: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:37,787 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4931#true} {4931#true} #122#return; {4931#true} is VALID [2022-04-28 10:41:37,788 INFO L272 TraceCheckUtils]: 4: Hoare triple {4931#true} call #t~ret27 := main(); {4931#true} is VALID [2022-04-28 10:41:37,788 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-28 10:41:37,788 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-28 10:41:37,788 INFO L290 TraceCheckUtils]: 7: Hoare triple {4931#true} ~cond := #in~cond; {4931#true} is VALID [2022-04-28 10:41:37,788 INFO L290 TraceCheckUtils]: 8: Hoare triple {4931#true} assume !(0 == ~cond); {4931#true} is VALID [2022-04-28 10:41:37,788 INFO L290 TraceCheckUtils]: 9: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:37,788 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4931#true} {4931#true} #98#return; {4931#true} is VALID [2022-04-28 10:41:37,788 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-28 10:41:37,788 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-28 10:41:37,789 INFO L290 TraceCheckUtils]: 13: Hoare triple {4931#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {4931#true} is VALID [2022-04-28 10:41:37,789 INFO L290 TraceCheckUtils]: 14: Hoare triple {4931#true} assume true; {4931#true} is VALID [2022-04-28 10:41:37,789 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {4931#true} {4931#true} #100#return; {4931#true} is VALID [2022-04-28 10:41:37,789 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-28 10:41:37,789 INFO L272 TraceCheckUtils]: 17: Hoare triple {4931#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {4931#true} is VALID [2022-04-28 10:41:37,790 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-28 10:41:37,790 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-28 10:41:37,790 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-28 10:41:37,791 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-28 10:41:37,791 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-28 10:41:37,792 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-28 10:41:37,792 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-28 10:41:37,792 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-28 10:41:37,793 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-28 10:41:37,793 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-28 10:41:37,794 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-28 10:41:37,795 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-28 10:41:37,795 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-28 10:41:37,795 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-28 10:41:37,796 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-28 10:41:37,797 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-28 10:41:37,798 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-28 10:41:38,717 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-28 10:41:40,720 WARN 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 UNKNOWN [2022-04-28 10:41:40,726 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-28 10:41:40,728 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-28 10:41:40,728 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-28 10:41:40,729 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-28 10:41:40,729 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-28 10:41:40,730 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-28 10:41:40,731 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-28 10:41:40,739 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-28 10:41:40,740 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-28 10:41:40,741 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-28 10:41:40,741 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-28 10:41:40,742 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-28 10:41:40,743 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-28 10:41:40,743 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-28 10:41:40,744 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-28 10:41:40,746 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-28 10:41:40,747 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-28 10:41:40,747 INFO L272 TraceCheckUtils]: 54: Hoare triple {4932#false} call __VERIFIER_assert(~r~0); {4932#false} is VALID [2022-04-28 10:41:40,747 INFO L290 TraceCheckUtils]: 55: Hoare triple {4932#false} ~cond := #in~cond; {4932#false} is VALID [2022-04-28 10:41:40,747 INFO L290 TraceCheckUtils]: 56: Hoare triple {4932#false} assume 0 == ~cond; {4932#false} is VALID [2022-04-28 10:41:40,747 INFO L290 TraceCheckUtils]: 57: Hoare triple {4932#false} assume !false; {4932#false} is VALID [2022-04-28 10:41:40,747 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-28 10:41:40,748 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:41:41,318 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1006989780] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:41:41,318 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 10:41:41,318 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [21, 17] total 33 [2022-04-28 10:41:41,318 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:41,318 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [24150031] [2022-04-28 10:41:41,318 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [24150031] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:41,318 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:41,318 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [21] imperfect sequences [] total 21 [2022-04-28 10:41:41,318 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1468226512] [2022-04-28 10:41:41,319 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:41,319 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-28 10:41:41,319 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:41,319 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-28 10:41:41,365 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-28 10:41:41,365 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 21 states [2022-04-28 10:41:41,365 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:41,366 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 21 interpolants. [2022-04-28 10:41:41,366 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=92, Invalid=1026, Unknown=4, NotChecked=0, Total=1122 [2022-04-28 10:41:41,366 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-28 10:41:55,003 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:55,003 INFO L93 Difference]: Finished difference Result 149 states and 184 transitions. [2022-04-28 10:41:55,003 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2022-04-28 10:41:55,003 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-28 10:41:55,004 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:55,004 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-28 10:41:55,008 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 140 transitions. [2022-04-28 10:41:55,008 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-28 10:41:55,011 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 140 transitions. [2022-04-28 10:41:55,011 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 26 states and 140 transitions. [2022-04-28 10:41:55,150 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-28 10:41:55,152 INFO L225 Difference]: With dead ends: 149 [2022-04-28 10:41:55,152 INFO L226 Difference]: Without dead ends: 104 [2022-04-28 10:41:55,154 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 120 GetRequests, 66 SyntacticMatches, 0 SemanticMatches, 54 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 603 ImplicationChecksByTransitivity, 21.4s TimeCoverageRelationStatistics Valid=291, Invalid=2784, Unknown=5, NotChecked=0, Total=3080 [2022-04-28 10:41:55,154 INFO L413 NwaCegarLoop]: 52 mSDtfsCounter, 146 mSDsluCounter, 16 mSDsCounter, 0 mSdLazyCounter, 1236 mSolverCounterSat, 111 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.4s 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.4s IncrementalHoareTripleChecker+Time [2022-04-28 10:41:55,154 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [146 Valid, 68 Invalid, 1347 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [111 Valid, 1236 Invalid, 0 Unknown, 0 Unchecked, 1.4s Time] [2022-04-28 10:41:55,155 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2022-04-28 10:41:55,343 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 86. [2022-04-28 10:41:55,343 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:55,344 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-28 10:41:55,344 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-28 10:41:55,344 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-28 10:41:55,347 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:55,347 INFO L93 Difference]: Finished difference Result 104 states and 128 transitions. [2022-04-28 10:41:55,347 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 128 transitions. [2022-04-28 10:41:55,348 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:55,348 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:55,348 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-28 10:41:55,349 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-28 10:41:55,351 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:55,352 INFO L93 Difference]: Finished difference Result 104 states and 128 transitions. [2022-04-28 10:41:55,352 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 128 transitions. [2022-04-28 10:41:55,352 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:55,352 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:55,352 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:55,352 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:55,352 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-28 10:41:55,354 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 86 states to 86 states and 103 transitions. [2022-04-28 10:41:55,355 INFO L78 Accepts]: Start accepts. Automaton has 86 states and 103 transitions. Word has length 58 [2022-04-28 10:41:55,355 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:55,355 INFO L495 AbstractCegarLoop]: Abstraction has 86 states and 103 transitions. [2022-04-28 10:41:55,355 INFO L496 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-28 10:41:55,355 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 86 states and 103 transitions. [2022-04-28 10:41:55,484 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-28 10:41:55,484 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 103 transitions. [2022-04-28 10:41:55,484 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 62 [2022-04-28 10:41:55,484 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:55,485 INFO L195 NwaCegarLoop]: 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-28 10:41:55,501 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-28 10:41:55,687 WARN L477 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-28 10:41:55,687 INFO L420 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:55,688 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:55,688 INFO L85 PathProgramCache]: Analyzing trace with hash 596047115, now seen corresponding path program 5 times [2022-04-28 10:41:55,688 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:55,688 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [741952080] [2022-04-28 10:41:55,688 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:55,689 INFO L85 PathProgramCache]: Analyzing trace with hash 596047115, now seen corresponding path program 6 times [2022-04-28 10:41:55,689 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:55,689 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1299028285] [2022-04-28 10:41:55,689 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:55,689 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:55,716 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,730 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:55,731 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,733 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-28 10:41:55,734 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,734 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-28 10:41:55,734 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:55,734 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,736 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,736 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,736 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,736 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-28 10:41:55,739 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:55,739 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,741 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-28 10:41:55,741 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,741 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-28 10:41:55,741 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:55,745 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,748 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:55,749 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,750 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,750 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,750 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,751 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-28 10:41:55,751 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:55,751 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,753 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,753 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,753 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,753 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-28 10:41:55,753 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:55,754 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,755 INFO L290 TraceCheckUtils]: 0: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,755 INFO L290 TraceCheckUtils]: 1: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,756 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,756 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-28 10:41:55,756 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-28 10:41:55,756 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-28 10:41:55,756 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,756 INFO L290 TraceCheckUtils]: 3: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,756 INFO L290 TraceCheckUtils]: 4: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,756 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-28 10:41:55,756 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-28 10:41:55,757 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,757 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,757 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,757 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-28 10:41:55,757 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-28 10:41:55,757 INFO L290 TraceCheckUtils]: 12: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,757 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,757 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,758 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-28 10:41:55,758 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-28 10:41:55,758 INFO L290 TraceCheckUtils]: 17: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,758 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-28 10:41:55,758 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:55,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,808 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-28 10:41:55,808 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-28 10:41:55,809 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-28 10:41:55,809 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-28 10:41:55,810 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-28 10:41:55,811 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-28 10:41:55,811 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-28 10:41:55,812 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-28 10:41:55,812 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-28 10:41:55,813 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-28 10:41:55,813 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-28 10:41:55,814 INFO L290 TraceCheckUtils]: 11: Hoare triple {6000#(<= (+ finddup_~j~1 1) finddup_~n)} assume !(~j~1 < ~n); {5935#false} is VALID [2022-04-28 10:41:55,814 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-28 10:41:55,814 INFO L290 TraceCheckUtils]: 13: Hoare triple {5935#false} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-28 10:41:55,814 INFO L290 TraceCheckUtils]: 14: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-28 10:41:55,814 INFO L290 TraceCheckUtils]: 15: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-28 10:41:55,814 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-28 10:41:55,815 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-28 10:41:55,815 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-28 10:41:55,815 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,815 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-28 10:41:55,815 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-28 10:41:55,816 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-28 10:41:55,816 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-28 10:41:55,816 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,816 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,816 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,816 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-28 10:41:55,816 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-28 10:41:55,817 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-28 10:41:55,817 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-28 10:41:55,817 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,817 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-28 10:41:55,817 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-28 10:41:55,818 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-28 10:41:55,818 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-28 10:41:55,818 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-28 10:41:55,819 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,819 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,819 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,819 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-28 10:41:55,819 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-28 10:41:55,819 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,819 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,819 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,819 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-28 10:41:55,819 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-28 10:41:55,820 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:55,820 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:55,820 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,820 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-28 10:41:55,820 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-28 10:41:55,820 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:55,820 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-28 10:41:55,820 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-28 10:41:55,821 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-28 10:41:55,821 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-28 10:41:55,822 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-28 10:41:55,822 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-28 10:41:55,823 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-28 10:41:55,823 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-28 10:41:55,824 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-28 10:41:55,824 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-28 10:41:55,824 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-28 10:41:55,825 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-28 10:41:55,825 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-28 10:41:55,826 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-28 10:41:55,826 INFO L290 TraceCheckUtils]: 50: Hoare triple {6000#(<= (+ finddup_~j~1 1) finddup_~n)} assume !(~j~1 < ~n); {5935#false} is VALID [2022-04-28 10:41:55,826 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-28 10:41:55,826 INFO L290 TraceCheckUtils]: 52: Hoare triple {5935#false} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-28 10:41:55,827 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-28 10:41:55,827 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-28 10:41:55,827 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-28 10:41:55,827 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-28 10:41:55,827 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-28 10:41:55,827 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-28 10:41:55,827 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-28 10:41:55,827 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-28 10:41:55,828 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-28 10:41:55,828 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:55,828 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1299028285] [2022-04-28 10:41:55,828 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1299028285] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:41:55,828 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1551813868] [2022-04-28 10:41:55,828 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 10:41:55,828 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:41:55,828 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:41:55,832 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-28 10:41:55,859 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-28 10:41:55,951 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-28 10:41:55,951 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:41:55,953 INFO L263 TraceCheckSpWp]: Trace formula consists of 252 conjuncts, 6 conjunts are in the unsatisfiable core [2022-04-28 10:41:55,965 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:55,968 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:41:56,138 INFO L272 TraceCheckUtils]: 0: Hoare triple {5934#true} call ULTIMATE.init(); {5934#true} is VALID [2022-04-28 10:41:56,139 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-28 10:41:56,139 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,139 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-28 10:41:56,139 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-28 10:41:56,139 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-28 10:41:56,139 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-28 10:41:56,139 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:56,139 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:56,140 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,140 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-28 10:41:56,140 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-28 10:41:56,140 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-28 10:41:56,140 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5934#true} is VALID [2022-04-28 10:41:56,140 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,140 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-28 10:41:56,140 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-28 10:41:56,140 INFO L272 TraceCheckUtils]: 17: Hoare triple {5934#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {5934#true} is VALID [2022-04-28 10:41:56,140 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-28 10:41:56,141 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-28 10:41:56,141 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:56,141 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:56,141 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,141 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-28 10:41:56,141 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-28 10:41:56,141 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:56,141 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:56,141 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,142 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-28 10:41:56,142 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-28 10:41:56,142 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:56,142 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:56,142 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,142 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-28 10:41:56,142 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-28 10:41:56,142 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,142 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-28 10:41:56,142 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-28 10:41:56,143 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-28 10:41:56,143 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-28 10:41:56,143 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-28 10:41:56,143 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-28 10:41:56,144 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-28 10:41:56,144 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-28 10:41:56,145 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-28 10:41:56,145 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-28 10:41:56,146 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-28 10:41:56,146 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-28 10:41:56,146 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-28 10:41:56,147 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-28 10:41:56,147 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-28 10:41:56,148 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-28 10:41:56,148 INFO L290 TraceCheckUtils]: 52: Hoare triple {6157#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-28 10:41:56,148 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-28 10:41:56,148 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-28 10:41:56,148 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-28 10:41:56,148 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-28 10:41:56,149 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-28 10:41:56,160 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-28 10:41:56,160 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-28 10:41:56,160 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-28 10:41:56,161 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-28 10:41:56,161 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:41:56,367 INFO L290 TraceCheckUtils]: 60: Hoare triple {5935#false} assume !false; {5935#false} is VALID [2022-04-28 10:41:56,368 INFO L290 TraceCheckUtils]: 59: Hoare triple {5935#false} assume 0 == ~cond; {5935#false} is VALID [2022-04-28 10:41:56,368 INFO L290 TraceCheckUtils]: 58: Hoare triple {5935#false} ~cond := #in~cond; {5935#false} is VALID [2022-04-28 10:41:56,368 INFO L272 TraceCheckUtils]: 57: Hoare triple {5935#false} call __VERIFIER_assert(~r~0); {5935#false} is VALID [2022-04-28 10:41:56,368 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-28 10:41:56,368 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {5935#false} {5934#true} #104#return; {5935#false} is VALID [2022-04-28 10:41:56,368 INFO L290 TraceCheckUtils]: 54: Hoare triple {5935#false} assume true; {5935#false} is VALID [2022-04-28 10:41:56,368 INFO L290 TraceCheckUtils]: 53: Hoare triple {5935#false} #res := 0; {5935#false} is VALID [2022-04-28 10:41:56,369 INFO L290 TraceCheckUtils]: 52: Hoare triple {6157#(<= (+ finddup_~i~1 1) finddup_~n)} assume !(~i~1 < ~n); {5935#false} is VALID [2022-04-28 10:41:56,369 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-28 10:41:56,369 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-28 10:41:56,370 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-28 10:41:56,370 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-28 10:41:56,371 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-28 10:41:56,371 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-28 10:41:56,371 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-28 10:41:56,372 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-28 10:41:56,372 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-28 10:41:56,372 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-28 10:41:56,373 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-28 10:41:56,373 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-28 10:41:56,373 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-28 10:41:56,373 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-28 10:41:56,373 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-28 10:41:56,373 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {5934#true} {5934#true} #102#return; {5934#true} is VALID [2022-04-28 10:41:56,374 INFO L290 TraceCheckUtils]: 35: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,374 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-28 10:41:56,374 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {5934#true} {5934#true} #120#return; {5934#true} is VALID [2022-04-28 10:41:56,374 INFO L290 TraceCheckUtils]: 32: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,374 INFO L290 TraceCheckUtils]: 31: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:56,374 INFO L290 TraceCheckUtils]: 30: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:56,374 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-28 10:41:56,374 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5934#true} {5934#true} #118#return; {5934#true} is VALID [2022-04-28 10:41:56,374 INFO L290 TraceCheckUtils]: 27: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,374 INFO L290 TraceCheckUtils]: 26: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:56,374 INFO L290 TraceCheckUtils]: 25: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:56,374 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-28 10:41:56,374 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5934#true} {5934#true} #116#return; {5934#true} is VALID [2022-04-28 10:41:56,374 INFO L290 TraceCheckUtils]: 22: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,375 INFO L290 TraceCheckUtils]: 21: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:56,375 INFO L290 TraceCheckUtils]: 20: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:56,375 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-28 10:41:56,375 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-28 10:41:56,375 INFO L272 TraceCheckUtils]: 17: Hoare triple {5934#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {5934#true} is VALID [2022-04-28 10:41:56,375 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-28 10:41:56,375 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {5934#true} {5934#true} #100#return; {5934#true} is VALID [2022-04-28 10:41:56,375 INFO L290 TraceCheckUtils]: 14: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,375 INFO L290 TraceCheckUtils]: 13: Hoare triple {5934#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {5934#true} is VALID [2022-04-28 10:41:56,375 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-28 10:41:56,375 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-28 10:41:56,375 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5934#true} {5934#true} #98#return; {5934#true} is VALID [2022-04-28 10:41:56,375 INFO L290 TraceCheckUtils]: 9: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,375 INFO L290 TraceCheckUtils]: 8: Hoare triple {5934#true} assume !(0 == ~cond); {5934#true} is VALID [2022-04-28 10:41:56,376 INFO L290 TraceCheckUtils]: 7: Hoare triple {5934#true} ~cond := #in~cond; {5934#true} is VALID [2022-04-28 10:41:56,376 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-28 10:41:56,376 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-28 10:41:56,376 INFO L272 TraceCheckUtils]: 4: Hoare triple {5934#true} call #t~ret27 := main(); {5934#true} is VALID [2022-04-28 10:41:56,376 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5934#true} {5934#true} #122#return; {5934#true} is VALID [2022-04-28 10:41:56,376 INFO L290 TraceCheckUtils]: 2: Hoare triple {5934#true} assume true; {5934#true} is VALID [2022-04-28 10:41:56,376 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-28 10:41:56,376 INFO L272 TraceCheckUtils]: 0: Hoare triple {5934#true} call ULTIMATE.init(); {5934#true} is VALID [2022-04-28 10:41:56,376 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-28 10:41:56,377 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1551813868] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 10:41:56,377 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 10:41:56,377 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 7, 7] total 10 [2022-04-28 10:41:56,377 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:56,377 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [741952080] [2022-04-28 10:41:56,377 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [741952080] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:56,377 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:56,377 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-28 10:41:56,378 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1492923024] [2022-04-28 10:41:56,378 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:56,378 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-28 10:41:56,378 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:56,378 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-28 10:41:56,413 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-28 10:41:56,413 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-28 10:41:56,413 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:56,413 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-28 10:41:56,413 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=21, Invalid=69, Unknown=0, NotChecked=0, Total=90 [2022-04-28 10:41:56,414 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-28 10:41:57,328 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:57,328 INFO L93 Difference]: Finished difference Result 140 states and 170 transitions. [2022-04-28 10:41:57,328 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-28 10:41:57,328 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-28 10:41:57,328 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:57,329 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-28 10:41:57,330 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 116 transitions. [2022-04-28 10:41:57,330 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-28 10:41:57,332 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 116 transitions. [2022-04-28 10:41:57,332 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 116 transitions. [2022-04-28 10:41:57,448 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-28 10:41:57,450 INFO L225 Difference]: With dead ends: 140 [2022-04-28 10:41:57,450 INFO L226 Difference]: Without dead ends: 96 [2022-04-28 10:41:57,450 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 155 GetRequests, 136 SyntacticMatches, 2 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=111, Invalid=231, Unknown=0, NotChecked=0, Total=342 [2022-04-28 10:41:57,451 INFO L413 NwaCegarLoop]: 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-28 10:41:57,451 INFO L414 NwaCegarLoop]: 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-28 10:41:57,451 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2022-04-28 10:41:57,639 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 92. [2022-04-28 10:41:57,640 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:57,640 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-28 10:41:57,640 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-28 10:41:57,640 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-28 10:41:57,643 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:57,643 INFO L93 Difference]: Finished difference Result 96 states and 115 transitions. [2022-04-28 10:41:57,643 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 115 transitions. [2022-04-28 10:41:57,643 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:57,644 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:57,644 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-28 10:41:57,644 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-28 10:41:57,647 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:57,647 INFO L93 Difference]: Finished difference Result 96 states and 115 transitions. [2022-04-28 10:41:57,647 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 115 transitions. [2022-04-28 10:41:57,647 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:57,647 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:57,647 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:57,647 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:57,648 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-28 10:41:57,650 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 92 states to 92 states and 111 transitions. [2022-04-28 10:41:57,650 INFO L78 Accepts]: Start accepts. Automaton has 92 states and 111 transitions. Word has length 61 [2022-04-28 10:41:57,650 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:57,650 INFO L495 AbstractCegarLoop]: Abstraction has 92 states and 111 transitions. [2022-04-28 10:41:57,651 INFO L496 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-28 10:41:57,651 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 92 states and 111 transitions. [2022-04-28 10:41:57,795 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-28 10:41:57,795 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 111 transitions. [2022-04-28 10:41:57,795 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-28 10:41:57,795 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:57,796 INFO L195 NwaCegarLoop]: 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-28 10:41:57,813 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Ended with exit code 0 [2022-04-28 10:41:58,003 WARN L477 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-28 10:41:58,004 INFO L420 AbstractCegarLoop]: === Iteration 10 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:58,004 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:58,004 INFO L85 PathProgramCache]: Analyzing trace with hash 645513954, now seen corresponding path program 1 times [2022-04-28 10:41:58,004 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:58,004 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1973383040] [2022-04-28 10:41:58,004 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:58,005 INFO L85 PathProgramCache]: Analyzing trace with hash 645513954, now seen corresponding path program 2 times [2022-04-28 10:41:58,005 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:58,005 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [900721703] [2022-04-28 10:41:58,005 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:58,005 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:58,038 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,077 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:58,079 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,081 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-28 10:41:58,081 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,081 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7042#true} {7042#true} #122#return; {7042#true} is VALID [2022-04-28 10:41:58,081 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:58,082 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,083 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,084 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,084 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,084 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #98#return; {7042#true} is VALID [2022-04-28 10:41:58,087 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:58,088 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,090 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-28 10:41:58,090 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,090 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7042#true} {7042#true} #100#return; {7042#true} is VALID [2022-04-28 10:41:58,090 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:58,096 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,099 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:58,099 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,101 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,101 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,102 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,102 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-28 10:41:58,102 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:58,102 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,104 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,104 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,104 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,105 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-28 10:41:58,105 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:58,105 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,107 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,107 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,107 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,107 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-28 10:41:58,107 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-28 10:41:58,107 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-28 10:41:58,107 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,108 INFO L290 TraceCheckUtils]: 3: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,108 INFO L290 TraceCheckUtils]: 4: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,108 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-28 10:41:58,108 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-28 10:41:58,108 INFO L290 TraceCheckUtils]: 7: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,108 INFO L290 TraceCheckUtils]: 8: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,108 INFO L290 TraceCheckUtils]: 9: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,108 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-28 10:41:58,108 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-28 10:41:58,108 INFO L290 TraceCheckUtils]: 12: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,109 INFO L290 TraceCheckUtils]: 13: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,109 INFO L290 TraceCheckUtils]: 14: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,109 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-28 10:41:58,109 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-28 10:41:58,109 INFO L290 TraceCheckUtils]: 17: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,109 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {7042#true} {7042#true} #102#return; {7042#true} is VALID [2022-04-28 10:41:58,109 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:58,118 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,161 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-28 10:41:58,162 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-28 10:41:58,162 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-28 10:41:58,163 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-28 10:41:58,163 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-28 10:41:58,165 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-28 10:41:58,165 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-28 10:41:58,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,170 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,170 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,170 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,171 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-28 10:41:58,171 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-28 10:41:58,172 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:58,174 INFO L290 TraceCheckUtils]: 0: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,174 INFO L290 TraceCheckUtils]: 1: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,174 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,174 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-28 10:41:58,175 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-28 10:41:58,175 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-28 10:41:58,175 INFO L290 TraceCheckUtils]: 2: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,175 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7042#true} {7042#true} #122#return; {7042#true} is VALID [2022-04-28 10:41:58,175 INFO L272 TraceCheckUtils]: 4: Hoare triple {7042#true} call #t~ret27 := main(); {7042#true} is VALID [2022-04-28 10:41:58,176 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-28 10:41:58,176 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-28 10:41:58,176 INFO L290 TraceCheckUtils]: 7: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,176 INFO L290 TraceCheckUtils]: 8: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,176 INFO L290 TraceCheckUtils]: 9: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,176 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7042#true} {7042#true} #98#return; {7042#true} is VALID [2022-04-28 10:41:58,176 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-28 10:41:58,177 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-28 10:41:58,177 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-28 10:41:58,177 INFO L290 TraceCheckUtils]: 14: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,177 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7042#true} {7042#true} #100#return; {7042#true} is VALID [2022-04-28 10:41:58,177 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-28 10:41:58,178 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-28 10:41:58,178 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-28 10:41:58,178 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-28 10:41:58,178 INFO L290 TraceCheckUtils]: 20: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,178 INFO L290 TraceCheckUtils]: 21: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,179 INFO L290 TraceCheckUtils]: 22: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,179 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7042#true} {7042#true} #116#return; {7042#true} is VALID [2022-04-28 10:41:58,179 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-28 10:41:58,179 INFO L290 TraceCheckUtils]: 25: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,179 INFO L290 TraceCheckUtils]: 26: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,179 INFO L290 TraceCheckUtils]: 27: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,179 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {7042#true} {7042#true} #118#return; {7042#true} is VALID [2022-04-28 10:41:58,179 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-28 10:41:58,179 INFO L290 TraceCheckUtils]: 30: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,179 INFO L290 TraceCheckUtils]: 31: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,180 INFO L290 TraceCheckUtils]: 32: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,180 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {7042#true} {7042#true} #120#return; {7042#true} is VALID [2022-04-28 10:41:58,180 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-28 10:41:58,180 INFO L290 TraceCheckUtils]: 35: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,180 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7042#true} {7042#true} #102#return; {7042#true} is VALID [2022-04-28 10:41:58,180 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-28 10:41:58,181 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-28 10:41:58,182 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-28 10:41:58,182 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-28 10:41:58,183 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-28 10:41:58,183 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-28 10:41:58,184 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-28 10:41:58,185 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-28 10:41:58,185 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-28 10:41:58,185 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-28 10:41:58,186 INFO L290 TraceCheckUtils]: 47: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,186 INFO L290 TraceCheckUtils]: 48: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,186 INFO L290 TraceCheckUtils]: 49: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,186 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-28 10:41:58,187 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-28 10:41:58,187 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-28 10:41:58,187 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-28 10:41:58,187 INFO L290 TraceCheckUtils]: 54: Hoare triple {7042#true} ~cond := #in~cond; {7042#true} is VALID [2022-04-28 10:41:58,187 INFO L290 TraceCheckUtils]: 55: Hoare triple {7042#true} assume !(0 == ~cond); {7042#true} is VALID [2022-04-28 10:41:58,187 INFO L290 TraceCheckUtils]: 56: Hoare triple {7042#true} assume true; {7042#true} is VALID [2022-04-28 10:41:58,188 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-28 10:41:58,189 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-28 10:41:58,189 INFO L290 TraceCheckUtils]: 59: Hoare triple {7088#|main_#t~short20|} assume !#t~short20; {7043#false} is VALID [2022-04-28 10:41:58,189 INFO L272 TraceCheckUtils]: 60: Hoare triple {7043#false} call __VERIFIER_assert((if #t~short20 then 1 else 0)); {7043#false} is VALID [2022-04-28 10:41:58,189 INFO L290 TraceCheckUtils]: 61: Hoare triple {7043#false} ~cond := #in~cond; {7043#false} is VALID [2022-04-28 10:41:58,189 INFO L290 TraceCheckUtils]: 62: Hoare triple {7043#false} assume 0 == ~cond; {7043#false} is VALID [2022-04-28 10:41:58,189 INFO L290 TraceCheckUtils]: 63: Hoare triple {7043#false} assume !false; {7043#false} is VALID [2022-04-28 10:41:58,190 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-28 10:41:58,190 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:41:58,190 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [900721703] [2022-04-28 10:41:58,190 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [900721703] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:58,190 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:58,190 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-28 10:41:58,192 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:41:58,192 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1973383040] [2022-04-28 10:41:58,192 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1973383040] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:41:58,192 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:41:58,192 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-28 10:41:58,192 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [338480235] [2022-04-28 10:41:58,192 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:41:58,193 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-28 10:41:58,193 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:41:58,194 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-28 10:41:58,231 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-28 10:41:58,232 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-28 10:41:58,232 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:58,232 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-28 10:41:58,232 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=15, Invalid=57, Unknown=0, NotChecked=0, Total=72 [2022-04-28 10:41:58,232 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-28 10:41:59,341 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:59,341 INFO L93 Difference]: Finished difference Result 111 states and 135 transitions. [2022-04-28 10:41:59,341 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-28 10:41:59,341 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-28 10:41:59,342 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:41:59,342 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-28 10:41:59,344 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 98 transitions. [2022-04-28 10:41:59,344 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-28 10:41:59,349 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 98 transitions. [2022-04-28 10:41:59,350 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 98 transitions. [2022-04-28 10:41:59,430 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-28 10:41:59,431 INFO L225 Difference]: With dead ends: 111 [2022-04-28 10:41:59,431 INFO L226 Difference]: Without dead ends: 100 [2022-04-28 10:41:59,432 INFO L412 NwaCegarLoop]: 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-28 10:41:59,432 INFO L413 NwaCegarLoop]: 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-28 10:41:59,432 INFO L414 NwaCegarLoop]: 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-28 10:41:59,433 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 100 states. [2022-04-28 10:41:59,660 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 100 to 95. [2022-04-28 10:41:59,660 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:41:59,665 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-28 10:41:59,665 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-28 10:41:59,666 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-28 10:41:59,670 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:59,670 INFO L93 Difference]: Finished difference Result 100 states and 122 transitions. [2022-04-28 10:41:59,670 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 122 transitions. [2022-04-28 10:41:59,671 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:59,671 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:59,671 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-28 10:41:59,672 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-28 10:41:59,674 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:41:59,674 INFO L93 Difference]: Finished difference Result 100 states and 122 transitions. [2022-04-28 10:41:59,674 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 122 transitions. [2022-04-28 10:41:59,674 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:41:59,674 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:41:59,674 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:41:59,674 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:41:59,674 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-28 10:41:59,676 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 95 states to 95 states and 115 transitions. [2022-04-28 10:41:59,676 INFO L78 Accepts]: Start accepts. Automaton has 95 states and 115 transitions. Word has length 64 [2022-04-28 10:41:59,676 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:41:59,677 INFO L495 AbstractCegarLoop]: Abstraction has 95 states and 115 transitions. [2022-04-28 10:41:59,677 INFO L496 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-28 10:41:59,677 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 95 states and 115 transitions. [2022-04-28 10:41:59,860 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-28 10:41:59,860 INFO L276 IsEmpty]: Start isEmpty. Operand 95 states and 115 transitions. [2022-04-28 10:41:59,861 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-28 10:41:59,861 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:41:59,861 INFO L195 NwaCegarLoop]: 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-28 10:41:59,861 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable9 [2022-04-28 10:41:59,861 INFO L420 AbstractCegarLoop]: === Iteration 11 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:41:59,861 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:41:59,862 INFO L85 PathProgramCache]: Analyzing trace with hash 643666912, now seen corresponding path program 1 times [2022-04-28 10:41:59,862 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:41:59,862 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [352221889] [2022-04-28 10:41:59,862 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:41:59,862 INFO L85 PathProgramCache]: Analyzing trace with hash 643666912, now seen corresponding path program 2 times [2022-04-28 10:41:59,862 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:41:59,862 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1483394777] [2022-04-28 10:41:59,862 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:41:59,863 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:41:59,882 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,916 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:41:59,918 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,919 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-28 10:41:59,920 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,920 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7733#true} {7733#true} #122#return; {7733#true} is VALID [2022-04-28 10:41:59,920 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:59,920 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,922 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:41:59,922 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:41:59,922 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,922 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #98#return; {7733#true} is VALID [2022-04-28 10:41:59,927 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:41:59,927 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,929 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-28 10:41:59,929 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,929 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {7733#true} {7733#true} #100#return; {7733#true} is VALID [2022-04-28 10:41:59,929 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:41:59,933 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,936 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:41:59,936 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,938 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:41:59,938 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:41:59,938 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,938 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-28 10:41:59,938 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:41:59,939 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,940 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:41:59,941 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:41:59,941 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,941 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-28 10:41:59,941 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:41:59,941 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,943 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:41:59,943 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:41:59,943 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,943 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-28 10:41:59,943 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-28 10:41:59,943 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-28 10:41:59,943 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:41:59,944 INFO L290 TraceCheckUtils]: 3: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:41:59,944 INFO L290 TraceCheckUtils]: 4: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,944 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-28 10:41:59,944 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-28 10:41:59,944 INFO L290 TraceCheckUtils]: 7: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:41:59,944 INFO L290 TraceCheckUtils]: 8: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:41:59,944 INFO L290 TraceCheckUtils]: 9: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,944 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-28 10:41:59,945 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-28 10:41:59,945 INFO L290 TraceCheckUtils]: 12: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:41:59,945 INFO L290 TraceCheckUtils]: 13: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:41:59,945 INFO L290 TraceCheckUtils]: 14: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,945 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-28 10:41:59,945 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-28 10:41:59,945 INFO L290 TraceCheckUtils]: 17: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,945 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {7733#true} {7733#true} #102#return; {7733#true} is VALID [2022-04-28 10:41:59,945 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:41:59,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,992 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-28 10:41:59,992 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-28 10:41:59,993 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-28 10:41:59,994 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-28 10:41:59,994 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-28 10:41:59,995 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-28 10:41:59,996 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-28 10:41:59,997 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:41:59,998 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:41:59,998 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:41:59,999 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:41:59,999 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-28 10:41:59,999 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-28 10:42:00,000 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:00,002 INFO L290 TraceCheckUtils]: 0: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:42:00,002 INFO L290 TraceCheckUtils]: 1: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:42:00,002 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,002 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-28 10:42:00,003 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-28 10:42:00,003 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-28 10:42:00,003 INFO L290 TraceCheckUtils]: 2: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,003 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7733#true} {7733#true} #122#return; {7733#true} is VALID [2022-04-28 10:42:00,003 INFO L272 TraceCheckUtils]: 4: Hoare triple {7733#true} call #t~ret27 := main(); {7733#true} is VALID [2022-04-28 10:42:00,003 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-28 10:42:00,003 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-28 10:42:00,003 INFO L290 TraceCheckUtils]: 7: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:42:00,004 INFO L290 TraceCheckUtils]: 8: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:42:00,004 INFO L290 TraceCheckUtils]: 9: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,004 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7733#true} {7733#true} #98#return; {7733#true} is VALID [2022-04-28 10:42:00,004 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-28 10:42:00,005 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-28 10:42:00,005 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-28 10:42:00,005 INFO L290 TraceCheckUtils]: 14: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,005 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {7733#true} {7733#true} #100#return; {7733#true} is VALID [2022-04-28 10:42:00,005 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-28 10:42:00,006 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-28 10:42:00,006 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-28 10:42:00,006 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-28 10:42:00,006 INFO L290 TraceCheckUtils]: 20: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:42:00,006 INFO L290 TraceCheckUtils]: 21: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:42:00,006 INFO L290 TraceCheckUtils]: 22: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,006 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7733#true} {7733#true} #116#return; {7733#true} is VALID [2022-04-28 10:42:00,006 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-28 10:42:00,006 INFO L290 TraceCheckUtils]: 25: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:42:00,007 INFO L290 TraceCheckUtils]: 26: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:42:00,007 INFO L290 TraceCheckUtils]: 27: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,007 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {7733#true} {7733#true} #118#return; {7733#true} is VALID [2022-04-28 10:42:00,007 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-28 10:42:00,007 INFO L290 TraceCheckUtils]: 30: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:42:00,007 INFO L290 TraceCheckUtils]: 31: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:42:00,007 INFO L290 TraceCheckUtils]: 32: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,007 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {7733#true} {7733#true} #120#return; {7733#true} is VALID [2022-04-28 10:42:00,007 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-28 10:42:00,007 INFO L290 TraceCheckUtils]: 35: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,008 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7733#true} {7733#true} #102#return; {7733#true} is VALID [2022-04-28 10:42:00,008 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-28 10:42:00,009 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-28 10:42:00,009 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-28 10:42:00,009 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-28 10:42:00,010 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-28 10:42:00,011 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-28 10:42:00,011 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-28 10:42:00,012 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-28 10:42:00,013 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-28 10:42:00,013 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-28 10:42:00,013 INFO L290 TraceCheckUtils]: 47: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:42:00,013 INFO L290 TraceCheckUtils]: 48: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:42:00,013 INFO L290 TraceCheckUtils]: 49: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,014 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-28 10:42:00,014 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-28 10:42:00,014 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-28 10:42:00,014 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-28 10:42:00,014 INFO L290 TraceCheckUtils]: 54: Hoare triple {7733#true} ~cond := #in~cond; {7733#true} is VALID [2022-04-28 10:42:00,014 INFO L290 TraceCheckUtils]: 55: Hoare triple {7733#true} assume !(0 == ~cond); {7733#true} is VALID [2022-04-28 10:42:00,015 INFO L290 TraceCheckUtils]: 56: Hoare triple {7733#true} assume true; {7733#true} is VALID [2022-04-28 10:42:00,015 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-28 10:42:00,015 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-28 10:42:00,016 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-28 10:42:00,016 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-28 10:42:00,017 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-28 10:42:00,017 INFO L290 TraceCheckUtils]: 62: Hoare triple {7781#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {7734#false} is VALID [2022-04-28 10:42:00,017 INFO L290 TraceCheckUtils]: 63: Hoare triple {7734#false} assume !false; {7734#false} is VALID [2022-04-28 10:42:00,017 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-28 10:42:00,018 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:42:00,018 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1483394777] [2022-04-28 10:42:00,018 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1483394777] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:42:00,018 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:42:00,018 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-28 10:42:00,018 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:42:00,018 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [352221889] [2022-04-28 10:42:00,018 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [352221889] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:42:00,018 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:42:00,019 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-28 10:42:00,019 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [499788063] [2022-04-28 10:42:00,019 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:42:00,019 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-28 10:42:00,019 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:42:00,019 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-28 10:42:00,058 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-28 10:42:00,058 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-28 10:42:00,058 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:42:00,058 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-28 10:42:00,058 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=91, Unknown=0, NotChecked=0, Total=110 [2022-04-28 10:42:00,059 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-28 10:42:01,455 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:01,455 INFO L93 Difference]: Finished difference Result 106 states and 127 transitions. [2022-04-28 10:42:01,455 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-28 10:42:01,455 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-28 10:42:01,456 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:42:01,456 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-28 10:42:01,457 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 89 transitions. [2022-04-28 10:42:01,457 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-28 10:42:01,458 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 89 transitions. [2022-04-28 10:42:01,458 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 89 transitions. [2022-04-28 10:42:01,540 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-28 10:42:01,542 INFO L225 Difference]: With dead ends: 106 [2022-04-28 10:42:01,542 INFO L226 Difference]: Without dead ends: 104 [2022-04-28 10:42:01,542 INFO L412 NwaCegarLoop]: 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-28 10:42:01,543 INFO L413 NwaCegarLoop]: 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-28 10:42:01,543 INFO L414 NwaCegarLoop]: 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-28 10:42:01,543 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2022-04-28 10:42:01,784 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 100. [2022-04-28 10:42:01,784 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:42:01,784 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-28 10:42:01,785 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-28 10:42:01,785 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-28 10:42:01,787 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:01,787 INFO L93 Difference]: Finished difference Result 104 states and 125 transitions. [2022-04-28 10:42:01,788 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 125 transitions. [2022-04-28 10:42:01,788 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:42:01,788 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:42:01,788 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-28 10:42:01,788 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-28 10:42:01,791 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:01,791 INFO L93 Difference]: Finished difference Result 104 states and 125 transitions. [2022-04-28 10:42:01,791 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 125 transitions. [2022-04-28 10:42:01,791 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:42:01,791 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:42:01,791 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:42:01,791 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:42:01,792 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-28 10:42:01,794 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 120 transitions. [2022-04-28 10:42:01,794 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 120 transitions. Word has length 64 [2022-04-28 10:42:01,794 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:42:01,794 INFO L495 AbstractCegarLoop]: Abstraction has 100 states and 120 transitions. [2022-04-28 10:42:01,794 INFO L496 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-28 10:42:01,794 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 100 states and 120 transitions. [2022-04-28 10:42:01,968 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-28 10:42:01,968 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 120 transitions. [2022-04-28 10:42:01,968 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 67 [2022-04-28 10:42:01,968 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:42:01,969 INFO L195 NwaCegarLoop]: 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-28 10:42:01,969 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable10 [2022-04-28 10:42:01,969 INFO L420 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:42:01,969 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:42:01,969 INFO L85 PathProgramCache]: Analyzing trace with hash -779883059, now seen corresponding path program 1 times [2022-04-28 10:42:01,969 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:42:01,969 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1161766745] [2022-04-28 10:42:01,969 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:42:01,970 INFO L85 PathProgramCache]: Analyzing trace with hash -779883059, now seen corresponding path program 2 times [2022-04-28 10:42:01,970 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:42:01,970 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [915699334] [2022-04-28 10:42:01,970 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:42:01,970 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:42:02,009 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,065 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:42:02,067 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,069 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-28 10:42:02,069 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,069 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8440#true} {8440#true} #122#return; {8440#true} is VALID [2022-04-28 10:42:02,069 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:42:02,070 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,071 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,071 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,071 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,071 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #98#return; {8440#true} is VALID [2022-04-28 10:42:02,077 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:42:02,078 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,079 INFO L290 TraceCheckUtils]: 0: Hoare triple {8496#(= |#memory_int| |old(#memory_int)|)} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {8440#true} is VALID [2022-04-28 10:42:02,079 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,079 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {8440#true} {8440#true} #100#return; {8440#true} is VALID [2022-04-28 10:42:02,080 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:42:02,084 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,087 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:42:02,087 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,089 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,089 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,089 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,089 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-28 10:42:02,089 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:42:02,097 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,099 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,099 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,099 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,099 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-28 10:42:02,100 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:42:02,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,119 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,119 INFO L290 TraceCheckUtils]: 1: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,119 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,119 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-28 10:42:02,120 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-28 10:42:02,120 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-28 10:42:02,120 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,120 INFO L290 TraceCheckUtils]: 3: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,120 INFO L290 TraceCheckUtils]: 4: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,120 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-28 10:42:02,120 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-28 10:42:02,120 INFO L290 TraceCheckUtils]: 7: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,120 INFO L290 TraceCheckUtils]: 8: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,120 INFO L290 TraceCheckUtils]: 9: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,121 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-28 10:42:02,121 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-28 10:42:02,121 INFO L290 TraceCheckUtils]: 12: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,121 INFO L290 TraceCheckUtils]: 13: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,121 INFO L290 TraceCheckUtils]: 14: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,121 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-28 10:42:02,121 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-28 10:42:02,121 INFO L290 TraceCheckUtils]: 17: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,121 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {8440#true} {8440#true} #102#return; {8440#true} is VALID [2022-04-28 10:42:02,122 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:42:02,128 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,205 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-28 10:42:02,205 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-28 10:42:02,206 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-28 10:42:02,207 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-28 10:42:02,207 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-28 10:42:02,208 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-28 10:42:02,209 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-28 10:42:02,209 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-28 10:42:02,210 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-28 10:42:02,210 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-28 10:42:02,211 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-28 10:42:02,212 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-28 10:42:02,212 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-28 10:42:02,213 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-28 10:42:02,214 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-28 10:42:02,214 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 55 [2022-04-28 10:42:02,215 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:02,239 INFO L290 TraceCheckUtils]: 0: Hoare triple {8440#true} ~cond := #in~cond; {8512#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:42:02,240 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-28 10:42:02,240 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-28 10:42:02,241 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-28 10:42:02,241 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-28 10:42:02,241 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-28 10:42:02,241 INFO L290 TraceCheckUtils]: 2: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,241 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8440#true} {8440#true} #122#return; {8440#true} is VALID [2022-04-28 10:42:02,241 INFO L272 TraceCheckUtils]: 4: Hoare triple {8440#true} call #t~ret27 := main(); {8440#true} is VALID [2022-04-28 10:42:02,242 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-28 10:42:02,242 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-28 10:42:02,242 INFO L290 TraceCheckUtils]: 7: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,242 INFO L290 TraceCheckUtils]: 8: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,242 INFO L290 TraceCheckUtils]: 9: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,242 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8440#true} {8440#true} #98#return; {8440#true} is VALID [2022-04-28 10:42:02,243 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-28 10:42:02,243 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-28 10:42:02,243 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-28 10:42:02,244 INFO L290 TraceCheckUtils]: 14: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,244 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {8440#true} {8440#true} #100#return; {8440#true} is VALID [2022-04-28 10:42:02,244 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-28 10:42:02,244 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-28 10:42:02,245 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-28 10:42:02,245 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-28 10:42:02,245 INFO L290 TraceCheckUtils]: 20: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,245 INFO L290 TraceCheckUtils]: 21: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,245 INFO L290 TraceCheckUtils]: 22: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,245 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {8440#true} {8440#true} #116#return; {8440#true} is VALID [2022-04-28 10:42:02,245 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-28 10:42:02,245 INFO L290 TraceCheckUtils]: 25: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,245 INFO L290 TraceCheckUtils]: 26: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,245 INFO L290 TraceCheckUtils]: 27: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,245 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {8440#true} {8440#true} #118#return; {8440#true} is VALID [2022-04-28 10:42:02,246 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-28 10:42:02,246 INFO L290 TraceCheckUtils]: 30: Hoare triple {8440#true} ~cond := #in~cond; {8440#true} is VALID [2022-04-28 10:42:02,246 INFO L290 TraceCheckUtils]: 31: Hoare triple {8440#true} assume !(0 == ~cond); {8440#true} is VALID [2022-04-28 10:42:02,246 INFO L290 TraceCheckUtils]: 32: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,246 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {8440#true} {8440#true} #120#return; {8440#true} is VALID [2022-04-28 10:42:02,246 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-28 10:42:02,246 INFO L290 TraceCheckUtils]: 35: Hoare triple {8440#true} assume true; {8440#true} is VALID [2022-04-28 10:42:02,246 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {8440#true} {8440#true} #102#return; {8440#true} is VALID [2022-04-28 10:42:02,247 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-28 10:42:02,248 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-28 10:42:02,248 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-28 10:42:02,249 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-28 10:42:02,250 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-28 10:42:02,250 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-28 10:42:02,251 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-28 10:42:02,252 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-28 10:42:02,252 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-28 10:42:02,253 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-28 10:42:02,253 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-28 10:42:02,254 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-28 10:42:02,255 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-28 10:42:02,255 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-28 10:42:02,256 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-28 10:42:02,256 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-28 10:42:02,258 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-28 10:42:02,258 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-28 10:42:02,258 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-28 10:42:02,259 INFO L290 TraceCheckUtils]: 56: Hoare triple {8440#true} ~cond := #in~cond; {8512#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:42:02,259 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-28 10:42:02,259 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-28 10:42:02,260 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-28 10:42:02,261 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-28 10:42:02,261 INFO L290 TraceCheckUtils]: 61: Hoare triple {8494#|main_#t~short17|} assume !#t~short17; {8441#false} is VALID [2022-04-28 10:42:02,261 INFO L272 TraceCheckUtils]: 62: Hoare triple {8441#false} call __VERIFIER_assert((if #t~short17 then 1 else 0)); {8441#false} is VALID [2022-04-28 10:42:02,261 INFO L290 TraceCheckUtils]: 63: Hoare triple {8441#false} ~cond := #in~cond; {8441#false} is VALID [2022-04-28 10:42:02,261 INFO L290 TraceCheckUtils]: 64: Hoare triple {8441#false} assume 0 == ~cond; {8441#false} is VALID [2022-04-28 10:42:02,261 INFO L290 TraceCheckUtils]: 65: Hoare triple {8441#false} assume !false; {8441#false} is VALID [2022-04-28 10:42:02,262 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-28 10:42:02,262 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:42:02,262 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [915699334] [2022-04-28 10:42:02,262 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [915699334] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:42:02,262 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:42:02,262 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-28 10:42:02,262 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:42:02,262 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1161766745] [2022-04-28 10:42:02,263 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1161766745] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:42:02,263 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:42:02,263 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-28 10:42:02,263 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [599111437] [2022-04-28 10:42:02,263 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:42:02,267 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-28 10:42:02,267 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:42:02,267 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-28 10:42:02,307 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-28 10:42:02,308 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-28 10:42:02,308 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:42:02,308 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-28 10:42:02,309 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=28, Invalid=154, Unknown=0, NotChecked=0, Total=182 [2022-04-28 10:42:02,309 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-28 10:42:04,205 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:04,205 INFO L93 Difference]: Finished difference Result 126 states and 149 transitions. [2022-04-28 10:42:04,205 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 10:42:04,206 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-28 10:42:04,206 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:42:04,206 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-28 10:42:04,208 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 109 transitions. [2022-04-28 10:42:04,208 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-28 10:42:04,209 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 109 transitions. [2022-04-28 10:42:04,209 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 109 transitions. [2022-04-28 10:42:04,308 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-28 10:42:04,310 INFO L225 Difference]: With dead ends: 126 [2022-04-28 10:42:04,310 INFO L226 Difference]: Without dead ends: 108 [2022-04-28 10:42:04,311 INFO L412 NwaCegarLoop]: 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-28 10:42:04,311 INFO L413 NwaCegarLoop]: 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-28 10:42:04,311 INFO L414 NwaCegarLoop]: 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-28 10:42:04,312 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-28 10:42:04,525 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 90. [2022-04-28 10:42:04,525 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:42:04,525 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-28 10:42:04,525 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-28 10:42:04,526 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-28 10:42:04,528 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:04,528 INFO L93 Difference]: Finished difference Result 108 states and 129 transitions. [2022-04-28 10:42:04,528 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 129 transitions. [2022-04-28 10:42:04,529 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:42:04,529 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:42:04,529 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-28 10:42:04,529 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-28 10:42:04,532 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:04,532 INFO L93 Difference]: Finished difference Result 108 states and 129 transitions. [2022-04-28 10:42:04,532 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 129 transitions. [2022-04-28 10:42:04,532 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:42:04,532 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:42:04,532 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:42:04,532 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:42:04,533 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-28 10:42:04,534 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 90 states to 90 states and 105 transitions. [2022-04-28 10:42:04,534 INFO L78 Accepts]: Start accepts. Automaton has 90 states and 105 transitions. Word has length 66 [2022-04-28 10:42:04,535 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:42:04,535 INFO L495 AbstractCegarLoop]: Abstraction has 90 states and 105 transitions. [2022-04-28 10:42:04,535 INFO L496 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-28 10:42:04,535 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 90 states and 105 transitions. [2022-04-28 10:42:04,691 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-28 10:42:04,692 INFO L276 IsEmpty]: Start isEmpty. Operand 90 states and 105 transitions. [2022-04-28 10:42:04,692 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 71 [2022-04-28 10:42:04,692 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:42:04,692 INFO L195 NwaCegarLoop]: 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-28 10:42:04,692 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable11 [2022-04-28 10:42:04,693 INFO L420 AbstractCegarLoop]: === Iteration 13 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:42:04,693 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:42:04,693 INFO L85 PathProgramCache]: Analyzing trace with hash 297933182, now seen corresponding path program 1 times [2022-04-28 10:42:04,693 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:42:04,693 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1557780478] [2022-04-28 10:42:04,693 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:42:04,693 INFO L85 PathProgramCache]: Analyzing trace with hash 297933182, now seen corresponding path program 2 times [2022-04-28 10:42:04,693 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:42:04,694 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1776721810] [2022-04-28 10:42:04,694 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:42:04,694 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:42:04,717 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,811 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:42:04,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,816 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-28 10:42:04,816 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,816 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-28 10:42:04,816 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:42:04,817 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,819 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,819 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,819 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,819 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-28 10:42:04,826 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:42:04,827 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,829 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-28 10:42:04,829 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,829 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-28 10:42:04,829 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:42:04,832 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,841 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:42:04,841 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,842 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,843 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,843 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,843 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-28 10:42:04,843 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:42:04,843 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,845 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,845 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,845 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,845 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-28 10:42:04,845 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:42:04,846 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,847 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,847 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,847 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,848 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-28 10:42:04,848 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-28 10:42:04,848 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-28 10:42:04,848 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,848 INFO L290 TraceCheckUtils]: 3: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,848 INFO L290 TraceCheckUtils]: 4: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,848 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-28 10:42:04,848 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-28 10:42:04,849 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,849 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,849 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,849 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-28 10:42:04,849 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-28 10:42:04,849 INFO L290 TraceCheckUtils]: 12: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,849 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,849 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,849 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-28 10:42:04,850 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-28 10:42:04,850 INFO L290 TraceCheckUtils]: 17: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,850 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-28 10:42:04,850 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:42:04,854 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,949 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-28 10:42:04,950 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-28 10:42:04,951 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-28 10:42:04,951 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-28 10:42:04,952 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-28 10:42:04,954 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-28 10:42:04,954 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-28 10:42:04,955 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,971 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9261#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:42:04,972 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-28 10:42:04,972 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-28 10:42:04,973 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-28 10:42:04,973 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-28 10:42:04,974 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,976 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,977 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,977 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,977 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-28 10:42:04,978 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 60 [2022-04-28 10:42:04,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:04,980 INFO L290 TraceCheckUtils]: 0: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,981 INFO L290 TraceCheckUtils]: 1: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,981 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,982 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-28 10:42:04,982 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-28 10:42:04,982 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-28 10:42:04,982 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,982 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-28 10:42:04,983 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-28 10:42:04,983 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-28 10:42:04,983 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-28 10:42:04,983 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,983 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,983 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,983 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-28 10:42:04,983 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-28 10:42:04,984 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-28 10:42:04,984 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-28 10:42:04,984 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,984 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-28 10:42:04,985 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-28 10:42:04,985 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-28 10:42:04,985 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-28 10:42:04,986 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-28 10:42:04,986 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,986 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,986 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,986 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-28 10:42:04,986 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-28 10:42:04,986 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,986 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,986 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,986 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-28 10:42:04,986 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-28 10:42:04,987 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,987 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,987 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,987 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-28 10:42:04,987 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-28 10:42:04,987 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,987 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-28 10:42:04,988 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-28 10:42:04,989 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-28 10:42:04,990 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-28 10:42:04,990 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-28 10:42:04,991 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-28 10:42:04,992 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-28 10:42:04,992 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-28 10:42:04,994 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-28 10:42:04,994 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-28 10:42:04,995 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-28 10:42:04,995 INFO L290 TraceCheckUtils]: 47: Hoare triple {9187#true} ~cond := #in~cond; {9261#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:42:04,995 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-28 10:42:04,996 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-28 10:42:04,997 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-28 10:42:04,997 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-28 10:42:04,998 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-28 10:42:04,998 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-28 10:42:04,998 INFO L290 TraceCheckUtils]: 54: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:04,998 INFO L290 TraceCheckUtils]: 55: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:04,998 INFO L290 TraceCheckUtils]: 56: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:04,999 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-28 10:42:05,000 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-28 10:42:05,000 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-28 10:42:05,000 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-28 10:42:05,000 INFO L290 TraceCheckUtils]: 61: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:05,001 INFO L290 TraceCheckUtils]: 62: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:05,001 INFO L290 TraceCheckUtils]: 63: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:05,001 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-28 10:42:05,002 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-28 10:42:05,002 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-28 10:42:05,003 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-28 10:42:05,003 INFO L290 TraceCheckUtils]: 68: Hoare triple {9243#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {9188#false} is VALID [2022-04-28 10:42:05,003 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-28 10:42:05,004 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-28 10:42:05,004 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:42:05,004 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1776721810] [2022-04-28 10:42:05,004 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1776721810] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:42:05,004 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [903221277] [2022-04-28 10:42:05,004 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 10:42:05,004 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:42:05,005 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:42:05,008 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-28 10:42:05,036 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-28 10:42:05,113 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 10:42:05,114 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:42:05,115 INFO L263 TraceCheckSpWp]: Trace formula consists of 288 conjuncts, 44 conjunts are in the unsatisfiable core [2022-04-28 10:42:05,130 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:05,132 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:42:05,208 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-28 10:42:05,333 INFO L356 Elim1Store]: treesize reduction 13, result has 58.1 percent of original size [2022-04-28 10:42:05,334 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-28 10:42:05,359 INFO L356 Elim1Store]: treesize reduction 35, result has 34.0 percent of original size [2022-04-28 10:42:05,360 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-28 10:42:05,366 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-28 10:42:05,409 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-28 10:42:05,412 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-28 10:42:05,454 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-28 10:42:05,471 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-28 10:42:05,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-28 10:42:06,192 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-04-28 10:42:06,192 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-28 10:42:06,262 INFO L272 TraceCheckUtils]: 0: Hoare triple {9187#true} call ULTIMATE.init(); {9187#true} is VALID [2022-04-28 10:42:06,262 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-28 10:42:06,262 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:06,262 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-28 10:42:06,262 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-28 10:42:06,262 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-28 10:42:06,262 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-28 10:42:06,263 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:06,263 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:06,263 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:06,263 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-28 10:42:06,263 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-28 10:42:06,263 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-28 10:42:06,263 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9187#true} is VALID [2022-04-28 10:42:06,263 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:06,263 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-28 10:42:06,263 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-28 10:42:06,263 INFO L272 TraceCheckUtils]: 17: Hoare triple {9187#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {9187#true} is VALID [2022-04-28 10:42:06,263 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-28 10:42:06,264 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-28 10:42:06,264 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:06,264 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:06,264 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:06,264 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-28 10:42:06,264 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-28 10:42:06,264 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:06,264 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:06,264 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:06,265 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-28 10:42:06,265 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-28 10:42:06,265 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:06,265 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:06,265 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:06,265 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-28 10:42:06,265 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-28 10:42:06,265 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:06,265 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-28 10:42:06,273 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-28 10:42:06,273 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-28 10:42:06,273 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-28 10:42:06,274 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-28 10:42:06,274 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-28 10:42:06,275 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-28 10:42:06,275 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-28 10:42:06,277 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-28 10:42:06,277 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-28 10:42:06,278 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-28 10:42:06,278 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-28 10:42:06,279 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-28 10:42:06,280 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-28 10:42:06,286 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-28 10:42:06,286 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-28 10:42:06,287 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-28 10:42:06,289 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-28 10:42:06,291 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-28 10:42:06,292 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-28 10:42:06,292 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-28 10:42:06,293 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-28 10:42:06,294 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-28 10:42:06,294 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-28 10:42:06,295 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-28 10:42:06,296 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-28 10:42:06,297 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-28 10:42:06,297 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-28 10:42:06,298 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-28 10:42:06,299 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-28 10:42:06,299 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-28 10:42:06,300 INFO L290 TraceCheckUtils]: 67: Hoare triple {9469#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {9473#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:42:06,300 INFO L290 TraceCheckUtils]: 68: Hoare triple {9473#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {9188#false} is VALID [2022-04-28 10:42:06,300 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-28 10:42:06,301 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-28 10:42:06,301 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:42:06,559 INFO L356 Elim1Store]: treesize reduction 28, result has 33.3 percent of original size [2022-04-28 10:42:06,560 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-28 10:42:06,567 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 10:42:06,569 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-28 10:42:06,574 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 10:42:06,574 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-28 10:42:06,585 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-28 10:42:06,606 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-28 10:42:06,621 INFO L356 Elim1Store]: treesize reduction 7, result has 12.5 percent of original size [2022-04-28 10:42:06,621 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-28 10:42:06,708 INFO L356 Elim1Store]: treesize reduction 13, result has 69.0 percent of original size [2022-04-28 10:42:06,708 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-28 10:42:06,713 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 10:42:06,713 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-28 10:42:06,753 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 10:42:06,753 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-28 10:42:06,795 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 10:42:06,795 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-28 10:42:06,896 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-28 10:42:06,918 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-28 10:42:06,947 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-28 10:42:06,966 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-28 10:42:07,114 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 10:42:07,115 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-28 10:42:07,194 INFO L356 Elim1Store]: treesize reduction 27, result has 3.6 percent of original size [2022-04-28 10:42:07,194 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-28 10:42:07,311 INFO L356 Elim1Store]: treesize reduction 10, result has 64.3 percent of original size [2022-04-28 10:42:07,311 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-28 10:42:07,444 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 10:42:07,445 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-28 10:42:07,582 INFO L356 Elim1Store]: treesize reduction 10, result has 64.3 percent of original size [2022-04-28 10:42:07,583 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-28 10:42:07,689 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 10:42:07,690 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-28 10:42:08,154 INFO L356 Elim1Store]: treesize reduction 0, result has 100.0 percent of original size [2022-04-28 10:42:08,155 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 31 treesize of output 35 [2022-04-28 10:42:08,213 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-28 10:42:08,235 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-28 10:42:08,303 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-28 10:42:08,375 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-28 10:42:08,390 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-28 10:42:08,686 INFO L290 TraceCheckUtils]: 69: Hoare triple {9188#false} assume !false; {9188#false} is VALID [2022-04-28 10:42:08,686 INFO L290 TraceCheckUtils]: 68: Hoare triple {9473#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {9188#false} is VALID [2022-04-28 10:42:08,687 INFO L290 TraceCheckUtils]: 67: Hoare triple {9469#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {9473#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:42:08,687 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-28 10:42:08,688 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-28 10:42:08,688 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-28 10:42:08,688 INFO L290 TraceCheckUtils]: 63: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,688 INFO L290 TraceCheckUtils]: 62: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:08,689 INFO L290 TraceCheckUtils]: 61: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:08,689 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-28 10:42:08,689 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-28 10:42:08,689 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-28 10:42:08,694 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-28 10:42:08,694 INFO L290 TraceCheckUtils]: 56: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,694 INFO L290 TraceCheckUtils]: 55: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:08,694 INFO L290 TraceCheckUtils]: 54: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:08,694 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-28 10:42:08,694 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-28 10:42:08,695 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-28 10:42:08,695 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-28 10:42:08,696 INFO L290 TraceCheckUtils]: 49: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,696 INFO L290 TraceCheckUtils]: 48: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:08,696 INFO L290 TraceCheckUtils]: 47: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:08,696 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-28 10:42:08,696 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-28 10:42:08,697 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-28 10:42:08,698 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-28 10:42:08,699 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-28 10:42:08,699 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-28 10:42:08,700 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-28 10:42:08,701 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-28 10:42:08,701 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-28 10:42:08,701 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-28 10:42:08,701 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {9187#true} {9187#true} #102#return; {9187#true} is VALID [2022-04-28 10:42:08,701 INFO L290 TraceCheckUtils]: 35: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,701 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-28 10:42:08,701 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {9187#true} {9187#true} #120#return; {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 32: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 31: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 30: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:08,702 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-28 10:42:08,702 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {9187#true} {9187#true} #118#return; {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 27: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 26: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 25: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:08,702 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-28 10:42:08,702 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9187#true} {9187#true} #116#return; {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 22: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 21: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:08,702 INFO L290 TraceCheckUtils]: 20: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:08,702 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-28 10:42:08,703 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-28 10:42:08,703 INFO L272 TraceCheckUtils]: 17: Hoare triple {9187#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {9187#true} is VALID [2022-04-28 10:42:08,703 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-28 10:42:08,703 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {9187#true} {9187#true} #100#return; {9187#true} is VALID [2022-04-28 10:42:08,703 INFO L290 TraceCheckUtils]: 14: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,703 INFO L290 TraceCheckUtils]: 13: Hoare triple {9187#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {9187#true} is VALID [2022-04-28 10:42:08,703 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-28 10:42:08,703 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-28 10:42:08,703 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9187#true} {9187#true} #98#return; {9187#true} is VALID [2022-04-28 10:42:08,703 INFO L290 TraceCheckUtils]: 9: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,703 INFO L290 TraceCheckUtils]: 8: Hoare triple {9187#true} assume !(0 == ~cond); {9187#true} is VALID [2022-04-28 10:42:08,703 INFO L290 TraceCheckUtils]: 7: Hoare triple {9187#true} ~cond := #in~cond; {9187#true} is VALID [2022-04-28 10:42:08,703 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-28 10:42:08,704 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-28 10:42:08,704 INFO L272 TraceCheckUtils]: 4: Hoare triple {9187#true} call #t~ret27 := main(); {9187#true} is VALID [2022-04-28 10:42:08,704 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9187#true} {9187#true} #122#return; {9187#true} is VALID [2022-04-28 10:42:08,704 INFO L290 TraceCheckUtils]: 2: Hoare triple {9187#true} assume true; {9187#true} is VALID [2022-04-28 10:42:08,704 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-28 10:42:08,704 INFO L272 TraceCheckUtils]: 0: Hoare triple {9187#true} call ULTIMATE.init(); {9187#true} is VALID [2022-04-28 10:42:08,704 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-28 10:42:08,705 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [903221277] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-28 10:42:08,705 INFO L184 FreeRefinementEngine]: Found 1 perfect and 2 imperfect interpolant sequences. [2022-04-28 10:42:08,705 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [16, 11] total 27 [2022-04-28 10:42:08,705 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:42:08,705 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1557780478] [2022-04-28 10:42:08,705 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1557780478] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:42:08,705 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:42:08,705 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-04-28 10:42:08,706 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [212271343] [2022-04-28 10:42:08,706 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:42:08,706 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-28 10:42:08,706 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:42:08,706 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-28 10:42:08,750 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-28 10:42:08,750 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-28 10:42:08,750 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:42:08,751 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-28 10:42:08,751 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=77, Invalid=625, Unknown=0, NotChecked=0, Total=702 [2022-04-28 10:42:08,751 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-28 10:42:09,616 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:09,616 INFO L93 Difference]: Finished difference Result 110 states and 128 transitions. [2022-04-28 10:42:09,617 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-28 10:42:09,617 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-28 10:42:09,617 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:42:09,617 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-28 10:42:09,618 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 94 transitions. [2022-04-28 10:42:09,619 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-28 10:42:09,620 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 94 transitions. [2022-04-28 10:42:09,620 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 94 transitions. [2022-04-28 10:42:09,713 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-28 10:42:09,715 INFO L225 Difference]: With dead ends: 110 [2022-04-28 10:42:09,715 INFO L226 Difference]: Without dead ends: 108 [2022-04-28 10:42:09,716 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 178 GetRequests, 143 SyntacticMatches, 6 SemanticMatches, 29 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 188 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=99, Invalid=831, Unknown=0, NotChecked=0, Total=930 [2022-04-28 10:42:09,717 INFO L413 NwaCegarLoop]: 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-28 10:42:09,717 INFO L414 NwaCegarLoop]: 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-28 10:42:09,717 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-28 10:42:10,025 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 106. [2022-04-28 10:42:10,025 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:42:10,026 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-28 10:42:10,026 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-28 10:42:10,026 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-28 10:42:10,029 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:10,029 INFO L93 Difference]: Finished difference Result 108 states and 126 transitions. [2022-04-28 10:42:10,029 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 126 transitions. [2022-04-28 10:42:10,029 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:42:10,029 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:42:10,030 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-28 10:42:10,030 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-28 10:42:10,039 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:42:10,039 INFO L93 Difference]: Finished difference Result 108 states and 126 transitions. [2022-04-28 10:42:10,039 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 126 transitions. [2022-04-28 10:42:10,040 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:42:10,040 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:42:10,040 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:42:10,040 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:42:10,040 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-28 10:42:10,042 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 106 states to 106 states and 124 transitions. [2022-04-28 10:42:10,042 INFO L78 Accepts]: Start accepts. Automaton has 106 states and 124 transitions. Word has length 70 [2022-04-28 10:42:10,042 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:42:10,042 INFO L495 AbstractCegarLoop]: Abstraction has 106 states and 124 transitions. [2022-04-28 10:42:10,042 INFO L496 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-28 10:42:10,042 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 106 states and 124 transitions. [2022-04-28 10:42:10,229 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-28 10:42:10,230 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 124 transitions. [2022-04-28 10:42:10,230 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 68 [2022-04-28 10:42:10,230 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:42:10,230 INFO L195 NwaCegarLoop]: 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-28 10:42:10,247 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-28 10:42:10,431 WARN L477 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-28 10:42:10,432 INFO L420 AbstractCegarLoop]: === Iteration 14 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:42:10,432 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:42:10,432 INFO L85 PathProgramCache]: Analyzing trace with hash 1867983073, now seen corresponding path program 7 times [2022-04-28 10:42:10,432 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:42:10,432 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [740867279] [2022-04-28 10:42:10,432 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:42:10,432 INFO L85 PathProgramCache]: Analyzing trace with hash 1867983073, now seen corresponding path program 8 times [2022-04-28 10:42:10,432 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:42:10,432 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2127721377] [2022-04-28 10:42:10,432 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:42:10,433 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:42:10,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:10,950 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:42:10,952 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:10,959 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-28 10:42:10,959 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:10,959 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-28 10:42:10,959 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:42:10,960 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:10,963 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:10,964 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:10,964 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:10,964 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-28 10:42:10,969 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:42:10,971 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:10,980 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-28 10:42:10,980 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-28 10:42:10,981 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-28 10:42:10,981 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:42:10,993 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:11,974 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:42:11,975 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:11,978 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:11,978 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:11,978 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:11,979 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-28 10:42:11,979 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:42:11,979 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:11,983 INFO L290 TraceCheckUtils]: 0: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:11,983 INFO L290 TraceCheckUtils]: 1: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:11,983 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:11,984 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-28 10:42:11,984 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:42:11,985 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:12,012 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-28 10:42:12,013 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-28 10:42:12,013 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-28 10:42:12,014 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-28 10:42:12,015 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-28 10:42:12,015 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-28 10:42:12,015 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:12,015 INFO L290 TraceCheckUtils]: 3: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:12,015 INFO L290 TraceCheckUtils]: 4: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:12,015 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-28 10:42:12,016 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-28 10:42:12,016 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:12,016 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:12,016 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:12,016 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-28 10:42:12,017 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-28 10:42:12,018 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-28 10:42:12,018 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-28 10:42:12,018 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-28 10:42:12,019 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-28 10:42:12,021 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-28 10:42:12,022 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-28 10:42:12,025 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-28 10:42:12,025 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:42:12,036 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:14,532 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-28 10:42:14,532 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-28 10:42:14,533 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-28 10:42:14,534 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-28 10:42:14,537 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-28 10:42:14,547 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-28 10:42:14,548 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-28 10:42:14,551 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-28 10:42:14,553 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-28 10:42:14,562 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-28 10:42:14,563 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-28 10:42:14,565 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-28 10:42:14,566 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-28 10:42:14,569 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-28 10:42:14,570 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-28 10:42:14,571 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-28 10:42:14,572 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-28 10:42:14,573 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-28 10:42:14,574 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-28 10:42:14,575 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-28 10:42:14,576 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-28 10:42:14,577 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-28 10:42:14,579 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-28 10:42:14,579 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-28 10:42:14,580 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-28 10:42:14,580 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:14,580 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-28 10:42:14,580 INFO L272 TraceCheckUtils]: 4: Hoare triple {10348#true} call #t~ret27 := main(); {10348#true} is VALID [2022-04-28 10:42:14,580 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-28 10:42:14,580 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-28 10:42:14,580 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:14,580 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:14,580 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:14,580 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-28 10:42:14,580 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-28 10:42:14,581 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-28 10:42:14,582 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-28 10:42:14,582 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-28 10:42:14,583 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-28 10:42:14,583 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-28 10:42:14,584 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-28 10:42:14,584 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-28 10:42:14,585 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-28 10:42:14,585 INFO L290 TraceCheckUtils]: 20: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:14,585 INFO L290 TraceCheckUtils]: 21: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:14,585 INFO L290 TraceCheckUtils]: 22: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:14,585 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-28 10:42:14,586 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-28 10:42:14,586 INFO L290 TraceCheckUtils]: 25: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:14,586 INFO L290 TraceCheckUtils]: 26: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:14,586 INFO L290 TraceCheckUtils]: 27: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:14,587 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-28 10:42:14,587 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-28 10:42:14,587 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-28 10:42:14,587 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-28 10:42:14,588 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-28 10:42:14,589 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-28 10:42:14,591 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-28 10:42:14,592 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-28 10:42:14,595 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-28 10:42:14,596 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-28 10:42:14,597 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-28 10:42:14,598 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-28 10:42:14,598 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-28 10:42:14,599 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-28 10:42:14,599 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-28 10:42:14,602 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-28 10:42:14,603 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-28 10:42:14,605 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-28 10:42:14,607 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-28 10:42:14,609 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-28 10:42:14,611 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-28 10:42:14,612 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-28 10:42:14,614 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-28 10:42:14,615 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-28 10:42:14,616 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-28 10:42:14,616 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-28 10:42:14,617 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-28 10:42:14,618 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-28 10:42:14,619 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-28 10:42:14,620 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-28 10:42:14,620 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-28 10:42:14,621 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-28 10:42:14,622 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-28 10:42:14,624 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-28 10:42:14,624 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-28 10:42:14,624 INFO L272 TraceCheckUtils]: 63: Hoare triple {10349#false} call __VERIFIER_assert(~r~0); {10349#false} is VALID [2022-04-28 10:42:14,624 INFO L290 TraceCheckUtils]: 64: Hoare triple {10349#false} ~cond := #in~cond; {10349#false} is VALID [2022-04-28 10:42:14,624 INFO L290 TraceCheckUtils]: 65: Hoare triple {10349#false} assume 0 == ~cond; {10349#false} is VALID [2022-04-28 10:42:14,624 INFO L290 TraceCheckUtils]: 66: Hoare triple {10349#false} assume !false; {10349#false} is VALID [2022-04-28 10:42:14,625 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-28 10:42:14,625 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:42:14,625 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2127721377] [2022-04-28 10:42:14,625 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2127721377] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:42:14,625 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1552620757] [2022-04-28 10:42:14,626 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 10:42:14,626 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:42:14,626 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:42:14,627 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-28 10:42:14,628 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-28 10:42:14,713 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 10:42:14,713 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:42:14,715 INFO L263 TraceCheckSpWp]: Trace formula consists of 266 conjuncts, 77 conjunts are in the unsatisfiable core [2022-04-28 10:42:14,734 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:42:14,736 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:42:14,788 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-28 10:42:22,712 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-28 10:42:27,253 INFO L272 TraceCheckUtils]: 0: Hoare triple {10348#true} call ULTIMATE.init(); {10348#true} is VALID [2022-04-28 10:42:27,253 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-28 10:42:27,253 INFO L290 TraceCheckUtils]: 2: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:27,253 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10348#true} {10348#true} #122#return; {10348#true} is VALID [2022-04-28 10:42:27,254 INFO L272 TraceCheckUtils]: 4: Hoare triple {10348#true} call #t~ret27 := main(); {10348#true} is VALID [2022-04-28 10:42:27,254 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-28 10:42:27,254 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-28 10:42:27,254 INFO L290 TraceCheckUtils]: 7: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:27,254 INFO L290 TraceCheckUtils]: 8: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:27,254 INFO L290 TraceCheckUtils]: 9: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:27,254 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10348#true} {10348#true} #98#return; {10348#true} is VALID [2022-04-28 10:42:27,255 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-28 10:42:27,255 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-28 10:42:27,255 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-28 10:42:27,256 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-28 10:42:27,257 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-28 10:42:27,258 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-28 10:42:27,258 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-28 10:42:27,259 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-28 10:42:27,259 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-28 10:42:27,260 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-28 10:42:27,260 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-28 10:42:27,261 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-28 10:42:27,262 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-28 10:42:27,262 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-28 10:42:27,262 INFO L290 TraceCheckUtils]: 25: Hoare triple {10348#true} ~cond := #in~cond; {10348#true} is VALID [2022-04-28 10:42:27,262 INFO L290 TraceCheckUtils]: 26: Hoare triple {10348#true} assume !(0 == ~cond); {10348#true} is VALID [2022-04-28 10:42:27,262 INFO L290 TraceCheckUtils]: 27: Hoare triple {10348#true} assume true; {10348#true} is VALID [2022-04-28 10:42:27,263 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-28 10:42:27,264 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-28 10:42:27,264 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-28 10:42:27,264 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-28 10:42:27,265 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-28 10:42:27,266 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-28 10:42:29,281 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-28 10:42:30,480 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-28 10:42:30,481 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-28 10:42:30,482 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-28 10:42:30,484 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-28 10:42:30,484 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-28 10:42:30,484 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-28 10:42:30,485 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-28 10:42:30,485 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-28 10:42:30,486 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-28 10:42:30,487 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-28 10:42:30,487 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-28 10:42:30,488 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-28 10:42:30,489 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-28 10:42:30,490 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-28 10:42:30,491 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-28 10:42:30,492 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-28 10:42:30,493 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-28 10:42:30,493 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-28 10:42:30,494 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-28 10:42:30,495 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-28 10:42:30,495 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-28 10:42:30,496 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-28 10:42:30,497 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-28 10:42:30,497 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-28 10:42:30,498 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-28 10:42:30,499 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-28 10:42:30,501 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-28 10:42:30,501 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-28 10:42:30,501 INFO L272 TraceCheckUtils]: 63: Hoare triple {10349#false} call __VERIFIER_assert(~r~0); {10349#false} is VALID [2022-04-28 10:42:30,502 INFO L290 TraceCheckUtils]: 64: Hoare triple {10349#false} ~cond := #in~cond; {10349#false} is VALID [2022-04-28 10:42:30,502 INFO L290 TraceCheckUtils]: 65: Hoare triple {10349#false} assume 0 == ~cond; {10349#false} is VALID [2022-04-28 10:42:30,502 INFO L290 TraceCheckUtils]: 66: Hoare triple {10349#false} assume !false; {10349#false} is VALID [2022-04-28 10:42:30,502 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-28 10:42:30,503 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:42:32,635 WARN L804 TransFormulaUtils]: predicate-based correctness check returned UNKNOWN, hence correctness of interprocedural sequential composition was not checked. [2022-04-28 10:42:59,143 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1552620757] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:42:59,144 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 10:42:59,144 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [27, 27] total 48 [2022-04-28 10:42:59,144 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:42:59,144 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [740867279] [2022-04-28 10:42:59,144 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [740867279] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:42:59,144 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:42:59,144 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [27] imperfect sequences [] total 27 [2022-04-28 10:42:59,144 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [388637942] [2022-04-28 10:42:59,144 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:42:59,145 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-28 10:42:59,146 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:42:59,146 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-28 10:42:59,215 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-28 10:42:59,215 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 27 states [2022-04-28 10:42:59,216 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:42:59,216 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 27 interpolants. [2022-04-28 10:42:59,217 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=365, Invalid=3639, Unknown=28, NotChecked=0, Total=4032 [2022-04-28 10:42:59,217 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-28 10:43:17,124 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:43:17,124 INFO L93 Difference]: Finished difference Result 199 states and 239 transitions. [2022-04-28 10:43:17,124 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 33 states. [2022-04-28 10:43:17,125 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-28 10:43:17,125 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:43:17,125 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-28 10:43:17,127 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 148 transitions. [2022-04-28 10:43:17,127 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-28 10:43:17,129 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 148 transitions. [2022-04-28 10:43:17,130 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 33 states and 148 transitions. [2022-04-28 10:43:17,321 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-28 10:43:17,323 INFO L225 Difference]: With dead ends: 199 [2022-04-28 10:43:17,323 INFO L226 Difference]: Without dead ends: 125 [2022-04-28 10:43:17,325 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 169 GetRequests, 78 SyntacticMatches, 0 SemanticMatches, 91 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2439 ImplicationChecksByTransitivity, 50.4s TimeCoverageRelationStatistics Valid=690, Invalid=7833, Unknown=33, NotChecked=0, Total=8556 [2022-04-28 10:43:17,326 INFO L413 NwaCegarLoop]: 55 mSDtfsCounter, 179 mSDsluCounter, 12 mSDsCounter, 0 mSdLazyCounter, 1600 mSolverCounterSat, 136 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 2.8s 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, 2.8s IncrementalHoareTripleChecker+Time [2022-04-28 10:43:17,326 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [183 Valid, 67 Invalid, 1736 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [136 Valid, 1600 Invalid, 0 Unknown, 0 Unchecked, 2.8s Time] [2022-04-28 10:43:17,326 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 125 states. [2022-04-28 10:43:17,685 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 125 to 115. [2022-04-28 10:43:17,685 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:43:17,685 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-28 10:43:17,686 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-28 10:43:17,686 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-28 10:43:17,689 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:43:17,689 INFO L93 Difference]: Finished difference Result 125 states and 150 transitions. [2022-04-28 10:43:17,689 INFO L276 IsEmpty]: Start isEmpty. Operand 125 states and 150 transitions. [2022-04-28 10:43:17,689 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:43:17,690 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:43:17,690 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-28 10:43:17,690 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-28 10:43:17,693 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:43:17,694 INFO L93 Difference]: Finished difference Result 125 states and 150 transitions. [2022-04-28 10:43:17,694 INFO L276 IsEmpty]: Start isEmpty. Operand 125 states and 150 transitions. [2022-04-28 10:43:17,694 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:43:17,694 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:43:17,694 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:43:17,694 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:43:17,695 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-28 10:43:17,697 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 115 states to 115 states and 136 transitions. [2022-04-28 10:43:17,697 INFO L78 Accepts]: Start accepts. Automaton has 115 states and 136 transitions. Word has length 67 [2022-04-28 10:43:17,697 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:43:17,697 INFO L495 AbstractCegarLoop]: Abstraction has 115 states and 136 transitions. [2022-04-28 10:43:17,698 INFO L496 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-28 10:43:17,698 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 115 states and 136 transitions. [2022-04-28 10:43:17,988 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-28 10:43:17,988 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 136 transitions. [2022-04-28 10:43:17,989 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 74 [2022-04-28 10:43:17,989 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:43:17,989 INFO L195 NwaCegarLoop]: 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-28 10:43:18,008 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-28 10:43:18,199 WARN L477 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-28 10:43:18,200 INFO L420 AbstractCegarLoop]: === Iteration 15 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:43:18,200 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:43:18,200 INFO L85 PathProgramCache]: Analyzing trace with hash -1243098892, now seen corresponding path program 1 times [2022-04-28 10:43:18,200 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:43:18,200 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [740761491] [2022-04-28 10:43:18,200 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:43:18,200 INFO L85 PathProgramCache]: Analyzing trace with hash -1243098892, now seen corresponding path program 2 times [2022-04-28 10:43:18,201 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:43:18,201 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1595661561] [2022-04-28 10:43:18,201 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:43:18,201 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:43:18,223 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,349 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:43:18,351 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,353 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-28 10:43:18,353 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,354 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-28 10:43:18,354 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:43:18,354 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,356 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,356 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,356 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,356 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-28 10:43:18,367 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:43:18,368 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,370 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-28 10:43:18,370 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,370 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-28 10:43:18,370 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:43:18,375 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,378 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:43:18,379 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,381 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,382 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,382 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,382 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-28 10:43:18,382 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:43:18,383 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,385 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,385 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,385 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,385 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-28 10:43:18,385 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:43:18,385 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,387 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,387 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,387 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,387 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-28 10:43:18,388 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-28 10:43:18,388 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-28 10:43:18,388 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,388 INFO L290 TraceCheckUtils]: 3: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,388 INFO L290 TraceCheckUtils]: 4: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,388 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-28 10:43:18,388 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-28 10:43:18,388 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,388 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,388 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,389 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-28 10:43:18,389 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-28 10:43:18,389 INFO L290 TraceCheckUtils]: 12: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,389 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,389 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,389 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-28 10:43:18,389 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-28 10:43:18,389 INFO L290 TraceCheckUtils]: 17: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,389 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-28 10:43:18,390 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:43:18,393 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,551 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-28 10:43:18,551 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-28 10:43:18,552 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-28 10:43:18,552 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-28 10:43:18,553 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-28 10:43:18,554 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-28 10:43:18,555 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-28 10:43:18,555 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-28 10:43:18,557 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-28 10:43:18,557 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 49 [2022-04-28 10:43:18,558 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,579 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11784#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:43:18,579 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-28 10:43:18,580 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-28 10:43:18,581 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-28 10:43:18,581 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 56 [2022-04-28 10:43:18,582 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,585 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,585 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,586 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,586 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-28 10:43:18,587 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 63 [2022-04-28 10:43:18,588 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,590 INFO L290 TraceCheckUtils]: 0: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,590 INFO L290 TraceCheckUtils]: 1: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,590 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,591 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-28 10:43:18,591 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-28 10:43:18,591 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-28 10:43:18,591 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,591 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-28 10:43:18,592 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-28 10:43:18,592 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-28 10:43:18,592 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-28 10:43:18,592 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,592 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,592 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,592 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-28 10:43:18,592 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-28 10:43:18,593 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-28 10:43:18,593 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-28 10:43:18,593 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,593 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-28 10:43:18,594 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-28 10:43:18,594 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-28 10:43:18,594 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-28 10:43:18,595 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-28 10:43:18,595 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,595 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,595 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,595 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-28 10:43:18,595 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-28 10:43:18,595 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,595 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,595 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,595 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-28 10:43:18,596 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-28 10:43:18,596 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,596 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,596 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,596 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-28 10:43:18,596 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-28 10:43:18,596 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,596 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-28 10:43:18,597 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-28 10:43:18,599 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-28 10:43:18,600 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-28 10:43:18,601 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-28 10:43:18,601 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-28 10:43:18,602 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-28 10:43:18,602 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-28 10:43:18,603 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-28 10:43:18,604 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-28 10:43:18,604 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-28 10:43:18,606 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-28 10:43:18,607 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-28 10:43:18,607 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-28 10:43:18,607 INFO L290 TraceCheckUtils]: 50: Hoare triple {11706#true} ~cond := #in~cond; {11784#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:43:18,608 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-28 10:43:18,608 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-28 10:43:18,609 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-28 10:43:18,610 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-28 10:43:18,610 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-28 10:43:18,610 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-28 10:43:18,610 INFO L290 TraceCheckUtils]: 57: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,610 INFO L290 TraceCheckUtils]: 58: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,610 INFO L290 TraceCheckUtils]: 59: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,611 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-28 10:43:18,612 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-28 10:43:18,612 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-28 10:43:18,613 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-28 10:43:18,613 INFO L290 TraceCheckUtils]: 64: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:18,613 INFO L290 TraceCheckUtils]: 65: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:18,613 INFO L290 TraceCheckUtils]: 66: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:18,614 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-28 10:43:18,614 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-28 10:43:18,614 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-28 10:43:18,615 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-28 10:43:18,615 INFO L290 TraceCheckUtils]: 71: Hoare triple {11765#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {11707#false} is VALID [2022-04-28 10:43:18,615 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-28 10:43:18,616 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-28 10:43:18,616 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:43:18,616 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1595661561] [2022-04-28 10:43:18,616 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1595661561] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:43:18,616 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1038477542] [2022-04-28 10:43:18,616 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 10:43:18,616 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:43:18,616 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:43:18,617 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-28 10:43:18,618 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-28 10:43:18,707 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 10:43:18,707 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:43:18,709 INFO L263 TraceCheckSpWp]: Trace formula consists of 296 conjuncts, 47 conjunts are in the unsatisfiable core [2022-04-28 10:43:18,724 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:18,726 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:43:18,808 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-28 10:43:19,024 INFO L356 Elim1Store]: treesize reduction 17, result has 46.9 percent of original size [2022-04-28 10:43:19,025 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-28 10:43:19,648 INFO L356 Elim1Store]: treesize reduction 4, result has 50.0 percent of original size [2022-04-28 10:43:19,648 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-28 10:43:19,731 INFO L272 TraceCheckUtils]: 0: Hoare triple {11706#true} call ULTIMATE.init(); {11706#true} is VALID [2022-04-28 10:43:19,732 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-28 10:43:19,732 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:19,732 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-28 10:43:19,732 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-28 10:43:19,732 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-28 10:43:19,732 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-28 10:43:19,732 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:19,732 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:19,732 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:19,732 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-28 10:43:19,732 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-28 10:43:19,732 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-28 10:43:19,733 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11706#true} is VALID [2022-04-28 10:43:19,733 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:19,733 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-28 10:43:19,733 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-28 10:43:19,733 INFO L272 TraceCheckUtils]: 17: Hoare triple {11706#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {11706#true} is VALID [2022-04-28 10:43:19,733 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-28 10:43:19,733 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-28 10:43:19,733 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:19,733 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:19,733 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:19,733 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-28 10:43:19,733 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-28 10:43:19,733 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:19,733 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:19,734 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:19,734 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-28 10:43:19,734 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-28 10:43:19,734 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:19,734 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:19,734 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:19,734 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-28 10:43:19,734 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-28 10:43:19,734 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:19,734 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-28 10:43:19,735 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-28 10:43:19,735 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-28 10:43:19,736 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-28 10:43:19,736 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-28 10:43:19,737 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-28 10:43:19,737 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-28 10:43:19,738 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-28 10:43:19,738 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-28 10:43:19,739 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-28 10:43:19,739 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-28 10:43:19,741 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-28 10:43:19,741 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-28 10:43:19,742 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-28 10:43:19,743 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-28 10:43:19,752 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-28 10:43:19,753 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-28 10:43:19,753 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-28 10:43:19,754 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-28 10:43:19,755 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-28 10:43:19,756 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-28 10:43:19,757 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-28 10:43:19,757 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-28 10:43:19,758 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-28 10:43:19,758 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-28 10:43:19,759 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-28 10:43:19,760 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-28 10:43:19,761 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-28 10:43:19,761 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-28 10:43:19,762 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-28 10:43:19,762 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-28 10:43:19,763 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-28 10:43:19,764 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-28 10:43:19,764 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-28 10:43:19,765 INFO L290 TraceCheckUtils]: 70: Hoare triple {12002#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {12006#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:43:19,765 INFO L290 TraceCheckUtils]: 71: Hoare triple {12006#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11707#false} is VALID [2022-04-28 10:43:19,765 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-28 10:43:19,766 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-28 10:43:19,766 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:43:20,076 INFO L356 Elim1Store]: treesize reduction 10, result has 9.1 percent of original size [2022-04-28 10:43:20,077 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-28 10:43:20,691 INFO L290 TraceCheckUtils]: 72: Hoare triple {11707#false} assume !false; {11707#false} is VALID [2022-04-28 10:43:20,692 INFO L290 TraceCheckUtils]: 71: Hoare triple {12006#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11707#false} is VALID [2022-04-28 10:43:20,692 INFO L290 TraceCheckUtils]: 70: Hoare triple {12002#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {12006#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:43:20,693 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-28 10:43:20,693 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-28 10:43:20,694 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-28 10:43:20,694 INFO L290 TraceCheckUtils]: 66: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,694 INFO L290 TraceCheckUtils]: 65: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:20,694 INFO L290 TraceCheckUtils]: 64: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:20,694 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-28 10:43:20,694 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-28 10:43:20,695 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-28 10:43:20,695 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-28 10:43:20,696 INFO L290 TraceCheckUtils]: 59: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,696 INFO L290 TraceCheckUtils]: 58: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:20,696 INFO L290 TraceCheckUtils]: 57: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:20,696 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-28 10:43:20,696 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-28 10:43:20,697 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-28 10:43:20,697 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-28 10:43:20,697 INFO L290 TraceCheckUtils]: 52: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,697 INFO L290 TraceCheckUtils]: 51: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:20,697 INFO L290 TraceCheckUtils]: 50: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:20,697 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-28 10:43:20,698 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-28 10:43:20,699 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-28 10:43:20,700 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-28 10:43:20,701 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-28 10:43:20,701 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-28 10:43:20,702 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-28 10:43:20,703 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-28 10:43:20,704 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-28 10:43:20,705 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-28 10:43:20,705 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-28 10:43:20,705 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-28 10:43:20,706 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-28 10:43:20,706 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {11706#true} {11706#true} #102#return; {11706#true} is VALID [2022-04-28 10:43:20,706 INFO L290 TraceCheckUtils]: 35: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,706 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-28 10:43:20,706 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11706#true} {11706#true} #120#return; {11706#true} is VALID [2022-04-28 10:43:20,706 INFO L290 TraceCheckUtils]: 32: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,707 INFO L290 TraceCheckUtils]: 31: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:20,707 INFO L290 TraceCheckUtils]: 30: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:20,707 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-28 10:43:20,707 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {11706#true} {11706#true} #118#return; {11706#true} is VALID [2022-04-28 10:43:20,707 INFO L290 TraceCheckUtils]: 27: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,707 INFO L290 TraceCheckUtils]: 26: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:20,707 INFO L290 TraceCheckUtils]: 25: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:20,707 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-28 10:43:20,707 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11706#true} {11706#true} #116#return; {11706#true} is VALID [2022-04-28 10:43:20,707 INFO L290 TraceCheckUtils]: 22: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,707 INFO L290 TraceCheckUtils]: 21: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:20,707 INFO L290 TraceCheckUtils]: 20: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:20,707 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-28 10:43:20,707 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-28 10:43:20,707 INFO L272 TraceCheckUtils]: 17: Hoare triple {11706#true} call mkdup(~a~0.base, ~a~0.offset, ~n~0); {11706#true} is VALID [2022-04-28 10:43:20,708 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-28 10:43:20,708 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {11706#true} {11706#true} #100#return; {11706#true} is VALID [2022-04-28 10:43:20,708 INFO L290 TraceCheckUtils]: 14: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,708 INFO L290 TraceCheckUtils]: 13: Hoare triple {11706#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {11706#true} is VALID [2022-04-28 10:43:20,708 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-28 10:43:20,708 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-28 10:43:20,708 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11706#true} {11706#true} #98#return; {11706#true} is VALID [2022-04-28 10:43:20,708 INFO L290 TraceCheckUtils]: 9: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,708 INFO L290 TraceCheckUtils]: 8: Hoare triple {11706#true} assume !(0 == ~cond); {11706#true} is VALID [2022-04-28 10:43:20,708 INFO L290 TraceCheckUtils]: 7: Hoare triple {11706#true} ~cond := #in~cond; {11706#true} is VALID [2022-04-28 10:43:20,708 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-28 10:43:20,708 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-28 10:43:20,708 INFO L272 TraceCheckUtils]: 4: Hoare triple {11706#true} call #t~ret27 := main(); {11706#true} is VALID [2022-04-28 10:43:20,708 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11706#true} {11706#true} #122#return; {11706#true} is VALID [2022-04-28 10:43:20,709 INFO L290 TraceCheckUtils]: 2: Hoare triple {11706#true} assume true; {11706#true} is VALID [2022-04-28 10:43:20,709 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-28 10:43:20,709 INFO L272 TraceCheckUtils]: 0: Hoare triple {11706#true} call ULTIMATE.init(); {11706#true} is VALID [2022-04-28 10:43:20,709 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-28 10:43:20,709 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1038477542] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 10:43:20,709 INFO L184 FreeRefinementEngine]: Found 0 perfect and 3 imperfect interpolant sequences. [2022-04-28 10:43:20,709 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 12, 11] total 31 [2022-04-28 10:43:20,709 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 10:43:20,710 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [740761491] [2022-04-28 10:43:20,710 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [740761491] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 10:43:20,710 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 10:43:20,710 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [17] imperfect sequences [] total 17 [2022-04-28 10:43:20,710 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1895654176] [2022-04-28 10:43:20,710 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 10:43:20,710 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-28 10:43:20,711 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 10:43:20,711 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-28 10:43:20,758 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-28 10:43:20,758 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 17 states [2022-04-28 10:43:20,758 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 10:43:20,759 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2022-04-28 10:43:20,759 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=103, Invalid=827, Unknown=0, NotChecked=0, Total=930 [2022-04-28 10:43:20,759 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-28 10:43:23,433 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:43:23,433 INFO L93 Difference]: Finished difference Result 135 states and 160 transitions. [2022-04-28 10:43:23,433 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-04-28 10:43:23,434 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-28 10:43:23,434 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 10:43:23,434 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-28 10:43:23,435 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 102 transitions. [2022-04-28 10:43:23,436 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-28 10:43:23,437 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 102 transitions. [2022-04-28 10:43:23,437 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 17 states and 102 transitions. [2022-04-28 10:43:23,549 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-28 10:43:23,553 INFO L225 Difference]: With dead ends: 135 [2022-04-28 10:43:23,553 INFO L226 Difference]: Without dead ends: 133 [2022-04-28 10:43:23,555 INFO L412 NwaCegarLoop]: 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-28 10:43:23,557 INFO L413 NwaCegarLoop]: 46 mSDtfsCounter, 96 mSDsluCounter, 24 mSDsCounter, 0 mSdLazyCounter, 1053 mSolverCounterSat, 80 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 97 SdHoareTripleChecker+Valid, 70 SdHoareTripleChecker+Invalid, 1133 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 80 IncrementalHoareTripleChecker+Valid, 1053 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.0s IncrementalHoareTripleChecker+Time [2022-04-28 10:43:23,557 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [97 Valid, 70 Invalid, 1133 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [80 Valid, 1053 Invalid, 0 Unknown, 0 Unchecked, 1.0s Time] [2022-04-28 10:43:23,557 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 133 states. [2022-04-28 10:43:23,999 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 133 to 129. [2022-04-28 10:43:24,000 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 10:43:24,000 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-28 10:43:24,000 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-28 10:43:24,000 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-28 10:43:24,004 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:43:24,004 INFO L93 Difference]: Finished difference Result 133 states and 158 transitions. [2022-04-28 10:43:24,004 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 158 transitions. [2022-04-28 10:43:24,004 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:43:24,004 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:43:24,005 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-28 10:43:24,005 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-28 10:43:24,008 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 10:43:24,008 INFO L93 Difference]: Finished difference Result 133 states and 158 transitions. [2022-04-28 10:43:24,008 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 158 transitions. [2022-04-28 10:43:24,009 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 10:43:24,009 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 10:43:24,010 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 10:43:24,010 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 10:43:24,010 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-28 10:43:24,013 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 129 states to 129 states and 154 transitions. [2022-04-28 10:43:24,013 INFO L78 Accepts]: Start accepts. Automaton has 129 states and 154 transitions. Word has length 73 [2022-04-28 10:43:24,014 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 10:43:24,014 INFO L495 AbstractCegarLoop]: Abstraction has 129 states and 154 transitions. [2022-04-28 10:43:24,014 INFO L496 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-28 10:43:24,014 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 129 states and 154 transitions. [2022-04-28 10:43:24,325 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-28 10:43:24,326 INFO L276 IsEmpty]: Start isEmpty. Operand 129 states and 154 transitions. [2022-04-28 10:43:24,326 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 77 [2022-04-28 10:43:24,326 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 10:43:24,326 INFO L195 NwaCegarLoop]: 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-28 10:43:24,348 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Ended with exit code 0 [2022-04-28 10:43:24,547 WARN L477 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-28 10:43:24,547 INFO L420 AbstractCegarLoop]: === Iteration 16 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 10:43:24,548 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 10:43:24,548 INFO L85 PathProgramCache]: Analyzing trace with hash 680409498, now seen corresponding path program 1 times [2022-04-28 10:43:24,548 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 10:43:24,548 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [764454009] [2022-04-28 10:43:24,548 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 10:43:24,548 INFO L85 PathProgramCache]: Analyzing trace with hash 680409498, now seen corresponding path program 2 times [2022-04-28 10:43:24,548 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 10:43:24,548 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [66941064] [2022-04-28 10:43:24,548 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 10:43:24,548 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 10:43:24,574 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:24,775 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 10:43:24,776 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:24,783 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-28 10:43:24,783 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,783 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-28 10:43:24,784 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:43:24,784 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:24,785 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:24,786 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:24,786 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,786 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-28 10:43:24,795 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 10:43:24,796 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:24,801 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-28 10:43:24,801 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,801 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-28 10:43:24,801 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-28 10:43:24,806 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:24,816 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 1 [2022-04-28 10:43:24,817 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:24,818 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:24,818 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:24,819 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,819 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-28 10:43:24,819 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 10:43:24,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:24,821 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:24,821 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:24,821 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,821 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-28 10:43:24,822 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-04-28 10:43:24,822 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:24,824 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:24,824 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:24,824 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,824 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-28 10:43:24,824 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-28 10:43:24,824 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-28 10:43:24,824 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:24,824 INFO L290 TraceCheckUtils]: 3: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:24,825 INFO L290 TraceCheckUtils]: 4: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,825 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-28 10:43:24,825 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-28 10:43:24,825 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:24,825 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:24,825 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,825 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-28 10:43:24,825 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-28 10:43:24,825 INFO L290 TraceCheckUtils]: 12: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:24,825 INFO L290 TraceCheckUtils]: 13: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:24,826 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,826 INFO L284 TraceCheckUtils]: 15: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-28 10:43:24,826 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-28 10:43:24,826 INFO L290 TraceCheckUtils]: 17: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:24,826 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-28 10:43:24,827 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 38 [2022-04-28 10:43:24,831 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:25,032 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-28 10:43:25,033 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-28 10:43:25,034 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-28 10:43:25,035 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-28 10:43:25,036 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-28 10:43:25,038 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-28 10:43:25,038 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 46 [2022-04-28 10:43:25,040 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:25,069 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13139#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:43:25,069 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-28 10:43:25,069 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-28 10:43:25,071 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-28 10:43:25,071 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 53 [2022-04-28 10:43:25,072 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:25,077 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,077 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,077 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,078 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-28 10:43:25,078 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 60 [2022-04-28 10:43:25,079 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:25,081 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,081 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,081 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,082 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-28 10:43:25,082 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 66 [2022-04-28 10:43:25,084 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:25,086 INFO L290 TraceCheckUtils]: 0: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,086 INFO L290 TraceCheckUtils]: 1: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,086 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,087 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-28 10:43:25,088 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-28 10:43:25,088 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-28 10:43:25,088 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,088 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-28 10:43:25,088 INFO L272 TraceCheckUtils]: 4: Hoare triple {13058#true} call #t~ret27 := main(); {13058#true} is VALID [2022-04-28 10:43:25,088 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-28 10:43:25,088 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-28 10:43:25,088 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,089 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,089 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,089 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-28 10:43:25,090 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-28 10:43:25,091 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-28 10:43:25,091 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-28 10:43:25,091 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,092 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-28 10:43:25,092 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-28 10:43:25,093 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-28 10:43:25,093 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-28 10:43:25,093 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-28 10:43:25,093 INFO L290 TraceCheckUtils]: 20: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,093 INFO L290 TraceCheckUtils]: 21: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,093 INFO L290 TraceCheckUtils]: 22: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,094 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {13058#true} {13058#true} #116#return; {13058#true} is VALID [2022-04-28 10:43:25,094 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-28 10:43:25,094 INFO L290 TraceCheckUtils]: 25: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,094 INFO L290 TraceCheckUtils]: 26: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,094 INFO L290 TraceCheckUtils]: 27: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,094 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {13058#true} {13058#true} #118#return; {13058#true} is VALID [2022-04-28 10:43:25,094 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-28 10:43:25,094 INFO L290 TraceCheckUtils]: 30: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,094 INFO L290 TraceCheckUtils]: 31: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,094 INFO L290 TraceCheckUtils]: 32: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,094 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {13058#true} {13058#true} #120#return; {13058#true} is VALID [2022-04-28 10:43:25,095 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-28 10:43:25,095 INFO L290 TraceCheckUtils]: 35: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,095 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-28 10:43:25,096 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-28 10:43:25,098 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-28 10:43:25,098 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-28 10:43:25,099 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-28 10:43:25,100 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-28 10:43:25,101 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-28 10:43:25,102 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-28 10:43:25,104 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-28 10:43:25,104 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-28 10:43:25,105 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-28 10:43:25,105 INFO L290 TraceCheckUtils]: 47: Hoare triple {13058#true} ~cond := #in~cond; {13139#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:43:25,105 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-28 10:43:25,106 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-28 10:43:25,107 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-28 10:43:25,107 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-28 10:43:25,108 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-28 10:43:25,108 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-28 10:43:25,108 INFO L290 TraceCheckUtils]: 54: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,108 INFO L290 TraceCheckUtils]: 55: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,108 INFO L290 TraceCheckUtils]: 56: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,109 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-28 10:43:25,110 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-28 10:43:25,110 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-28 10:43:25,110 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-28 10:43:25,110 INFO L290 TraceCheckUtils]: 61: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,110 INFO L290 TraceCheckUtils]: 62: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,110 INFO L290 TraceCheckUtils]: 63: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,111 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-28 10:43:25,112 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-28 10:43:25,112 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-28 10:43:25,112 INFO L290 TraceCheckUtils]: 67: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:25,112 INFO L290 TraceCheckUtils]: 68: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:25,112 INFO L290 TraceCheckUtils]: 69: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:25,113 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-28 10:43:25,113 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-28 10:43:25,114 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-28 10:43:25,114 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-28 10:43:25,115 INFO L290 TraceCheckUtils]: 74: Hoare triple {13121#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {13059#false} is VALID [2022-04-28 10:43:25,115 INFO L290 TraceCheckUtils]: 75: Hoare triple {13059#false} assume !false; {13059#false} is VALID [2022-04-28 10:43:25,115 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-28 10:43:25,115 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 10:43:25,116 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [66941064] [2022-04-28 10:43:25,116 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [66941064] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-28 10:43:25,116 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [806398440] [2022-04-28 10:43:25,116 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 10:43:25,116 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 10:43:25,116 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 10:43:25,120 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-28 10:43:25,122 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-28 10:43:25,237 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 10:43:25,237 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 10:43:25,239 INFO L263 TraceCheckSpWp]: Trace formula consists of 305 conjuncts, 84 conjunts are in the unsatisfiable core [2022-04-28 10:43:25,258 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 10:43:25,261 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 10:43:25,381 INFO L356 Elim1Store]: treesize reduction 29, result has 39.6 percent of original size [2022-04-28 10:43:25,382 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-28 10:43:25,434 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-28 10:43:25,763 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-28 10:43:25,764 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-28 10:43:25,765 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-28 10:43:25,765 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-28 10:43:32,867 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-28 10:43:32,868 INFO L190 IndexEqualityManager]: detected not equals via solver [2022-04-28 10:43:32,885 INFO L356 Elim1Store]: treesize reduction 38, result has 22.4 percent of original size [2022-04-28 10:43:32,885 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-28 10:43:32,978 INFO L272 TraceCheckUtils]: 0: Hoare triple {13058#true} call ULTIMATE.init(); {13058#true} is VALID [2022-04-28 10:43:32,978 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-28 10:43:32,978 INFO L290 TraceCheckUtils]: 2: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:32,978 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13058#true} {13058#true} #122#return; {13058#true} is VALID [2022-04-28 10:43:32,978 INFO L272 TraceCheckUtils]: 4: Hoare triple {13058#true} call #t~ret27 := main(); {13058#true} is VALID [2022-04-28 10:43:32,979 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-28 10:43:32,979 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-28 10:43:32,979 INFO L290 TraceCheckUtils]: 7: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:32,979 INFO L290 TraceCheckUtils]: 8: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:32,979 INFO L290 TraceCheckUtils]: 9: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:32,979 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13058#true} {13058#true} #98#return; {13058#true} is VALID [2022-04-28 10:43:32,979 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-28 10:43:32,980 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-28 10:43:32,980 INFO L290 TraceCheckUtils]: 13: Hoare triple {13058#true} #memory_int := ~initToZeroAtPointerBaseAddress~int(#memory_int, #ptr.base); {13058#true} is VALID [2022-04-28 10:43:32,980 INFO L290 TraceCheckUtils]: 14: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:32,980 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-28 10:43:32,981 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-28 10:43:32,981 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-28 10:43:32,981 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-28 10:43:32,981 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-28 10:43:32,981 INFO L290 TraceCheckUtils]: 20: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:32,981 INFO L290 TraceCheckUtils]: 21: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:32,981 INFO L290 TraceCheckUtils]: 22: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:32,982 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-28 10:43:32,982 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-28 10:43:32,982 INFO L290 TraceCheckUtils]: 25: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:32,982 INFO L290 TraceCheckUtils]: 26: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:32,982 INFO L290 TraceCheckUtils]: 27: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:32,983 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-28 10:43:32,983 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-28 10:43:32,983 INFO L290 TraceCheckUtils]: 30: Hoare triple {13058#true} ~cond := #in~cond; {13058#true} is VALID [2022-04-28 10:43:32,983 INFO L290 TraceCheckUtils]: 31: Hoare triple {13058#true} assume !(0 == ~cond); {13058#true} is VALID [2022-04-28 10:43:32,983 INFO L290 TraceCheckUtils]: 32: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:32,984 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-28 10:43:32,984 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-28 10:43:32,984 INFO L290 TraceCheckUtils]: 35: Hoare triple {13058#true} assume true; {13058#true} is VALID [2022-04-28 10:43:32,984 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-28 10:43:32,985 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-28 10:43:32,986 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-28 10:43:32,986 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-28 10:43:32,987 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-28 10:43:32,988 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-28 10:43:32,988 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-28 10:43:32,989 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-28 10:43:32,990 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-28 10:43:32,991 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-28 10:43:32,992 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-28 10:43:32,993 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-28 10:43:32,994 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-28 10:43:32,995 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-28 10:43:32,996 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-28 10:43:32,996 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-28 10:43:32,997 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-28 10:43:32,998 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-28 10:43:32,999 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-28 10:43:33,000 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-28 10:43:33,001 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-28 10:43:33,002 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-28 10:43:33,002 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-28 10:43:33,003 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-28 10:43:33,004 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-28 10:43:33,005 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-28 10:43:33,006 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-28 10:43:33,007 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-28 10:43:33,007 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-28 10:43:33,008 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-28 10:43:33,009 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-28 10:43:33,010 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-28 10:43:33,011 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-28 10:43:33,012 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-28 10:43:33,012 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-28 10:43:33,013 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-28 10:43:33,013 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-28 10:43:33,014 INFO L290 TraceCheckUtils]: 73: Hoare triple {13367#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {13371#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 10:43:33,014 INFO L290 TraceCheckUtils]: 74: Hoare triple {13371#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {13059#false} is VALID [2022-04-28 10:43:33,014 INFO L290 TraceCheckUtils]: 75: Hoare triple {13059#false} assume !false; {13059#false} is VALID [2022-04-28 10:43:33,014 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-28 10:43:33,015 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 10:43:33,982 INFO L173 IndexEqualityManager]: detected equality via solver [2022-04-28 10:43:33,987 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-28 10:43:38,512 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-28 10:43:40,546 INFO L356 Elim1Store]: treesize reduction 9, result has 10.0 percent of original size [2022-04-28 10:43:40,546 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 40336 treesize of output 39664 [2022-04-28 10:43:41,010 WARN L319 FreeRefinementEngine]: Global settings require throwing the following exception [2022-04-28 10:43:41,035 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-28 10:43:41,210 WARN L477 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-28 10:43:41,211 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:606) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.selectBestEliminatee(QuantifierPusher.java:589) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushUtilsForSubsetPush.sequentialSubsetPush(QuantifierPushUtilsForSubsetPush.java:135) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToPushOverDualFiniteConnective2(QuantifierPusher.java:389) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher.tryToPushOverDualFiniteConnective(QuantifierPusher.java:346) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.convert(QuantifierPushTermWalker.java:175) 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:264) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.QuantifierPushTermWalker.eliminate(QuantifierPushTermWalker.java:250) at de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.PartialQuantifierElimination.eliminate(PartialQuantifierElimination.java:92) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:238) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:420) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.computeBackwardSequence(IterativePredicateTransformer.java:364) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.predicates.IterativePredicateTransformer.computeWeakestPreconditionSequence(IterativePredicateTransformer.java:271) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:342) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:185) at de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:163) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleSpWp.construct(IpTcStrategyModuleSpWp.java:108) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleSpWp.construct(IpTcStrategyModuleSpWp.java:1) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getOrConstruct(IpTcStrategyModuleBase.java:101) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getInterpolantComputationStatus(IpTcStrategyModuleBase.java:77) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.tryExecuteInterpolantGenerator(AutomatonFreeRefinementEngine.java:266) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.generateProof(AutomatonFreeRefinementEngine.java:147) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.executeStrategy(AutomatonFreeRefinementEngine.java:137) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.(AutomatonFreeRefinementEngine.java:85) at de.uni_freiburg.informatik.ultimate.lib.acceleratedinterpolation.AcceleratedInterpolationCore.runStrategy(AcceleratedInterpolationCore.java:300) at de.uni_freiburg.informatik.ultimate.lib.acceleratedinterpolation.AcceleratedInterpolationCore.acceleratedInterpolationCoreIsCorrect(AcceleratedInterpolationCore.java:203) at de.uni_freiburg.informatik.ultimate.lib.acceleratedinterpolation.AcceleratedInterpolation.(AcceleratedInterpolation.java:195) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleAcceleratedInterpolation.construct(IpTcStrategyModuleAcceleratedInterpolation.java:80) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.getOrConstruct(IpTcStrategyModuleBase.java:101) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.IpTcStrategyModuleBase.isCorrect(IpTcStrategyModuleBase.java:57) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.checkFeasibility(AutomatonFreeRefinementEngine.java:209) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.executeStrategy(AutomatonFreeRefinementEngine.java:121) at de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.tracehandling.AutomatonFreeRefinementEngine.(AutomatonFreeRefinementEngine.java:85) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:82) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:248) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:431) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.startCegar(AbstractCegarLoop.java:366) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.runCegar(AbstractCegarLoop.java:348) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.executeCegarLoop(TraceAbstractionStarter.java:409) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.analyseProgram(TraceAbstractionStarter.java:300) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.analyseSequentialProgram(TraceAbstractionStarter.java:260) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:173) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:152) 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-28 10:43:41,215 INFO L158 Benchmark]: Toolchain (without parser) took 156459.75ms. Allocated memory was 170.9MB in the beginning and 367.0MB in the end (delta: 196.1MB). Free memory was 124.9MB in the beginning and 307.6MB in the end (delta: -182.6MB). Peak memory consumption was 205.7MB. Max. memory is 8.0GB. [2022-04-28 10:43:41,215 INFO L158 Benchmark]: CDTParser took 0.15ms. Allocated memory is still 170.9MB. Free memory is still 141.5MB. There was no memory consumed. Max. memory is 8.0GB. [2022-04-28 10:43:41,215 INFO L158 Benchmark]: CACSL2BoogieTranslator took 221.74ms. Allocated memory is still 170.9MB. Free memory was 124.7MB in the beginning and 148.4MB in the end (delta: -23.7MB). Peak memory consumption was 11.5MB. Max. memory is 8.0GB. [2022-04-28 10:43:41,216 INFO L158 Benchmark]: Boogie Preprocessor took 62.79ms. Allocated memory is still 170.9MB. Free memory was 148.4MB in the beginning and 146.4MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. [2022-04-28 10:43:41,216 INFO L158 Benchmark]: RCFGBuilder took 536.17ms. Allocated memory is still 170.9MB. Free memory was 146.4MB in the beginning and 129.8MB in the end (delta: 16.5MB). Peak memory consumption was 15.7MB. Max. memory is 8.0GB. [2022-04-28 10:43:41,216 INFO L158 Benchmark]: TraceAbstraction took 155631.80ms. Allocated memory was 170.9MB in the beginning and 367.0MB in the end (delta: 196.1MB). Free memory was 129.3MB in the beginning and 307.6MB in the end (delta: -178.3MB). Peak memory consumption was 211.4MB. Max. memory is 8.0GB. [2022-04-28 10:43:41,217 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.15ms. Allocated memory is still 170.9MB. Free memory is still 141.5MB. There was no memory consumed. Max. memory is 8.0GB. * CACSL2BoogieTranslator took 221.74ms. Allocated memory is still 170.9MB. Free memory was 124.7MB in the beginning and 148.4MB in the end (delta: -23.7MB). Peak memory consumption was 11.5MB. Max. memory is 8.0GB. * Boogie Preprocessor took 62.79ms. Allocated memory is still 170.9MB. Free memory was 148.4MB in the beginning and 146.4MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. * RCFGBuilder took 536.17ms. Allocated memory is still 170.9MB. Free memory was 146.4MB in the beginning and 129.8MB in the end (delta: 16.5MB). Peak memory consumption was 15.7MB. Max. memory is 8.0GB. * TraceAbstraction took 155631.80ms. Allocated memory was 170.9MB in the beginning and 367.0MB in the end (delta: 196.1MB). Free memory was 129.3MB in the beginning and 307.6MB in the end (delta: -178.3MB). Peak memory consumption was 211.4MB. 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-28 10:43:41,421 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-28 10:43:41,435 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 137 Received shutdown request...